Qu’est-ce que le quorum dans un cluster de stimulateurs cardiaques (Comprendre les opérations de Quorum)

Qu’est-ce que le quorum ?

Pour qu’un cluster fonctionne comme prévu, les nœuds doivent être d’accord sur certains faits, tels que les machines qui sont actuellement membres du cluster, où les services sont en cours d’exécution et quelles machines utilisent quelles ressources.

La méthode dans laquelle cela est implémenté dans le module complémentaire Haute disponibilité Red Hat consiste à utiliser un système de vote à la majorité. Chaque nœud de cluster émet un vote s’il rejoint avec succès la communication du réseau corosync et est capable de communiquer avec les autres nœuds qui participent déjà au cluster.

Le cluster est opérationnel si plus de la moitié de tous les votes possibles sont exprimés avec succès. Le nombre minimum de voix nécessaire pour obtenir plus de la moitié des voix est appelé quorum. Si le quorum est atteint, le cluster est considéré comme un quorat. Un cluster perd le quorum si la moitié des nœuds ou plus ne peuvent pas communiquer entre eux.

Lorsqu’un cluster démarre, tous les nœuds du cluster essaient de communiquer entre eux et visent à atteindre le quorum. Dès qu’une majorité est formée, il y a un groupe de quorates. Tous les autres nœuds qui n’ont pas réussi à rejoindre le cluster quorate sont clôturés par un nœud qui a le quorum. Si un nœud faisant partie du cluster quorate n’est plus en mesure de communiquer avec le cluster, le nœud est clôturé.

Pourquoi le calcul du quorum est-il requis?

Le quorum est requis dans les situations où certains nœuds d’un cluster ne peuvent pas communiquer avec certains autres nœuds. L’illustration suivante montre un cluster à cinq nœuds composé de nœuds A, B, c, D et E avec un service qui utilise un système de fichiers ext4 sur un stockage partagé. Ce service s’exécute actuellement sur le nœud A.

Les nœuds D et Eget se séparent du réseau privé principal et ne peuvent pas communiquer avec les nœuds A, B et c. Sans quorum, ces deux nœuds décideront que A, B et C ont tous échoué et doivent être clôturés (mis hors tension à distance) afin que leurs ressources puissent être récupérées. De cette façon, le quorum agit comme une porte importante avant la clôture.

Si le cluster était sans périphérique de clôture, les nœuds D et E commenceraient immédiatement à récupérer les ressources, ce qui entraînerait le même système de fichiers ext4 monté à deux endroits à la fois, ce qui n’est pas une situation saine. Cette situation, où deux moitiés d’un cluster fonctionnent indépendamment l’une de l’autre, est appelée cerveau divisé.

Le cerveau divisé est une préoccupation particulière dans les clusters à deux nœuds car si l’un des nœuds échoue, l’autre nœud ne comprend pas la majorité des nœuds du cluster. Des mesures spéciales doivent être prises pour permettre le fonctionnement du cluster à deux nœuds tout en évitant le cerveau divisé. »

En supposant que tous les nœuds de cet exemple ont une voix, cette situation ne peut pas se produire, car les nœuds D et E n’ont que deux voix ensemble, ce qui ne représente pas plus de la moitié du total des votes (cinq). Cela entraînerait la cessation des fonctions des nœuds D et E jusqu’à ce qu’au moins un autre vote soit ajouté. Les nœuds A, B et c, en revanche, restent actifs en fournissant un service, car ils ont trois votes combinés, ce qui représente plus de la moitié du total des votes.

Calcul du quorum

Le quorum est calculé et géré dans le module complémentaire Haute disponibilité Red Hat par le composant corosync votequorum. Le composant votequorum utilise deux valeurs pour calculer si le cluster est quoré:

  1. Votes attendus : Nombre de votes attendus si tous les nœuds du cluster sont pleinement opérationnels et communiquent entre eux.
  2. Total des votes : Le nombre de votes actuellement présents. Cela peut être inférieur au nombre de votes attendus si certains nœuds ne sont pas opérationnels ou ne communiquent pas avec le cluster.

Le nombre de votes requis pour atteindre le quorum est basé sur les votes attendus. La formule suivante indique le nombre de votes requis pour le quorum. Dans ce calcul, floor() signifie toujours arrondir.

Quorum = floor(expected votes + 2 + 1)

Exemple de calcul du quorum

Dans l’exemple suivant, un cluster à trois nœuds est supposé. Un cluster à trois nœuds a un nombre de votes attendu de trois.

Quorum= floor(expected votes + 2 + 1)Quorum = floor(3 + 2 + 1) Quorum = floor(1.5 + 1) Quorum = floor(2.5) Quorum = 2 

Dans le cluster à trois nœuds, il doit y avoir au moins deux nœuds en cours d’exécution pour atteindre le quorum.

Dans l’exemple suivant, un cluster avec quatre nœuds est supposé. Un cluster à quatre nœuds a un nombre de votes attendu de quatre.

Quorum = floor(expected votes + 2 + 1} Quorum = floor(4 + 2 + 1) Quorum = floor(2 + 1} Quorum = floor(3) Quorum = 3

Dans le cluster à quatre nœuds, il doit y avoir au moins trois nœuds en cours d’exécution pour atteindre le quorum.

Affichage de l’état du quorum

Le module complémentaire Haute disponibilité Red Hat fournit un utilitaire complet pour afficher l’état actuel du quorum dans un cluster : corosync-quorumtool. L’outil corosync-quorumtool fournit une vue d’ensemble des informations relatives au quorum, telles que le Nombre total de Votes et de Votes attendus, et indique si le cluster est quoré en un coup d’œil.

  1. L’entrée Nodes fournit le nombre de nœuds des nœuds appartenant au cluster.
  2. L’entrée Node ID affiche l’ID du nœud sur lequel corosync-quorumtool a été exécuté.
  3. L’entrée Quorate indique si le cluster est quorate.
  4. L’entrée Votes attendus indique le nombre de votes présents si tous les membres du cluster configurés sont actifs dans le cluster.
  5. L’entrée attendue la plus élevée affiche le plus grand nombre de votes attendus vus dans le cluster.
  6. L’entrée Total des votes indique le nombre de votes actuellement présents dans le cluster.
  7. L’entrée de quorum indique combien de votes doivent être présents au minimum pour que le cluster reste quoré.
  8. L’entrée Flags affiche toutes les propriétés liées au quorum actuellement définies sur le cluster. Si le cluster est quorate, la propriété Quorate s’affichera. Des fonctions spéciales supplémentaires s’afficheront également dans ce champ lorsqu’elles seront définies, telles que LastManstanding ou WaitForAll.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.