Dans la première partie, nous avons expliqué en détail comment installer et configurer 2 Node RedHat Cluster.
Nous avons couvert les étapes de haut niveau suivantes dans le didacticiel précédent :
- Installer et démarrer le service de cluster RICCI
- Créer un cluster sur le nœud actif
- Ajouter un nœud au cluster
- Ajouter une clôture au cluster
- Configurer le domaine de basculement
- Ajouter des ressources au cluster
Dans ce didacticiel, nous couvrirons les étapes de haut niveau suivantes pour terminer la configuration du cluster :
- Synchroniser la configuration du cluster entre les nœuds
- Démarrer le cluster
- Vérifier le basculement en arrêtant un nœud actif
1. Synchroniser les configurations entre les nœuds
Chaque fois qu'une modification de configuration est effectuée, ou la première fois que vous installez et configurez le cluster, vous devez synchroniser les configurations du nœud actif vers tous les nœuds.
La commande suivante synchronisera les configurations du cluster avec tous les nœuds disponibles :
[root@rh1 ~]# ccs -h rh1 --sync --activate rh2 password:
2. Vérifier la configuration du cluster
Enfin, vérifiez que les configurations sont valides comme indiqué ci-dessous.
[root@rh1 ~]# ccs -h rh1 --checkconf All nodes in sync.
S'il y a des problèmes de configuration, ou lorsque les configurations sur le nœud actif ne correspondent pas aux configurations sur tous les nœuds du cluster, la commande ci-dessus les répertoriera de manière appropriée.
3. Démarrer le cluster
Pour démarrer le cluster sur le nœud 1, procédez comme suit :
[root@rh1 ~]# ccs -h rh1 –start
Pour démarrer le cluster sur les deux nœuds, procédez comme suit :
[root@rh1 ~]# ccs -h rh1 –startall
Pour arrêter le cluster sur le nœud 1, procédez comme suit :
[root@rh1 ~]# ccs -h rh1 –stop
Pour arrêter le cluster sur les deux nœuds, procédez comme suit :
[root@rh1 ~]# ccs -h rh1 –stopall
4. Afficher l'état du cluster
Lorsque tout est opérationnel dans votre cluster Linux Redhat ou CentOS, vous pouvez afficher l'état du cluster comme indiqué ci-dessous :
[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
Comme vous le voyez dans la sortie ci-dessus, cela indique qu'il y a deux nœuds dans notre cluster, et les deux nœuds sont en ligne, et rh1 est le nœud actif.
5. Vérifier le basculement du cluster
Pour vérifier le basculement du cluster, arrêtez le cluster sur le nœud actif ou arrêtez le nœud actif. Cela devrait forcer le cluster à basculer automatiquement la ressource IP et la ressource de système de fichiers vers le prochain nœud disponible défini dans le domaine de basculement.
C'est ce que nous voyons actuellement sur le 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. Forcer le basculement du cluster
Arrêtez maintenant le nœud 1, et tous les services et ressources doivent basculer vers le deuxième nœud et vous verrez comme la sortie ci-dessous.
[root@rh1 ~]# shutdown -h now
Une fois le nœud 1 arrêté, voici ce que vous verrez sur le nœud 1.
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
La sortie ci-dessus indique qu'il y a deux nœuds dans le cluster (rh1 et rh2). rh1 est en panne, et actuellement rh2 est le nœud actif.
De plus, comme vous le voyez ci-dessous, sur rh2, le système de fichiers et l'adresse IP ont été basculés depuis rh1 sans aucun problème.
[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. Fichier d'exemple cluster.conf de travail complet
Voici le fichier de configuration cluster.conf de travail final pour un cluster redhat à 2 nœuds.
[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>