Im ersten Teil haben wir ausführlich erklärt, wie man 2-Knoten-RedHat-Cluster installiert und konfiguriert.
Wir haben die folgenden allgemeinen Schritte im vorherigen Tutorial behandelt:
- Installieren und starten Sie den RICCI-Clusterdienst
- Cluster auf aktivem Knoten erstellen
- Knoten zum Cluster hinzufügen
- Zäune zum Cluster hinzufügen
- Failover-Domain konfigurieren
- Ressourcen zum Cluster hinzufügen
In diesem Tutorial behandeln wir die folgenden allgemeinen Schritte zum Abschließen der Clustereinrichtung:
- Clusterkonfiguration über Knoten hinweg synchronisieren
- Starten Sie den Cluster
- Überprüfen Sie das Failover, indem Sie einen aktiven Knoten herunterfahren
1. Konfigurationen knotenübergreifend synchronisieren
Jedes Mal, wenn eine Konfigurationsänderung vorgenommen wird oder wenn Sie den Cluster zum ersten Mal installieren und konfigurieren, sollten Sie die Konfigurationen vom aktiven Knoten mit allen Knoten synchronisieren.
Der folgende Befehl synchronisiert die Clusterkonfigurationen mit allen verfügbaren Knoten:
[root@rh1 ~]# ccs -h rh1 --sync --activate rh2 password:
2. Überprüfen Sie die Cluster-Konfiguration
Überprüfen Sie abschließend, ob die Konfigurationen gültig sind, wie unten gezeigt.
[root@rh1 ~]# ccs -h rh1 --checkconf All nodes in sync.
Wenn es Konfigurationsprobleme gibt oder wenn die Konfigurationen auf dem aktiven Knoten nicht mit den Konfigurationen auf allen Knoten im Cluster übereinstimmen, listet der obige Befehl sie entsprechend auf.
3. Cluster starten
Gehen Sie wie folgt vor, um den Cluster auf Node1 zu starten:
[root@rh1 ~]# ccs -h rh1 –start
Gehen Sie wie folgt vor, um den Cluster auf beiden Knoten zu starten:
[root@rh1 ~]# ccs -h rh1 –startall
Gehen Sie wie folgt vor, um den Cluster auf Node1 zu stoppen:
[root@rh1 ~]# ccs -h rh1 –stop
Gehen Sie wie folgt vor, um den Cluster auf beiden Knoten zu stoppen:
[root@rh1 ~]# ccs -h rh1 –stopall
4. Clusterstatus anzeigen
Wenn alles in Ihrem Redhat- oder CentOS-Linux-Cluster betriebsbereit ist, können Sie den Cluster-Status wie unten gezeigt anzeigen:
[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
Wie Sie in der obigen Ausgabe sehen, gibt es an, dass es zwei Knoten in unserem Cluster gibt, und dass beide Knoten online sind und rh1 der aktive Knoten ist.
5. Überprüfen Sie das Cluster-Failover
Um das Failover des Clusters zu überprüfen, stoppen Sie den Cluster auf dem aktiven Knoten oder fahren Sie den aktiven Knoten herunter. Dies sollte den Cluster zwingen, automatisch ein Failover der IP-Ressource und der Dateisystemressource auf den nächsten verfügbaren Knoten durchzuführen, der in der Failover-Domäne definiert ist.
Das sehen wir derzeit auf 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. Cluster-Failover erzwingen
Bringen Sie nun node1 herunter, und alle Dienste und Ressourcen sollten auf den zweiten Knoten umschalten, und Sie werden wie die folgende Ausgabe sehen.
[root@rh1 ~]# shutdown -h now
Nachdem node1 ausgefallen ist, sehen Sie Folgendes auf node1.
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
Die obige Ausgabe zeigt an, dass es zwei Knoten im Cluster gibt (rh1 und rh2). rh1 ist ausgefallen und derzeit ist rh2 der aktive Knoten.
Wie Sie unten sehen, wurden das Dateisystem und die IP-Adresse auf rh2 ohne Probleme von rh1 übernommen.
[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. Voll funktionsfähige cluster.conf-Beispieldatei
Das Folgende ist die endgültig funktionierende cluster.conf-Konfigurationsdatei für einen 2-Knoten-Redhat-Cluster.
[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>