Rechercher

17.5. Déplacer des ressources dans un cluster

download PDF

Pacemaker propose divers mécanismes pour configurer une ressource afin qu'elle soit déplacée d'un nœud à l'autre et pour déplacer manuellement une ressource en cas de besoin.

Vous pouvez déplacer manuellement des ressources dans une grappe à l'aide des commandes pcs resource move et pcs resource relocate, comme décrit dans Déplacement manuel des ressources de la grappe. Outre ces commandes, vous pouvez également contrôler le comportement des ressources de la grappe en activant, en désactivant et en interdisant des ressources, comme décrit dans la section Désactivation, activation et interdiction des ressources de la grappe.

Vous pouvez configurer une ressource de manière à ce qu'elle soit déplacée vers un nouveau nœud après un nombre défini d'échecs, et vous pouvez configurer un cluster pour qu'il déplace des ressources en cas de perte de connectivité externe.

17.5.1. Déplacement des ressources en cas de défaillance

Lorsque vous créez une ressource, vous pouvez la configurer de manière à ce qu'elle passe à un nouveau nœud après un nombre défini d'échecs en définissant l'option migration-threshold pour cette ressource. Une fois le seuil atteint, ce nœud ne sera plus autorisé à faire fonctionner la ressource défaillante jusqu'à ce qu'elle atteigne ce seuil :

  • La valeur failure-timeout de la ressource est atteinte.
  • L'administrateur réinitialise manuellement le nombre d'échecs de la ressource à l'aide de la commande pcs resource cleanup.

La valeur de migration-threshold est fixée par défaut à INFINITY. INFINITY est défini en interne comme un nombre très grand mais fini. La valeur 0 désactive la fonction migration-threshold.

Note

La définition de migration-threshold pour une ressource n'est pas la même chose que la configuration d'une ressource pour la migration, dans laquelle la ressource est déplacée vers un autre emplacement sans perte d'état.

L'exemple suivant ajoute un seuil de migration de 10 à la ressource nommée dummy_resource, ce qui indique que la ressource sera déplacée vers un nouveau nœud après 10 échecs.

# pcs resource meta dummy_resource migration-threshold=10

Vous pouvez ajouter un seuil de migration aux valeurs par défaut pour l'ensemble du cluster à l'aide de la commande suivante.

# pcs resource defaults update migration-threshold=10

Pour déterminer l'état de défaillance actuel de la ressource et ses limites, utilisez la commande pcs resource failcount show.

Il existe deux exceptions au concept de seuil de migration ; elles se produisent lorsqu'une ressource ne démarre pas ou ne s'arrête pas. Si la propriété de cluster start-failure-is-fatal est définie sur true (ce qui est le cas par défaut), les échecs de démarrage entraînent la définition de failcount sur INFINITY et provoquent toujours le déplacement immédiat de la ressource.

Les échecs d'arrêt sont légèrement différents et cruciaux. Si une ressource ne s'arrête pas et que l'option STONITH est activée, le cluster clôturera le nœud afin de pouvoir démarrer la ressource ailleurs. Si STONITH n'est pas activé, le cluster n'a aucun moyen de continuer et n'essaiera pas de démarrer la ressource ailleurs, mais essaiera de l'arrêter à nouveau après le délai d'échec.

17.5.2. Déplacement des ressources en raison de changements de connectivité

La configuration du cluster pour déplacer les ressources en cas de perte de connectivité externe se fait en deux étapes.

  1. Ajoutez une ressource ping au cluster. La ressource ping utilise l'utilitaire système du même nom pour tester si une liste de machines (spécifiée par le nom d'hôte DNS ou l'adresse IPv4/IPv6) est accessible et utilise les résultats pour maintenir un attribut de nœud appelé pingd.
  2. Configurez une contrainte d'emplacement pour la ressource qui déplacera la ressource vers un autre nœud en cas de perte de connectivité.

Le tableau suivant décrit les propriétés que vous pouvez définir pour une ressource ping.

Tableau 17.1. Propriétés d'une ressource ping
FieldDescription

dampen

Le temps d'attente (amortissement) pour que d'autres changements se produisent. Cela permet d'éviter qu'une ressource ne rebondisse dans la grappe lorsque les nœuds de la grappe remarquent la perte de connectivité à des moments légèrement différents.

multiplier

Le nombre de nœuds ping connectés est multiplié par cette valeur pour obtenir un score. Utile lorsque plusieurs nœuds ping sont configurés.

host_list

Les machines à contacter pour déterminer l'état actuel de la connectivité. Les valeurs autorisées comprennent les noms d'hôtes DNS résolvables, les adresses IPv4 et IPv6. Les entrées de la liste d'hôtes sont séparées par des espaces.

L'exemple de commande suivant crée une ressource ping qui vérifie la connectivité avec gateway.example.com. En pratique, vous vérifiez la connectivité avec la passerelle/le routeur de votre réseau. Vous configurez la ressource ping comme un clone afin qu'elle s'exécute sur tous les nœuds du cluster.

# pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=gateway.example.com clone

L'exemple suivant configure une règle de contrainte d'emplacement pour la ressource existante nommée Webserver. Ainsi, la ressource Webserver sera déplacée vers un hôte capable d'envoyer un ping à gateway.example.com si l'hôte sur lequel elle est actuellement exécutée ne peut pas envoyer de ping à gateway.example.com.

# pcs constraint location Webserver rule score=-INFINITY pingd lt 1 or not_defined pingd
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.