Categories
Linux

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.

Categories
Linux

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.

Categories
Linux

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.