GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie einen Linux-Cluster mit 2 Knoten auf RedHat und CentOS

In einer Aktiv-Standby-Linux-Clusterkonfiguration werden alle kritischen Dienste, einschließlich IP, Dateisystem, von einem Knoten auf einen anderen Knoten im Cluster umgeschaltet.

In diesem Tutorial wird detailliert erklärt, wie man RedHat-Cluster mit zwei Knoten mithilfe von Befehlszeilendienstprogrammen erstellt und konfiguriert.

Im Folgenden sind die allgemeinen Schritte zur Konfiguration des Linux-Clusters unter Redhat oder CentOS aufgeführt:

  • 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
  • Clusterkonfiguration über Knoten hinweg synchronisieren
  • Starten Sie den Cluster
  • Überprüfen Sie das Failover, indem Sie einen aktiven Knoten herunterfahren

1. Erforderliche Cluster-Pakete

Stellen Sie zunächst sicher, dass die folgenden Clusterpakete installiert sind. Wenn Sie diese Pakete nicht haben, installieren Sie sie mit dem Befehl yum.

[root@rh1 ~]# rpm -qa | egrep -i "ricci|luci|cluster|ccs|cman"
modcluster-0.16.2-28.el6.x86_64
luci-0.26.0-48.el6.x86_64
ccs-0.16.2-69.el6.x86_64
ricci-0.16.2-69.el6.x86_64
cman-3.0.12.1-59.el6.x86_64
clusterlib-3.0.12.1-59.el6.x86_64

2. RICCI-Dienst starten und Passwort vergeben

Starten Sie als Nächstes den ricci-Dienst auf beiden Knoten.

[root@rh1 ~]# service ricci start
Starting oddjobd:                                          [  OK  ]
generating SSL certificates...  done
Generating NSS database...  done
Starting ricci:                                            [  OK  ]

Außerdem müssen Sie auf beiden Knoten ein Passwort für das RICCI vergeben.

[root@rh1 ~]# passwd ricci
Changing password for user ricci.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Wenn Sie eine iptables-Firewall ausführen, denken Sie außerdem daran, dass Sie auf beiden Knoten geeignete Firewall-Regeln haben müssen, um miteinander kommunizieren zu können.

3. Cluster auf aktivem Knoten erstellen

Führen Sie auf dem aktiven Knoten den folgenden Befehl aus, um einen neuen Cluster zu erstellen.

Der folgende Befehl erstellt die Cluster-Konfigurationsdatei /etc/cluster/cluster.conf. Wenn die Datei bereits existiert, ersetzt sie die vorhandene cluster.conf durch die neu erstellte cluster.conf.

[root@rh1 ~]# ccs -h rh1.mydomain.net --createcluster mycluster
rh1.mydomain.net password:

[root@rh1 ~]# ls -l /etc/cluster/cluster.conf
-rw-r-----. 1 root root 188 Sep 26 17:40 /etc/cluster/cluster.conf

Denken Sie auch daran, dass wir diese Befehle nur von einem Knoten im Cluster ausführen und noch nicht bereit sind, die Änderungen an den anderen Knoten im Cluster weiterzugeben.

4. Einfache cluster.conf-Anfangsdatei

Nach dem Erstellen des Clusters sieht die Datei cluster.conf wie folgt aus:

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="1" name="mycluster">
  <fence_daemon/>
  <clusternodes/>
  <cman/>
  <fencedevices/>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

5. Knoten zum Cluster hinzufügen

Sobald der Cluster erstellt ist, müssen wir die teilnehmenden Knoten mit dem ccs-Befehl wie unten gezeigt zum Cluster hinzufügen.

Fügen Sie zuerst den ersten Knoten rh1 wie unten gezeigt zum Cluster hinzu.

[root@rh1 ~]# ccs -h rh1.mydomain.net --addnode rh1.mydomain.net
Node rh1.mydomain.net added.

Fügen Sie als Nächstes den zweiten Knoten rh2 wie unten gezeigt zum Cluster hinzu.

[root@rh1 ~]# ccs -h rh1.mydomain.net --addnode rh2.mydomain.net
Node rh2.mydomain.net added.

Nachdem die Knoten erstellt wurden, können Sie den folgenden Befehl verwenden, um alle verfügbaren Knoten im Cluster anzuzeigen. Dadurch wird auch die Knoten-ID für den entsprechenden Knoten angezeigt.

[root@rh1 ~]# ccs -h rh1 --lsnodes
rh1.mydomain.net: nodeid=1
rh2.mydomain.net: nodeid=2

6. cluster.conf-Datei nach dem Hinzufügen von Knoten

Dadurch werden die Knoten auch wie unten gezeigt zur cluster.conf-Datei hinzugefügt.

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="3" name="mycluster">
  <fence_daemon/>
  <clusternodes>
    <clusternode name="rh1.mydomain.net" nodeid="1"/>
    <clusternode name="rh2.mydomain.net" nodeid="2"/>
  </clusternodes>
  <cman/>
  <fencedevices/>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

