GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie DRBD unter CentOS Linux

Was ist DRBD?

DRBD (Distributed Replicated Block Device) ist ein Softwarepaket für Linux-basierte Systeme. Es wird verwendet, um die Speichergeräte von einem Knoten zum anderen Knoten über ein Netzwerk zu replizieren.

Es kann Unterstützung beim Umgang mit Disaster Recovery und Failovers bieten. DRBD kann als Hochverfügbarkeit für Hardware verstanden werden und kann als Ersatz für gemeinsam genutzten Netzwerkspeicher angesehen werden.

Wie funktioniert DRBD?

Angenommen, wir möchten eine Speicherpartition auf zwei CentOS-Systemen clustern, benötigen wir auf beiden Systemen ein Blockgerät (wie /dev/sdb1). Diese Systeme sind als Primärknoten und Sekundärknoten definiert (können zwischen Primär- und Sekundärknoten wechseln).

DRBD verwendet ein virtuelles Blockgerät (wie drbd0), um die /dev/sdb1-Blockgeräte beider Systeme gemeinsam zu nutzen. Der primäre Knoten ist derjenige, auf dem das virtuelle Laufwerk drbd0 zu Lese-/Schreibzwecken bereitgestellt wird.

Zuerst müssen wir DRBD-Pakete installieren, die zum Erstellen einer virtuellen Festplatte drbd0 verwendet werden. Wir können es als xfs- oder ext3-Dateisystem formatieren, um das /dev/drbd0-Gerät zu verwenden. Das drbd0-Gerät ist so konfiguriert, dass es /dev/sdb1-Blockgeräte auf beiden Systemen verwendet. Wir arbeiten jetzt nur noch auf dem drbd0-Gerät.

Da drbd0 nur auf dem primären Knoten gemountet werden kann, wird auf den Inhalt jeweils nur vom primären Knoten zugegriffen. Wenn das primäre System abstürzt, können wir auf jeden Fall die Systemdateien verlieren, aber das virtuelle Gerät drbd0 wird verfügbar sein. Wir können den ursprünglich sekundären Knoten in einen primären umschalten und wieder auf seine Inhalte zugreifen.

DRBD unter CentOS verwenden

Dieses Tutorial wurde unter CentOS 7 durchgeführt, sollte aber auch für andere CentOS-Versionen funktionieren. Lesen Sie dies, um zu erfahren, wie Sie die CentOS-Version überprüfen.

Anforderungen

  • Zwei CentOS-installiertes System
  • Ein kostenloses Blockgerät wie /dev/sdb1 auf beiden Systemen (vorzugsweise gleich groß)
  • Selinux Permissiv oder deaktiviert
  • Port 7788 auf Firewall erlaubt
  • Knoten müssen sich im selben Netzwerk befinden.

Installation

Hier folgen wir der Installation, indem wir das Epel-Repository hinzufügen, da drbd-Pakete bei CentOS-Distributionen nicht verfügbar sind.

$ rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Fügen Sie auch den GPG-Schlüssel auf beiden Knoten hinzu. GPG-Schlüssel ist der öffentliche Schlüssel, der verwendet wird, um die Kommunikation zwischen Knoten zu verschlüsseln.

$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

Jetzt können wir yum verwenden, um drbd-Pakete zu installieren. Wir müssen die von unserem Kernel unterstützten drbd-Versionen identifizieren. Überprüfen Sie die für Ihren Kernel verfügbaren drbd-Versionen:

$ yum info *drbd* | grep Name

Die Ausgabe ist wie folgt:

Installieren Sie nun die erforderliche Version von drbd zusammen mit den erforderlichen Kernelmodulen.

$ yum -y install drbd84-utils kmod-drbd84

Überprüfen Sie, ob das Kernelmodul geladen ist oder nicht.

$ lsmod | grep -i drbd

Wenn die Antwort des obigen Befehls eine leere Ausgabe ergibt, werden Kernelmodule nicht geladen. Sie müssen das System neu starten und Folgendes versuchen:

$ modprobe drbd

modprobe ist ein Befehl, der auf intelligente Weise Module zum Linux-Kernel hinzufügt oder entfernt. Damit die Module bei jedem Start geladen werden, systemd-modules-load Dienst verwendet wird. Erstellen Sie also eine Datei namens drbd.conf  innerhalb von /etc/modulesload.d.

