So richten Sie DRBD ein, um den Speicher auf zwei CentOs 7 -Servern zu replizieren

So richten Sie DRBD ein, um den Speicher auf zwei CentOs 7 -Servern zu replizieren

Der DRBD (steht für Verteilt repliziertes Blockgerät) ist eine verteilte, flexible und vielseitige replizierte Speicherlösung für Linux. Es spiegelt den Inhalt von Blockgeräten wie Festplatten, Partitionen, logischen Bänden usw. wider. zwischen Servern. Es umfasst eine Kopie von Daten auf zwei Speichergeräten, sodass die Daten auf den anderen verwendet werden können, wenn einer fehlschlägt, verwendet werden.

Sie können es sich als eine Konfiguration von Netzwerk -RAID 1 mit den Disketten vorstellen, die über die Server spiegelt werden. Es arbeitet jedoch ganz anders als RAID- und sogar Netzwerk -RAID.

Ursprünglich, DRBD wurde hauptsächlich in Computerclustern mit hoher Verfügbarkeit (HA) verwendet. Beginnend mit Version 9 kann es zum Bereitstellen von Cloud -Speicherlösungen verwendet werden.

In diesem Artikel werden wir zeigen. Dies ist der perfekte Artikel, um die Verwendung von DRBD unter Linux zu beginnen.

Testumgebung

Für den Zweck dieses Artikels verwenden wir zwei Knotencluster für dieses Setup.

  • Node1: 192.168.56.101 - Tecmint.Tecmint.Lan
  • Node2: 192.168.56.102 - Server1.Tecmint.Lan

Schritt 1: Installieren von DRBD -Paketen

DRBD wird als Linux -Kernel -Modul implementiert. Es bildet genau einen Treiber für ein virtuell.

DRBD kann aus dem installiert werden Elrepo oder Epel Repositorys. Beginnen wir mit dem Importieren des Elrepo -Paket -Signierschlüssels und aktivieren Sie das Repository, wie auf beiden Knoten 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.Keinarch.Drehzahl 

Anschließend können wir das DRBD -Kernel -Modul und die Dienstprogramme auf beiden Knoten installieren, indem wir ausführen:

# yum install -y kmod-drbd84 DRBD84-utils 

Wenn Sie haben Selinux Aktiviert, müssen Sie die Richtlinien ändern, um DRBD -Prozesse von der Selinux -Steuerung auszunehmen.

# Semanage tour.a drbd_t 

Wenn Ihr System über eine Firewall -Aktivierung (Firewalld) verfügt, müssen Sie die hinzufügen, die Sie hinzufügen müssen DRBD Hafen 7789 in der Firewall, um die Synchronisation von Daten zwischen den beiden Knoten zu ermöglichen.

Führen Sie diese Befehle im ersten Knoten aus:

# Firewall-CMD --permanent --add-Rich-RULE = 'Rule Family = "IPv4" Quelladress = "192.168.56.102 "Port Port =" 7789 "Protocol =" TCP "Akzeptieren Sie ' # Firewall-CMD-Reload 

Führen Sie dann diese Befehle auf dem zweiten Knoten aus:

# Firewall-CMD --permanent --add-Rich-RULE = 'Rule Family = "IPv4" Quelladress = "192.168.56.101 "port port =" 7789 "Protocol =" TCP "Akzeptieren Sie ' # Firewall-CMD-Reload 

Schritt 2: Vorbereitung auf niedrigerer Speicher

Jetzt, wo wir haben DRBD An den beiden Clusterknoten installiert, müssen wir auf beiden Knoten einen ungefähren Speicherbereich mit identisch großer Größe vorbereiten. Dies kann eine Festplattenpartition (oder eine vollständige physische Festplatte), ein Software -RAID.

Für den Zweck dieses Artikels erstellen wir ein Dummy -Block -Gerät mit Größe 2GB Verwendung der DD -Befehl.

 # dd if =/dev/null von =/dev/sdb1 bs = 2024k count = 1024 

Wir werden annehmen, dass dies eine nicht verwendete Partition ist (/dev/sdb1) auf einem zweiten Blockgerät (/dev/sdb) an beide Knoten angehängt.

Schritt 3: DRBD konfigurieren

Die Hauptkonfigurationsdatei von DRBD befindet sich unter /etc/drbd.Conf und zusätzliche Konfigurationsdateien finden Sie in der /etc/drbd.D Verzeichnis.