7. Fencing zum Cluster hinzufügen

Fencing ist die Trennung eines Knotens vom gemeinsam genutzten Speicher. Fencing schneidet die E/A vom gemeinsam genutzten Speicher ab und gewährleistet so die Datenintegrität.

Ein Fencing-Gerät ist ein Hardwaregerät, mit dem ein Knoten vom gemeinsam genutzten Speicher getrennt werden kann.

Dies kann auf verschiedene Weise erreicht werden:Ausschalten des Knotens über einen Remote-Netzschalter, Deaktivieren eines Fibre-Channel-Switch-Ports oder Widerrufen der SCSI 3-Reservierungen eines Hosts.

Ein Fencing-Agent ist ein Softwareprogramm, das sich mit einem Fencing-Gerät verbindet, um das Fence-Gerät aufzufordern, den Zugriff auf den gemeinsam genutzten Speicher eines Knotens zu sperren (durch Ausschalten des Knotens oder Entfernen des Zugriffs auf den gemeinsam genutzten Speicher auf andere Weise).

Führen Sie den folgenden Befehl aus, um das Fencing zu aktivieren.

[root@rh1 ~]# ccs -h rh1 --setfencedaemon post_fail_delay=0
[root@rh1 ~]# ccs -h rh1 --setfencedaemon post_join_delay=25

Fügen Sie als Nächstes ein Zaungerät hinzu. Es gibt verschiedene Arten von Zaungeräten. Wenn Sie zum Erstellen eines Clusters eine virtuelle Maschine verwenden, verwenden Sie das fence_virt-Gerät wie unten gezeigt.

[root@rh1 ~]# ccs -h rh1 --addfencedev myfence agent=fence_virt

Fügen Sie als Nächstes die Fencing-Methode hinzu. Nachdem Sie das Fencing-Gerät erstellt haben, müssen Sie die Fencing-Methode erstellen und die Hosts zur Fencing-Methode hinzufügen.

[root@rh1 ~]# ccs -h rh1 --addmethod mthd1 rh1.mydomain.net
Method mthd1 added to rh1.mydomain.net.

[root@rh1 ~]# ccs -h rh1 --addmethod mthd1 rh2.mydomain.net
Method mthd1 added to rh2.mydomain.net.

Ordnen Sie schließlich das Fence-Gerät der oben erstellten Methode wie unten gezeigt zu:

[root@rh1 ~]# ccs -h rh1 --addfenceinst myfence rh1.mydomain.net mthd1
[root@rh1 ~]# ccs -h rh1 --addfenceinst myfence rh2.mydomain.net mthd1

8. cluster.conf-Datei nach dem Fencing

Ihre cluster.conf wird wie unten aussehen, nachdem die Fencing-Geräte und -Methoden hinzugefügt wurden.

