Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.

Der Artikel wurde im Vorfeld des Kurses erstellt Linux-Administrator. Virtualisierung und Clusterbildung.

DRBD (Distributed Replicated Block Device — verteiltes repliziertes Blockgerät) ist eine flexible und universell einsetzbare Datenspeicherlösung für Linux. Es spiegelt den Inhalt von Blockgeräten wie Festplatten, Partitionen, logischen Volumes usw. zwischen Servern wider. Es erstellt Kopien von Daten auf zwei Speichergeräten, sodass die Daten im Falle eines Ausfalls eines Gerätes auf dem anderen genutzt werden können.

Man könnte sagen, dass es sich um eine Art Netzwerk-RAID-Konfiguration 1 mit auf verschiedene Server gespiegeltene Festplatten handelt. Es funktioniert jedoch ganz anders als RAID (auch nicht im Netzwerk).

Ursprünglich wurde DRBD hauptsächlich in Hochverfügbarkeits-Computerkursen (HA — High Availability) eingesetzt, seit der neunten Version kann es jedoch auch zur Bereitstellung von Cloud-Speicherlösungen verwendet werden.

In diesem Artikel zeigen wir, wie man DRBD unter CentOS installiert und geben einen kurzen Überblick, wie man es zur Replikation von Speicher (Partitionen) auf zwei Servern verwendet. Dies ist der ideale Einstieg, um mit DRBD unter Linux zu arbeiten.

Testumgebung

Wir werden einen Cluster aus zwei Knoten für dieses Setup verwenden.

  • Knoten 1: 192.168.56.101 – tecmint.tecmint.lan
  • Knoten 2: 192.168.56.102 – server1.tecmint.lan

Schritt 1: Installation der DRBD-Pakete

DRBD wird als Kernelmodul von Linux implementiert. Es handelt sich um einen Treiber für ein virtuelles Blockgerät, weshalb es sich ganz unten im I/O-Stack des Systems befindet.

DRBD kann aus ELRepo oder EPEL installiert werden. Lassen Sie uns mit dem Import des ELRepo-Paket-Signaturschlüssels und dem Aktivieren des Repositories auf beiden Knoten beginnen, wie unten gezeigt.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Dann müssen Sie das DRBD-Kernelmodul und die Dienstprogramme auf beiden Knoten mit folgendem Befehl installieren:

# yum install -y kmod-drbd84 drbd84-utils

Wenn SELinux aktiviert ist, müssen Sie die Richtlinien so anpassen, dass die DRBD-Prozesse nicht von SELinux überwacht werden.

# semanage permissive -a drbd_t

Außerdem, wenn auf Ihrem System eine Firewall (firewalld) läuft, müssen Sie den DRBD-Port 7789 hinzufügen, um die Daten synchronisierung zwischen den beiden Knoten zu erlauben.

Führen Sie diese Befehle für den ersten Knoten aus:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Führen Sie dann diese Befehle für den zweiten Knoten aus:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Schritt 2. Vorbereitung des Low-Level-Speichers

Jetzt, da wir DRBD auf beiden Knoten des Clusters eingerichtet haben, müssen wir Speicherbereiche ähnlicher Größe vorbereiten. Dies kann eine Partition auf der Festplatte (oder eine komplette physische Festplatte), ein Software-RAID-Gerät, ein logisches LVM-Volume oder eine andere Art von Blockgerät in Ihrem System sein.

Für diesen Artikel erstellen wir ein Test-Blockgerät mit einer Größe von 2 GB mit dem Befehl dd.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Angenommen, dies ist eine ungenutzte Partition (/dev/sdb1) auf dem zweiten Blockgerät (/dev/sdb), das mit beiden Knoten verbunden ist.

Schritt 3. DRBD einrichten

Die Hauptkonfigurationsdatei von DRBD ist /etc/drbd.conf, und die zusätzlichen Konfigurationsdateien finden Sie im Verzeichnis /etc/drbd.d.

Um den Speicher zu replizieren, müssen wir die erforderlichen Konfigurationen in die Datei hinzufügen /etc/drbd.d/global_common.conf, die globale und gemeinsame Abschnitte der DRBD-Konfiguration enthält, und wir müssen die Ressourcen in .res Dateien definieren.

