Haute disponibilité et répartition de charge
Mesurer la disponibilité, chasser les points uniques de défaillance, choisir un RAID, faire tourner un cluster Proxmox, puis garder un service joignable avec une adresse virtuelle (keepalived) et répartir la charge (HAProxy).
L'essentiel
- Disponibilité = temps de fonctionnement ÷ temps total ; 99,9 % ≈ 8 h 46 min d'arrêt par an.
- Disponibilité = MTBF ÷ (MTBF + MTTR) : la haute disponibilité réduit surtout le MTTR.
- En série, les disponibilités se multiplient ; en parallèle, ce sont les indisponibilités.
- Un SPOF arrête tout à lui seul : on le double et on ajoute une bascule automatique et une alerte.
- RAID : 1 miroir, 5 parité (1 panne), 6 double parité (2 pannes), 10 miroirs en bandes ; 0 ne protège rien.
- Le RAID et la réplication ne sont pas des sauvegardes.
- Onduleur + arrêt propre (NUT) ; doubles alimentations sur deux circuits.
- Cluster Proxmox : quorum = majorité stricte, 3 nœuds (ou QDevice), HA manager redémarre la VM ailleurs.
- keepalived (VRRP) : une adresse virtuelle portée par le serveur vivant de plus haute priorité.
- HAProxy : frontend, backend,
balance(roundrobin, leastconn, source),checkretire les serveurs en panne.
À retenir
Doubler un équipement ne suffit pas : il faut aussi un mécanisme de bascule automatique (adresse virtuelle, répartiteur, cluster) et une surveillance qui prévient quand l'un des deux est tombé. Sinon, on découvre la panne du second… le jour où le premier lâche.
Piège classique
Le RAID n'est pas une sauvegarde : une suppression, un fichier corrompu ou un rançongiciel touchent tous les disques en même temps (B2-24). Et un RAID dégradé dont personne n'est averti n'apporte rien : il faut une alerte (courriel de mdadm, supervision) dès la première panne.
L'arrêt propre automatique
Un onduleur relié aux serveurs par USB ou par le réseau prévient de la coupure. Avec NUT (Network UPS Tools) sous Linux et Proxmox, les serveurs s'éteignent proprement quand la batterie passe sous un seuil, puis redémarrent au retour du courant. Sans cela, l'onduleur ne fait que retarder la coupure brutale.
La bonne architecture
Le répartiteur devient à son tour un point unique de défaillance ! En production, on installe deux HAProxy qui partagent une adresse virtuelle keepalived : keepalived assure la bascule du répartiteur, HAProxy répartit la charge entre les serveurs web. Les deux outils sont complémentaires.
Commandes clés
| Pour… | Commandes |
|---|---|
| RAID logiciel | mdadm --create /dev/md0 --level=1 --raid-devices=2 … · cat /proc/mdstat |
| Cluster Proxmox | pvecm create · pvecm add · pvecm status |
| Haute disponibilité d'une VM | ha-manager add vm:105 · qm migrate 105 pve2 --online |
| Adresse virtuelle | /etc/keepalived/keepalived.conf · journalctl -u keepalived · ip -br a |
| Répartiteur | /etc/haproxy/haproxy.cfg · haproxy -c -f … · systemctl reload haproxy |
| Tester la bascule | while true; do curl -s http://172.16.50.25; sleep 1; done |
| Calculer | dispo = MTBF ÷ (MTBF + MTTR) · série : produit · parallèle : 1 − produit des indispos |