Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern

Die Übersetzung des Artikels wurde am Vorabend des Kursbeginns erstellt Linux-Administrator. Virtualisierung und Clustering».

DRBD (Distributed Replicated Block Device) ist eine verteilte, flexible und universell replizierbare Speicherlösung für Linux. Es spiegelt den Inhalt von Blockgeräten wie Festplatten, Partitionen, logischen Volumes usw. wider. zwischen Servern. Es erstellt Kopien der Daten auf zwei Speichergeräten, sodass bei Ausfall eines von ihnen die Daten auf dem zweiten verwendet werden können.

Man könnte sagen, es ist so etwas wie Netzwerk-RAID-Konfiguration 1 mit Festplatten, die verschiedenen Servern zugeordnet sind. Allerdings funktioniert es völlig anders als RAID (sogar Netzwerk-RAID).

Ursprünglich wurde DRBD hauptsächlich in Computerclustern mit hoher Verfügbarkeit (HA) eingesetzt, ab Version XNUMX kann es jedoch für die Bereitstellung von Cloud-Speicherlösungen verwendet werden.

In diesem Artikel erklären wir, wie man DRBD auf CentOS installiert und zeigen kurz, wie man damit Speicher (Partition) auf zwei Servern repliziert. Dies ist der perfekte Artikel für den Einstieg in DRBD unter Linux.

Test Umgebung

Für dieses Setup verwenden wir einen Zwei-Knoten-Cluster.

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

Schritt 1: DRBD-Pakete installieren

DRBD ist als Linux-Kernelmodul implementiert. Da es sich um einen Treiber für ein virtuelles Blockgerät handelt, befindet es sich ganz unten im E/A-Stack des Systems.

DRBD kann über ELRepo oder EPEL installiert werden. Beginnen wir mit dem Importieren des Signaturschlüssels des ELRepo-Pakets und dem Verbinden des Repositorys auf beiden Knoten, 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

Anschließend müssen Sie das DRBD-Kernelmodul und die Dienstprogramme auf beiden Knoten installieren, indem Sie Folgendes verwenden:

# yum install -y kmod-drbd84 drbd84-utils

Wenn Sie SELinux aktiviert haben, müssen Sie Richtlinien konfigurieren, um DRBD-Prozesse von der SELinux-Kontrolle auszunehmen.

# semanage permissive -a drbd_t

Wenn auf Ihrem System außerdem eine Firewall (firewalld) läuft, müssen Sie den DRBD-Port 7789 hinzufügen, um die Datensynchronisierung zwischen den beiden Knoten zu ermöglichen.

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: Low-Level-Speicher vorbereiten

Nachdem wir DRBD nun auf beiden Cluster-Knoten installiert haben, müssen wir auf ihnen etwa gleich große Speicherbereiche bereitstellen. Dies kann eine Festplattenpartition (oder eine ganze physische Festplatte), ein Software-RAID-Gerät oder Logisches LVM-Volume oder jede andere Art von Blockgerät, das auf Ihrem System gefunden wird.

Für diesen Artikel erstellen wir mit dem Befehl dd ein 2-GB-Testblockgerät.

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

Nehmen wir an, dass es sich um eine ungenutzte Partition (/dev/sdb1) auf einem zweiten Blockgerät (/dev/sdb) handelt, das mit beiden Knoten verbunden ist.

Schritt 3. DRBD konfigurieren

DRBD-Hauptkonfigurationsdatei − /etc/drbd.conf, und weitere Konfigurationsdateien finden Sie im Verzeichnis /etc/drbd.d.

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