Sichern Sie die ursprüngliche Datei auf beiden Knoten, und öffnen Sie dann eine neue Datei zur Bearbeitung (verwenden Sie einen Texteditor Ihrer Wahl).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Fügen Sie beiden Dateien die folgenden Zeilen hinzu:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Speichern Sie die Datei und schließen Sie dann den Editor.

Lassen Sie uns kurz auf die Zeile protocol C eingehen. DRBD unterstützt drei verschiedene Replikationsmodi (d.h. drei Grade der Replikationssynchronisierung), nämlich:

  • protocol A: das Protokoll der asynchronen Replikation; es wird am häufigsten in Szenarien zur Replikation über große Distanzen verwendet.
  • protocol B: das Protokoll der halbsynchronen Replikation oder des synchronen Speichers.
  • protocol C: wird normalerweise für Knoten in Netzwerken mit kurzen Distanzen verwendet; dies ist zweifellos das am häufigsten verwendete Replikationsprotokoll in DRBD-Setups.

Wichtig: Die Wahl des Replikationsprotokolls hat Einfluss auf zwei Bereitstellungsfaktoren: Sicherheit und Latenz. Die Bandbreite hingegen hängt nicht wesentlich vom gewählten Replikationsprotokoll ab.

Schritt 4. Hinzufügen einer Ressource

Eine Ressource ist ein Sammelbegriff, der alle Aspekte eines bestimmten replizierbaren Datensatzes umfasst. Wir werden unsere Ressource in der Datei definieren. /etc/drbd.d/test.res.

Fügen Sie das Folgende in die Datei auf beiden Knoten ein (vergessen Sie nicht, die Variablen durch die tatsächlichen Werte für Ihre Umgebung zu ersetzen).

Achten Sie auf die Namen der Hosts; wir benötigen den Netzwerk-Hostnamen, den Sie mit dem Befehl uname erhalten können. -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

wo:

  • auf Hostnamen: Abschnitt on, zu dem der verschachtelte Konfigurationsoperator gehört.
  • test: dies ist der Name der neuen Ressource.
  • device /dev/drbd0: gibt das neue virtuelle Blockgerät an, das von DRBD verwaltet wird.
  • disk /dev/sdb1: dies ist der Blockgerätespeicher, der das Sicherungsgerät für das DRBD-Gerät darstellt.
  • meta-disk: definiert, wo DRBD seine Metadaten speichert. Internal bedeutet, dass DRBD seine Metadaten auf demselben physischen low-level Gerät speichert, auf dem auch die Produktionsdaten liegen.
  • address: gibt die IP-Adresse und die Portnummer des entsprechenden Knotens an.

Beachten Sie auch, dass, wenn beide Hosts die gleichen Parameterwerte haben, Sie diese direkt im Ressourcenteil angeben können.

Zum Beispiel könnte die obige Konfiguration umstrukturiert werden in:

ressourcentest {
	gerät /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk intern;	
        	on tecmint.tecmint.lan {
 		adresse 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		adresse 192.168.56.102:7789;
        		}
}

Schritt 5. Initialisierung und Start des Ressourcen

Für die Interaktion mit DRBD werden wir folgende Administrationswerkzeuge verwenden (die mit dem Kernelmodul zur Konfiguration und Verwaltung der DRBD-Ressourcen interagieren):

  • drbdadm: hochgradiges Administrationswerkzeug für DRBD.
  • drbdsetup: administratives Werkzeug auf niedrigerer Ebene zum Anschließen von DRBD-Geräten an ihre Backup-Geräte, zur Konfiguration von DRBD-Paaren zur Spiegelung ihrer Backup-Geräte und zur Überprüfung der Konfiguration von laufenden DRBD-Geräten.
  • Drbdmeta: Werkzeug zur Verwaltung von Metadaten.

Nach dem Hinzufügen aller Anfangs-Konfigurationen der Ressource müssen wir die Ressource an beiden Knoten aufrufen.

# drbdadm create-md test

Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.
Initialisierung des Metadaten-Speichers

Anschließend müssen wir es starten, was die Ressource mit ihrem Backup-Gerät verbindet, dann die Replikationsparameter festlegt und die Ressource mit ihrem Peer verbindet:

