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.
Quando CMAN determina la presenza di un nodo fallito, esso lo comunica agli altri componenti dell'infrastruttura del cluster. fenced, una volta notificata la presenza di un errore, isola il nodo in questione. Successivamente gli altri componenti dell'infrastruttura del cluster determinano le azioni da intraprendere — essi eseguiranno qualsiasi processo necessario per il ripristino. Per esempio, subito dopo la notificata di un errore a DLM e GFS, essi sospendono l'attività fino a quando non accerteranno il completamento del processo di fencing da parte di fenced. Previa conferma del completamento di tale operazione, DLM e GFS eseguono l'azione di ripristino. A questo punto DLM rilascia i blocchi del nodo fallito e GFS ripristina il jounal del suddetto nodo.
Fencing determina dal file di configurazione del cluster il metodo da utilizzare. Per la definizione del suddetto metodo è necessario prendere in considerazione due elementi principali: il dispositivo fencing ed il fencing agent. Questo programma esegue una chiamata nei confronti di un fencing agent specificato nel file di configurazione del cluster. Il fencing agent a sua volta, isola il nodo tramite un dispositivo di fencing. Una volta completato, il programma esegue la notifica al cluster manager.
Red Hat Cluster Suite fornisce una varietà di metodi usati per il fencing:
  • Power fencing — Esso è il metodo utilizzato da un controllore di alimentazione per disalimentare il nodo non utilizzabile.
  • Fibre Channel switch fencing — Rappresenta il metodo attraverso il quale viene disabilitata la porta del Fibre Channel la quale collega lo storage ad un nodo non utilizzabile.
  • GNBD fencing — A fencing method that disables an inoperable node's access to a GNBD server.
  • Altri tipi di fencing — Diversi metodi per il fencing che disabilitano l'I/O o l'alimentazione di un nodo non utilizzabile, incluso gli IBM Bladecenters, PAP, DRAC/MC, HP ILO, IPMI, IBM RSA II, ed altro ancora.
Figura 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. Figura 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

Figura 1.3. Power Fencing Example

Fibre Channel Switch Fencing Example

Figura 1.4. Fibre Channel Switch Fencing Example

Specificare un metodo significa modificare il file di configurazione del cluster in modo da assegnare un nome per il metodo di fencing desiderato, il fencing agent, ed il dispositivo di fencing per ogni nodo nel 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 Figura 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 Figura 1.6, «Fencing a Node with Dual Fibre Channel Connections»).
Fencing a Node with Dual Power Supplies

Figura 1.5. Fencing a Node with Dual Power Supplies

Fencing a Node with Dual Fibre Channel Connections

Figura 1.6. Fencing a Node with Dual Fibre Channel Connections

È possibile configurare un nodo con uno o più metodi di fencing. Quando configurate un nodo per un determinato metodo di fencing, tale metodo risulterà l'unico perseguibile per eseguire il fencing del nodo in questione. Se configurate invece un nodo con metodi di fencing multipli, i suddetti metodi seguiranno una determinata sequenza, da un metodo ad un altro seguendo l'ordine riportato nel file di configurazione del cluster. Se un nodo fallisce, esso viene isolato utilizzando il primo metodo specificato nel file di configurazione del cluster. Se il primo metodo fallisce, verrà utilizzato il metodo successivo per quel nodo. Se nessun metodo è riuscito ad isolare il nodo, allora il processo di fencing inizierà nuovamente seguendo l'ordine appena descritto e specificato nel file di configurazione del cluster, fino a quando il nodo non verrà isolato con successo.