1.3.3. Fencing

Fencing is the disconnection of a node from the cluster's shared storage. Fencing cuts off I/O from shared storage, thus ensuring data integrity. The cluster infrastructure performs fencing through the fence daemon, fenced.
Lorsque CMAN détermine l'échec d'un noeud, il le communique aux autres composants de l'infrastructure de cluster. Lorsque fenced est averti de l'échec, il déconnecte le noeud qui a échoué. D'autres composants d'infrastructure de cluster déterminent les actions à effectuer — autrement dit, ils effectuent les récupérations qui doivent être faites. Par exemple, DLM et GFS, lorsqu'ils sont informés d'un échec, suspendent toute activité jusqu'à ce que fenced ait terminé la déconnexion du noeud qui a échoué. Suite à la confirmation de la déconnexion du noeud, DLM et GFS effectuent la récupération. DLM libère les verrous du noeud ayant échoué et GFS récupère le fichier journal.
Le programme fencing détermine à partir du fichier de configuration du cluster le mode fencing à utiliser. Deux éléments clés dans le fichier de configuration du cluster définissent le mode fencing : l'agent fence et le périphérique fence. Le programme fencing effectue un appel sur l'agent fence spécifié dans le fichier de configuration du cluster. L'agent fence, pour sa part, déconnecte le noeud via le périphérique fence. Lorsque la déconnexion est terminée, le programme fencing notifie le gestionnaire de cluster.
Red Hat Cluster Suite fournit une grande variété de méthodes fencing :
  • Power fencing — Une méthode fencing qui utilise un contrôleur de courant pour éteindre un noeud inopérant.
  • Fibre Channel switch fencing — Une méthode fencing qui désactive le port Fibre Channel connectant le stockage à un noeud inopérant.
  • GNBD fencing — A fencing method that disables an inoperable node's access to a GNBD server.
  • Other fencing — D'autres méthodes fencing qui désactivent les E/S ou le courant d'un noeud inopérant, y compris IBM Bladecenters, PAP, DRAC/MC, HP ILO, IPMI, IBM RSA II et autres.
Figure 1.3, « Power Fencing Example » shows an example of power fencing. In the example, the fencing program in node A causes the power controller to power off node D. Figure 1.4, « Fibre Channel Switch Fencing Example » shows an example of Fibre Channel switch fencing. In the example, the fencing program in node A causes the Fibre Channel switch to disable the port for node D, disconnecting node D from storage.
Power Fencing Example

Figure 1.3. Power Fencing Example

Fibre Channel Switch Fencing Example

Figure 1.4. Fibre Channel Switch Fencing Example

Spécifier une méthode fencing consiste à éditer le fichier de configuration du cluster pour lui assigner le nom d'une méthode fencing, l'agent fence et le périphérique fence de chaque noeud du cluster.
The way in which a fencing method is specified depends on if a node has either dual power supplies or multiple paths to storage. If a node has dual power supplies, then the fencing method for the node must specify at least two fencing devices — one fencing device for each power supply (refer to Figure 1.5, « Fencing a Node with Dual Power Supplies »). Similarly, if a node has multiple paths to Fibre Channel storage, then the fencing method for the node must specify one fencing device for each path to Fibre Channel storage. For example, if a node has two paths to Fibre Channel storage, the fencing method should specify two fencing devices — one for each path to Fibre Channel storage (refer to Figure 1.6, « Fencing a Node with Dual Fibre Channel Connections »).
Fencing a Node with Dual Power Supplies

Figure 1.5. Fencing a Node with Dual Power Supplies

Fencing a Node with Dual Fibre Channel Connections

Figure 1.6. Fencing a Node with Dual Fibre Channel Connections

Vous pouvez configurer un noeud avec une ou plusieurs méthodes fencing. Lorsque vous configurez un noeud avec une méthode fencing, il s'agit de la seule méthode fencing disponible pour déconnecter ce noeud. Lorsque vous configurez un noeud avec plusieurs méthodes fencing, les méthodes fencing sont disposées en cascade, les unes après les autres, en fonction de l'ordre dans lequel elles apparaissent dans le fichier de configuration du cluster. Si un noeud échoue, il est déconnecté en utilisant la première méthode fencing spécifiée dans le fichier de configuration. Si la première méthode fencing ne réussit pas, la méthode fencing suivante spécifiée pour ce noeud est utilisée. Si aucune des méthodes fencing ne réussit, le processus recommence avec la première méthode fencing spécifiée et continue à parcourir les autres méthodes fencing, en fonction de l'ordre dans lequel elles apparaissent dans le fichier de configuration, jusqu'à ce qu'un des noeuds soit déconnecté.