Raft (algorithme de consensus)
Raft est un algorithme de consensus distribué : il permet à un groupe de serveurs de s’accorder sur un état unique (qui est le leader, quelle donnée est validée) même quand certains d’entre eux tombent en panne ou deviennent injoignables. Consul et etcd (le magasin de données du plan de contrôle Kubernetes) s’appuient tous deux sur Raft.
Le principe du quorum
Toute décision (élire un leader, valider une écriture) exige l’accord d’une majorité stricte des serveurs, pas de la totalité. Avec 5 serveurs, il faut 3 voix ; le cluster continue de fonctionner même si 2 serveurs sont indisponibles. Cette majorité garantit qu’il ne peut jamais exister deux décisions contradictoires acceptées simultanément par deux sous- groupes différents.
Pourquoi un nombre impair de serveurs
Avec un nombre pair de serveurs, une panne réseau qui coupe le cluster en deux moitiés égales laisse chaque moitié sans majorité claire : plus personne ne peut décider. Un nombre impair élimine ce cas précis : 4 serveurs n’offrent aucune tolérance de panne supplémentaire par rapport à 3, tout en doublant le risque de blocage par partition à 50/50. C’est pourquoi la documentation Consul comme celle d’etcd recommandent systématiquement 3 ou 5 serveurs, jamais un nombre pair.