Adicionando um novo disco ao XenServer

Opa,

Já faz algum tempo que tive que adicionar um novo disco a um XenServer em produção, na época o Diego que trabalha na mesma empresa, me passou esse link que me ajudou a adicionar o disco zerado, mas e se eu quiser adicionar um disco com conteúdo? Essa foi a dúvida do Enderson e depois que ele conseguiu me passou os passos, vou comentar abaixo como realizar das duas maneiras.

OBS.: Esses passos podem apagar conteúdo dos seus discos, portanto recomendo realização de backup’s e só os execute se tiver certeza do que está fazendo! Não me responsabilizo por eventuais problemas que venham a ocorrer!

Primeiro da forma que realizei com o disco zerado, acesse o console do XenServer e verifique se os discos foram reconhecidos, para isso execute o comando abaixo:

# fdisk -l

Após se certificar sobre qual disco será adicionado ao Xenserver, no meu caso sdb, crie um volume físico (LVM) e adicione-o ao Xenserver:

# pvcreate /dev/sdb
# xe sr-create type=lvm content-type=user device-config:device=/dev/disk/by-id/scsi-SATA_WDC_WD1600AAJS-_WD-WMAV32397222 name-label="LOCAL SR"

SATA_WDC_WD1600AAJS-_WD-WMAV32397222 é o nome do dispositivo no sistema operacional, altere para o seu caso.
Em name-label informe o nome do armazenamento que desejar, no meu caso LOCAL SR.

No caso do Enderson, ele precisa pegar um disco que estava em outro XenServer, adicioná-lo (sem perder os dados) e iniciar a VM que estava nesse disco, para isso ele adicionou o HD no novo servidor e executou os comandos abaixo (UPDATE: corrigido o uuid para o id do VG ao invés da VM, valeu Enderson!):

# xe sr-introduce uuid=<uuid do VG> type=lvm content-type=user name-label="Nome que desejar" shared=false <sr-uuid>
# xe pbd-create host-uuid=<host-uuid> sr-uuid=<sr-uuid informado acima> device-config:device=/dev/disk/by-id/scsi-SATA_WDC_WD1600AAJS-_WD-WMAV32397222-part3 <uuid-dispositivo>

Antes de criar a VM será necessário executar um repair pelo XenCenter, depois basta criar a VM e adicionar o disco.

Abraço!

Fontes:
1 – http://www.archy.net/2009/05/21/adding-local-storage-to-xenserver-55/
2 – http://forums.citrix.com/thread.jspa?messageID=1371109

Categories: Linux Tags: ,

Recompilando mcelog no Oracle Enterprise Linux

Opa,

Recentemente detectei um problema que ocorria no Oracle Enterprise Linux com a tarefa agendada mcelog.cron, ao executar apresentava o erro abaixo:

mcelog: warning: record length longer than expected. Consider update.

Pesquisando na Internet encontrei esse post, onde o usuário Dude informa que esse problema está relacionado com a aplicação que não está sincronizada com os headers do kernel, para solucionar foi necessário recompilar a aplicação conforme abaixo:

Realize o download dos fontes do pacote mcelog:

# wget http://public-yum.oracle.com/repo/OracleLinux/OL5/5/base/x86_64/mcelog-0.9pre-1.30.el5.src.rpm

Crie a estrutura (caso necessário) onde serão instalados os fontes e instale o pacote:

# mkdir -p /usr/src/redhat/SOURCES
# rpm -Uvh mcelog-0.9pre-1.30.el5.src.rpm

Acesse o diretório e descompacte o arquivo mcelog:

# cd /usr/src/redhat/SOURCES/
# tar zxvf mcelog-0.9pre.tar.gz

Acesse o diretório criado e compile:

# cd /usr/src/redhat/SOURCES/mcelog-0.9pre
# make

Execute o mcelog para verificar se é apresentado alguma mensagem de erro:

# ./mcelog

Faça um backup do binário mcelog antigo:

# mv /usr/sbin/mcelog /usr/sbin/mcelog.orig

Crie um link[1] ou copie o binário[2] (eu preferi copiar):

1 – # ln -sf /usr/src/redhat/SOURCES/mcelog-0.9pre/mcelog /usr/sbin/mcelog
2 – # cp /usr/src/redhat/SOURCES/mcelog-0.9pre/mcelog /usr/sbin/mcelog

