Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Comment Redis Cluster gère-t-il les pannes de nœuds


Comment Redis Cluster gère-t-il les pannes de nœuds


Voici comment Redis Cluster gère les pannes de nœuds :

Basculement automatique

Lorsqu'un nœud maître du cluster Redis échoue, le cluster promeut automatiquement l'un des nœuds de réplique de ce maître pour qu'il devienne le nouveau maître. Ce processus de basculement se produit automatiquement sans aucune intervention manuelle.

Les étapes clés du processus de basculement sont :

1. Les autres nœuds du cluster détectent que le nœud maître a échoué, soit via le protocole Gossip du cluster, soit en tentant de se connecter au nœud.

2. Le cluster procède ensuite à une élection parmi les nœuds de réplique pour ce maître. La réplique contenant les données les plus à jour est élue comme nouveau maître.

3. Le nœud de réplique élu est promu pour devenir le nouveau maître. Les autres répliques sont ensuite reconfigurées pour être répliquées à partir du nouveau maître.

4. Les clients sont redirigés vers le nouveau nœud maître à l'aide de la réponse d'erreur « MOVED », qui contient le nouveau mappage emplacement-nœud.

Couverture des emplacements

Pour rester disponible lors de pannes de nœuds, Redis Cluster nécessite que la majorité des nœuds maîtres soient disponibles et capables de communiquer. C'est ce qu'on appelle le maintien de la « couverture des créneaux horaires ».

Chaque nœud maître du cluster est responsable d'un sous-ensemble des 16 384 emplacements de hachage. Tant que la majorité des maîtres sont disponibles et peuvent servir les emplacements qui leur sont attribués, le cluster peut continuer à fonctionner.

Si trop de nœuds maîtres échouent de telle sorte que les maîtres restants ne peuvent pas couvrir toute la plage des emplacements de hachage, le cluster deviendra indisponible jusqu'à ce que les nœuds défaillants soient récupérés ou remplacés.

## Promotion de réplique

Redis Cluster s'appuie sur des nœuds de réplication pour fournir une haute disponibilité. Lorsqu'un maître tombe en panne, l'un de ses nœuds de réplique est automatiquement promu pour devenir le nouveau maître.

La réplique contenant les données les plus à jour est élue comme nouveau maître. Cela garantit que la cohérence des données est maintenue pendant le processus de basculement.

Gestion du cerveau divisé

Redis Cluster utilise une approche basée sur le quorum pour gérer les partitions réseau et éviter les scénarios de « cerveau divisé » dans lesquels le cluster est divisé en plusieurs clusters indépendants.

Si une majorité de maîtres deviennent indisponibles, les nœuds restants refuseront les demandes des clients jusqu'à ce que la partition soit résolue. Cela garantit que la cohérence des données est préservée.

En tirant parti de ces mécanismes de basculement automatique et basés sur le quorum, Redis Cluster est en mesure de fournir une haute disponibilité et une résilience face aux pannes de nœuds et aux partitions réseau.

Citations :
[1] https://yifan-online.com/en/km/article/detail/16750
[2] https://stackoverflow.com/questions/63878562/two-failure-support-in-3-node-redis-cluster
[3] https://redis.io/docs/latest/operate/oss_and_stack/management/scaling/
[4] https://redis.io/docs/latest/commands/cluster-nodes/
[5] https://github.com/lettuce-io/lettuce-core/issues/2318