DRBD Konfiguration · 4 min read · Jan 28, 2026
Beispielkonfiguration von DRBD auf CentOS 4.5
Beispielkonfiguration von DRBD auf CentOS 4.5
Was ist DRBD?
DRBD ist eine Abkürzung für Distributed Replicated Block Device. DRBD ist ein Blockgerät, das entwickelt wurde, um Hochverfügbarkeitscluster zu erstellen. Dies geschieht durch das Spiegeln eines gesamten Blockgeräts über ein (dediziertes) Netzwerk. Man könnte es als ein Netzwerk-RAID1 betrachten.
Vorbereitungsanforderungen:
Ich habe zwei Knoten mit den folgenden Systemeinstellungen verwendet:
- cnode1.rnd (Hostname) mit der IP-Adresse 172.16.4.80. Betriebssystem CentOS 4.5, zwei SCSI-Festplatten mit 18 GB. Bezüglich der Partition habe ich das folgende Schema auf cnode1.rnd verwendet: /dev/sda1 / 13257MB ext3 primär /dev/sda2 4095MB swap primär /dev/sdb1 unmounted 128MB ext3 primär (für DRBD-Metadaten) /dev/sdb2 unmounted 4306MB ext3 primär (verwendet als DRBD-Disk)
- cnode2.rnd (Hostname) mit der IP-Adresse 172.16.4.81. Betriebssystem CentOS 4.5, eine IDE-Festplatte mit 10 GB. Das folgende Partitionsschema wurde auf cnode2.rnd verwendet: /dev/hda1 / 4503MB ext3 primär /dev/hda2 769MB swap primär /dev/hda3 unmounted 128MB ext3 primär (für DRBD-Metadaten) /dev/hda4 unmounted 4306MB ext3; primär (verwendet als DRBD-Disk)
Die Größen und Namen der Partitionen können je nach Festplattengröße und verwendeten Festplatten variieren. Sie können ein Partitionsschema gemäß Ihren Anforderungen definieren.
Meine /etc/hosts-Datei auf beiden Knoten (cnode1.rnd & cnode2.rnd) sieht folgendermaßen aus:
127.0.0.1 localhost.localdomain localhost
172.16.4.80 cnode1.rnd cnode2
172.16.4.81 cnode2.rnd cnode3
DRBD-Installation:
Installieren Sie die DRBD-Software und das DRBD-Kernelmodul auf cnode1.rnd und cnode2.rnd:
yum install -y kmod-drbd drbd Laden Sie das DRBD-Kernelmodul mit insmod:
insmod /lib/modules/2.6.9-55.0.9.EL/extra/drbd.ko Überprüfen Sie mit lsmod, ob das Modul geladen ist. Wenn Sie DRBD sehen, fahren Sie mit dem Abschnitt zur Beispielkonfiguration fort.
DRBD konfigurieren:
Die Konfigurationsdatei von DRBD ist /etc/drbd.conf. Wir werden diese Datei bearbeiten und die folgenden Änderungen vornehmen und sie auf den anderen Knoten kopieren ( /etc/drbd.conf wird auf beiden Knoten gleich sein).
Bearbeiten Sie diese Datei auf cnode1.rnd mit einem beliebigen Editor. Ich verwende vi:
vi /etc/drbd.conf resource r0 {
protocol C;
incon-degr-cmd "halt -f";
startup {
degr-wfc-timeout 120; # 2 Minuten.
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 3M;
group 1;
al-extents 257;
}
on cnode1.rnd {
device /dev/drbd0;
disk /dev/sdb2;
address 172.16.4.80:7789;
meta-disk /dev/sdb1[0];
}
on cnode2.rnd {
device /dev/drbd0;
disk /dev/hda4;
address 172.16.4.81:7789;
meta-disk /dev/hda3[0];
}
}
Speichern Sie Ihre Änderungen und kopieren Sie sie auf den anderen Knoten (cnode2.rnd):
scp /etc/drbd.conf [email protected]:/etc/ Jetzt starten wir den DRBD-Daemon auf beiden Knoten, aber vorher möchten wir den DRBD-Daemon beim nächsten Neustart starten. Dazu verwenden wir den Befehl chkconfig auf beiden Knoten.
chkconfig --level 235 drbd on /etc/init.d/drbd start Sie werden feststellen, dass DRBD den Synchronisierungsprozess gestartet hat. Sie können sehen, dass es läuft:
/etc/init.d/drbd status oder
cat /proc/drbd Technische Details zur drbd.conf-Konfiguration:
Protokolle:
- Eine Schreiboperation ist abgeschlossen, sobald die Daten auf die Festplatte geschrieben und ins Netzwerk gesendet wurden.
- Eine Schreiboperation ist abgeschlossen, sobald eine Empfangsbestätigung eintrifft.
- Eine Schreiboperation ist abgeschlossen, sobald eine Schreibbestätigung eintrifft.
Hostname:
Sollte genau mit der Ausgabe von
uname -n übereinstimmen.
Gerät:
Der zu verwendende Geräte-Knoten: /dev/drbd0 - DRBD-Blockgerät.
Adresse, Port:
Die inet-Adresse und der Port, an den lokal gebunden oder zu dem Partnerknoten verbunden werden soll.
Meta-Disk:
Die Festplatten zur Speicherung von Metadaten. DRBD ermöglicht es Ihnen, entweder seine Metadaten auf demselben Backing-Gerät zu platzieren, auf dem es die tatsächlich verwendbaren Produktionsdaten speichert (interne Metadaten), oder auf einem separaten Blockgerät (externe Metadaten). Ich habe 128 MB für Metadaten auf einem externen Metadaten-Blockgerät reserviert. Sie können jedoch die folgende Tabelle zur Schätzung der Metadatengrößen verwenden.
| Blockgerätgröße | DRBD-Metadaten |
| 1 GB | 2 MB |
| 100 GB | 5 MB |
| 1 TB | 33 MB |
| 4 TB | 128 MB |
Incon-degr-cmd:
Was im Falle eines Clusterstarts im degradierten Modus zu tun ist, aber weiß, dass es inkonsistente Daten hat (das untere Gerät meldet io-error).
on-io-error detach:
Wenn das untere Gerät io-error meldet, trennt der Knoten sein Backing-Speichergerät und fährt im diskless-Modus fort.
degr-wfc-timeout:
Warten auf Verbindungszeitüberschreitung, wenn dieser Knoten ein degradiertes Cluster war. Dies wird anstelle von wfc-timeout (Warten auf Cluster-Zeitüberschreitung) verwendet.
Syncer:
Begrenzen Sie die Bandbreite, die vom Resynchronisierungsprozess verwendet wird.
Gruppe:
Alle Geräte in einer Gruppe werden parallel resynchronisiert. Die Resynchronisierung von Gruppen erfolgt in aufsteigender Reihenfolge.
Al-extents:
Führt automatisch eine Hot-Area-Erkennung durch. Mit diesem Parameter steuern Sie, wie groß die Hot-Area werden kann. Jeder Extent markiert 4M des Backing-Speichers (=low level device). Falls ein primärer Knoten das Cluster unerwartet verlässt, müssen die Bereiche, die vom aktiven Set abgedeckt werden, beim Wiederbeitritt des ausgefallenen Knotens resynchronisiert werden. Die Datenstruktur wird im Metadatenbereich gespeichert, daher ist jede Änderung des aktiven Sets eine Schreiboperation auf das Metadaten-Gerät. Eine höhere Anzahl von Extents führt zu längeren Resync-Zeiten, aber weniger Aktualisierungen der Metadaten.
Dos and Don’ts:
Versuchen Sie nicht, ein DRBD im sekundären Zustand zu mounten. Sobald Sie DRBD eingerichtet haben, umgehen Sie es niemals oder greifen Sie direkt auf das zugrunde liegende Gerät zu!
Testen Sie DRBD:
Machen Sie cnode1.rnd primär und mounten Sie das Blockgerät des primären Knotens (cnode1.rnd) auf /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/disk Kopieren Sie einige Dateien und Ordner dorthin:
cp -r /root/documents /mnt/disk Jetzt unmounten Sie das Blockgerät von DRBD und machen Sie den primären Knoten “sekundär”:
umount /mnt/disk/ drbdadm secondary all Machen Sie cnode2.rnd primär und mounten Sie das Blockgerät auf /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/diskSie werden feststellen, dass die Dokumente auf cnode2.rnd vorhanden sind.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.