Barra Brasil

NoticiasLinux.com.br

Em breve no Kernel Linux 3.3 - Parte 1 - Redes

2012-01-30 01h22min




A versão 3.3 do Kernel Linux oferece uma nova maneira de unir múltiplos dispositivos Ethernet. Foi adicionado o suporte para "Open vSwitch", um switch de rede virtual desenvolvido especificamente para ambientes virtualizados. O Byte Queue Limits foi projetado para reduzir a latência causadora do "buffer bloat".

Com o lançamento do Kernel Linux 3.3-rc1[1], na semana passada, Linus Torvalds fechou a janela de merge da versão 3.3. A partir de agora esta versão esta publicada, os desenvolvedores irão basicamente integrar correções e pequenas melhorias - então o primeiro candidato de lançamento do Kernel Linux 3.3 deve incluir todas as novas funcionalidades desta versão do Kernel, o qual é esperado ser lançado em Março. Modificações adicionados pelos desenvolvedores do Kernel na primeira fase do ciclo de desenvolvimento são raramente removidas ou desabilitadas nesta fase de estabilização.

Portanto o Kernel Log já esta em posição de provê uma visão abrangente das mais importantes novas funcionalidades do Kernel Linux 3.3. Como sempre, esta visão será apresentada dentro da série de artigos "Em breve no Kernel Linux 3.3" que irá gradualmente cobrir as várias áreas do kernel. A parte 1 da série descreve as mais importantes mudanças sobre a pilha de rede e dos drivers de rede e Wi-Fi. Nas próximas semanas, outros artigos cobrirão o suporte a armazenamento, sistemas de arquivos, código de arquitetura, infraestrutura e outros drivers de dispositivos.

Trabalho em equipe

Os desenvolvedores do Kernel adicionaram drivers que possibilitam a união de dispositivos Ethernet[2], este combina múltiplos dispositivos Ethernet em um único dispositivo virtual (agregação de link/802.1AX[3]). Este dispositivo virtual de rede utiliza a técnica de round-robin para compartilhar a carga de rede através de múltiplas portas; alternativamente, uma porta pode ser designada "active backup" para assumir a conexão com a rede caso ocorra um problema com a conexão primária. Os desenvolvedores dizem que este driver é muito rápido, simples e uma alternativa escalável ao driver de bonding que disponibiliza funcionalidade similar. Porém, o driver não faz todo o trabalho sozinho, este trabalha juntamente com a biblioteca libteam[4].

O Kernel Linux 3.3 inclui os componentes necessários para o Open vSwitch[5]. Este switch virtual de multi-camada pode operar nas camadas 2, 3 ou 4 e foi especificamente[6] desenvolvida para ambientes virtualizados; este é usado, por exemplo, no XenServer 6.0 para controlar o trafico de rede entre o host, seus convidados (guests) e o mundo externo. Informações sobre esta tecnologia podem ser encontradas no site do Open vSwitch[7], na documentação[8], na documentação do kernel[9] e na apresentação em vídeo [10] do Simon Horman na linux.conf.au 2012[11].

Prioridades

No Kernel Linux 3.3, a infraestrutura do cgroup para prioridade de rede[12] possibilita aos administradores configurarem dinamicamente as prioridades dos recursos de redes para grupos de processos (control group (cgroup) processes); detalhes estão disponíveis na documentação[13].

Outra nova funcionalidade, o "TCP buffer size controller[14]", permite que o controlador de memória limite a quantidade de RAM disponível para os buffers utilizados na comunicação TCP (por exemplo 1[15], 2[16], 3[17], 4[18], 5[19]); um artigo na LWN.net[20] discute uma versão anterior deste patch; estes buffers podem se tornar grandes e causar problemas em sistemas com pouca RAM.

