DRBD steht für Distributed Replicated Block Device. Vergleichbar ist das ganze mit Raid1, nur dass es nicht auf dem lokalen Computer geschieht, sondern über das Netzwerk zwischen zwei Computern. Eingesetzt wird diese Technik zum Beispiel um ein hochverfügbares System aufzubauen. Dabei ist der eine Computer immer der Master und der andere immer der Slave. Sollte einer von beiden ausfallen, kann der Zweite ohne Probleme die Arbeit ungehindert fortsetzen. Im folgenden wird gezeigt wie DRBD unter Ubuntu 10.04 eingerichtet werden kann. Es sollte sich so oder so ähnlich auch auf andere Linux-Distributionen übertragen lassen.
Zuerst wird eine freie Partition auf zwei Computern benötigt. Danach muss das Paket drbd8-utils installiert werden. Dies geschieht mit dem Aufruf des folgenden Befehls.
$ sudo apt-get install drbd8-utils
Anschließend kann im Verzeichnis /etc/drbd.d eine neue Datei angelegt werden. Diese muss unbedingt die Endung .res haben. Diese könnte zum Beispiel wie folgt aussehen.
resource test-data {
# Protokoll-Version
protocol C;
startup {
# Timeout (in Sekunden) für Verbindungsherstellung beim Start
wfc-timeout 10;
# Timeout (in Sekunden) für Verbindungsherstellung beim Start
# nach vorheriger Feststellung von Dateninkonsistenz
# ("degraded mode")
degr-wfc-timeout 120;
}
disk {
# Aktion bei EA-Fehlern: Laufwerk aushängen
on-io-error detach;
}
net {
# Algorithmus muss in /proc/crypto aufgelistet sein
cram-hmac-alg sha1;
# Passwort fuer Auth, wird empfohlen, bis 64 Zeichen lang
shared-secret "geheim";
}
syncer {
# Geschwindigkeit der HA-Verbindung
rate 100M;
}
on test1 {
# Name des bereitgestellten Blockdevices
device /dev/drbd0;
# dem DRBD zugrunde liegendes Laufwerk
disk /dev/sda1;
# Adresse und Port des Rechners test1
address 192.168.1.1:7788;
# Speicherort der Metadaten, hier im Laufwerk selbst
meta-disk internal;
}
on test2 {
# Name des bereitgestellten Blockdevices
device /dev/drbd0;
# dem DRBD zugrunde liegendes Laufwerk
disk /dev/sda1;
# Adresse und Port des Rechners test2
address 192.168.1.2:7788;
# Speicherort der Metadaten, hier im Laufwerk selbst
meta-disk internal;
}
}
Im konfigurierten Verbund sind die Rechner test1 und test2. Dabei wird jeweils die Partition /dev/sda1 als physisches Gerät verwendet. Das über DRBD zur Verfügung gestellte Block Device kann über /dev/drbd0 angesprochen werden.
Wichtig: Die Namen der Computer sollten per DNS oder per /etc/hosts aufgelöst werden können.
Die Datei muss auf beiden Computer vorhanden sein.
Anschließend muss auf den beteiligten Computern die Meta-Daten erstellt werden. Dies geschieht mit dem Befehl:
$ sudo drbdadm create-md test-data
Ist dies gemacht kann der DRBD-Dienst gestartet werden. Dies kann wie folgt realisiert werden:
$ sudo /etc/init.d/drbd start
Läuft der Dienst bereits sollte anstatt von "start" "restart" verwendet werden.
Zum Schluss muss noch dem entsprechenden Computer mitgeteilt werden, dass er der Master ist. (Wichtig: Nicht auf beiden Computern ausführen!!!)
$ sudo drbdadm -- --overwrite-data-of-peer primary all
Ist alles erfolgreich gewesen, dann steht das neue Block-Gerät über /dev/drbd0 zur Verfügung und kann wie eine lokale Festplatte angesprochen werden. Zum Beispiel kann wie folgt die Festplatte mit dem ext3-Dateisystem formatiert und eingebunden werden.
$ sudo mkfs.ext3 /dev/drbd0
$ sudo mount /dev/drbd0 /mnt
Der aktuelle Status von DRBD kann mit folgendem Befehl abgerufen werden.
$ cat /proc/drbd