Chapitre 18. Création de ressources de cluster actives sur plusieurs nœuds (ressources clonées)
Vous pouvez cloner une ressource de cluster afin qu'elle soit active sur plusieurs nœuds. Par exemple, vous pouvez utiliser des ressources clonées pour configurer plusieurs instances d'une ressource IP à distribuer dans un cluster pour l'équilibrage des nœuds. Vous pouvez cloner n'importe quelle ressource à condition que l'agent de ressources la prenne en charge. Un clone se compose d'une ressource ou d'un groupe de ressources.
Seules les ressources qui peuvent être actives sur plusieurs nœuds en même temps conviennent au clonage. Par exemple, une ressource Filesystem
qui monte un système de fichiers non groupé tel que ext4
à partir d'un périphérique à mémoire partagée ne doit pas être clonée. Étant donné que la partition ext4
ne tient pas compte des clusters, ce système de fichiers n'est pas adapté aux opérations de lecture/écriture effectuées simultanément sur plusieurs nœuds.
18.1. Création et suppression d'une ressource clonée
Vous pouvez créer une ressource et un clone de cette ressource en même temps.
Pour créer une ressource et un clone de la ressource avec la commande unique suivante.
pcs resource create resource_id [standard:[provider:]]type [resource options] [meta resource meta options] clone [clone_id] [clone options]
pcs resource create resource_id [standard:[provider:]]type [resource options] [meta resource meta options] clone [clone options]
Par défaut, le nom du clone sera resource_id-clone
. Vous pouvez définir un nom personnalisé pour le clone en spécifiant une valeur pour l'option clone_id.
Vous ne pouvez pas créer un groupe de ressources et un clone de ce groupe de ressources en une seule commande.
Vous pouvez également créer un clone d'une ressource ou d'un groupe de ressources créé précédemment à l'aide de la commande suivante.
pcs resource clone resource_id | group_id [clone_id][clone options]...
pcs resource clone resource_id | group_id [clone options]...
Par défaut, le nom du clone sera resource_id-clone
ou group_name-clone
. Vous pouvez définir un nom personnalisé pour le clone en spécifiant une valeur pour l'option clone_id.
Vous devez modifier la configuration des ressources sur un seul nœud.
Lors de la configuration des contraintes, utilisez toujours le nom du groupe ou du clone.
Lorsque vous créez un clone d'une ressource, le clone prend par défaut le nom de la ressource avec -clone
ajouté au nom. La commande suivante crée une ressource de type apache
nommée webfarm
et un clone de cette ressource nommé webfarm-clone
.
# pcs resource create webfarm apache clone
Lorsque vous créez un clone de ressource ou de groupe de ressources qui sera ordonné après un autre clone, vous devez presque toujours définir l'option interleave=true
. Cela garantit que les copies du clone dépendant peuvent s'arrêter ou démarrer lorsque le clone dont il dépend s'est arrêté ou a démarré sur le même nœud. Si vous ne définissez pas cette option, si une ressource clonée B dépend d'une ressource clonée A et qu'un nœud quitte le cluster, lorsque le nœud revient dans le cluster et que la ressource A démarre sur ce nœud, toutes les copies de la ressource B sur tous les nœuds redémarreront. En effet, lorsqu'une ressource clonée dépendante n'a pas l'option interleave
, toutes les instances de cette ressource dépendent d'une instance en cours d'exécution de la ressource dont elle dépend.
La commande suivante permet de supprimer un clone d'une ressource ou d'un groupe de ressources. Cette opération ne supprime pas la ressource ou le groupe de ressources lui-même.
pcs resource unclone resource_id | clone_id | group_name
Le tableau suivant décrit les options que vous pouvez spécifier pour une ressource clonée.
Field | Description |
---|---|
| Options héritées de la ressource clonée, comme décrit dans le tableau "Resource Meta Options" de la section Configuration des méta-options des ressources. |
| Nombre de copies de la ressource à démarrer. La valeur par défaut est le nombre de nœuds dans le cluster. |
|
Combien de copies de la ressource peuvent être démarrées sur un seul nœud ; la valeur par défaut est |
|
Lors de l'arrêt ou du démarrage d'une copie du clone, il convient d'informer au préalable toutes les autres copies et de leur indiquer quand l'action a réussi. Valeurs autorisées : |
|
Chaque copie du clone remplit-elle une fonction différente ? Valeurs autorisées :
Si la valeur de cette option est
Si la valeur de cette option est |
|
Les copies doivent-elles être lancées en série (au lieu d'être lancées en parallèle). Valeurs autorisées : |
|
Modifie le comportement des contraintes d'ordre (entre clones) de sorte que les copies du premier clone puissent démarrer ou s'arrêter dès que la copie sur le même nœud du second clone a démarré ou s'est arrêtée (au lieu d'attendre que chaque instance du second clone ait démarré ou se soit arrêtée). Valeurs autorisées : |
|
Si une valeur est spécifiée, les clones ordonnés après ce clone ne pourront pas démarrer avant que le nombre spécifié d'instances du clone d'origine ne soit en cours d'exécution, même si l'option |
Pour obtenir un modèle d'allocation stable, les clones sont légèrement collants par défaut, ce qui indique qu'ils ont une légère préférence pour rester sur le nœud où ils s'exécutent. Si aucune valeur n'est fournie pour resource-stickiness
, le clone utilisera une valeur de 1. Comme il s'agit d'une petite valeur, elle perturbe peu les calculs de score des autres ressources, mais elle est suffisante pour empêcher Pacemaker de déplacer inutilement des copies dans le cluster. Pour plus d'informations sur la définition de la méta-option de ressource resource-stickiness
, voir Configuration des méta-options de ressource.