Projekt »Virtueller hochverfügbarer Linux-Server«, Teil 4
DRBD, OpenVZ und Heartbeat
Die Volumes werden mittels Disk-Striping zusammengefasst, was bei größeren Dateizugriffen die dreifache Übertragungsgeschwindigkeit einer einzelnen Platte ermöglicht. Das Kommando zum Aktivieren dieses Volumes ist:
dmsetup create vz /etc/dmtab
Dieses Kommando sollte automatisch beim Systemstart ausgeführt werden, daher tragen wir es in /etc/init.d/lvm ein, und zwar ans Ende des Abschnitts, der den Start behandelt. Auch das Herunterfahren implementieren wir gleich, indem wir an den Anfang des Stop-Abschnitts die Zeile dmsetup remove vz
setzen. Wir könnten nun /dev/mapper/vz z.B. mit XFS formatieren, doch wir wollen noch DRBD darüber setzen. Wenn DRBD erst mal eingerichtet ist, sollte man nie wieder direkt auf /dev/mapper/vz zugreifen.
Als nächstes müssen wir die Konfigurationsdatei /etc/drbd.conf bearbeiten. Diese ist ausführlich kommentiert, so dass die wenigen Zeilen, die wir tatsächlich bearbeiten müssen, etwas versteckt sind. Hier ist die von Kommentaren bereinigte Datei, die nur die aktivierten Zeilen enthält:
resource vz { protocol C; incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f"; startup { degr-wfc-timeout 120; # 2 minutes. } disk { on-io-error detach; } syncer { rate 125M; group 1; al-extents 257; } on erdbeere { device /dev/drbd0; disk /dev/mapper/vz; address 192.168.2.1:7788; meta-disk internal; } on himbeere { device /dev/drbd0; disk /dev/mapper/vz; address 192.168.2.2:7788; meta-disk internal; } }
Bevor DRBD zum ersten Mal online gebracht wird, müssen Metadaten angelegt werden. Dazu ruft man
drbdadm create-md vz
auf. Die nun ausgegebene Warnung dürfte deutlich genug sein. Wenn wir glauben, dass alles in Ordnung ist, geben wir yes
ein. Danach können wir die Geräte aktivieren:
drbdadm up all
Jetzt ist das Gerät, wie wir mit drbdadm state vz
sehen können, im Zustand Secondary/Unknown
. Das bedeutet, dass das Gerät auf dem lokalen Rechner Secondary ist, während der Partner in unbekanntem Zustand ist, weil wir ihn noch nicht konfiguriert haben und es keine Verbindung zu ihm gibt. Um den lokalen Knoten zum primären zu machen, geben wir
drbdadm -- --do-what-i-say primary all
ein. Die Option --do-what-i-say
sollte nur beim ersten Mal oder in seltenen Ausnahmefällen nötig sein. In DRBD 8 heißt sie --overwrite-data-of-peer
.