Abraço!

Fonte: http://forums.oracle.com/forums/thread.jspa?messageID=7426706

Categories: Linux Tags: , ,

Utilizando netcat no XenServer

Opa,

Essa dica me ajudou quando tive que copiar um grande volume de dados entre dois servidores pela rede, o software netcat eu já conhecia e é considerado um canivete suíço pela enorme quantidade de opções onde pode ser utilizado, recomendo! A instalação e utilização segue abaixo.

Primeiro é necessário instalar o software no XenServer e, caso necessário, no segundo servidor. Para instalar no XenServer basta realizar o download do pacote rpm no site do projeto via wget pelo console, lembre-se de baixar a versão 32 bits, após o download instale com o comando abaixo:

# rpm -ivh netcat-<versão>.i386.rpm

Agora precisamos liberar no XenServer a porta que será utilizada para cópia dos arquivos pelo netcat:

# vi /etc/sysconfig/iptables:

Adicione as linhas abaixo antes das duas últimas linhas do arquivo, conforme segue, lembrando de alterar a porta para a que desejar, nesse caso 12345:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 12345 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 12345 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Reinicie o serviço:

# service iptables restart

Agora basta copiar os arquivos através dos comandos abaixo, primeiro no servidor que irá receber os dados, nesse caso o XenServer:

# nc -l 12345 | tar -xvf -

No segundo servidor, que irá enviar os dados, lembrando de alterar para a porta que configurou no iptables acima:

# tar -cf - dados | nc ip.do.servidor.destino 12345

Pronto! Os dados serão copiados para o XenServer! Em questão de performance, comparando com o scp o tempo foi 1/3 menor para copiar um arquivo de 1Gb!

Abraço!

Fonte: http://marton-tech.blogspot.com/2010/03/problem-1-network-speed.html

Categories: Linux Tags: , ,

Zimbra: Recuperando MySQL corrompido

10, fevereiro, 2011 Sem comentários

Opa,

Recentemente tive um problema grave com o servidor de colaboração Zimbra, todo o tráfego de e-mail estava parado e, após uma busca nos logs, descobri que o problema estava no banco de dados MySQL que estava com algumas tabelas corrompidas, segue abaixo os passos que foram necessários para fazer um dump de todas as tabelas relacionadas, limpeza da base e importação dos dados.

OBS.: Mantenha sempre um backup, essa opção pode não funcionar em alguns casos! Não me responsabilizo pelo que pode ocorrer ao seu banco, realize esses passos por sua conta e risco!

Primeiro pare os serviços do Zimbra:

[zimbra@meuservidoremail ~]$ zmcontrol stop

Adicione a variável abaixo no arquivo de configuração do banco MySQL dentro da sessão [mysqld]:

[zimbra@meuservidoremail ~]$ vim /opt/zimbra/conf/my.cnf

innodb_force_recovery = 1

Inicie o serviço do MySQL:

[zimbra@meuservidoremail ~]$ mysql.server start

Carregue as variáveis do Zimbra:

[zimbra@meuservidoremail ~]$ source ~/bin/zmshutil ; zmsetvars

Crie uma lista dos bancos de dados existentes:

[zimbra@meuservidoremail ~]$ mysql –batch –skip-column-names -e “show databases” | grep -e mbox -e zimbra > /tmp/mysql.db.list

Crie um diretório na pasta tmp para armazenar os dumps dos bancos:

[zimbra@meuservidoremail ~]$ mkdir /tmp/mysql.sql

Faça o dump dos bancos:

[zimbra@meuservidoremail ~]$ for db in $(cat /tmp/mysql.db.list); do
~/mysql/bin/mysqldump $db -S $mysql_socket -u root –password=$mysql_root_password > /tmp/mysql.sql/$db.sql
echo “Dumped $db”
done

OBS1.: Se forem apresentados erros na execução dos dumps dos bancos, incremente o valor da variável innodb_force_recovery (o valor máximo é 6), reinicie o banco e execute o comando novamente até não obter erros.

OBS2.: Caso tenha problemas em executar os dumps acesse esse link para resetar a senha do banco MySQL.

