DRBD 8.4.3 on Ubuntu 12.04/12.10

DRBD 8.4.3 has some great speed improvements. To take advantages of it use the following steps to build and upgrade the ubuntu packages (thanks to icamargos repository).

apt-add-repository ppa:icamargo/drbd
apt-get update
apt-get upgrade drbd8-utils
apt-get install drbd8-module-source
module-assistant auto-install drbd8

after reboot you should see the new version:

root@nas4-1:~# cat /proc/drbd 
version: 8.4.3 (api:1/proto:86-101)

Update: Hint for using this module with acutal kernel releases.

LVM: Found duplicate PV

Nachträglich ein DRBD Laufwerk eingerichtet. Vorher war auch schon ein LVM im System aktiv. Nach dem Einzug des DRBD-Layers meckerte LVM merkwürdigerweise immer mehrere Physical Volumes mit der selben ID an:

Found duplicate PV sX26QEl0aPdVRr1uMA8VhR7PpTIJ0Xu0: using /dev/sdb1 not /dev/drbd0
Found duplicate PV sX26QEl0aPdVRr1uMA8VhR7PpTIJ0Xu0: using /dev/sdc1 not /dev/sdb1

In der lvm.conf war der Filter korrekt gesetzt (damit nur das drbd Laufwerk nach PVs durchsucht wird), auch „write_cache_state“ hatte ich disabled.

#/etc/lvm/lvm.conf
filter = [ "a|/dev/drbd|", "r/.*/" ]
write_cache_state = 0

Trotzdem kam mir immer wieder das alte PV ins Gehege. pvscan, reboot etc. nützte nichts… Letzendlich war der Grund der Cache vom LVM. Also die Cache-Datei gelöscht:

rm /etc/lvm/cache/.cache

Danach pvscan, vgscan etc. und alles war wieder gut.

Meine Vermutung zum Grund der ganzen Aktion ist, dass ich die lvm.conf Einstellungen erst geändert hatte nachdem ich das DRBD und ein neues LVM aktiviert hatte. Wenn die Einstellung „write_cache_state“ dann deaktiviert wird, wird der Cache auch nicht mehr aktualisiert, wird aber dennoch verwendet! Wie gesagt: Vermutung.

DRBD: Split-Brain recovery

Notiz zum DRBD Split-Brain recovery im primary/primary setup. Nutzung auf eigene Gefahr!

Auf dem nicht aktuellen Node ausführen:

vgchange -a n vmdata                     # lvm herunterfahren (falls vorhanden)
drbdadm secondary r0                     # zu secondary deklarieren
 
drbdadm -- --discard-my-data connect r0  # eigene Daten ignorieren und zum
                                         # anderen Node verbinden (resync startet)
 
drbdadm primary r0                       # wieder zum primary machen
 
cat /proc/drbd                           # status überprüfen
...
 0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r----
    ns:0 nr:80464 dw:80456 dr:2248 al:0 bm:89 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d oos:0

Hier steht es auch nochmal offiziell.

LVM deaktivieren

Möchte man ein LVM kurzfristig deaktivieren hilft folgendes Kommando:

vgchange -a n vmdata #deaktiviert Volume Group "vmdata"

Kommt eher selten vor. Beispiel: man betreibt ein LVM in einem DRBD Laufwerk. Dann kann es nützlich sein, das LVM kurzfristig „zu beenden“ um die DRBD Ressource neu zu Verbinden. Ist das LV noch aktiv, würde das von DRBD bemerkt und verhindert. „Beenden“ ist übrigens nicht ganz die richtige Bezeichnung da es sich bei LVM nicht um einen Daemon o.Ä. handelt sondern um ein Kernel Subsystem.