LVM Volumes in iSCSI Target

virtualization
german

#1

Hallo Allerseits,

es handelt sich um ein Problem bei folgendem Aufbau:

UCS 3.2-2 Server mit KVM als Virtualisierungshost. Die VMs greifen direkt auf Block-Geräte zu, welche als LVM Volumes auf einem iSCSI Target liegen. Also in der Art:

<disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/vg_vserver1/piler'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk>
Das funktioniert super, bis der Server neu gestartet wird. Denn zu dem Zeitpunkt ist ja das iSCSI Target noch nicht aktiv. Selbst wenn dann manuell aktiviert wird, weiß LVM noch nichts von der neu hinzugekommenen Logical Volumes (/dev/vg_vserver1/piler)
Gibt es eine Möglichkeit beim Booten

  • die Verbindung zum iSCS Target herzustellen,
  • die darauf befindlichen VGs verfügbar zu machen
  • und erst danach die VMs hochzufahren?

Beste Grüße

Sebastian


#2

Hallo,

wenn ich das richtig sehe, können die zu startenden Volume Groups in /etc/default/open-iscsi definiter werden (LVMGROUPS=""). Das sollte, denke ich, dafür sorgen dass die Volume Groupes durch das iSCSI Init-Script aktiviert werden.

Bleibt noch dass Problem dass UVMM vor der iSCSI Initialisierung gestartet wird. Ich schätze hier müsste die sequence number des init-Scripts geändert werden. /etc/init.d/libvirt-guests startet die Instanzen beim Boot in sequence 29, open-iscsi wird anscheinend auf 45 registriert.

Mit freundlichen Grüßen
Janis Meybohm


#3

Hallo Herr Meybohm,

vielen Dank für Ihre Hinweise. Wir mussten für die bereits vorhandenen Targets in /etc/iscsi/nodes/…/default noch node.startup = automatic setzen und dann mit

update-rc.d libvirt-guests start 46 2 3 4 5 . stop 71 0 1 6 . einstellen, das die Gäste erst gestartet werden, nachdem iscsi (45) gestartet wurde.
Hoffentlich bleibt diese Konfiguration auch nach evtl. Updates der kvm-Pakete erhalten. Oder müsste für diesen Fall noch etwas angepasst werden?

beste Grüße

Sebastian


#4

Hallo,

wenn ich das richtig sehe setzt das libvirt-bin postinst die Runlevel immer neu, die Anpassung würde daher bei einem Update überschrieben (es sei denn es wird ein neues Postinst-Script ausgeliefert dass das anders macht). Zumindest wird dort (und auch im open-iscsi Postinst) immer “update-rc.d” aufgerufen.

Mit freundlichen Grüßen
Janis Meybohm