Remova todos os bancos existentes e possivelmente corrompidos:

[zimbra@meuservidoremail ~]$ for db in $(cat /tmp/mysql.db.list |grep mbox)
do
mysql -u root –password=$mysql_root_password -e “drop database $db”
echo -e “Dropped $db”
done

[zimbra@meuservidoremail ~]$ mysql -u root –password=$mysql_root_password -e “drop database zimbra”

Remova a váriavel innodb_force_recovery do arquivo de configuração do banco MySQL e reinicie o serviço:

[zimbra@meuservidoremail ~]$ vim /opt/zimbra/conf/my.cnf
[zimbra@meuservidoremail ~]$ mysql.server restart

Crie os bancos e importe os dumps:

[zimbra@meuservidoremail ~]$ for db in $(cat /tmp/mysql.db.list)
do
mysql -e “create database $db character set utf8”
echo “Created $db”
done

[zimbra@meuservidoremail ~]$ mysql zimbra < /tmp/mysql.sql/zimbra.sql

[zimbra@meuservidoremail ~]$ for sql in /tmp/mysql.sql/mbox*
do
mysql $(basename $sql .sql) < $sql
echo -e “Updated $(basename $sql .sql) \n”
done

Teste o acesso ao banco e inicie os serviços do Zimbra:

[zimbra@meuservidoremail ~]$ mysql zimbra -e “select * from mailbox order by id desc limit 1”
[zimbra@meuservidoremail ~]$ zmcontrol start

Pronto! Verifique nos logs se os erros continuam e lembre-se de executar backup’s!

Abraço!

Fonte: http://wiki.zimbra.com/index.php?title=Mysql_Crash_Recovery

Categories: Linux Tags: , ,

Logando remotamente no seu Desktop

8, fevereiro, 2011 Sem comentários

Opa,

Recentemente precisei logar no meu Desktop do trabalho remotamente, mas não tinha configurado/ativado nenhum serviço do tipo, após uma breve busca na Internet encontrei o que estava precisando. Esses passos foram utilizados no Ubuntu, mas acredito que funcionem em outras distros sem problemas.

Primeiro foi necessário instalar o software x11vnc no meu Desktop do trabalho, que fez a “mágica” de exibir o meu gerenciador de login (GDM):

# sudo apt-get install x11vnc

Depois iniciei o programa:

# sudo x11vnc -ncache 10 -display :0 -q

Pronto! Com isso já foi possível acessar via VNC na porta 5900 o gerenciador de login!

OBS.: No link da fonte pode-se criar um túnel entre o computador local e remoto via SSH!

Abraço!

Fonte: http://ubuntuforums.org/showthread.php?t=1544847&page=1

Categories: Linux Tags: , ,

Ubuntu enviando ID de conta para multifuncional Kyocera

30, dezembro, 2010 7 comentários

Opa,

Recentemente me deparei com um problema que estava me incomodando bastante no Ubuntu 10.04, imprimir na nova impressora da empresa, uma multifuncional KM-2820 da Kyocera. O primeiro problema eram os drivers que não existiam no meu Desktop, solucionado fazendo uma busca no CD de instalação que veio junto com a multifuncional. Já o segundo problema me deixou irritado por algum tempo, como enviar o ID de conta, já que a impressora foi configurada para imprimir somente com um ID de conta válido? A solução foi simples, mas acredito que em novo driver deverão corrigir isso, vamos aos passos:

Primeiro, antes de instalar a impressora com o driver do CD, copie o driver para o seu Desktop e abra-o no seu editor de texto preferido, procure pelas linhas abaixo e altere para o número do seu ID de conta, é eu sei que no Windows o ID de conta é solicitado durante a impressão, mas como não consegui ativar essa opção com o driver fornecido pelo fabricante, tive que defini-lo diretamente no arquivo PPD, isso pode ser um problema em uma máquina que seja utilizada por várias pessoas, mas não foi o meu caso.

# vim Kyocera_KM-2820.PPD

*% Management Code Definitions
*OpenUI *KmManagment/Controle de trabalho: PickOne
*OrderDependency: 60 AnySetup *KmManagment
*DefaultKmManagment: Default
*KmManagment Default/Desactivado: ""
*KmManagment MG00000000/00000000: "(00000000) statusdict /setmanagementnumber get exec"