Um den Speicher zu replizieren, müssen wir die erforderlichen Konfigurationen in die hinzufügen /etc/drbd.D/global_common.Conf Datei, die die globalen und gemeinsamen Abschnitte der DRBD -Konfiguration enthält, und wir können Ressourcen in definieren .res Dateien.

Lassen Sie uns eine Sicherung der Originaldatei auf beiden Knoten erstellen und dann eine neue Datei zum Bearbeiten öffnen (verwenden Sie einen Texteditor Ihres Geschmacks).

# MV /etc /drbd.D/global_common.conf /etc /drbd.D/global_common.Conf.orig # vim /etc /drbd.D/global_common.Conf 

Fügen Sie in beiden Dateien die folgenden Zeilen hinzu:

Global Nutzungscount Ja;  Common net Protocol c;  

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

Schatten wir kurz mehr Licht auf der Linie Protokoll c. DRBD unterstützt drei unterschiedliche Replikationsmodi (also drei Grad der Replikationssynchronizität), nämlich:

  • Protokoll a: Asynchrone Replikationsprotokoll; Es wird am häufigsten in Langstreckenreplikationsszenarien verwendet.
  • Protokoll b: Semi-synchrones Replikationsprotokoll aka-Speicher-Synchronprotokoll.
  • Protokoll c: üblicherweise für Knoten in kurzen distanzierten Netzwerken verwendet; Es ist bei weitem das am häufigsten verwendete Replikationsprotokoll in DRBD -Setups.

Wichtig: Die Auswahl des Replikationsprotokolls beeinflusst zwei Faktoren für Ihren Einsatz: Schutz Und Latenz. Und Durchsatz, Im Gegensatz dazu ist weitgehend unabhängig vom ausgewählten Replikationsprotokoll.

Schritt 4: Hinzufügen einer Ressource

A Ressource ist der kollektive Begriff, der sich auf alle Aspekte eines bestimmten replizierten Datensatzes bezieht. Wir werden unsere Ressource in einer Datei namens definieren /etc/drbd.D/Test.res.

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

Beachten Hostnamen, Wir müssen den Netzwerk -Hostnamen angeben, der durch Ausführen des Befehls erhalten werden kann Uname -n.

Ressourcentest auf Tecmint.Tecmint.LAN Device /Dev /DRBD0; Disk /Dev /SDB1; Meta-Scheibeninner; Adresse 192.168.56.101: 7789;  auf Server1.Tecmint.LAN Device /Dev /DRBD0; Disk /Dev /SDB1; Meta-Scheibeninner; Adresse 192.168.56.102: 7789;  

Wo:

  • auf Hostname: In dem Abschnitt heißt.
  • prüfen: ist der Name der neuen Ressource.
  • Gerät /dev /dRBD0: Gibt das neue von DRBD verwaltete neue virtuelle Blockgerät an.
  • Festplatte /Dev /SDB1: Ist die Block -Gerätepartition, die das Backing -Gerät für das DRBD -Gerät ist.
  • Meta-Scheibe: Definiert, wo DRBD seine Metadaten speichert. Die Verwendung interner Mittel bedeutet, dass DRBD seine Meta-Daten auf demselben physischen Gerät mit unterer Ebene wie die tatsächlichen Produktionsdaten speichert.
  • Adresse: Gibt die IP -Adresse und die Portnummer des jeweiligen Knotens an.

Beachten Sie auch, dass Sie diese direkt im Ressourcenabschnitt direkt angeben können, wenn die Optionen gleichwerte Werte auf beiden Hosts haben.

Beispielsweise kann die obige Konfiguration umstrukturiert werden auf:

Ressourcentest Device /Dev /DRBD0; Disk /Dev /SDB1; Meta-Scheibeninner; auf Tecmint.Tecmint.Lan Adresse 192.168.56.101: 7789;  auf Server1.Tecmint.Lan Adresse 192.168.56.102: 7789;  

Schritt 5: Initialisieren und Aktivieren von Ressourcen

Interagieren mit DRBD, Wir werden die folgenden Verwaltungswerkzeuge verwenden, die mit dem Kernel -Modul kommunizieren, um DRBD -Ressourcen zu konfigurieren und zu verwalten:

  • DRBDADM: Ein hochrangiges Verabreichungsinstrument der DRBD.
  • drbdsetup: Ein Tool auf niedrigerer Ebene, um DRBD-Geräte mit ihren Blockblockgeräten anzuhängen, DRBD-Gerätepaare einzustellen.
  • Drbdmeta: Ist das Meta -Datenmanagement -Tool.

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

# DRBDADM CREATE-MD-Test 
Initialisieren Sie die Meta -Datenspeicherung

