LOADBALANCE DEBIAN LENNY. Para esta configuração estarei usando quatro maquinas com Debian lenny 5.04, das quais duas estarão com heartbeat e ldirectord, balanceando os servidores web com apache2. O heartbeat fara o cluster de alta disponibilidades entre os server loadb1 e loadb2, neste caso um como mestre e outro como escravo. Configurei também para failback on, isto que dizer, se o primeiro servidor loadb1 cair o segundo loadb2 assume como mestre, mas ao voltar o mestre ele toma o lugar novamente, fazendo com que o loadb2 fique novamente como escravo. O ldirectord sera usado para balancear os links para os servidores web1 e web2. Este daemon esta instalado nós dois servidores loadb1 e loadb2. Os servidores web estão apenas com ao apache2 configurado para DocumentRoot e, /var/www. Criamos um índex ldirector.html em ambos servidores web com o conteúdo foo isto fara com que o ldirectord faça um get da pagina comparando com a opção receive do arquivo ldirectord.cf, se tiver resposta o servidor estará em funcionamento podendo receber a requisição do cliente. Na figura abaixo temos um diagrama de nossa rede. O roteamento de pacotes deverá esta habilitado em ambos os balanceadores, isto é feito no arquivo /etc/sysctl.conf é comum executar o comando echo 1 > /proc/sys/net/ipv4/ip_forwardm, mais este comando não altera as configurações no arquivo então é necessário alterar manualmente. Adicione esta linha no arquivo, em algumas distribuições esta linha esta comentada. net.ipv4.ip_forward = 1 Execute o comando para validar as configurações. # sysctl -p
Esta configuração devera ser feita no laodb1 e loab2 # vi /etc/hosts 192.168.1.10 loadb1 192.168.1.11 loadb2 127.0.0.1 localhost 127.0.1.1 loadb1 Esta configuração devera ser feita no laodb1 e loab2 Loadb1 auto lo iface lo inet loopback address 192.168.1.10 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 172.16.1.10 up iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.1.0/24 down iptables -t nat -D POSTROUTING -j MASQUERADE -s 172.16.1.0/24 Loadb2 auto lo iface lo inet loopback address 192.168.1.11 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 172.16.1.11 up iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.1.0/24 down iptables -t nat -D POSTROUTING -j MASQUERADE -s 172.16.1.0/24
web1 address 172.16.1.12 gateway 172.16.1.240 web2 address 172.16.1.13 gateway 172.16.1.240 Esta configuração devera ser feita no web1 e web2 # apt-get install apache2 # apt-get install heartbeat-2 ldirectord-2 # vi /etc/ha.d/ha.cf logfacility local0 mcast eth0 225.0.0.1 694 1 0 mcast eth1 225.0.0.1 694 1 0 auto_failback on node loadb1 node loadb2 ping 192.168.1.240 ping 172.16.1.240 respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster # vi /etc/ha.d/haresources loadb1 \ LVSSyncDaemonSwap::master \ ldirectord::ldirectord.cf \ IPaddr2::192.168.1.240/24/eth0 \ IPaddr2::172.16.1.240/24/eth1
# vi /etc/ha.d/authkeys auth 2 2 sha1 cluster # chmod 600 /etc/ha.d/authkeys # vi /etc/ha.d/ldirectord.cf checktimeout=10 checkinterval=2 autoreload=no logfile="local0" quiescent=yes virtual=192.168.1.240:80 fallback=127.0.0.1:80 real=172.16.1.12:80 masq real=172.16.1.13:80 masq service=http request="ldirector.html" receive="foo" scheduler=rr #persistent=600 protocol=tcp checktype=negotiate Reiniciando os serviços. No loadb1 rode os comandos abaixo; # update-rc -f ldirectord remove # /etc/init.d/ldirectord stop # /etc/init.d/heartbeat restart No loadb2 rode os comandos abaixo; # update-rc -f ldirectord remove # /etc/init.d/ldirectord stop # /etc/init.d/heartbeat stop Testando os serviços No loadb1 execute o comando abaixo e veja se está funcionando. # watch -n 1 ipvsadm -L -n
No loadb2 o mesmo comando acima. # watch -n 1 ipvsadm -L -n Agora no Laodb1 de um stop no heartbeat, veja se o serviço é iniciado no loadb2. # /etc/init.d/heartbeat stop Comando Interessantes. # ip add sh # ip add sh eth0 # ldirectord ldirectord.cf status # ipvsadm -L -n # /etc/ha.d/resource.d/lvssyncdaemonswap master status Entre em contanto com o grupo Debian-df e adquira as maquinas virtuais usada no Treinamento (Tutorial).