Linux-Server im Hochverfügbarkeitscluster installieren

Inhaltsverzeichnis

Wie oft haben wir unsere Dienste benötigt, oder besser gesagt, unsere Dienste immer verfügbar zu halten, und wie oft ist es uns passiert, dass die Festplatte unseres Servers beschädigt ist und wir kein Backup haben, nun, wenn wir darüber nachdenken? Umständen habe ich beschlossen, dies zu erstellen Tutorial um sicherzustellen, dass unsere Server bzw. unsere Dienste immer online sind.

In Anbetracht der Tatsache, dass das Tutorial für fortgeschrittene Linux-Leute gedacht ist, werde ich Themen wie die Installation des Basissystems, das ich dieses Mal verwenden werde, nicht berühren CentOS 6 64-Bit in seinem letzten Update. Ebenso erwähne ich nur das, was für den Betrieb des Clusters unbedingt notwendig ist (Hochverfügbarkeitsserver).

Ich mache auch den Kommentar, dass dieser Leitfaden auf die Notwendigkeit gerichtet ist, den Webdienst immer aktiv zu halten, obwohl ich ihn mit anderen Diensten erfolgreich verwendet habe, denke ich, dass es für den Anfang oder besser gesagt, für den Anfang am einfachsten ist, Erstellen Sie ein Server-Cluster-Web.

Kommen wir ohne weiteres zu den guten Sachen.

System Anforderungen.1. RAM-Speicher 1 GB
2. Festplatte 80 GB
3. Celeron-Prozessor
4. Datenpartition für den Cluster (unabhängig von der Größe, die Sie erstellen möchten)
5. CentOS 6-Betriebssystem (in seinem neuesten Update)

Wenn Sie die Voraussetzungen erfüllen, starten wir die Linux-Cluster-Installation.

Als nächstes muss das DRBD für die Synchronisation der Partitionen auf beiden Servern installiert werden, dafür ist es notwendig führe die in-shell aus die folgenden Anweisungen:

1. ELRepo zur Liste der System-Repositorys hinzufügen

 [root @ node1 ~] rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

2. Installieren Sie drbd-Dienstprogramme (Distributed Replicated Block Device) und kmod-Pakete

 [root @ node1 ~] yum install -y kmod-drbd83 drbd83-utils
(Persönlich verwende ich 8.3, da mir 8.4 bei einigen Distributionen Probleme bereitete)

3. Drbd wird dem Systemkernel hinzugefügt oder eingefügt

 [root @ node1 ~] modprobe drbd

