Autor Tópico: Juntando placas de rede para performance/alta disponibilidade  (Lida 4512 vezes)

Offline Gore Daimon

  • Membro Sênior
  • ****
  • Mensagens: 311
    • Ver perfil
    • PIAPARA & PIAPARA LiveCD
Juntando placas de rede para performance/alta disponibilidade
« Online: 19 de Outubro de 2011, 14:31 »
Pessoal, boa tarde.

O driver bonding serve para você juntar as placas de rede de seu servidor e maximizar o link e/ou ativar redundância.

Aqui, configurei os dois, porém o bendito fazia questão de habilitar o IPv6.

Para cortar o IPv6 do bonding, faça o seguinte:

1 - edite o arquivo /etc/modprobe.conf e na linha antes da configuração do módulo bonding, adicione:

options ipv6 disable=1

2 - edite o arquivo /etc/sysconfig/network e adicione as seguintes linhas:

NETWORKING_IPV6=no
IPV6INIT=no

Reinicie o sistema e verifique com o comando ifconfig que a placa de rede do bonding está trabalhando sem o IPv6.

PS1: tem que reiniciar
PS2: o modulo bonding depende do modulo ipv6. Por isto tem que cancelar o ipv6 pelo parâmetro disable.

Divirtam-se! Aqui, tudo rodando com 4Gbits!

Offline Gore Daimon

  • Membro Sênior
  • ****
  • Mensagens: 311
    • Ver perfil
    • PIAPARA & PIAPARA LiveCD
Juntando placas de rede para performance/alta disponibilidade
« Resposta #1 Online: 19 de Outubro de 2011, 15:33 »
Pessoal, tudo beleza?

Quem trabalha com servidores conhece o drama: performance e alta disponibilidade de rede todo mundo quer e precisa!

No Linux, você pode fazer isso utilizando o módulo bonding, que possui a seguinte informação:

Código: [Selecionar]
filename:       /lib/modules/2.6.29.6-server-3mnb/kernel/drivers/net/bonding/bonding.ko.gz
author:         Thomas Davis, tadavis@lbl.gov and many others
description:    Ethernet Channel Bonding Driver, v3.5.0
version:        3.5.0
license:        GPL
srcversion:     4E54A99B4419E24F318B852
depends:        ipv6
vermagic:       2.6.29.6-server-3mnb SMP mod_unload modversions
parm:           max_bonds:Max number of bonded devices (int)
parm:           num_grat_arp:Number of gratuitous ARP packets to send on failover event (int)
parm:           num_unsol_na:Number of unsolicited IPv6 Neighbor Advertisements packets to send on failover event (int)
parm:           miimon:Link check interval in milliseconds (int)
parm:           updelay:Delay before considering link up, in milliseconds (int)
parm:           downdelay:Delay before considering link down, in milliseconds (int)
parm:           use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0 for off, 1 for on (default) (int)
parm:           mode:Mode of operation : 0 for balance-rr, 1 for active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)
parm:           primary:Primary network device to use (charp)
parm:           lacp_rate:LACPDU tx rate to request from 802.3ad partner (slow/fast) (charp)
parm:           ad_select:803.ad aggregation selection logic: stable (0, default), bandwidth (1), count (2) (charp)
parm:           xmit_hash_policy:XOR hashing method: 0 for layer 2 (default), 1 for layer 3+4 (charp)
parm:           arp_interval:arp interval in milliseconds (int)
parm:           arp_ip_target:arp targets in n.n.n.n form (array of charp)
parm:           arp_validate:validate src/dst of ARP probes: none (default), active, backup or all (charp)
parm:           fail_over_mac:For active-backup, do not set all slaves to the same MAC.  none (default), active or follow (charp)

Para verificar as opções de trabalho do módulo, para ver se é alta disponibidade ou performance ou ambos, temos:

Código: [Selecionar]
parm:           mode:Mode of operation : 0 for balance-rr, 1 for active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)
Eu recomendo o modo 0 ou 4 (LACP). Ambos somam os links e fornecem disponibilidade. Lembre-se que para funcionar, você deve configurar a switch e "trunkear" as portas para que a switch saiba que o tráfego será somado. Senão não dá certo.

1 - A primeira coisa é fazer é usar o assistente do Mandriva e configurar todas as placas de rede com IP Fixo. Aqui, configurei a eth0 e a eth1.
2 - É preciso configurar o módulo no /etc/modprobe.conf modificando o parâmetro mode de acordo com a função desejada:

Código: [Selecionar]
alias bond0 bonding
options bond0 miimon=100 mode=4

3 - É preciso fazer os arquivos de configuração do bonding em /etc/sysconfig/network-scripts/ifcfg-bond0:

Código: [Selecionar]
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
IPADDR=x.x.x.x
NETMASK=x.x.x.x
GATEWAY=x.x.x.x
METRIC=1
MII_NOT_SUPPORTED=no
USERCTL=no
DNS1=x.x.x.x
DNS2=x.x.x.x
DOMAIN=x.x.x
RESOLV_MODS=no
LINK_DETECTION_DELAY=6
IPV6INIT=no
IPV6TO4INIT=no

4 - É preciso fazer os arquivos de configuração para cada placa de rede que fará parte do bonding em /etc/sysconfig/network-scripts/ifcfg-ethx (onde x é o número da placa):

Código: [Selecionar]
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
METRIC=1
MII_NOT_SUPPORTED=no
USERCTL=no
RESOLV_MODS=no
IPV6INIT=no
IPV6TO4INIT=no
MASTER=bond0
SLAVE=yes

5 - Feito isso, reinicie a rede:

Código: [Selecionar]
service network restart
6 - Com a rede reiniciada, verifique o status do bond com o comando cat:

Código: [Selecionar]
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 17
        Partner Key: 25
        Partner Mac Address: 00:22:57:43:97:60

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:14:5e:20:6b:30
Aggregator ID: 1

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:14:5e:20:6b:31
Aggregator ID: 1

7 - Para finalizar, reajuste o firewall utilizando a ferramenta gráfica de firewall. Lá, não se esqueça de aplicar as regras à todas as interfaces,
inclusive ao bond0.

Divirtam-se!