Erstellen wir auf beiden Knoten eine Sicherungskopie der Originaldatei und öffnen wir dann die neue Datei zum Bearbeiten (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.

Schauen wir uns kurz die Protokoll-C-Zeile an. DRBD unterstützt drei verschiedene Replikationsmodi (d. h. drei Grade der Replikationssynchronität), nämlich:

  • Protokoll A: asynchrones Replikationsprotokoll; Wird am häufigsten in Replikationsszenarien über große Entfernungen verwendet.
  • Protokoll B: Halbsynchrones Replikationsprotokoll oder synchrones Speicherprotokoll.
  • Protokoll C: wird normalerweise für Knoten in Netzwerken mit kurzen Entfernungen verwendet; Dies ist bei weitem das am häufigsten verwendete Replikationsprotokoll in DRBD-Einstellungen.

Es ist wichtig,: Die Wahl des Replikationsprotokolls beeinflusst zwei Bereitstellungsfaktoren: Sicherheit und Latenz. Der Durchsatz hingegen hängt nicht wesentlich vom gewählten Replikationsprotokoll ab.

Schritt 4: Fügen Sie eine Ressource hinzu

Ressource ist ein Überbegriff, der sich auf alle Aspekte eines bestimmten replizierten Datensatzes bezieht. Wir werden unsere Ressource in der Datei definieren /etc/drbd.d/test.res.

Fügen Sie der Datei auf beiden Knoten Folgendes hinzu (denken Sie daran, die Variablen durch die tatsächlichen Werte für Ihre Umgebung zu ersetzen).

Achten Sie auf die Hostnamen. Wir müssen den Netzwerk-Hostnamen angeben, der mit dem Befehl uname abgerufen werden kann -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 Hostname: Der On-Abschnitt, für den die verschachtelte Konfigurationsanweisung gilt.
  • Test: Dies ist der Name der neuen Ressource.
  • Gerät /dev/drbd0: Zeigt ein neues virtuelles Blockgerät an, das von DRBD verwaltet wird.
  • Festplatte /dev/sdb1: Dies ist eine Blockgerätepartition, die ein Sicherungsgerät für das DRBD-Gerät ist.
  • Meta-Disk: Definiert, wo DRBD seine Metadaten speichert. Intern bedeutet, dass DRBD seine Metadaten auf demselben physischen Low-Level-Gerät speichert wie die tatsächlichen Daten in der Produktion.
  • Adresse: Gibt die IP-Adresse und Portnummer des entsprechenden Knotens an.

Beachten Sie außerdem, dass Sie, wenn die Parameter auf beiden Hosts die gleichen Werte haben, diese direkt im Abschnitt „Ressourcen“ angeben können.

Die obige Konfiguration könnte beispielsweise wie folgt umstrukturiert werden:

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

Schritt 5: Initialisieren und starten Sie die Ressource

Für die Interaktion mit DRBD verwenden wir die folgenden Verwaltungstools (die mit dem Kernelmodul interagieren, um DRBD-Ressourcen zu konfigurieren und zu verwalten):

  • drbdadm: DRBD-Administrationstool auf hoher Ebene.
  • drbdsetup: Ein Verwaltungstool auf niedrigerer Ebene zum Verbinden von DRBD-Geräten mit ihren Backup-Geräten, zum Konfigurieren von DRBD-Gerätepaaren, um ihre Backup-Geräte widerzuspiegeln, und zum Überprüfen der Konfiguration laufender DRBD-Geräte.
  • Drbdmeta: Metadaten-Management-Tool.

Nachdem wir alle anfänglichen Ressourcenkonfigurationen hinzugefügt haben, müssen wir die Ressource auf beiden Knoten aufrufen.

# drbdadm create-md test

Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern
Initialisieren des Metadatenspeichers

Als nächstes müssen wir es ausführen, wodurch die Ressource mit ihrem Backup-Gerät verbunden wird, dann die Replikationsparameter festgelegt und die Ressource mit ihrem Peer verbunden wird:

# drbdadm up test

Wenn Sie nun den Befehl ausführen lsblk, werden Sie feststellen, dass das DRBD-Gerät/Volume drbd0 mit dem Sicherungsgerät verknüpft ist /dev/sdb1:

# lsblk

Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern
Liste der Blockgeräte

Um eine Ressource zu deaktivieren, führen Sie Folgendes aus:

# drbdadm down test

Um den Status einer Ressource zu überprüfen, führen Sie den folgenden Befehl aus (beachten Sie, dass zu diesem Zeitpunkt der Status der Festplatten erwartet wird). Inkonsistent/Inkonsistent):

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

Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern
Überprüfen des Status einer Ressource auf
teuflisch

Schritt 6: Legen Sie die Synchronisierungsquelle für die primäre Ressource/das anfängliche Gerät fest

Zu diesem Zeitpunkt ist DRBD einsatzbereit. Jetzt müssen wir angeben, welcher Knoten als Quelle für die anfängliche Gerätesynchronisierung verwendet werden soll.

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

# drbdadm primary --force test
# drbdadm status test

Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern
Festlegen des Primärknotens als anfängliches Gerät
Sobald die Synchronisierung abgeschlossen ist, sollte der Status beider Laufwerke UpToDate sein.

Schritt 7: Testen des DRBD-Setups

Abschließend müssen wir prüfen, ob das DRBD-Gerät wie erforderlich zum Speichern der replizierten Daten funktioniert. Denken Sie daran, dass wir ein leeres Festplattenvolume verwendet haben. Daher müssen wir ein Dateisystem auf dem Gerät erstellen und es mounten, um zu prüfen, ob wir es zum Speichern replizierter Daten verwenden können.

Wir müssen ein Dateisystem auf dem Gerät erstellen, indem wir den folgenden Befehl auf dem Knoten verwenden, auf dem wir die erste vollständige Synchronisierung gestartet haben (der über die Ressource mit der primären Rolle verfügt):

# mkfs -t ext4 /dev/drbd0

Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern
Erstellen eines Dateisystems auf dem Drbd-Volume

Mounten Sie es dann wie gezeigt (Sie können dem Mount-Punkt einen passenden Namen geben):

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

Kopieren oder erstellen Sie nun einige Dateien im oben genannten Mount-Punkt und erstellen Sie eine lange Liste mit ls-Befehle:

# cd /mnt/DRDB_PRI/
# ls -l 

Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern
Listen Sie den Inhalt des Haupt-Drbd-Volumes auf

Hängen Sie als Nächstes das Gerät aus (stellen Sie sicher, dass der Mount nicht geöffnet ist, ändern Sie das Verzeichnis nach dem Aufheben der Bereitstellung, um Fehler zu vermeiden) und ändern Sie die Knotenrolle von primär in sekundär:

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

Machen Sie den anderen Knoten (der über eine Ressource mit sekundärer Rolle verfügt) zum primären Knoten, schließen Sie dann ein Gerät daran an und geben Sie eine lange Liste von Bereitstellungspunkten aus. Wenn das Setup einwandfrei 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 

Einrichten von DRBD für die Speicherreplikation auf zwei CentOS 7-Servern
Überprüfen des DRBD-Setups, das auf dem sekundären Knoten ausgeführt wird.

Weitere Informationen finden Sie auf den Hilfeseiten der Verwaltungstools:

# man drbdadm
# man drbdsetup
# man drbdmeta

Information: DRBD-Benutzerhandbuch.

Zusammenfassung

DRBD ist äußerst flexibel und vielseitig, was es zu einer Speicherreplikationslösung macht, die sich zum Hinzufügen von HA zu fast jeder Anwendung eignet. In diesem Artikel haben wir gezeigt, wie man DRBD unter CentOS 7 installiert und kurz gezeigt, wie man es für die Speicherreplikation verwendet. Teilen Sie uns gerne Ihre Gedanken über das unten stehende Feedback-Formular mit.

Erfahren Sie mehr über den Kurs.

Source: habr.com

Kommentar hinzufügen