Cours 10
Cours 10
Cours 10
charge
Dr. Yahia Benmoussa
yahia.benmoussa@gmail.com
Plan
●
Équilibrage de charge
– Niveau 4
– Niveau 7
●
Haute disponibilité
●
Implémentation sous Linux
Équilibrage de charge
●
L'équilibrage de charge (load balancing) est un élément important
lors de la mise en place de services amené à croître.
●
Objectifs :
– Assurer que la capacité à monter en charge soit la plus
optimale possible
– Éviter toute dégradation que ce soit en terme de performances
●
Le principe de base de l'équilibrage de charge
– Une distribution des tâches à des machines de façon
intelligente en fonction de l'état d'occupation des serveurs.
– La distribution doit être transparente à l’utilisateur (Client)
Équilibrage de charge
●
Niveau d’équilibrage de charge
– Niveau 4 (couche transport)
– Niveau 7 (couche transport)
Équilibrage de charge
Application
Présentation
Session
Transport
Réseau
Liaison
Physique
Haute disponibilité
●
Haute disponibilité → High availability
●
Ensemble des moyens mis en œuvre dans le but de
garantir la disponibilité d'un service.
●
Objectifs :
– Prévenir toutes les pannes informatiques qui peuvent
provoquer une perte de productivité et par conséquent
une perte d'argent.
Haute disponibilité
●
Tau de disponibilité = temps de disponibilité/temps total
●
Exemple : tau de disponibilité sur une année :
– 97% → 11 jours
– 98% → 7 jours
– 99% → 3 jours et 15 heures
– 99,9% → 8 heures et 48 minutes
– 99,99% → 53 minutes
– 99,999% → 5 minutes
– 99,9999% → 32 secondes
Équilibrage de charge sous Linux
●
LVS : Linux Virtual Server : est une solution avancée de
répartition de charge pour GNU/Linux.
●
LVS est implémenté au niveau du noyau
●
La mission du projet LVS est de construire un serveur de
haute performance pour Linux.
LVS
●
Clients : Ordinateurs qui demandent un service au LVS
●
Directeur : Une machine tournant avec un noyau Linux qui
se charge de distribuer les requête.
– Le directeur dispose d’une adresse IP virtuelle
●
Serveur(s) réel(s) : ce sont ces machines qui offrent le
service.
– Les serveurs réels disposent d’adresses IP réelles.
Équilibrage de charge sous Linux
●
Trois façon de réaliser l’équilibrage de charge sous Linux :
– Network Address Translation (LVS-NAT)
– IP Tunneling (LVS-TUN)
– Direct Routing (LVS-DR)
LVS-NAT
●
LVS-NAT
– Équilibrage de charge en utilisant la translation
d’adresse destination
– Exemple :
LVS-NAT
LVS-NAT
●
Avantages :
– Utilisation d’adresses Privées
●
Incinvénients :
– Nécessite beaucoup de traitement
LVS-TUN
●
LVS-TUN
– Équilibrage de charge en utilisant des tunnels
●
Protocole IP Tunneling
– Protocole de la couche réseau
– Encapsule un protocole quelconque dans son payload
●
Ex. IP.
LVS-TUN
LVS-TUN
LVS-TUN
●
Avantage
– Nécessite moins de traitement (que LVS-NAT)
– Les serveur physique peuvent être dans Internet
●
Inconvénient
– Les serveur physique doivent supporter le protocole IP
Tunneling
LVS-DR
●
LVS-DR : Équilibrage de charge par modification de la
table ARP
LVS-DR
LV-NAT vs LV-TUN vs LVS-DR
●
Round-Robin Scheduling (-s rr)
●
Weighted Round-Robin Scheduling (-s wrr)
●
Least-Connection Scheduling (-s lc)
●
Locality-Based Least-Connection Scheduling (-s lblc)
●
Shortest Expected Delay Scheduling (-s sed)
●
Never Queue Scheduling (-s nq)
ipvsadm
●
ipvsadm : outil pour gérer LVS dans Linux
●
Options
– -A → ajouter un service virtuel
– -D → supprimer un service virtuel
– -t → service TCP
– -u → service UDP
– -s → sélection de l’algorithme d’ordonnancement.
– -m → LVS-NAT
– -i → LVS-TUN
– -g → LVS-DR
ipvsadm
●
ipvsadm -A -t 207.175.44.110:80 -s rr
●
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.1:80 -m
●
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.2:80 -m
●
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.3:80 -m
●
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.4:80 -m
●
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.5:80 -m
Équilibrage de charge niveau 7
●
Le directeur accède au contenu de la couche 7 (Ex. HTTP)
●
La décision d’ordonnancement est fonction du contenu de
la couche 7
Équilibrage de charge niveau 7
Équilibrage de charge niveau 7
●
Compte rendu de 10 page sur HAProxy
Haute disponibilité sous Linux
●
Heartbeat (Battements de cœur)
Battement de cœurs
Serveur
Serveur11 Serveur 2
@ physique @ physique
@ virtuelle flottante
heartbeat
●
Installation : sudo apt-get install heartbeat
heartbeat
●
Fichier de configuration : /etc/ha.cf
logfile /var/log/ha-log
keepalive 2
deadtime 10
bcast eth0
node nom_serveur1 nom_serveur2
auto_failback no
Références
●
http://www.austintek.com/LVS/LVS-HOWTO/mini-HOWTO/
LVS-mini-HOWTO-fr.html
●
http://www.linuxvirtualserver.org/docs/scheduling.html
●
https://en.wikipedia.org/wiki/IP_tunnel
●