====== LoadBalancing avec KeepAlived LVS ====== {{:logo-30.gif|}} ===== Server Applicatifs ( Apache / FTP ) ===== ==== Configuration kernel nécessaire pour le mode de loadbalancing des serveurs LVS ==== # vi /etc/sysctl.conf # Useful for LVS loadbalancing on the same network net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2 net.ipv4.conf.eth0.arp_ignore=1 net.ipv4.conf.eth0.arp_announce=2 ==== Configuration d'un tunnel IPIP pour la VIP (géré par les serveurs LVS) ==== * Debian # vi /etc/network/interfaces auto tunl0 iface tunl0 inet static address 192.168.1.99 (<<< nouvelle vip créée) netmask 255.255.255.255 broascast 192.168.1.255 # ifup tunl0 * Red-Hat # vi /etc/sysconfig/network-scripts/ifcfg-tunl0 DEVICE=tunl0 IPADDR=192.168.1.99 NETMASK=255.255.255.255 BROADCAST=192.168.1.255 ONBOOT=yes TYPE=IPIP # ifup tunl0 # ifconfig tunl0 tunl0 Link encap:IPIP Tunnel HWaddr inet addr:192.168.1.99 Mask:255.255.255.255 UP RUNNING NOARP MTU:1480 Metric:1 RX packets:273 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:11328 (11.0 KiB) TX bytes:0 (0.0 b) ===== Serveur: LVS ===== ==== Configuration kernel ==== # vi /etc/sysctl.conf # for LVS tun net.ipv4.ip_forward=1 ==== Packages Nécessaire ==== # apt-get install keepalived ==== Configuration de la VIP VLZ ==== Ceci et le fichier de configuration du serveur LVS_1 (server MASTER) le serveur LVS_2 à le même fichier de configuration hormis "state MASTER" à changer par "state BACKUP" # cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { postmaster@your-domain } notification_email_from postmaster@your-domain smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_XXX } vrrp_sync_group VG1 { group { VI_1 } } vrrp_instance VI_1 { state MASTER interface eth0 garp_master_delay 10 smtp_alert virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.99 } } virtual_server 192.168.1.99 80 { delay_loop 6 lb_algo rr lb_kind TUN persistence_timeout 600 protocol TCP real_server 192.168.1.2 80 { weight 100 TCP_CHECK { connect_port 80 connect_timeout 3 } } real_server 192.168.1.3 80 { weight 100 TCP_CHECK { connect_port 80 connect_timeout 3 } } } ===== Commandes utile pour voir l'état des VIP ===== # ipvsadm -l IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.99:www rr persistent 600 -> 192.168.1.2:www Tunnel 100 0 0 -> 192.168.1.3:www Tunnel 100 0 0 # ipvsadm -Ln --stats IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:Port TCP 192.168.1.99:80 0 0 0 0 0 -> 192.168.1.2:80 0 0 0 0 0 -> 192.168.1.3:80 0 0 0 0 0