Na linha KmManagment MG00000000/00000000: “(00000000) statusdict /setmanagementnumber get exec” altere os valores 00000000 para o número do seu ID de conta, ex.: KmManagment MG123456/123456: “(123456) statusdict /setmanagementnumber get exec”, salve o arquivo e instale a impressora utilizando esse arquivo PPD.

Atualização: Abra o gerenciador de impressão do Ubuntu, clique com o botão direito na impressora e escolha Propriedades, depois “Opções da impressora”, vá até a opção “Controle de trabalho” e escolha o seu ID.

Pronto! Quando for imprimir já será enviado o número do seu ID de conta!

OBS.: Nesse link de um fórum italiano foi criado um script para solicitar o ID de conta do usuário, mas não cheguei a testar!

Abraço!

Categories: Linux Tags: , , ,

Milestone atualizado com o ShadowMOD-BR via Ubuntu

26, novembro, 2010 49 comentários

Opa,

Só criei esse post para informar que finalmente criei coragem e atualizei meu Motorola Milestone para a versão 2.2.1 do Android (Froyo). Utilizei a versão do ShadowMOD-BR e a instalação e utilização, até agora, não apresentou nenhum problema, como a maioria das instalações informou como fazer utilizando o Windows eu vou mudar um pouco e falar como atualizar utilizando o Ubuntu Linux (OBS.: algumas pessoas não conseguiram executar o sbf_flash na versão 64bits).

OBS.: NÃO ME RESPONSABILIZO POR QUAISQUER DANOS QUE POSSAM OCORRER NO SEU APARELHO! NO MEU E EM VÁRIOS OUTROS FUNCIONARAM COM SUCESSO, MAS NÃO GARANTO QUE ESSES PASSOS IRÃO SERVIR PARA O SEU CASO!

Primeiro acesse o site do ShadowMOD-BR e baixe os pacotes:

– SBF base 2.2.1;
OpenRecovery 1.46;
Ultima ShadowMOD-BR disponível;

Depois baixe o aplicativo sbf_flash, consegui encontrá-lo aqui.

Agora vamos aos passos para a instalação (a maioria delas está no site do desenvolvedor, só adaptei algumas linhas referentes a instalação no Ubuntu Linux):

1. Descompacte o OpenRecovery e copie o update.zip e o diretório OpenRecovery para o diretório raiz do seu SD Card.

2. Copie o arquivo zip da ShadowMOD-BR para o diretorio /OpenRecovery/updates.

3. Desligue seu telefone.

4. Aperte e segure o botão de abaixar volume e câmera e ligue o telefone. Continue segurando o botão de abaixar volume/câmera mesmo apos ligado.

5. Irá aparecer uma tela escrito BootLoader (xx.xx), se não aparecer repita o passo anterior.

6. Conecte seu cabo USB no telefone, o Linux já deverá reconhecê-lo e mostrar os dados da conexão pelo comando dmesg, algo como:

scsi 6:0:0:0: Direct-Access     Motorola A853             0001 PQ: 0 ANSI: 2

7. Agora execute o aplicativo sbf_flash (lembre-se de dar permissão de execução ao mesmo):

$ chmod +x sbf_flash
$ sudo ./sbf_flash MILESTONE_BASE_2.2.1.sbf

[sudo] password for fl0cker:
SBF FLASH 1.11 (mbm)

=== MILESTONE_BASE_2.2.1.sbf ===
00: RDL03 0x82000000-0x8204CFFF 00C1 AP
01: CG31 0xB01C0000-0xB01C47FF 24FE AP
02: CG33 0xD13FB000-0xD1BB783F E479 AP
03: CG34 0xB03A0000-0xB03A47FF CC19 AP
04: CG35 0xB07A0000-0xB0A607FF 888E AP
05: CG36 0xF0B7D000-0xF0BE083F 26E7 AP
06: CG37 0xE4034000-0xE40379BF 9325 AP
07: CG40 0xDD2E4000-0xDD2E483F FDFF AP
08: CG42 0xB06A0000-0xB06DFFFF 73E3 AP
09: CG45 0xB0B20000-0xB0E207FF 79ED AP
10: CG47 0xB0EE0000-0xB12A07FF 679E AP
11: CG53 0xCFD80000-0xCFD807FF FDFF AP
12: CG61 0xB0640000-0xB06607FF 6C74 AP