[root@rh1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="10" name="mycluster">
  <fence_daemon post_join_delay="25"/>
  <clusternodes>
    <clusternode name="rh1.mydomain.net" nodeid="1">
      <fence>
        <method name="mthd1">
          <device name="myfence"/>
        </method>
      </fence>
    </clusternode>
    <clusternode name="rh2.mydomain.net" nodeid="2">
      <fence>
        <method name="mthd1">
          <device name="myfence"/>
        </method>
      </fence>
    </clusternode>
  </clusternodes>
  <cman/>
  <fencedevices>
    <fencedevice agent="fence_virt" name="myfence"/>
  </fencedevices>
  <rm>
    <failoverdomains/>
    <resources/>
  </rm>
</cluster>

9. Arten von Failover-Domains

Eine Failover-Domäne ist eine geordnete Teilmenge von Cluster-Mitgliedern, an die eine Ressourcengruppe oder ein Dienst gebunden werden kann.

Im Folgenden sind die verschiedenen Arten von Failover-Domänen aufgeführt:

  • Eingeschränkte Failover-Domäne:An die Domäne gebundene Ressourcengruppen oder Dienste dürfen nur auf Cluster-Mitgliedern ausgeführt werden, die auch Mitglieder der Failover-Domäne sind. Wenn keine Mitglieder der Failover-Domäne verfügbar sind, wird die Ressourcengruppe oder der Dienst angehalten.
  • Uneingeschränkte Failover-Domäne:Ressourcengruppen, die an diese Domäne gebunden sind, können auf allen Cluster-Mitgliedern ausgeführt werden, werden jedoch auf einem Mitglied der Domäne ausgeführt, sobald eines verfügbar ist. Dies bedeutet, dass, wenn eine Ressourcengruppe außerhalb der Domäne ausgeführt wird und ein Mitglied der Domäne online wechselt, die Ressourcengruppe oder
  • Der Dienst wird zu diesem Clustermitglied migriert.
  • Geordnete Domäne:Knoten in der geordneten Domäne wird eine Prioritätsstufe von 1-100 zugewiesen. Priorität 1 ist die höchste und 100 die niedrigste. Ein Knoten mit der höchsten Priorität führt die Ressourcengruppe aus. Die Ressource, wenn sie auf Knoten 2 ausgeführt wurde, wird auf Knoten 1 migriert, sobald sie online ist.
  • Ungeordnete Domäne:Mitglieder der Domäne haben keine bevorzugte Reihenfolge. Jedes Mitglied kann in der Ressourcengruppe ausgeführt werden. Ressourcengruppen werden nach Möglichkeit immer zu Mitgliedern ihrer Failover-Domäne migriert.

10. Fügen Sie eine Filover-Domain hinzu

Führen Sie den folgenden Befehl aus, um eine Failover-Domäne hinzuzufügen. In diesem Beispiel habe ich eine Domain mit dem Namen „webserverdomain“ erstellt,

[root@rh1 ~]# ccs -h rh1 --addfailoverdomain webserverdomain ordered

Sobald die Failover-Domain erstellt ist, fügen Sie beide Knoten wie unten gezeigt zur Failover-Domain hinzu:

[root@rh1 ~]# ccs -h rh1 --addfailoverdomainnode webserverdomain rh1.mydomain.net priority=1

[root@rh1 ~]# ccs -h rh1 --addfailoverdomainnode webserverdomain rh2.mydomain.net priority=2

Mit dem folgenden Befehl können Sie alle Knoten in der Failover-Domäne anzeigen.

[root@rh1 ~]# ccs -h rh1 --lsfailoverdomain
webserverdomain: restricted=0, ordered=1, nofailback=0
  rh1.mydomain.net: 1
  rh2.mydomain.net: 2

11. Ressourcen zum Cluster hinzufügen

Jetzt ist es an der Zeit, Ressourcen hinzuzufügen. Dies gibt die Dienste an, für die auch ein Failover zusammen mit IP und Dateisystem durchgeführt werden soll, wenn ein Knoten ausfällt. Beispielsweise kann der Apache-Webserver Teil des Failover im Redhat Linux Cluster sein.

Wenn Sie bereit sind, Ressourcen hinzuzufügen, können Sie dies auf zwei Arten tun.

Sie können als globale Ressourcen hinzufügen oder eine Ressource direkt zu einer Ressourcengruppe oder einem Service hinzufügen.

Der Vorteil des Hinzufügens als globale Ressource besteht darin, dass Sie, wenn Sie die Ressource mehr als einer Servicegruppe hinzufügen möchten, einfach auf die globale Ressource in Ihrem Service oder Ihrer Ressourcengruppe verweisen können.

In diesem Beispiel haben wir das Dateisystem auf einem gemeinsam genutzten Speicher als globale Ressource hinzugefügt und im Dienst darauf verwiesen.

[root@rh1 ~]# ccs –h rh1 --addresource fs name=web_fs device=/dev/cluster_vg/vol01 mountpoint=/var/www fstype=ext4

Um einen Dienst zum Cluster hinzuzufügen, erstellen Sie einen Dienst und fügen Sie die Ressource dem Dienst hinzu.

[root@rh1 ~]# ccs -h rh1 --addservice webservice1 domain=webserverdomain recovery=relocate autostart=1

Fügen Sie nun die folgenden Zeilen in der cluster.conf hinzu, um die Ressourcenreferenzen zum Dienst hinzuzufügen. In diesem Beispiel haben wir unserem Dienst auch eine Failover-IP hinzugefügt.

  <fs ref="web_fs"/>
  <ip address="192.168.1.12" monitor_link="yes" sleeptime="10"/>

Im zweiten Teil dieses Tutorials (morgen) erklären wir, wie Sie die Konfigurationen über mehrere Knoten in einem Cluster synchronisieren und wie Sie das Failover-Szenario in einem Cluster-Setup überprüfen.


Linux
  1. So konfigurieren Sie die Virtualisierung unter Redhat Linux

  2. So installieren und konfigurieren Sie Docker in Rocky Linux/Centos 8

  3. So installieren und konfigurieren Sie Ansible unter Rocky Linux/CentOS 8

  4. So installieren und konfigurieren Sie OpenLDAP unter CentOS / RHEL Linux

  5. So konfigurieren Sie Anmeldebanner unter Linux (RedHat, Ubuntu, CentOS, Fedora)

So installieren und konfigurieren Sie OpenLiteSpeed ​​mit PHP 7 unter CentOS 7

So installieren und konfigurieren Sie einen Docker Swarm-Cluster unter CentOS 8

So installieren und konfigurieren Sie Denyhost in Centos 7 Linux

So installieren und konfigurieren Sie GlusterFS unter CentOS 7/CentOS 8

So installieren und konfigurieren Sie den Caddy Web Server mit PHP unter Rocky Linux 8

So ändern Sie den Hostnamen und die IP-Adresse in CentOS / RedHat Linux