4. Die Ressourcendatei für das drbd muss erstellt werden
Es befindet sich unter /etc/drbd.d/mydrbd.res; wobei mydrbd.res der Name der Datei ist und dieser von jedem geändert werden kann, solange wir die Erweiterung .res behalten; Diese Datei sollte auf beiden Servern erstellt werden oder, wenn die Datei richtig konfiguriert ist, auf den zweiten Knoten kopiert werden; die Konfiguration wäre ungefähr die folgende:

 resource mydrbd {#das ist der Name der Protokoll-C-Ressource; Start {wfc-timeout 180; degr-wfc-timeout 120;} # 180 Sekunden Wartezeit auf das Slave-Gerät, 120 Sekunden, wenn es nicht antwortet, wird es degradiert und bleibt als sekundäres Laufwerk {on-io-error detach; } net {cram-hmac-alg "sha1"; shared-secret "geheimer Schlüssel";} #In diesem Teil wird ein Schlüssel mit sha1-Verschlüsselung angegeben, dieser Schlüssel dient der Kommunikation zwischen den beiden Knoten. syncer {rate 100M;} #Synchronisationsgeschwindigkeit, es spielt keine Rolle, dass wir eine Gigabit-Netzwerkkarte haben, es funktioniert nicht mit 1000M, die empfohlene Höchstgeschwindigkeit beträgt 100M (ich habe es mit 10M installiert und es funktioniert großartig, etwas langsam die erste Synchronisation, aber dann sieht man keinen Unterschied) on node1 {device / dev / drbd0; # hier geben wir an, welches das für den drbd reservierte Gerät ist, wir können mehrere Geräte für verschiedene Daten oder verschiedene Dienste haben, wie z. B. SAMBA, MySQL, unter anderem disk / dev / md2; #Geben Sie die Partition an, die für die drbd-Adresse 172.16.0.1:7788 verwendet wird; # Wir geben eine IP außerhalb der Reichweite unseres Netzwerks an. Es ist erwähnenswert, dass das Netzwerkkabel direkt zwischen den Servern angeschlossen werden muss, ohne einen Switch oder Hub zu durchlaufen. Wenn es sich um Netzwerkkarten des neuesten Modells handelt, ist kein Crossover-Kabel erforderlich. Meta-Festplatte intern; } on node2 {# Die Spezifikationen des zweiten müssen mit denen des ersten übereinstimmen, nur die IP-Adresse ändert sich, es muss der gleiche Port sein, denn wenn wir 2 Cluster zusammen haben, werden sie in Konflikt geraten und nicht funktionieren Wenn wir mehrere Cluster haben möchten, empfiehlt es sich entsprechend, unterschiedliche Ports zu verwenden, es versteht sich von selbst, dass diese Ports auf beiden Knoten gleich sein müssen. Gerät / dev / drbd0; Festplatte / dev / md2; Adresse 172.16.0.2:7788; Meta-Festplatte intern; }}

VERGRÖSSERN

5. Das Folgende ist die HostdateikonfigurationDamit werden die Server über die Synchronisations-IP und nicht über die IP des lokalen Netzwerks durchsucht und so vermeiden wir Konflikte mit den Diensten:

 / etc / hosts 192.168.1.1 node1 #name of node1 im lokalen Netzwerksegment 192.168.1.2 node2 #name of node2 im lokalen Netzwerksegment 172.16.0.1 node1 #name of node1 im Synchronisationsnetzwerksegment 172.16.0.2 node2 #name von node2 in sync Netzwerksegment

6. Die Speichereinheit für das drbd wird initialisiert

 [root @ node1 ~] drbdadm create-md disk1

7. Der drbd-Dienst oder der Dämon startet

 /etc/init.d/drbd start

8. In dem Knoten, der der primäre sein soll, führen wir den folgenden Befehl aus

 drbdadm - -overwrite-data-of-peer primäre Festplatte1

9. Wir überwachen die Synchronisation beider Knoten
Dazu führen wir aus:

 Katze / proc / drbd
Die Antwort des obigen Befehls sieht in etwa wie folgt aus:
 version: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by phil @ Build32R6, 20.12.2012 20:23:49 1: cs: SyncSource ro: Primär / Sekundär ds: UpToDate / Inkonsistente C rn- ns: 1060156 nr: 0 dw: 33260 dr: 1034352 al: 14 bm: 62 lo: 9 pe: 78 ua: 64 ap: 0 ep: 1 wo: f oos: 31424 [===== =============>.] synchronisiert: 97,3% (31424/1048508) K Finish: 0:00:01 Geschwindigkeit: 21.240 (15.644) K / sec # Hier können wir das sehen die Synchronisierung geht auf 97,3% und es wird angegeben, dass dies der primäre Knoten ist und der sekundäre Knoten als inkonsistent erscheint, da die Synchronisierung noch nicht abgeschlossen ist. #Wenn wir fertig sind, führen wir cat / proc / drbd erneut aus und wir haben Folgendes: Version: 8.3.15 (api: 88 / proto: 86-97) GIT-Hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by phil @ Build32R6, 20.12.2012 20 : 23: 49 1: cs: Verbunden ro: Primär / Sekundär ds: UpToDate / UpToDate C r- ns: 1081628 nr: 0 dw: 33260 dr: 1048752 al: 14 bm: 64 lo: 0 pe: 0 ua: 0 ap : 0 ep: 1 wo: foos: 0 # Durch die Rückgabe der UpToDate-Nachricht wissen wir, dass die Synchronisation abgeschlossen ist und die drbd-Partitionen exakt gleich sind.

10. Als nächstes formatieren Sie unser Gerät drbdDafür führen wir aus:

 mkfs.ext3 / dev / drbd1
Ich verwende ext3, weil es mir eine gute Stabilität gegeben hat, aber wir könnten auch ext4 verwenden. Ich empfehle nicht, irgendeine Art von Partition unterhalb von ext3 zu verwenden.

Bisher sind wir bereits in der Lage, die /dev/drbd1-Partition in jedem Einhängepunkt des Systems manuell einzuhängen, in meinem Fall verwende ich /home zum Einhängen, da jeder der in beiden Knoten registrierten Benutzer seine eigenen Verzeichnisse für Webseiten hat, also Ich renne:

 mount -t ext3 / dev / drbd1 / home
Und ich fange an, die Benutzer für die Datenreplikation auf beiden Servern zu erstellen, das Folgende ist das Heartbeat-Installation, Anwendung, die verwendet wird, um die Server untereinander zu überwachen, und die für die Durchführung der entsprechenden Änderungen verantwortlich ist, wenn die primäre aus irgendeinem Grund ausfällt und die sekundäre in primäre verwandelt, um die Funktionalität des Systems zu gewährleisten.

Für die Heartbeat-Installation nur die folgenden Schritte sollten befolgt werden. Das Repository wird mit dem folgenden Befehl zum Download installiert:

 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Bearbeiten Sie die Datei:
 epel.repo /etc/yum.repos.d/epel.repo 
Zeile # 6 ändern „Freigabe = 1 durch Freigabe = 0“; Sie können nach Belieben die Editoren vi oder nano verwenden.
 [epel] name = Extrapakete für Enterprise Linux 6 - $ basearch # baseurl = http: //download.fedoraproject.org/pub/epel/6/$basearch mirrorlist = http: //mirrors.fedoraproject.org/metallink?repo = epel-6 & arch = $ basearch failovermethod = Priorität aktiviert = 0 # Dies ist die Zeile, die wir bearbeiten müssen Installieren Sie den Heartbeat mit dem folgenden Befehl: yum -enablerepo = epel install heartbeat Sobald die Installation abgeschlossen ist, wird uns etwas Ähnliches mitgeteilt zu: Installiert: Heartbeat .i686 0: 3.0.4-1.el6 Fertig! 
Sobald der Installationsvorgang abgeschlossen ist, müssen Sie als Nächstes die 3 wesentlichen Dateien bearbeiten, damit der Heartbeat funktioniert. befindet sich in /etc/ha.d
  • Autorschlüssel
  • ha.cf
  • Ressourcen

Wir öffnen die Datei Autorschlüssel mit folgendem Befehl:

 vi /etc/ha.d/authkeys
Folgende Zeilen werden hinzugefügt:
 auth 1 1 sha1 Schlüssel für die Verbindung zwischen Heartbeats # In dieser Zeile definieren wir, welcher der Schlüssel für die Heartbeats jedes Knotens ist, um miteinander zu kommunizieren, er kann derselbe sein, der im drbd verwendet wird, oder ein anderer.
Wir ändern die Dateiberechtigungen Autorschlüssel damit es nur von root gelesen werden kann:
 chmod 600 /etc/ha.d/authkeys
Jetzt bearbeiten wir die zweite Datei:
 vi /etc/ha.d/ha.cf
Wir fügen folgende Zeilen hinzu:
 logfile / var / log / ha-log # Systemprotokoll ist für zukünftige Fehler aktiviert logfacility local0 keepalive 2 deadtime 30 # das System wartet 30 Sekunden, um node1 als inoperabel zu deklarieren initdead 120 # das System wartet 120 Sekunden auf den Knotenstart, um auf den anderen zu warten . bcast eth0 # wird die Ethernet-Karte angegeben, über die die Kommunikation zwischen den Servern übertragen wird. Es ist sehr wichtig, darauf zu achten, da hier definiert wird, welche Netzwerkkarte zum lokalen Netzwerk geht und welche die Synchronisation leitet udpport 694 # der Synchronisationsport wird angegeben , wie im drbd können wir mehrere Server haben und jedes Paar mit seinem jeweiligen Port definiert auto_failback off # indem wir es als off markieren, verhindern wir, dass node1 einmal beschädigt und degradiert ist, als primäre zurückzukehren oder zurückzukehren, wodurch ein Konflikt mit einem anderen Knoten entsteht node1 node2 # wir geben die Namen beider Knoten an. 

VERGRÖSSERN

Um die Konfiguration abzuschließen, müssen wir die haresources-Datei mit dem Befehl bearbeiten:

 vi /etc/ha.d/haresources
Fügen Sie die folgenden Zeilen hinzu:
 node1 192.168.1.10/24/eth0 drbddisk :: mydrbd Filesystem :: / dev / drbd0 :: / home :: ext3 #diese Zeile ist verantwortlich für das Mounten der Datenpartition auf dem als Primary node1 referenzierten Knoten 192.168.1.10/24/eth0 httpd #diese Zeile ist für die Definition des Apache-Dienstes oder Webservers für den als primär referenzierten Knoten verantwortlich

VERGRÖSSERN

Die 3 Dateien müssen auf node2 kopiert werden, der folgende Befehl kümmert sich darum:

 scp -r /etc/ha.d/root@node2:/etc/
Die Datei muss bearbeitet werden httpd.conf damit es auf Anfragen von der virtuellen IP lauscht, in diesem Fall 192.168.1.10:
 vi /etc/httpd/conf/httpd.conf
Die Zeile wird hinzugefügt oder geändert Hören 192.168.1.10:80
Die geänderte Datei wird auf den zweiten Server kopiert:
 scp /etc/httpd/conf/httpd.conf root @ node2: /etc/httpd/conf/
Wir starten den Heartbeat-Dienst auf beiden Knoten:
 /etc/init.d/heartbeat start
Damit haben wir unseren hochverfügbaren Server parat, es genügt, unseren Internetbrowser einzugeben und die IP 192.168.1.10 einzugeben oder ein Panel Ihrer Wahl für die Domainverwaltung zu installieren und die entsprechenden Benutzer für den Zugriff auf die registrierten Seiten oder Domains zu generieren im Server.

Der Hochverfügbarkeitsserver kann wie bereits zu Beginn dieses Tutorials erwähnt verwendet werden als: E-Mail-Server, Webserver, Datenbankserver, Samba-Server unter anderen; Ebenso hilft es uns, den Verlust von Informationen aufgrund von Hardwarefehlern zu verhindern, und wir können ihn durch Raids auf die Festplatteneinheiten verstärken, entweder durch Hardware oder Software. Es ist nie zu viel, Festplatten im Raid zu haben, um das System zu warten.

Der Hochverfügbarkeitsserver ist jedoch nicht von Problemen oder Fehlern ausgenommen. Wenn ein Knoten degradiert ist, können wir im Heartbeat-Protokoll nachsehen, was passiert ist. Dies wird durch Zugriff auf die in der haresources-Konfiguration zugewiesene Datei erreicht /etc/ha.d

Ebenso kann es vorkommen, dass beim Neustart beider Server aus irgendeinem Grund diese nicht als primär / sekundär starten und als primär / unbekannt und unbekannt / sekundär starten.

VERGRÖSSERN

Um dies zu lösen, müssen wir die folgenden Schritte ausführen.

In die Schale des gefallenen Knotens geben wir ein:

 drbdadm sekundäre Ressource
Anschließend:
 drbdadm Ressource trennen
Und dann:
 drbdadm - --discard-my-data Verbindungsressource
Schließlich geben wir im überlebenden Knoten oder primären ein:
 drbdadm-Verbindungsressource
Jetzt wird die Resynchronisation der Knoten vom überlebenden Knoten zum gefallenen Knoten gestartet, die sofort beim Drücken der Taste beginnt "Eintreten" in Anweisung 4.

Was hier passiert ist, ist als a . bekannt Geteiltes Gehirn, dies geschieht, wenn der primäre Knoten aus irgendeinem Grund ausfällt und degradiert wird. Sobald dies geschieht, wird dringend empfohlen, den ausgefallenen Knoten gründlich zu überprüfen und zu analysieren notwendig, das gesamte Betriebssystem dieses Knotens neu zu installieren und es problemlos als sekundäres System für die Synchronisierung in den Cluster einzubinden und, wenn dies der Fall ist, nach der Synchronisierung auf primär zu ändern.

Abschließend möchte ich betonen, dass regelmäßige Überprüfung des ClusterzustandsWir wissen genau, dass es für hohe Leistung immer gut ist, Computerkatastrophen einen Schritt voraus zu sein. Da uns als IT-Personal die Verantwortung für die Pflege der Daten des Unternehmens oder der Unternehmen, denen wir angehören, obliegt, halte ich es als zusätzlichen Hinweis für empfehlenswert, immer ein Backup in einer alternativen Einheit zu den Knoten zu haben und damit die Sicherheit der Informationen gewährleistet ist.

Ubuntu-Server installieren und konfigurieren

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave