DRBD
konfigurationsdatei
global {
usage-count yes;
} common {
syncer { rate 10M; } protocol C; handlers { pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f"; pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f"; local-io-error "echo o > /proc/sysrq-trigger ; halt -f"; outdate-peer "/usr/sbin/drbd-peer-outdater"; } startup { } disk { on-io-error detach; } net { after-sb-0pri disconnect; after-sb-1pri disconnect; after-sb-2pri disconnect; rr-conflict disconnect; }
} resource data {
device /dev/drbd0; meta-disk internal; on emi { disk /dev/sdd; address 10.0.0.1:7788; } on lilly { disk /dev/sdb; address 10.0.0.2:7788; }
} <--
#/etc/drbd.conf global { usage-count yes; } common { syncer { rate 10M; } } resource data { protocol C; handlers { pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f"; pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f"; local-io-error "echo o > /proc/sysrq-trigger ; halt -f"; outdate-peer "/usr/sbin/drbd-peer-outdater"; } startup { } disk { on-io-error detach; } net { allow-two-primaries; after-sb-0pri disconnect; after-sb-1pri disconnect; after-sb-2pri disconnect; rr-conflict disconnect; } syncer { rate 10M; al-extents 257; } on thorin { device /dev/drbd0; disk /dev/sda3; address 172.18.241.29:7788; meta-disk /dev/sda5 [0]; } on thrain { device /dev/drbd0; disk /dev/sda3; address 172.18.241.30:7788; meta-disk /dev/sda5 [0]; } }
konfigurationsdatei auf andere node kopieren
root@thorin:~# scp /etc/drbd.conf thrain:/etc
auf beiden seiten md kreieren
root@thorin:~# drbdadm create-md data root@thrain:~# drbdadm create-md data
partitionen aktivieren
root@thorin:~# drbdadm up data root@thrain:~# drbdadm up data
eine seite auf master setzen.
root@thorin:~# drbdsetup /dev/drbd0 primary -o
formatieren.
root@thorin:~# mkfs.ext3 /dev/drbd0
---!>
Split Brain recovery manuell
Auf dem Secondary Node folgendes ausführen:
drbdadm secondary data drbdadm disconnect data drbdadm -- --discard-my-data connect data
und auf dem Primary Node:
drbdadm connect data
Das System stellt sich dann von selbst wieder her, wenn keine anderen Probleme vorliegen.
Zustand checken
root@reliant:~# drbd-overview 0:galactica-services SyncTarget Primary/Primary Inconsistent/UpToDate C r---- [====>...............] sync'ed: 25.7% (38072/51196)M 1:orion Connected Primary/Primary UpToDate/UpToDate C r----
Hozhammermethode
drbdadm -- --overwrite-data-of-peer primary data
Nützliche Kommandos für drbdadm
Der Befehl drbdadm ist vergleichbar mit mdadm bei Softraids. Er kann mit verschiedenen Parametern dazu benutzt werden, DRBD-Devices wie oben bereits gezeigt zu erstellen, aber auch zu ändern, zu (de-)aktivieren oder zu löschen.
Volle Neusynchronisation
von /dev/drbd0 mittels der DRBD-Ressource 'home-data' (Status in /proc/drbd)
drbdadm attach home-data
Trennen der Verbindung von Laufwerk und DRBD-Ressource:
drbdadm detach home-data
Verbinden des DRBD-Treibers mit dem anderen Node:
drbdadm connect home-data
Bestehende DRBD-Verbindung zum anderen Node trennen:
drbdadm disconnect home-data
Masterrolle agbgeben:
drbdadm secondary home-data
Masterrolle übernehmen:
drbdadm primary home-data
Übernahme von Änderungen an /etc/drbd.conf:
drbdadm adjust home-data
Statusabfrage der Verbindung:
drbdadm role home-data