Linux Network Fault Tolerance

12
Sistemas Distribuídos Linux Network Fault Tolerance Frederico Madeira LPIC-1, LPIC-2, CCNA [email protected] www.madeira.eng.br

description

Aula sobre Tolerância a falha nas interfaces de rede de um server Linux. Configuração de Bonding

Transcript of Linux Network Fault Tolerance

Page 1: Linux Network Fault Tolerance

Sistemas DistribuídosLinux Network Fault Tolerance

Frederico MadeiraLPIC­1, LPIC­2, [email protected]

Page 2: Linux Network Fault Tolerance

Bonding

• O termo bonding significa agregação de portas

• Transforma múltiplas interfaces de rede em uma só

• Termos:✔ Trunking na Sun✔ Etherchannel na Cisco✔ Bonding no Linux

Page 3: Linux Network Fault Tolerance

Tipos

• Modo 0 (balance-rr)

✔ Utiliza a política de round robin, transmitindo sequencialmente da primeira interface até a última.

✔ Garante tolerância a falhas e balanceamento de carga

Page 4: Linux Network Fault Tolerance

Tipos

• Modo 1 (active-backup)

✔ Transmite dados apenas em uma das interfaces slaves.

✔ A outra placa fica ativa, apenas se a primeira vier a falhar

✔ Garante tolerância a falhas

Page 5: Linux Network Fault Tolerance

Tipos

• Modo 4 (802.3ad)

✔ Permite agregar múltiplas interfaces em uma única.

✔ Implementa o padrão IEEE 802.3ad Dynamic link aggregation

✔ Garante tolerância a falhas

Page 6: Linux Network Fault Tolerance

Configurando1. Criar o arquivo da interface bond0

Entrar na pasta: /etc/sysconfig/network-scripts/ e criar o arquivo ifcfg-bond0

Este arquivo deverá ter o seguinte conteúdo:

DEVICE=bond0IPADDR=192.168.0.1NETMASK=255.255.255.0NETWORK=192.168.0.0BROADCAST=192.168.0.255ONBOOT=yesBOOTPROTO=noneUSERCTL=no

Page 7: Linux Network Fault Tolerance

Configurando as Interfaces Slaves2. Editar os arquivos ifcfg-eth<N>

Entrar na pasta: /etc/sysconfig/network-scripts/ e editar os arquivos ifcfg-eth<N> das interfaces que farão parte do bond0. No nosso caso a eth0 e eth1.

Ifcfg-eth0

DEVICE=eth0USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=none

Ifcfg-eth1

DEVICE=eth1USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=none

Page 8: Linux Network Fault Tolerance

Configurando o kernel para carregar a interface bond03. Criar o arquivo bonding.conf na pasta /etc/modprobe.dAdicionaro seguinte conteúdo:

alias bond0 bondingoptions bond0 miimon=80 mode=1

Onde o mode=1 define o modo de operação, que no nosso caso é o active-backup

Miimon=80 tempo em milisegundos em que o link é verificado.

Page 9: Linux Network Fault Tolerance

Iniciando a interface4. Reiniciando o serviço de rede:

/etc/init.d/network restart[root@localhost ~]# ifconfig bond0 Link encap:Ethernet Endereço de HW 08:00:27:EB:AD:CD inet end.: 192.168.15.34 Bcast:192.168.15.255 Masc:255.255.255.0 UP BROADCASTRUNNING MASTER MULTICAST MTU:1500 Métrica:1 RX bytes:523226 (510.9 KiB) TX bytes:515258 (503.1 KiB)

eth0 Link encap:Ethernet Endereço de HW 08:00:27:EB:AD:CD UP BROADCASTRUNNING SLAVE MULTICAST MTU:1500 Métrica:1 RX bytes:268194 (261.9 KiB) TX bytes:264991 (258.7 KiB) IRQ:10 Endereço de E/S:0xd020

eth1 Link encap:Ethernet Endereço de HW 08:00:27:EB:AD:CD UP BROADCASTRUNNING SLAVE MULTICAST MTU:1500 Métrica:1 RX bytes:255494 (249.5 KiB) TX bytes:251495 (245.6 KiB) IRQ:9 Endereço de E/S:0xd240

Page 10: Linux Network Fault Tolerance

Verificando o status das interfaces

[root@localhost modprobe.d]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: eth0MII Status: upMII Polling Interval (ms): 80Up Delay (ms): 0Down Delay (ms): 0

Slave Interface: eth0MII Status: upLink Failure Count: 0Permanent HW addr: 08:00:27:eb:ad:cd

Slave Interface: eth1MII Status: upLink Failure Count: 0Permanent HW addr: 08:00:27:3d:4f:cf

Page 11: Linux Network Fault Tolerance

Gerando uma falha

[root@localhost modprobe.d]# ifdown eth0

[root@localhost modprobe.d]# tail -f /var/log/messages

Jan 22 21:17:14 localhost kernel: bonding: bond0: Removing slave eth0Jan 22 21:17:14 localhost kernel: bonding: bond0: releasing active interface eth0Jan 22 21:17:14 localhost kernel: bonding: bond0: making interface eth1 the new active one.

[root@localhost modprobe.d]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: eth1MII Status: upMII Polling Interval (ms): 80Up Delay (ms): 0Down Delay (ms): 0

Slave Interface: eth1MII Status: upLink Failure Count: 0Permanent HW addr: 08:00:27:3d:4f:cf

Page 12: Linux Network Fault Tolerance

Sistemas DistribuídosNetwork Fault Tolerance - Bonding

Frederico MadeiraLPIC­1, LPIC­2, [email protected]