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

Das DRBD (steht für Verteiltes 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 Volumes usw. zwischen Servern wider. Es handelt sich um eine Kopie der Daten auf zwei Speichergeräten, sodass bei einem Ausfall die Daten auf dem anderen verwendet werden können.

Sie können sich das wie eine Netzwerk-RAID-1-Konfiguration vorstellen, bei der die Festplatten über die Server gespiegelt sind. Es funktioniert jedoch ganz anders als RAID und sogar Netzwerk-RAID.

Ursprünglich, DRBD wurde hauptsächlich in Hochverfügbarkeits-Computerclustern (HA) verwendet. Ab Version 9 können jedoch Cloud-Speicherlösungen bereitgestellt werden.

In diesem Artikel zeigen wir, wie DRBD in CentOS installiert wird, und zeigen kurz, wie es zum Replizieren von Speicher (Partition) auf zwei Servern verwendet wird. Dies ist der perfekte Artikel, um mit der Verwendung von DRBD unter Linux zu beginnen.

Testumgebung

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

  • Knoten1: 192.168.56.101 – tecmint.tecmint.lan
  • Knoten2: 192.168.56.102 – server1.tecmint.lan

Schritt 1: Installieren von DRBD-Paketen


DRBD ist als Linux-Kernelmodul implementiert. Es stellt genau einen Treiber für ein virtuelles Blockgerät dar und wird daher direkt am unteren Rand des E / A-Stapels eines Systems eingerichtet.

DRBD kann von der installiert werden ELRepo oder EPEL Repositories. Beginnen wir mit dem Importieren des ELRepo-Paketsignaturschlüssels und aktivieren 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.noarch.rpm

Dann können wir das DRBD-Kernelmodul und die Dienstprogramme auf beiden Knoten installieren, indem wir Folgendes ausführen:

# yum install -y kmod-drbd84 drbd84-utils

Wenn Sie haben SELinux Wenn diese Option aktiviert ist, müssen Sie die Richtlinien ändern, um DRBD-Prozesse von der SELinux-Steuerung auszunehmen.

# semanage permissive -a drbd_t

Wenn auf Ihrem System eine Firewall aktiviert ist (firewalld), müssen Sie außerdem die hinzufügen DRBD Hafen 7789 in der Firewall, um die Synchronisation von Daten zwischen den beiden Knoten zu ermöglichen.

Führen Sie diese Befehle auf dem 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 auf dem 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: Vorbereiten des Speichers auf niedrigerer Ebene

Jetzt wo wir haben DRBD Auf den beiden Clusterknoten installiert, müssen wir auf beiden Knoten einen ungefähr gleich großen Speicherbereich vorbereiten. Dies kann eine Festplattenpartition (oder eine vollständige physische Festplatte), ein Software-RAID-Gerät, ein logisches LVM-Volume oder ein anderer Blockgerätetyp auf Ihrem System sein.

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

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

Wir gehen davon aus, dass dies eine nicht verwendete Partition ist (/ dev / sdb1) auf einem zweiten Blockgerät (/ dev / sdb) an beide Knoten angeschlossen.

Schritt 3: DRBD konfigurieren

Die Hauptkonfigurationsdatei von DRBD befindet sich unter /etc/drbd.conf Weitere Konfigurationsdateien finden Sie in der /etc/drbd.d Verzeichnis.

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

Lassen Sie uns eine Sicherungskopie der Originaldatei auf beiden Knoten erstellen und dann eine neue Datei zum Bearbeiten öffnen (verwenden Sie einen Texteditor nach Ihren Wünschen).

# 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 {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

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

Lassen Sie uns kurz mehr Licht auf die Linie schattieren Protokoll C.. DRBD unterstützt drei verschiedene Replikationsmodi (also drei Grade der Replikationssynchronität):

  • Protokoll A.: Asynchrones Replikationsprotokoll; Es wird am häufigsten in Fernreplikationsszenarien verwendet.
  • Protokoll B.: Semisynchrones Replikationsprotokoll, auch bekannt als Speichersynchrones Protokoll.
  • Protokoll C.: Wird häufig für Knoten in kurzreichweitigen Netzwerken verwendet. Es ist bei weitem das am häufigsten verwendete Replikationsprotokoll in DRBD-Setups.

Wichtig: Die Auswahl des Replikationsprotokolls beeinflusst zwei Faktoren Ihrer Bereitstellung: Schutz und Latenz. Und Durchsatzist dagegen weitgehend unabhängig vom gewählten Replikationsprotokoll.

Schritt 4: Hinzufügen einer Ressource

EIN Ressource ist der Sammelbegriff, 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 auf beiden Knoten den folgenden Inhalt hinzu (denken Sie daran, die Variablen im Inhalt durch die tatsächlichen Werte für Ihre Umgebung zu ersetzen).

Beachten Sie die Hostnamenmüssen wir den Netzwerk-Hostnamen angeben, der durch Ausführen des Befehls abgerufen werden kann uname -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 Abschnitt on gibt an, für welche die beiliegenden Konfigurationsanweisungen gelten.
  • Prüfung: ist der Name der neuen Ressource.
  • Gerät / dev / drbd0: Gibt das neue virtuelle Blockgerät an, das von DRBD verwaltet wird.
  • disk / dev / sdb1: ist die Blockgerätepartition, die das Sicherungsgerät für das DRBD-Gerät ist.
  • Meta-Disk: Definiert, wo DRBD seine Metadaten speichert. Die Verwendung von Intern bedeutet, dass DRBD seine Metadaten auf demselben physischen Gerät auf niedrigerer Ebene wie die tatsächlichen Produktionsdaten speichert.
  • Adresse: Gibt die IP-Adresse und die Portnummer des jeweiligen Knotens an.

Beachten Sie außerdem, dass Sie die Optionen direkt im Ressourcenabschnitt angeben können, wenn sie auf beiden Hosts gleiche Werte haben.

Zum Beispiel kann die obige Konfiguration umstrukturiert werden in:

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 Aktivieren der Ressource

Mit etwas interagieren DRBDWir werden die folgenden Verwaltungstools verwenden, die mit dem Kernelmodul kommunizieren, um DRBD-Ressourcen zu konfigurieren und zu verwalten:

  • drbdadm: ein hochrangiges Verwaltungstool der DRBD.
  • drbdsetup: Ein untergeordnetes Verwaltungstool zum Anschließen von DRBD-Geräten an ihre Backing-Block-Geräte, zum Einrichten von DRBD-Gerätepaaren zum Spiegeln ihrer Backing-Block-Geräte und zum Überprüfen der Konfiguration laufender DRBD-Geräte.
  • Drbdmeta: ist das Metadaten-Management-Tool.

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

# drbdadm create-md test
Initialisieren Sie den Metadatenspeicher
Initialisieren Sie den Metadatenspeicher

Als nächstes sollten wir das aktivieren Ressource, der die Ressource mit seinem Sicherungsgerät verbindet, dann Replikationsparameter festlegt und die Ressource mit ihrem Peer verbindet:

# drbdadm up test

Wenn Sie nun den Befehl lsblk ausführen, werden Sie feststellen, dass das DRBD-Gerät / Volume drbd0 ist dem Trägergerät zugeordnet / dev / sdb1::

# lsblk
Blockgeräte auflisten
Blockgeräte auflisten

Führen Sie Folgendes aus, um die Ressource zu deaktivieren:

# drbdadm down test

Führen Sie den folgenden Befehl aus, um den Ressourcenstatus zu überprüfen (beachten Sie, dass die Inkonsistent / inkonsistent Festplattenstatus wird an dieser Stelle erwartet):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics  #for  a more detailed status 
Überprüfen Sie den Ressourcenstatus auf Knoten
Überprüfen Sie den Ressourcenstatus auf Knoten

Schritt 6: Festlegen der primären Ressource / Quelle der anfänglichen Gerätesynchronisierung

In diesem Stadium, DRBD ist jetzt betriebsbereit. Wir müssen ihm jetzt mitteilen, welcher Knoten als Quelle für die anfängliche Gerätesynchronisation verwendet werden soll.

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

# drbdadm primary --force test
# drbdadm status test
Legen Sie den Primärknoten für das Erstgerät fest
Legen Sie den Primärknoten für das Erstgerät fest

Sobald die Synchronisierung abgeschlossen ist, sollte der Status beider Festplatten lauten Auf dem neuesten Stand.

Schritt 7: Testen des DRBD-Setups

Schließlich müssen wir testen, ob das DRBD-Gerät für die replizierte Datenspeicherung gut funktioniert. Denken Sie daran, dass wir ein leeres Datenträger-Volume verwendet haben. Daher müssen wir ein Dateisystem auf dem Gerät erstellen und es bereitstellen, um zu testen, ob wir es für die replizierte Datenspeicherung verwenden können.

Wir können ein Dateisystem auf dem Gerät mit dem folgenden Befehl auf dem Knoten erstellen, auf dem wir die anfängliche vollständige Synchronisierung gestartet haben (der die Ressource mit der primären Rolle enthält):

# mkfs -t ext4 /dev/drbd0 
Dateisystem auf Drbd-Volume erstellen
Dateisystem auf Drbd-Volume erstellen

Montieren Sie es dann wie gezeigt (Sie können dem Einhängepunkt einen geeigneten Namen geben):

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

Kopieren oder erstellen Sie nun einige Dateien am obigen Einhängepunkt und führen Sie mit dem Befehl ls eine lange Liste durch:

# cd /mnt/DRDB_PRI/
# ls -l 
Listen Sie den Inhalt des Drbd-Primärvolumes auf
Listen Sie den Inhalt des Drbd-Primärvolumes auf

Nächster, abmontieren das Gerät (stellen Sie sicher, dass der Mount nicht geöffnet ist, ändern Sie das Verzeichnis nach dem Aushängen, um Fehler zu vermeiden) und ändern Sie die Rolle des Knotens von primär zu sekundär::

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

Machen Sie es auf dem anderen Knoten (der die Ressource mit einer sekundären Rolle hat) primär, mounten Sie das Gerät darauf und führen Sie eine lange Liste des Mount-Punkts durch. 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 
Testen Sie das DRBD-Setup auf dem Sekundärknoten
Testen Sie das DRBD-Setup auf dem Sekundärknoten

Weitere Informationen finden Sie in den Manpages der Tools zur Verwaltung des Benutzerbereichs:

# man drbdadm
# man drbdsetup
# man drbdmeta

Referenz:: Das 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 im CentOS 7 und zeigte kurz, wie man es verwendet, um Speicher zu replizieren. Teilen Sie uns Ihre Gedanken über das unten stehende Feedback-Formular mit.

Similar Posts

Leave a Reply

Your email address will not be published.