Milestone found.
>> uploading RDL03
Uploading: 100% OK
>> verifying ramloader
-- OK
>> executing ramloader
Milestone found.
>> sending erase
>> uploading CG31
Uploading: 100% OK
>> uploading CG33
Uploading: 100% OK
>> uploading CG34
Uploading: 100% OK
>> uploading CG35
Uploading: 100% OK
>> uploading CG36
Uploading: 100% OK
>> uploading CG37
Uploading: 100% OK
>> uploading CG40
Uploading: 100% OK
>> uploading CG42
Uploading: 100% OK
>> uploading CG45
Uploading: 100% OK
>> uploading CG47
Uploading: 100% OK
>> uploading CG53
Uploading: 100% OK
>> uploading CG61
Uploading: 100% OK
>> verifying CG31
-- OK
>> verifying CG33
-- OK
>> verifying CG34
-- OK
>> verifying CG35
-- OK
>> verifying CG36
-- OK
>> verifying CG37
-- OK
>> verifying CG40
-- OK
>> verifying CG42
-- OK
>> verifying CG45
-- OK
>> verifying CG47
-- OK
>> verifying CG53
-- OK
>> verifying CG61
-- OK
>> rebooting

8. Quando terminar o procedimento o telefone ira reiniciar (apagando e acendendo ou travado no logo da Motorola).

9. Desligue o telefone novamente.

10. Entre em modo de recovery apertando e segurando o botão X do teclado (em alguns modelos de Milestone, o meu foi assim, é o botão da câmera ao invés do X) e ligue-o telefone. Continue segurando o botão X ou câmera mesmo após ligado.

11. Irá aparecer um triangulo com uma exclamação, nesse momento aperte o botão de aumentar volume e da câmera (juntos).

12. Irá aparecer um menu com algumas opções. Usando o D-pad do teclado, selecione a opção “apply sdcard:update.zip”.

13. Selecione “Wipe Data/Factory Reset” e escolha “Yes”.

14. Selecione “Apply Update”.

15. Selecione “update-smbr-vX.X-signed.zip”.

16. Irá ser pedido uma confirmção se quer instalar, selecione “Yes”.

17. Terminado a instalação selecione “Go Back” e escolha “Reboot System”.

Pronto! Seu telefone já irá iniciar na versão 2.2.1 do Froyo! Abaixo alguns screenshots:

Abraço!

Fontes:
http://code.google.com/p/shadowmodbr/wiki/Tutorial
http://www.lucasleao.net/wordpress/archives/458

Categories: Linux Tags: , , , ,

Liberando Servidor NFS no Firewall do XenServer

18, novembro, 2010 Sem comentários

Opa,

Recentemente precisei adicionar mais dispositivos de armazenamento do que o limite permitido pelo XenServer em uma VM (7 para PV e 3 para HVM), portanto resolvi instalar o dispositivo no XenServer e compartilhá-lo via NFS com as VM’s, segue abaixo como foi realizada essa tarefa.

Primeiro foi necessário definir as portas por onde o tráfego NFS iria passar, pois será preciso liberá-las no Firewall, para isso edite o arquivo abaixo:

# vi /etc/sysconfig/nfs

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

No XenServer o serviço portmap vem configurado para “escutar” somente localmente por padrão, será necessário alterar a variável PMAP_ARGS para que fique da mesma forma abaixo:

# vi /etc/sysconfig/portmap

PMAP_ARGS=""

Adicione os compartilhamentos desejados no arquivo exports (Lembre-se de adaptar para a sua faixa de rede):

# vi /etc/exports

/mnt/backup    192.168.100.0/24(rw,sync,no_subtree_check)

Reinicie os serviços:

# /etc/init.d/portmap restart
# /etc/init.d/nfs restart
# /etc/init.d/rpcsvcgssd restart

Atualize o arquivo com as regras do Iptables para o tráfego NFS (Lembre-se de adaptar para a sua faixa de rede):

# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24  -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24  -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24  -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24  -m state --state NEW -p udp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24  -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24  -m state --state NEW -p udp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24  -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT

