Load balancing et clustering sous linux
[60 mn de lecture - paru le 4/27/2003 - Public : Confirmé]
|
   
|
Auteur
3. Linux Virtual Server (Implementation)
3.1. Scénario :
Identique à l’exemple de Round Robin
3.2. Topologie :
3.3. Configuration du load balancer : (merci à Laurent Coustet pour
son aide…)
Pour implenter LVS sur le load balancer, il faut que vous disposiez d’un
kernel au minimum 2.4.18 et appliquer le patch LVS.
Voici les étapes à faire pour réaliser cela :
En tant que root :
Télécharger les sources du kernel :
apt-get install kernel-source-2.4.18
Décompresser les :
cd /usr/src
tar xvjf kernel-source-2.4.18.tar.bz2
Télécharger le patch lvs :
apt-get install kernel-patch-2.4-ipvs
Appliquer le patch :
cd /usr/src/kernel-source-2.4.18
/usr/src/kernel-patches/all/apply/ipvs
Par la suite, compilé le noyau patché avec les options suivantes :
# support virtual server
CONFIG_IP_VS=y
# support debug
CONFIG_IP_VS_DEBUG=y
# masquerading VS table size
CONFIG_IP_VS_TAB_BITS=12
# support round robin scheduling
CONFIG_IP_VS_RR=y
# support weight round robin scheduling
CONFIG_IP_VS_WRR=y
# support least connexion scheduling
CONFIG_IP_VS_LC=y
# support weight least connexion scheduling
CONFIG_IP_VS_WLC=y
# support locality-based least connexion scheduling
CONFIG_IP_VS_LBLC=y
# support locality-based least connexion with replication scheduling
CONFIG_IP_VS_LBLCR=y
# support destination hashing scheduling
CONFIG_IP_VS_DH=y
# support source hashing scheduling
CONFIG_IP_VS_SH=y
# support FTP protocol helper
CONFIG_IP_VS_FTP=y
(ces options se trouvent dans: "Networking options")
Téléchargé l’utilitaire pour configurer LVS :
apt-get install ipvsadm
Et aussi le module webmin si vous l’utilisé : disponible en téléchargement
sur : http://www.thirdpartymodules.com/webmin/modules/lvs.wbm
Redémarrez votre serveur. Pour voir si l’option lvs est prise
en compte tapé :
dmesg | grep IPVS.
Vous devriez avoir une réponse
du genre :
IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
IPVS: Each connection entry needs 120 bytes at least
IPVS: ipvs loaded.
IPVS: [rr] scheduler registered.
IPVS: [wrr] scheduler registered.
IPVS: [lc] scheduler registered.
IPVS: [wlc] scheduler registered.
IPVS: [lblc] scheduler registered.
IPVS: [lblcr] scheduler registered.
IPVS: [dh] scheduler registered.
IPVS: [sh] scheduler registered.
Il ne vous reste plus qu’à configurer votre serveur avec les lignes de
commandes suivantes : Je vous conseille de les placer dans un script au démarrage
:
#!/bin/sh
#-----mini-HOWTO-setup-LVS-NAT-director----------
#set ip_forward ON for vs-nat director (1 on, 0 off).
cat /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_forward
#director is gw for realservers
#turn OFF icmp redirects (1 on, 0 off)
echo "0" > /proc/sys/net/ipv4/conf/all/send_redirects
cat /proc/sys/net/ipv4/conf/all/send_redirects
echo "0" > /proc/sys/net/ipv4/conf/default/send_redirects
cat /proc/sys/net/ipv4/conf/default/send_redirects
echo "0" > /proc/sys/net/ipv4/conf/eth0/send_redirects
cat /proc/sys/net/ipv4/conf/eth0/send_redirects
#setup VIP
/sbin/ifconfig eth0:110 192.168.2.110 broadcast 192.168.2.255 netmask 255.255.255.0
#set default gateway
/sbin/route add default gw 192.168.2.254 netmask 0.0.0.0 metric 1
#clear ipvsadm tables
/sbin/ipvsadm -C
#install LVS services with ipvsadm
#add telnet to VIP with rr sheduling
/sbin/ipvsadm -A -t 192.168.2.110:telnet -s rr
#first realserver
#forward telnet to realserver 192.168.1.11 using LVS-NAT (-m), with weight=1
/sbin/ipvsadm -a -t 192.168.2.110:telnet -r 192.168.1.11:telnet -m -w 1
#check that realserver is reachable from director
ping -c 1 192.168.1.11
#second realserver
#forward telnet to realserver 192.168.1.12 using LVS-NAT (-m), with weight=1
/sbin/ipvsadm -a -t 192.168.2.110:telnet -r 192.168.1.12:telnet -m -w 1
#checking if realserver is reachable from director
ping -c 1 192.168.1.12
#list ipvsadm table
/sbin/ipvsadm
#------mini-HOWTO-setup-LVS-NAT-director----------
3.4. Test
Testez sur un client, vous devriez avoir une fois le serveur reel 1 et apres
le serveur reel 2 (pour le moment n’implantez pas le serveur NFS pour
voir que cela est différent)
Sur le load balancer, utilisez l’outil ipvsadm pour voir l’évolution
de votre parc de clustering web.
|