Récupération du cerveau divisé dans NCache pour 100 % de disponibilité

NCache est un cache distribué en mémoire extrêmement rapide et évolutif pour .NET / .NET Core. La majorité du temps, NCache s'exécute dans des environnements de production pour des applications critiques. Par conséquent, la haute disponibilité et 100 % de disponibilité est une exigence très importante pour NCache. Et, NCache excelle très bien dans ce domaine grâce à une variété de fonctionnalités.

L'une de ces fonctionnalités hautement disponibles est la détection et la récupération du cerveau divisé pour éviter tout temps d'arrêt.

Qu'est-ce qu'un Split Brain in Cache Cluster ?

NCache crée un cluster de cache dynamique à réparation automatique composé de plusieurs serveurs qui communiquent entre eux via TCP. Tous les serveurs de cache sont interconnectés dans le cluster et l'appartenance au cluster est maintenue au moment de l'exécution et propagée non seulement à tous les serveurs de cache mais également à tous les clients de cache.

Cependant, comme tout système distribué, NCache cluster peut être confronté à une situation dans laquelle un ou plusieurs serveurs de cache sont déconnectés du reste des serveurs du cluster, mais les deux ensembles de serveurs continuent de fonctionner. Cela se produit généralement en raison de problèmes ou de problèmes de réseau.

Lorsque cela se produit, chaque ensemble de serveurs de cache se considère comme les serveurs survivants du cluster de cache d'origine et suppose que l'autre ensemble de serveurs de cache est tombé en panne (d'où le terme cerveau divisé qui, en termes médicaux, signifie que le côté gauche du cerveau ne fonctionne pas. Je ne sais pas pour le côté droit du cerveau). Les clients de cache peuvent également être divisés de la même manière ou ils peuvent continuer à communiquer avec tous les serveurs de cache en fonction de l'appartenance au cluster d'origine.

Ce n'est évidemment pas une condition saine et normale et conduit à des erreurs dans opérations de cache et surtout aux problèmes d'intégrité des données. Chaque « cluster fractionné » possède désormais sa propre copie des données qui est mise à jour indépendamment par les clients. Et, vous vous retrouvez avec deux copies ou plus des mêmes données mises à jour sans aucune synchronisation.

Comment le Split Brain est-il détecté ?

NCache a la capacité de détecter automatiquement quand un cerveau divisé se produit. L'appartenance au cluster est conservée sur tous les serveurs de cache du cluster. Ainsi, chaque fois qu'un cluster est divisé en deux sous-clusters ou plus en raison de la situation de cerveau divisé, chaque sous-cluster pense qu'il est le cluster survivant et continue à travailler avec ses données.

Mais, en même temps, il sait qu'il existe d'autres serveurs de cache qui ont quitté le cluster de manière anormale. Une manière normale est lorsque l'administrateur du cache utilise un NCache outil pour supprimer un serveur de cache du cluster. Ainsi, chaque sous-cluster continue d'essayer de se reconnecter avec les "serveurs perdus". Dans le même temps, chaque sous-cluster journalise les événements au journal des événements Windows indiquant que certains de ses membres d'origine sont partis. Ainsi, en cas de split-brain, le NCache l'administrateur voit les événements « nœud restant » pour presque tous les serveurs de cache.

Ce n'est que lorsque la connexion réseau entre les sous-clusters divisés est rétablie qu'ils découvrent le fait qu'un split-brain s'est réellement produit. Jusqu'à ce moment, ils continuent de croire que certains de leurs membres ont quitté le cluster.

En réalisant qu'un split-brain s'est produit, chaque sous-cluster enregistre les événements dans le journal des événements Windows et peut également informer l'administrateur du cache via Notification par email qu'un Split Brain s'est produit.

Comment fonctionne la récupération automatique Split Brain ?

NCache vous permet de configurer la récupération automatique à partir du split brain. Si vous le faites alors à chaque fois NCache détecte un cerveau divisé, il s'en remet automatiquement. Activez la récupération du cerveau partagé grâce à config.ncconf en ajoutant le étiquette sous le étiqueter. Vous pouvez ensuite modifier l'indicateur d'activation sur vrai et définir l'intervalle de détection pour le cerveau divisé en secondes.

<cache-settings...>
  <split-brain-recovery enable="True" detection-interval="60"/>
</cache-settings>

Lorsqu'un cluster est divisé en deux sous-clusters ou plus et que leur connexion réseau est restaurée, ils réalisent finalement qu'un split-brain s'est produit. À ce stade, si l'utilisateur a configuré la récupération automatique, tous les sous-clusters négocient entre eux pour déterminer lequel des sous-clusters doit devenir le "cluster maître" et le reste des sous-clusters, puis rejoignez ce "cluster maître". cluster" en jetant leurs données et en agissant comme s'il s'agissait de nouveaux nœuds rejoignant un cluster existant.

Les règles utilisées pour déterminer quel sous-cluster doit devenir « maître » sont simples. C'est le sous-cluster avec le plus grand nombre de nœuds membres. Et, si plusieurs sous-clusters ont un nombre égal de nœuds membres, alors celui dont l'adresse IP du coordinateur est la plus petite gagne et devient le « cluster maître ». Et le reste du sous-cluster le rejoint et le résultat final est un grand cluster équivalent à la taille du cluster d'origine.

Que faire ensuite?

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.