Als nächstes sollten wir das aktivieren Ressource, Dadurch wird die Ressource mit dem Backing -Gerät angeschlossen, dann Replikationsparameter festgelegt und die Ressource mit dem Peer verbunden:

# DRBDADM UP -Test 

Wenn Sie nun den Befehl LSBLK ausführen, werden Sie feststellen, dass das DRBD -Gerät/das Volumen der DRBD DRBD0 ist mit dem Backing -Gerät verbunden /dev/sdb1:

# LSBLK 
Listen Sie Blockgeräte auf

Um die Ressource zu deaktivieren, rennen Sie:

# DRBDADM Down Test 

Führen Sie den folgenden Befehl aus (beachten Sie, dass die Inkonsistent/inkonsistent Der Festplattenstaat wird zu diesem Zeitpunkt erwartet):

# DRBDADM -Statusstest oder # DRBDSetup -Statusstest --verbose -Statistik # für einen detaillierteren Status 
Überprüfen Sie den Ressourcenstatus auf Knoten

Schritt 6: Setzen Sie primäre Ressourcen/Quelle der anfänglichen Gerätesynchronisation

In diesem Stadium, DRBD ist jetzt bereit für den Betrieb. Wir müssen nun sagen, welcher Knoten als Quelle der anfänglichen Gerätesynchronisation verwendet werden soll.

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

# DRBDADM Primär -Force -Test # DRBDADM -Statusstest 
Stellen Sie den Primärknoten für das Anfangsgerät ein

Sobald die Synchronisation abgeschlossen ist, sollte der Status beider Festplatten sein Auf dem Laufenden.

Schritt 7: Testen des DRBD -Setups

Schließlich müssen wir testen, ob das DRBD -Gerät für replizierte Datenspeicher gut funktioniert. Denken Sie daran, wir haben ein leeres Festplattenvolumen verwendet, deshalb müssen wir ein Dateisystem auf dem Gerät erstellen und montieren, um zu testen, ob wir es für replizierte Datenspeicher verwenden können.

Wir können ein Dateisystem auf dem Gerät mit dem folgenden Befehl erstellen, auf dem Knoten, in dem wir die anfängliche vollständige Synchronisation gestartet haben (die die Ressource mit primärer Rolle spielt):

# MKFS -t ext4 /dev /drbd0 
Erstellen Sie das Dateisystem auf dem DRBD -Volumen

Machen Sie es dann wie gezeigt (Sie können dem Mountspunkt einen entsprechenden Namen geben):

# MKDIR -p/MNT/DRDB_PRI/ # MOUNT/DRBD0/MNT/DRDB_PRI/ 

Kopieren oder erstellen Sie nun einige Dateien im obigen Mountspunkt und führen Sie eine lange Auflistung mit LS -Befehl durch:

# cd/mnt/drdb_pri/ # ls -l 
Listen Sie die Inhalte des DRBD -Primärvolumens auf

Nächste, unmontal Das Gerät (stellen Sie sicher, dass die Halterung nicht geöffnet ist, ändern Sie Verzeichnis primär Zu sekundär:

# Umount/Mnt/DRDB_PRI/ # CD # DRBDADM Sekundärtest 

Machen Sie auf dem anderen Knoten (der die Ressource mit einer sekundären Rolle spielt) primär, dann montieren Sie das Gerät darauf und führen Sie eine lange Auflistung des Mountspunkts durch. Wenn das Setup gut funktioniert, sollten alle in der Lautstärke gespeicherten Dateien vorhanden sein:

# DRBDADM Primärtest # MKDIR -p/MNT/DRDB_SEC/ # MOUNT/DRBD0/MNT/DRDB_SEC/ # CD/MNT/DRDB_SEC/ # LS -L -l 
Testen Sie das DRBD -Setup, der am Sekundärknoten arbeitet

Weitere Informationen finden Sie auf den Man -Seiten der Benutzerraumverwaltungs -Tools:

# Mann DRBDADM # MAN DRBDSETUP # MAN DRBDMETA 

Referenz: Die DRBD -Benutzerhandbuch.

Zusammenfassung

DRBD ist äußerst flexibel und vielseitig, was es zu einer Speicherreplikationslösung macht, die zum Hinzufügen von HA zu nahezu jeder Anwendung geeignet ist. In diesem Artikel haben wir gezeigt, wie man installiert DRBD In Centos 7 und kurz demonstriert, wie man es verwendet, um den Speicher zu replizieren. Fühlen Sie sich frei, Ihre Gedanken über das Feedback -Formular unten mitzuteilen.