Wie richtet man einen Pacemaker-Cluster für ein Aktiv/Aktiv-Szenario ein und wie funktioniert er?

Wie richtet man einen Pacemaker-Cluster für ein Aktiv/Aktiv-Szenario ein und wie funktioniert er?

Ich versuche meinen ersten Pacemaker Cluster als FTP Server einzurichten. Es sind zwei Server installiert mit einem frischen CentOS 6.5 und Proftpd

Bildbeschreibung hier eingeben

Der erste Schritt bestand darin, Pacemaker und einige Konfigurationstools zu installieren mit:

yum install pacemaker cman pcs ccs resource-agents

Nachdem ich diesen Befehl auf jedem Server ausgeführt habe, beginne ich mit der Konfiguration meines ersten Pacemaker-Clusters mit den folgenden Befehlen:

# ccs -f /etc/cluster/cluster.conf --createcluster ftpcluster 
# ccs -f /etc/cluster/cluster.conf --addnode ftp01 
# ccs -f /etc/cluster/cluster.conf --addnode ftp02
# ccs -f /etc/cluster/cluster.conf --addfencedev pcmk agent=fence_pcmk  
# ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect ftp01 
# ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect ftp02  
# ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk node1 pcmk-redirect port=ftp01 
# ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk node2 pcmk-redirect port=ftp02

Nun starte ich den Cluster auf beiden Knoten:

# service cman start 
# service pacemaker start

Der nächste Schritt besteht darin, eine ClusterIP und eine FTPService-Ressource mit den folgenden

# pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=10.2.1.50 cidr_netmask=32 op monitor interval=30s
# pcs resource create FTPService lsb:proftpd op monitor interval=30s

Wenn ich den Status abfrage bekomme ich folgendes Ergebnis:

# pcs status
Cluster name: ftpcluster
Last updated: Thu Jul 25 01:04:48 2013
Last change: Thu Dec  5 08:56:39 2013 via crmd on ftp01
Stack: cman
Current DC: ftp02 - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured
2 Resources configured


Online: [ ftp01 ftp02 ]

Full list of resources:

 ClusterIP  (ocf::heartbeat:IPaddr2):   Started ftp01 
 FTPService (lsb:proftpd):  Started ftp02 

Meine Frage betrifft den Zugriff auf den FTP-Dienst. Die Cluster-IP läuft auf ftp01, aber der FTP-Dienst auf ftp02. Wenn ich versuche, auf „ftp 10.2.1.50“ zuzugreifen, erhalte ich eine Antwort von ftp01.

Frage 1:Was ist der Unterschied zwischen ClusterIP und FTPService, warum sollte ich einen FTP-Dienst verwenden, wenn ClusterIP dasselbe tut?

Frage 2:Was muss ich ab diesem Punkt tun, um ein Aktiv/Aktiv-Szenario zu erstellen, und wie funktioniert es? Ist es lastausgeglichen oder einfach Round Robin?

Antwort1

Ihre Situation ist nicht so einfach, wie man denken könnte. Ich arbeite seit einigen Monaten an solchen Lösungen. Ich habe auch Linux-Cluster ausprobiert. Folgendes weiß ich:

Zuerst müssen Sie verstehen, dass Ihre beiden Apps in Ihrer aktuellen Konfiguration unmöglich aktiv/aktiv sein können. Wenn Sie darüber nachdenken, werden Sie feststellen, dass Sie jetzt eine Anwendung erreicht haben, die nicht aufhört zu laufen, wenn einer der Knoten ausfällt. Aber alle Daten auf dem ausgefallenen Knoten (wenn es der aktive ist, der ausfällt) werden nicht auf magische Weise auf den zweiten Knoten transportiert. Benutzerordner befinden sich beispielsweise nicht auf dem zweiten Knoten (der Punkt ist, dass der Failover-Cluster keinen Speicher bereitstellt).

Sie benötigen also zunächst einmal Speicher, auf den von beiden Knoten aus zugegriffen werden kann (einen dritten Speicherserver) und ein Dateisystem, das den Cluster erkennt. Dann können Sie über eine aktive/aktive Lösung nachdenken. Dies hat jedoch eine weitere Einschränkung: Wenn der Speicherserver ausfällt, ist Ihr gesamter Cluster tot.

Sie können auch so etwas tun. Lassen Sie Glusterfs (oder ein beliebiges clusterfähiges Dateisystem) auf beiden Clusterknoten laufen, und Sie haben ein repliziertes Dateisystem (beide Knoten haben immer dieselben Daten), aber meiner Erfahrung nach ist Glusterfs bei kleinen Dateien sehr langsam.

Antwort2

Zunächst wird die virtuelle IP für den Zugriff auf den Clusterdienst verwendet. Sie müssen den FTP-Server an VIP (Cluster-IP) binden. Ich habe in Ihrer Konfiguration gesehen, dass Ihnen einige grundlegende Details von Pacemaker fehlen.

Wenn Sie den FTP-Server an die Cluster-IP binden, müssen Sie die Co-Location-Einschränkung oder -Gruppe verwenden.

Weitere Informationen zum Pacemaker-Cluster finden Sie in der Dokumentation auf der Clusterlabs-Site.

Antwort3

Sie haben eine Clusterressource, die IP-Adresse, aber eine IP kann sich immer nur auf einem Knoten gleichzeitig befinden. Sie können FTP auf beiden Servern ausführen, aber trotzdem immer nur auf einen gleichzeitig mit dieser IP zugreifen. Was Sie wahrscheinlich wollen, ist ein Load Balancer davor, der Verbindungen zu den Back-End-FTP-Servern handhabt, was ein anderes Problem ist. Oder Sie können auf beiden eine andere IP-Adresse haben (was Sie normalerweise haben) und Round-Robin-DNS verwenden, um mit demselben Hostnamen auf den einen oder anderen zugreifen zu können. Aber eigentlich würden Sie Pacemaker für keinen von beiden verwenden.

Grundsätzlich glaube ich nicht, dass ein Herzschrittmacher hier die Lösung ist.

Normale Aktiv/Aktiv-Clusterressourcen (z. B. Webserver) würden mit geklonten Ressourcen ausgeführt:http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/_reconfigure_pacemaker_for_active_active.html

verwandte Informationen