# drbdadm up test

Jetzt, wenn Sie den Befehl ausführen lsblk, Sie werden feststellen, dass das Gerät/Volume DRBD drbd0 mit dem Backup-Gerät verbunden ist /dev/sdb1:

# lsblk

Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.
Liste der Blockgeräte

Um die Ressource zu deaktivieren, führen Sie folgendes aus:

# drbdadm down test

Um den Status der Ressource zu überprüfen, führen Sie den folgenden Befehl aus (beachten Sie, dass zu diesem Zeitpunkt der Zustand der Laufwerke erwartet wird Inkonsequent/Inkonsequent):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.
Überprüfung des Ressourcenstatus auf u
niveaus

Schritt 6: Festlegen der primären Ressource/Quelle für die initiale Synchronisation der Geräte

Zu diesem Zeitpunkt ist DRBD bereits betriebsbereit. Jetzt müssen wir angeben, welcher Knoten als Quelle für die initiale Synchronisation der Geräte verwendet werden soll.

Führen Sie den folgenden Befehl nur auf einem Knoten aus, um die ursprüngliche vollständige Synchronisation zu starten:

# drbdadm primary --force test
# drbdadm status test

Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.
Festlegen des primären Knotens als Initialgerät
Nach Abschluss der Synchronisation sollten beide Laufwerke den Status UpToDate aufweisen.

Schritt 7: Testen der DRBD-Konfiguration

Zunächst müssen wir überprüfen, ob das DRBD-Gerät wie gewünscht für die Speicherung von replizierten Daten funktioniert. Denken Sie daran, dass wir ein leeres Volume verwendet haben, daher müssen wir ein Dateisystem auf dem Gerät erstellen und es einhängen, um zu testen, ob wir es zur Speicherung der replizierten Daten nutzen können.

Wir müssen ein Dateisystem auf dem Gerät mit dem folgenden Befehl auf dem Knoten erstellen, von dem wir die ursprüngliche vollständige Synchronisation gestartet haben (auf dem der Ressourcenanteil die Hauptrolle spielt):

# mkfs -t ext4 /dev/drbd0

Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.
Erstellen des Dateisystems auf dem Drbd-Volume

Dann montieren Sie es wie gezeigt (Sie können dem Einhängepunkt einen passenden Namen geben):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Jetzt kopieren oder erstellen Sie einige Dateien am oben angegebenen Einhängepunkt und listen Sie diese mit dem Befehl ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.
Auflisten des Inhalts des Haupt-Drbd-Volumes

Entfernen Sie als Nächstes das Gerät (stellen Sie sicher, dass das Einhängen nicht aktiv ist, wechseln Sie das Verzeichnis nach dem Aushängen, um Fehler zu vermeiden) und ändern Sie die Rolle des Knotens von primär auf sekundär:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

Machen Sie einen anderen Knoten (auf dem sich eine Ressource mit sekundärer Rolle befindet) zum primären Knoten, verbinden Sie dann das Gerät damit und führen Sie die lange Liste von Montagepunkten aus. Wenn das Setup ordnungsgemäß funktioniert, sollten alle auf dem Volume gespeicherten Dateien vorhanden sein:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

Wir konfigurieren DRBD zur Speicherung-Replikation auf zwei CentOS 7-Servern.
Überprüfung des DRBD-Setups, das auf dem sekundären Knoten läuft.

Für weitere Informationen konsultieren Sie bitte die Hilfeseiten der Administrationswerkzeuge:

# man drbdadm
# man drbdsetup
# man drbdmeta

Hilfe: Benutzerhandbuch DRBD.

Zusammenfassung

DRBD ist äußerst flexibel und vielseitig, was es zu einer Lösung für die Speicherreplikation macht, die sich für die Hinzufügung von HA in fast jede Anwendung eignet. In diesem Artikel haben wir gezeigt, wie man DRBD unter CentOS 7 installiert und kurz demonstriert, wie es für die Speicherreplikation verwendet wird. Zögern Sie nicht, uns Ihre Gedanken über das unten stehende Feedback-Formular mitzuteilen.

Weitere Informationen zum Kurs erhalten.

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster