Le basculement (failover en anglais) est un mécanisme permettant à un élément actif de basculer vers un élément alternatif en cas de non réponse du primaire.
Dans ce billet, je présente un script que j'ai écris, mettant en oeuvre les 2 mécanismes; load balancing et failover.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKQztegTevYs3iNv7A4mO6x4Bd9EZDiuyRnpVAMuxRTphQo3Q9D0g_DwjNT6swnfvFefXLYiQE3w45rU6b1z9HeTN0RaVfmvILe1Fla8TAVb9YvnICVxLxiVpPoznxw9d5Xhk7tjjxtQ4r/s1600/lbfo.sh.png)
lbfo.sh: nom du script;
nodes.txt: liste des différentes IP de chaque nœud;
n.b: L'utilitaire fping doit être installé.
lbfo.sh
#!/bin/bash
#lbfo.sh
loadBalance() {
count=0
while read node
do
fping -qt1 -c1 $node &>/dev/null && count=$(($count+1)) && TEST[$count]=$node
done < ./nodes.txt
JETON=$(( RANDOM%$count + 1))
echo ${TEST[$JETON]}
}
loadBalance
nodes.txt
192.168.5.1192.168.5.3
192.168.5.4
Pour des raisons de latences, le test d'un nœud est positif si son temps de réponse < 1ms en une seule requête.
Temps d'exécution:
Pour 3 noeuds dont 1 non actif: real 0m0.042s
Pour 254 noeuds dont 76 non actifs: real 0m3.264s
Aucun commentaire :
Enregistrer un commentaire