O "Dynamic Queue Limits[21]" introduzido pelos desenvolvedores do Google, e o "Byte Queue Limits[22]" que é baseado neste, permite ao kernel controlar o quanto de dados pode ser acumulado em uma fila de envio. Este foi projetado para reduzir latências na rede que ocasionalmente ocorrem devido ao buffer excessivo, criado em dispositivos de redes recentes, sem impactar na taxa de transferência de dados; o objetivo é reduzir o problema de "buffer bloat" mencionado em artigo no Kernel Log[23] e que é causado pelo excessivo buffer de dados em alguns dispositivos de rede. Os desenvolvedores modificaram os mais importantes drivers de rede - incluindo bnx2, bnx2x, forcedeth, e1000e, igb, niu, tg3, sfc e sky2 - para que estes possam suportar o "Byte Queue Limits". O artigo "Network transmit queue limits[24]" publicado em LWN.net em agosto de 2011 oferece informação sobre esta tecnologia.

Dispositivos Wi-Fi

Desenvolvido pela Broadcom, o driver Wi-Fi brcmsmac utiliza o driver[25] bcma, que é parte do kernel já a algum tempo, para endereçar os componentes Wi-Fi dos chips que utilizam a tecnologia de interconexão AMBA da Broadcom; juntos com outra modificação[26], estes previnem potencias conflitos causado por dois drivers tentando endereçar o mesmo dispositivo.

O driver ath9k para dispositivos Atheros foi modificado[27] para suportar a tecnologia "Dynamic Frequency Selection (DFS)". Esta tecnologia previne que redes Wi-Fi utilizem certas frequências na faixa do 5 GHz caso esta interfira com radares utilizados em aeroportos, instalações militares e estações meteorológicas. O suporte completo a DFS para o subsistema Wi-Fi ainda esta em desenvolvimento[28]; informações sobre DFS estão disponível na wiki Linux Wireless[29] e no LWN.net[30].

Drivers de Rede

Tendo passado anos na área de avaliação (staging area), o driver de rede hv_netvsc para a tecnologia de virtualização Microsoft Hyper-V esta madura o suficiente para ser movida para[31] o subsistema de redes; este deve aparecer em breve em kernels de distribuição que raramente, ou nunca, incluem drivers da área de avaliação.

O driver tg3 agora suporta[32] o chip Broadcom 57766, enquanto o driver ixgbe endereça duas novas variantes do Intel 82599 (1[33], 2[34]). O driver virtio-net que permite sistemas host e guest trocarem dados em redes para virtualizadas agora suportam [35] ACPI S4 (standby/hibernate).

Proteção de sobrecarga

O código de rede para o "Active Queue Management[36] (AQM)" agora utiliza[37] um mecanismo "Adaptive RED (Random Early Detection[38])" que dinamicamente adapta o random-drop/tail-drop para tráfico de grandes volumes de dados. Como explicado no artigo sobre Adaptive RED[39]PDF apresentado em 2001, esta solução objetiva aprimorar a robustez desta tecnologia usado por roteadores para se proteger contra sobrecargas.

O mantenedor do subsistema de redes David Miller explica[40] muitas destas mudanças, assim como as requisições de Pull para o Kernel Linux 3.3. Por exemplo, ele menciona o novo suporte para UDP e AF_UNIX sockets do Netlink Socket Dumping[41] (1[42], 2[43], 3[44], 4[45], 5[46]).

Autor:
Thorsten Leemhuis / Copyright (c) 2012 Heise Media UK Ltd.

Traduzido:
Marcelo Soares Souza (Dúvidas e melhorias na tradução envie por E-mail)

Originalmente:
http://marcelo.juntadados.org/[...]el-linux-3-3---parte-1---redes
Postada por: Marcelo Soares Souza, marcelo.NOSPAM@juntadados.org







Comentários dos leitores:


Postar seu comentário no site:
Nome:

E-mail:

Site:

Comentários (Não use tags HTML):

Caracteres digitados: 0
Limite de caracteres: 3000.
Manter meu nome e e-mail para futuros comentários.

Digite os números da imagem:
Verificação de Segurança