7.4. Configurazione dei domini di failover
Un dominio di failover è un insieme specifico di nodi del cluster in grado di eseguire un servizio in presenza di un nodo fallito. Il dominio di failover può avere le seguenti caratteristiche:
- Unrestricted — Permette all'utente di specificare un insieme di membri preferiti e di indicare altresì che un servizio del cluster assegnato a questo dominio può essere eseguito su qualsiasi membro disponibile.
- Restricted — Permette all'utente di limitare i membri in grado di eseguire un servizio particolare. Se nessuno dei membri di un dominio di failover limitato è disponibile, il servizio non potrà essere avviato (sia manualmente che dal software del cluster).
- Unordered — Quando un servizio viene assegnato ad un dominio di failover non ordinato, il membro sul quale il servizio viene eseguito verrà selezionato dal gruppo di membri disponibili nel dominio di failover senza seguire alcuna priorità.
- Ordered — Permette all'utente di specificare un ordine preferito tra i membri di un dominio di failover. I domini di failover ordinati prima selezionano il numero di priorità più basso. Quindi il dominio di failover con una priorità "1" indica la priorità più alta e quindi il nodo preferito in un dominio di failover. A seguire il nodo preferito sarà quello con un numero di priorità più alto e così via.
- Failback — Permette all'utente di specificare se un servizio in un dominio di failover deve essere passato sul nodo sul quale era in esecuzione originariamente prima del suo fallimento. La configurazione di questa funzione è utile in casi in cui un nodo fallisce ripetutamente ed è parte di un dominio di failover ordinato. In tal caso se un nodo è il nodo preferito in un dominio di failover sarà possibile passare il servizio tra il nodo preferito ed un altro nodo. Questa impostazione impatta negativamente sulle prestazioni.
Nota
La caratteristica di failback è applicabile solo se è stato configurato il failover ordinato.
Nota
La modifica della configurazione di un dominio di failover non ha alcun effetto sui servizi attualmente in esecuzione.
Nota
I domini di failover non sono necessari per un normale funzionamento.
Per impostazione predefinita i domini di failover non sono limitati ne ordinati.
In un cluster con numerosi membri l'uso di un dominio di failover limitato potrebbe ridurre il compito per l'impostazione del cluster per l'esecuzione di un servizio (come ad esempio
httpd
), il quale necessita di una impostazione identica della configurazione su tutti i membri che eseguono il servizio del cluster. Al posto di impostare l'intero cluster in modo da eseguire il servizio sarà necessario impostare solo i membri nel dominio di failover limitato associati con il servizio del cluster.
Nota
Per configurare un membro preferito creare un dominio di failover non limitato che comprende un solo membro del cluster. Così facendo il servizio del cluster verrà eseguito principalmente sul membro (il membro preferito), permettendo anche di eseguire il failover del servizio del cluster su qualsiasi altro membro.
Per configurare un dominio di failover seguire le procedure di seguito indicate:
- Aprire
/etc/cluster/cluster.conf
su qualsiasi nodo nel cluster. - Aggiungere la seguente struttura della sezione all'interno dell'elemento
rm
per ogni dominio di failover usato:<failoverdomains> <failoverdomain name="" nofailback="" ordered="" restricted=""> <failoverdomainnode name="" priority=""/> <failoverdomainnode name="" priority=""/> <failoverdomainnode name="" priority=""/> </failoverdomain> </failoverdomains>
Nota
Il numero di attributifailoverdomainnode
dipende del numero di nodi in un dominio di failover. La struttura della sezionefailoverdomain
mostra tre elementifailoverdomainnode
(senza specificare alcun nodo), ciò significa che sono presenti tre nodi nel dominio di failover. - Nella sezione
failoverdomain
fornire i valori per gli elementi e attributi. Per la descrizione degli elementi e attributi consultare la sezione failoverdomain dello schema del cluster. Lo schema del cluster è disponibile su/usr/share/doc/cman-X.Y.ZZ/cluster_conf.html
(per esempio/usr/share/doc/cman-3.0.12/cluster_conf.html
) su qualsiasi nodo del cluster. Per un esempio di sezionefailoverdomains
consultare Esempio 7.8, «Un dominio di failover aggiunto acluster.conf
». - Aggiornare l'attributo
config_version
aumentando il proprio valore (per esempio, modificandolo daconfig_version="2"
aconfig_version="3">
). - Salvare
/etc/cluster/cluster.conf
. - (Opzionale) Convalidare il file con lo schema del cluster (
cluster.rng
) eseguendo il comandoccs_config_validate
. Per esempio:[root@example-01 ~]#
ccs_config_validate
Configuration validates - Eseguire il comando
cman_tool version -r
per diffondere la configurazione al resto dei nodi del cluster. - Procedere alla Sezione 7.5, «Configurazione dei servizi HA».
Esempio 7.8, «Un dominio di failover aggiunto a
cluster.conf
» mostra un esempio di una configurazione con un dominio di failover non limitato e ordinato.
Esempio 7.8. Un dominio di failover aggiunto a cluster.conf
<cluster name="mycluster" config_version="3"> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> <method name="APC"> <device name="apc" port="1"/> </method> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> <method name="APC"> <device name="apc" port="2"/> </method> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> <method name="APC"> <device name="apc" port="3"/> </method> </fence> </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/> </fencedevices> <rm> <failoverdomains> <failoverdomain name="example_pri" nofailback="0" ordered="1" restricted="0"> <failoverdomainnode name="node-01.example.com" priority="1"/> <failoverdomainnode name="node-02.example.com" priority="2"/> <failoverdomainnode name="node-03.example.com" priority="3"/> </failoverdomain> </failoverdomains> </rm> </cluster>
La sezione
failoverdomains
contiene una sezione failoverdomain
per ogni dominio di failover nel cluster. In questo esempio è presente un dominio di failover. Nella riga failoverdomain
il nome (name
) viene specificato come example_pri
. Altresì non è specificato alcun failback (failback="0"
), il failover è ordinato (ordered="1"
), ed il dominio di failover non ha restrizioni (restricted="0"
).