Reinicie o serviço do Iptables e pronto!

# /etc/init.d/iptables restart

Agora já pode acessar os compartilhamentos via NFS!

Abraço!

Fontes:
1 – http://www.cyberciti.biz/faq/centos-fedora-rhel-iptables-open-nfs-server-ports/
2 – http://forums.citrix.com/thread.jspa?messageID=1511031

Categories: Linux Tags: , , , , ,

Combatendo SPAM com o Postgrey

3, novembro, 2010 Sem comentários

Opa,

Ultimamente notei no servidor de e-mail que o número de mensagens SPAM não paravam de crescer, resolvi então procurar uma solução de greylist (“espera”) para adicionar ao Postfix. Depois da implantação desse recurso obtive uma redução de cerca de 40% no número de SPAM recebido pelo servidor, seguem abaixo os passos utilizados em um OpenSuSE 10.3.

OBS.: Vale lembrar que após a ativação desse recurso as mensagens deverão sofrer um atraso na entrega, portanto use por sua conta e risco!

Instale o postgrey com o comando abaixo:

# zypper install postgrey

Ajuste o número em segundos da “espera” e coloque o serviço para executar no modo TCP:

# vim /etc/sysconfig/postgrey

POSTGREY_CONN_OPTIONS="--inet=127.0.0.1:60000"
POSTGREY_EXTRA_OPTIONS="--auto-whitelist-clients --delay=120"

Inicie o serviço:

# /etc/init.d/postgrey start

Edite o arquivo main.cf do Postfix para que o serviço seja utilizado, ajustando a variável smtpd_recipient_restrictions:

# vim /etc/postfix/main.cf

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access hash:/etc/postfix/client_access, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client dnsbl.sorbs.net, reject_rbl_client bl.spamcop.net, reject_rbl_client combined.rbl.msrbl.net, permit

Pronto, agora basta salvar o arquivo e reiniciar o serviço para que a “espera” comece a funcionar:

# /etc/init.d/postfix restart

Não esqueça de ativar o serviço do postgrey na inicialização do sistema:

# chkconfig postgrey on

Abraço!

Fonte: http://www.howtoforge.net/spam-control-for-postfix

Categories: Linux Tags: , , , ,

Configurando bonding de rede no Oracle Linux

7, outubro, 2010 Sem comentários

Opa,

Essa dica foi testada no Oracle Enterprise Linux 5.5 mas deve funcionar normalmente em qualquer outra distribuição que tenha suporte ao módulo bonding habilitado no kernel, seguem abaixo os passos que realizei para a configuração de 4 placas de rede trabalharem como “uma”, utilizando balanceamento de carga (load balance) e tolerância a falhas (fault tolerance).

Primeiro vamos criar o arquivo de configuração da interface bond0:

# vim /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.100.0
NETMASK=255.255.255.0
IPADDR=192.168.100.2
GATEWAY=192.168.100.1
USERCTL=no

Agora alteramos os arquivos de configuração das interfaces de rede para se tornarem parte da interface bond0 (mude o X pelo número das interfaces, ex.: eth0, eth1, eth2 e eth3):

# vim /etc/sysconfig/network-scripts/ifcfg-ethX

DEVICE=ethX
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

Precisamos garantir agora que o módulo bonding será carregado na inicialização do sistema e o modo de operação do bonding (escolha o modo que melhor se adeque a sua situação, para maiores informações sobre os tipos disponíveis acesse o link 2 nas fontes disponíveis ao final desse post):

# vim /etc/modprobe.conf

alias bond0 bonding
options bond0 miimon=100 mode=6

Agora só nos resta carregar o módulo e reiniciar a rede:

# modprobe bonding
# /etc/init.d/network restart

Uma dica para realizar um teste simples é inserir os cabos de rede nas interfaces, enviar um ping para algum endereço e simular uma falha removendo um de cada vez.

Abraço!

Fontes:
1 – http://lists.us.dell.com/pipermail/oraclesolutions/2008-March/000005.html
2 – http://www.sheepguardingllama.com/2008/01/linux-bonding-modes/
3 – http://www.howtoforge.com/nic-bonding-on-debian-lenny

Categories: Linux Tags: , , ,