Nella prima parte abbiamo spiegato in dettaglio come installare e configurare 2 Node RedHat Cluster.
Abbiamo trattato i seguenti passaggi di alto livello nel tutorial precedente:
- Installa e avvia il servizio cluster RICCI
- Crea cluster su nodo attivo
- Aggiungi un nodo al cluster
- Aggiungi recinzione al cluster
- Configura dominio di failover
- Aggiungi risorse al cluster
In questo tutorial, tratteremo i seguenti passaggi di alto livello per completare la configurazione del cluster:
- Sincronizza la configurazione del cluster tra i nodi
- Avvia il cluster
- Verifica il failover chiudendo un nodo attivo
1. Sincronizza le configurazioni tra i nodi
Ogni volta che viene apportata una modifica alla configurazione, o la prima volta che si installa e si configura il cluster, è necessario sincronizzare le configurazioni dal nodo attivo a tutti i nodi.
Il comando seguente sincronizzerà le configurazioni del cluster con tutti i nodi disponibili:
[root@rh1 ~]# ccs -h rh1 --sync --activate rh2 password:
2. Verifica la configurazione del cluster
Infine, verifica che le configurazioni siano valide come mostrato di seguito.
[root@rh1 ~]# ccs -h rh1 --checkconf All nodes in sync.
In caso di problemi di configurazione o quando le configurazioni sul nodo attivo non corrispondono alle configurazioni su tutti i nodi del cluster, il comando precedente li elencherà in modo appropriato.
3. Avvia il cluster
Per avviare il cluster su Node1, procedi come segue:
[root@rh1 ~]# ccs -h rh1 –start
Per avviare il cluster su entrambi i nodi, procedi come segue:
[root@rh1 ~]# ccs -h rh1 –startall
Per arrestare il cluster su Node1, procedi come segue:
[root@rh1 ~]# ccs -h rh1 –stop
Per interrompere il cluster su entrambi i nodi, procedi come segue:
[root@rh1 ~]# ccs -h rh1 –stopall
4. Visualizza lo stato del cluster
Quando tutto è attivo e funzionante nel tuo cluster Linux Redhat o CentOS, puoi visualizzare lo stato del cluster come mostrato di seguito:
[root@rh1 cluster]# clustat Cluster Status for mycluster @ Sat Mar 15 02:05:59 2015 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ rh1 1 Online, Local, rgmanager rh2 2 Online Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice1 rh1 started
Come puoi vedere nell'output sopra, indica che ci sono due nodi nel nostro cluster, ed entrambi i nodi sono online e rh1 è il nodo attivo.
5. Verifica il failover del cluster
Per verificare il failover del cluster, arrestare il cluster sul nodo attivo o arrestare il nodo attivo. Ciò dovrebbe forzare il cluster a eseguire automaticamente il failover della risorsa IP e della risorsa del filesystem sul successivo nodo disponibile definito nel dominio di failover.
Questo è ciò che vediamo attualmente sul node1.
[root@rh1 ~]# clustat Cluster Status for mycluster @ Sat Mar 15 14:16:00 2015 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ rh1 1 Online, Local, rgmanager rh2 2 Online, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice1 rh1 started [root@rh1 ~]# hostname rh1.mydomain.net [root@rh1 ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:e6:6d:b7 brd ff:ff:ff:ff:ff:ff inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.12/24 scope global secondary eth0 inet6 fe80::a00:27ff:fee6:6db7/64 scope link valid_lft forever preferred_lft forever [root@rh1 ~]# df -h /var/www Filesystem Size Used Avail Use% Mounted on /dev/mapper/cluster_vg-vol01 993M 18M 925M 2% /var/www
5. Forza il failover del cluster
Ora abbatti il nodo1 e tutto il servizio e la risorsa dovrebbero eseguire il failover sul secondo nodo e vedrai come l'output seguente.
[root@rh1 ~]# shutdown -h now
Dopo che il nodo1 è inattivo, quanto segue è ciò che vedrai sul nodo1.
root@rh2 ~]# clustat Cluster Status for mycluster @ Sat Mar 18 14:41:23 2015 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ rh1 1 Offline rh2 2 Online, Local, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice1 rh2 started
L'output sopra indica che ci sono due nodi nel cluster (rh1 e rh2). rh1 è inattivo e attualmente rh2 è il nodo attivo.
Inoltre, come puoi vedere di seguito, su rh2, il filesystem e l'indirizzo IP hanno ottenuto il failover da rh1 senza problemi.
[root@rh2 ~]# df -h /var/www Filesystem Size Used Avail Use% Mounted on /dev/mapper/cluster_vg-vol01 993M 18M 925M 2% /var/www [root@rh2 ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP ql en 1000 link/ether 08:00:27:e6:6d:b7 brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.12/24 scope global secondary eth0 inet6 fe80::a00:27ff:fee6:6db7/64 scope link tentative dadfailed valid_lft forever preferred_lft forever
6. File di esempio cluster.conf completamente funzionante
Di seguito il file di configurazione cluster.conf di lavoro finale per un cluster redhat a 2 nodi.
[root@rh1 ~]# cat /etc/cluster/cluster.conf <?xml version="1.0"?> <cluster config_version="28" name="mycluster"> <fence_daemon post_join_delay="25"/> <clusternodes> <clusternode name="rh1" nodeid="1"> <fence> <method name="mthd1"> <device name="myfence"/> </method> </fence> </clusternode> <clusternode name="rh2" nodeid="2"> <fence> <method name="mthd1"> <device name="myfence"/> </method> </fence> </clusternode> </clusternodes> <cman expected_votes="1" two_node="1"/> <fencedevices> <fencedevice agent="fence_virt" name="myfence"/> </fencedevices> <rm> <failoverdomains> <failoverdomain name="webserverdomain" nofailback="0" ordered="1" restricted="0"> <failoverdomainnode name="rh1"/> <failoverdomainnode name="rh2"/> </failoverdomain> </failoverdomains> <resources> <fs device="/dev/cluster_vg/vol01" fstype="ext4" mountpoint="/var/www" name="web_fs"/> </resources> <service autostart="1" domain="webserverdomain" name="webservice1" recovery="relocate"> <fs ref="web_fs"/> <ip address="192.168.1.12" monitor_link="yes" sleeptime="10"/> </service> </rm> </cluster>