$ echo drbd > /etc/modules-load.d/drbd.conf

DRBD konfigurieren

DRBD-Konfigurationsdateien befinden sich unter /etc/drbd.d/

Standardmäßig ist /etc/drbd.d/global_common.conf  global verfügbar und enthält die globalen oder Hauptkonfigurationen. Andere Konfigurationsdateien werden Ressourcendateien mit der Erweiterung *.res genannt.

Jetzt erstellen wir die Ressourcenkonfigurationsdateien auf beiden Knoten, um drbd für unsere angegebenen Blockgeräte zu verwenden.

Lassen Sie uns die Ressourcendatei namens linuxhandbook.res

erstellen
$ vi /etc/drbd.d/linuxhandbook.res

Kopieren Sie den folgenden Inhalt und fügen Sie ihn in die Ressourcendatei ein

resource linuxhandbook {
protocol C;          
on node1 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.14:7788;
                meta-disk internal;
                }
on node2 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.15:7788;
                meta-disk internal;
                }
} 

Hier,

  • linuxhandbook ist der Ressourcenname. Ressourcennamen müssen immer eindeutig sein.
  • Protokoll C wird für die synchrone Kommunikation verwendet. Es ist ein vollständig synchrones Replikationsprotokoll. Andere verfügbare Protokolle sind Protokoll A und Protokoll B.
  1. Protokoll A :Asynchrones Replikationsprotokoll. Im Allgemeinen bevorzugt für Knoten in weit entfernten Netzwerken.
  2. Protokoll B :Halbsynchrones Replikationsprotokoll. Wird auch als speichersynchrones Protokoll bezeichnet.
  3. Protokoll C :bevorzugt für Knoten in Netzwerken mit kurzer Distanz.
  • Knoten 1 und Knoten2 sind die Hostnamen einzelner Knoten. Nur verwenden, um die Blöcke zu identifizieren.
  • Gerät /dev/drbd0 ist das logische Gerät, das zur Verwendung als Gerät erstellt wurde.
  • Festplatte /dev/sdb1 ist das physische Blockgerät, das drbd0 belegt.
  • Adresse 10.20.222.14:7788 und Adresse 10.20.222.15:7788 sind die IP-Adressen von zwei jeweiligen Knoten mit offenem TCP-Port 7788.
  • meta-internal disk wird verwendet, um festzulegen, dass interne Metadaten der Festplatte verwendet werden sollen.

Die Konfiguration muss auf beiden Knoten gleich sein.

Jetzt müssen wir den Metadatenspeicher auf jedem Knoten initialisieren:

$ drbdadm create-md linuxhandbook

Wenn dies eine Fehlermeldung ausgibt, müssen Sie manuell eine Dummy-Datendatei erstellen und danach den obigen Befehl versuchen.

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

Der Befehl dd wird verwendet, um eine zufällige Datei mit dem angegebenen Speicher zu erstellen. Der Befehl create-md muss danach erfolgreich sein.

Nachdem das logische Gerät verwendbar gemacht wurde, hängen Sie das drbd0-Gerät an die sdb1-Festplatte auf beiden Knoten an. Siehe die Ausgabe von lsblk

$ lsblk

die Ausgabe sollte so aussehen

Wenn nicht, hängen Sie das drbd0-Gerät über die Ressourcendatei an die sdb1-Festplatte an.

$ drbdadm attach linuxhandbook
or
$ drbdadm up linuxhandbook

Once again try,
$ lsblk

Starten und aktivieren Sie den drbd-Dienst auf beiden Knoten.

$ systemctl start drbd
$ systemctl enable drbd

Wenn der drbd-Start für einen Knoten schnell sein kann und einige Zeit für einen anderen Knoten benötigt .

Primäre und sekundäre Knoten einrichten

DRDB verwendet jeweils nur einen Knoten als primären Knoten, auf dem Lese- und Schreibvorgänge durchgeführt werden können.

Wir werden zunächst Knoten 1 als primären Knoten angeben.

$ drbdadm primary linuxhandbook --force

Überprüfen Sie den Status des drbd-Prozesses:

$ cat /proc/drbd 
or 
$ drbd-overview

Die Ausgabe sieht folgendermaßen aus:

Hier sind die Informationen, die wir erhalten können:

  • Derzeit welcher Knoten primär und welcher sekundär ist.
  • der Datensynchronisierungsprozess.
  • drbd-Gerätestatus wie:Inkonsistent, aktuell, datenträgerlos.

Ein weiterer Knoten, Knoten 2, wird automatisch als sekundärer Knoten festgelegt. Sehen Sie sich den Prozessstatus der drbd-Übersicht an.

Der wichtigste Schritt, den wir noch nicht durchgeführt haben, ist das Formatieren des drbd0-Geräts. Dies kann nur auf einem der Knoten erfolgen.

Hier formatieren wir drbd0 als ext3 mit dem Befehl mkfs. xfs-Dateisystem funktioniert auch. Es ist besser, den gleichen Festplattentyp wie in /dev/sdb1 zu verwenden.

$ mkfs -t ext3 /dev/drbd0

Jetzt müssen wir wieder am primären Knoten (in diesem Tutorial zum Beispiel Knoten1) das drbd0-Gerät mounten, um daran arbeiten zu können.

$ mount /dev/drbd0  /mnt 

you can select your required mount point instead of /mnt. for example, I can mount the /dev/drbd0 device to /var/lib/mysql to use it for mysql database drbd.

HINWEIS :Denken Sie immer an den Prozess. Zuerst sollten Sie den Knoten als primär für DRBD festlegen. Und dann mounten Sie das drbd0-Gerät auf Ihrem System und Sie dürfen Aktionen auf dem Gerät ausführen. Ohne den Knoten als primär zu machen, können Sie das drb0-Gerät nicht mounten und den Inhalt dieses Geräts nicht verwenden.

DRBD-Prozess testen

Nachdem drbd auf beiden Knoten eingerichtet wurde, wird ein Knoten zum primären Knoten gemacht. Wir haben das Gerät am Standort /mnt gemountet. Erstellen Sie nun eine Datei, um die Synchronisierung von drbd-Knoten zu testen.

$ touch  /mnt/drbdtest.txt
$ ll /mnt/

Danach setzen wir node1 als sekundären und node2 als primären. Der Prozess wird ähnlich gespiegelt. Unmounten Sie auf Knoten 1 (bei Instanz primärer Knoten) das /dev/drbd0-Gerät, machen Sie es sekundär. Machen Sie bei node2 (bei der Instanz sekundärer Knoten) ihn zum primären Knoten und montieren Sie ihn an der erforderlichen Position.

bei Knoten 1:

$ umount  /mnt
$ drbdadm secondary linuxhandbook

bei Knoten 2:

$ drbdadm primary linuxhandbook
$ mount /dev/drbd0  /mnt

Überprüfen Sie nach dem erfolgreichen Mounten auf Knoten2 die Dateien im Ordner /mnt. Sie müssen die Datei drbdtest.txt sehen (erstellt auf node1).

$ ll  /mnt/

Wenn Sie eine GUI-Schnittstelle zum Verwalten und Visualisieren von drbd-Clusterknoten haben möchten, können Sie LCMC (Linux Cluster Management Console) verwenden.

Das ist es! Sie haben DRBD erfolgreich auf Ihrem System implementiert. Wenn noch Fragen offen sind, können Sie diese unten im Kommentarbereich auskommentieren.

Autor :Rishi Raj Gautam ist ein Linux-Liebhaber und ein Open-Source-Aktivist.


Linux
  1. So debootstrap auf CentOS Linux

  2. So installieren Sie Erlang auf Rocky Linux/Alma Linux/CentOS 8

  3. So installieren Sie Ansible unter CentOS 8 Linux

  4. So installieren Sie PHP 8 unter CentOS 8 Linux

  5. So installieren Sie den Linux-Kernel 5.0 unter CentOS 7

So installieren Sie R unter CentOS 7

So installieren Sie R unter CentOS 8

So installieren Sie Webmin unter CentOS Linux

So installieren Sie JIRA unter CentOS 8 Linux

So aktualisieren Sie CentOS 7 auf CentOS 8 Linux

So installieren Sie Java 14 unter Linux, Ubuntu, CentOS