Comme vous le savez depuis quelqes années le maitre mots est disponibilité , H24. En gros même le site qui vends 2 paires de shoes dans le mois, veut de la haute dispo.
Donc il nous faut mettre en place des solutions afin de garantir ce niveau de disponibilié.
Dans cette première partie nous mettrons en place un système de LoadBalancing classique.
Pré-requis :
- - Trois machines (VM)
- - Deux Web
- - Un Director
Configuration IP
- /*
- web-01
- eth0 : 192.168.56.102
- web-02
- eth0 : 192.168.56.103
- Lvs-Master ou director
- eth0 : 10.10.10.x
- eth0:1 10.10.10.50
- eth1 : 192.168.56.101 #Interface connecte au RIP (real ip)
- */
On commence par installer ipvsadm sur le master
- /*
- apt-get install ipvsadm
- */
Voir si le module est bien activé
- /*
- lsmod |grep ip_vs
- ip_vs_rr 1664 1
- ip_vs 63520 3
- */
En cas d'absence du module
- /*
- modprobe ip_vs
- modprobe ip_vs_rr #Comme on le voit ici on charge le module pour le rr (round robin) .
- */
Comme on le voit nous avons chargé " ip_vs_rr" qui permet d'utiliser le mode de répartition en round robin. Maintenant si on souhaite charger un autre de répartition.
- /*
- ipvs-master:~# modinfo ip_vs
- filename: /lib/modules/2.6.26-2-686/kernel/net/ipv4/ipvs/ip_vs.ko
- license: GPL
- depends:
- vermagic: 2.6.26-2-686 SMP mod_unload modversions 686
- ipvs-master:~# ls -l /lib/modules/2.6.26-2-686/kernel/net/ipv4/ipvs/
- total 160
- -rw-r--r-- 1 root root 4113 jan 27 06:51 ip_vs_dh.ko
- -rw-r--r-- 1 root root 7927 jan 27 06:51 ip_vs_ftp.ko
- -rw-r--r-- 1 root root 84435 jan 27 06:51 ip_vs.ko
- -rw-r--r-- 1 root root 7644 jan 27 06:51 ip_vs_lblc.ko
- -rw-r--r-- 1 root root 8605 jan 27 06:51 ip_vs_lblcr.ko
- -rw-r--r-- 1 root root 3423 jan 27 06:51 ip_vs_lc.ko
- -rw-r--r-- 1 root root 3455 jan 27 06:51 ip_vs_nq.ko
- -rw-r--r-- 1 root root 3523 jan 27 06:51 ip_vs_rr.ko
- -rw-r--r-- 1 root root 3512 jan 27 06:51 ip_vs_sed.ko
- -rw-r--r-- 1 root root 4113 jan 27 06:51 ip_vs_sh.ko
- -rw-r--r-- 1 root root 3512 jan 27 06:51 ip_vs_wlc.ko
- -rw-r--r-- 1 root root 4763 jan 27 06:51 ip_vs_wrr.ko
- */
Vous avez maintenant la liste des types de répartition de charge qui existe. A vous de choisir celui qui correspond à vos besoins
On mets en place la configuration
- /*
- ipvsadm -A -t 10.10.10.50:80 -s rr ou wrr
- ipvsadm -a -t 10.10.10.50:80 -r 192.168.56.102:80 -m -w 1
- ipvsadm -a -t 10.10.10.50:80 -r 192.168.56.103:80 -m -w 1
- */
- -A Ajout d'un service
- -t Correspond au service de type TCP
- -u Correspond au service de type UDP
- -m Permet le NAT
- -s Type de répartition de charge
- -w Il s'agit du point dans le cas du type de répartition rr (round robin) cela n'est pas vraiment utile
- /*
- ipvsadm -Ln
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 10.10.10.50:80 rr
- -> 192.168.56.102:80 Masq 1 0 2
- -> 192.168.56.103:80 Masq 1 0 1
- */
Maintenant il nous mettre en place la redirection d'ip , le paramètres se nomme IP_forward
- /*
- vim /etc/sysctl.conf
- net.ipv4.ip_forward=1 # Il faut que ca paramètres soit à 1
- sysctl -p # Pour que la modification soit prise en compte.
- */
Sur web-01 et web-02 on ajoute les routes par défaut
- /*
- route add default gw 192.168.56.101
- */
La méthode d'ajout du dessus est correct mais en cas de reboot , il faut la rajouter à nouveau donc nous allons la mettre en dur dans notre configuration.
- /*
- vim /etc/network/interfaces
- up route add default gw 192.168.56.101
- down route del default gw 192.168.56.101
- */
Mais ca veut dire quoi ?
- /*
- ipvs-master:~# ipvsadm -Ln
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 10.10.10.50:80 rr
- -> 192.168.56.103:80 Masq 1 2 6137
- -> 192.168.56.102:80 Masq 1 3 6137
- */
- - ActiveConn : Est le nombre de connexions qui sont en cours ou actives sur les RIP (Real IP = Serveur réel)
- - InActConn : Donne le nombre de connexions autres que etablished
- - Forward : Dans notre cas il y a du NAT
- - Weight : Il s'agit du poids du fait que nous sommes en rr le poids est de 1
Vous pouvez vérifier que le LoadBalancing fonctionne correctement en vous connectant intérrogeant directement la VIP .
Quelques commandes utiles
- /*
- ipvsadm-save > /fichier/sauvegarde # Sauvegarde de votre configuration
- ipvsadm-restore < /fichier/sauvegarde # Restauration de votre sauvegarde
- ipvsadm -L # Liste les informations du LVS
- */
Comme on peut le voir ici nous n'avons pas mis de solution de haute-dispo mais juste du Load-Balancing classique. Dans la prochaine étape nous aborderons ce principe. Wii nous sommes qu'à la première partie