Univention Bugzilla – Bug 30653
UVMM -> Paravirtualisierung mit KVM und LVM nicht auswählbar
Last modified: 2013-11-19 06:43:05 CET
Hallo Univention Team, es ist (mir?) nicht möglich mit UVMM und KVM ein paravirtualisiertes Festplattenlaufwerk anzulegen: 1) Ich erstellel die Maschine, füge ein CD und eine Festplattenlaufwerk hinzu. 2) Ich speichere die Maschine. 3) Ich bearbeite die Maschine, klicke auf den Reite "Geräte" 4) Ich bearbeite die Festplatte. 5) Ich setze den Haken bei "paravirtualisiertes Laufwerk" und speichere das Laufwerk 6) Ich speichere die Maschine. Wenn ich jetzt die Maschine wieder öffne ist der Haken bei "paravirtualisiertes Laufwerk" wieder verschwunden. Auch die XML-Definitionsdatei der Maschine enthält nicht das paravirtualisierte Laufwerk. Schlimmer: Wenn ich jetzt über libvirt das Laufwerk auf virtio umstelle funktioniert zwar alles wie erwartet, ich kann die Maschine auch über UVMM starten und stoppen, aber bei der nächsten Änderung an der Maschine über UVMM werden die Änderungen überschrieben, das Laufwerk ist kein virtio Laufwerk mehr und die Maschine ist nicht mehr startfähig. Ich habe diese Verhalten an zwei aktuellen 3.1 Systemen ausprobiert. Oder mache ich irgendwo einen Fehler? Beste Grüße aus Gießen Gerd Wilhelm
ich konnte das beschriebene Fehlverhalten auf einem aktuellen UCS-3.1-System nicht nachstellen: Dort lässt sich die PV-Einstellung für VMS ändern, die sowohl auf dem UCS-3.1- wie auch dem Other-Profil basieren. Können sie bitte aus der Logdatei /var/log/univention/virtual-machine-manager-daemon.log den relevanten Zeitraum extrahieren und an diesen Bugeintrag als Attachment hängen? Für ausführlichere Informationen wäre es hilfreich, wenn Sie den Versuch wiederholen und vorher dir UCR-Variable uvmm/debug/node von INFO auf den Wert DEBUG erhöhen und UVMMd neu starten: ucr set uvmm/debug/node=DEBUG /etc/init.d/univention-virtual-machine-manager-daemon restart
Created attachment 5112 [details] Auszug aus Logdatei beim Ändern der Checkbox "Paravirtualisiertes Laufwerk" Anbei die Logdatei. Hinweis: Ich habe als Gerätedatei in diesem Log /dev/dm-2 angegeben. Das Verahlten mit /dev/vg_ucs/volname oder mit /dev/mapper/vg_ucs-volname ist aber dasselbe. Beste Grüße GW
(In reply to comment #2) > Hinweis: Ich habe als Gerätedatei in diesem Log /dev/dm-2 angegeben. Das > Verahlten mit /dev/vg_ucs/volname oder mit /dev/mapper/vg_ucs-volname ist aber > dasselbe. Das war die wichtige Information, daß hier direkt ein lokales LVM-Volume verwendet wird und keine qcow2- oder raw-Datei. Damit kann ich das reproduzieren. Das Problem besteht seit UCS-2.4.2 (svn23141 für Bug #19574): Seit dem werden alle Laufwerke, die ein lokales Block-Device verwenden, als "ide" exportiert, was "virtio" überschreibt. Das wurde damals gemacht, weil das Booten von PV-CDROMS nicht funktioniert hat. qemu-1.1 mit dem neueren SeaBIOS sollte das inzwischen können, bei Xen bis ich mir unsicher, von daher muß der Xen-Teil auch noch mal angeschaut werden. Der nachfolgende Patch kann per patch -p3 -d /usr/share/pyshared/univention/management/console/modules eingespiet werden. Anschließend muß der UMC-Server neu gestartet werden: /etc/init.d/univention-management-console-server restart Das ganze ist noch nicht endgültig; Test-Ergebnisse sind natürlich willkommen. diff --git univention-virtual-machine-manager-daemon/umc/python/uvmm/domains.py univention-virtual-machine-manager-daemon/umc/python/uvmm/domains.py index dbb2f4d..5f19972 100644 --- univention-virtual-machine-manager-daemon/umc/python/uvmm/domains.py +++ univention-virtual-machine-manager-daemon/umc/python/uvmm/domains.py @@ -263,7 +263,6 @@ class Domains( object ): drive.type = Disk.TYPE_FILE else: drive.type = Disk.TYPE_BLOCK - drive.target_bus = 'ide' drive.source = disk[ 'volumeFilename' ] # get default for paravirtual @@ -293,7 +292,7 @@ class Domains( object ): if uri.scheme.startswith( 'qemu' ): drive.driver = 'qemu' - if driver_pv and drive.device != Disk.DEVICE_FLOPPY and drive.type != Disk.TYPE_BLOCK: + if driver_pv and drive.device != Disk.DEVICE_FLOPPY: drive.target_bus = 'virtio' elif disk.get( 'paravirtual', None ) == False and not drive.target_bus: drive.target_bus = 'ide'
Hallo Herr Hahn, wunderbar, mit Ihrem Patch funktioniert die Checkbox "Paravirtualisiertes Laufwerk" erwartungsgemäß. Vielen Dank für die schnelle Korrektur. Beste Grüße Gerd Wilhelm
Mit UCS-3.2 funktioniert das Anlegen von PV-Volumes in LVM-Pools mit QEMU-kvm: virsh dumpxml xxx <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='unsafe'/> <source dev='/dev/logical/xxx-0'/> <target dev='vdb' bus='virtio'/> <alias name='virtio-disk1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </disk>
Created attachment 5382 [details] example libvirt XML definition for LVM storage pool
I successfully tested the installation of a UCS base system on a device residing on a LVM. Paravirtual disk access could be enabled and remained enabled. Changelog not needed.
UCS 3.2 has been released: http://docs.univention.de/release-notes-3.2-en.html http://docs.univention.de/release-notes-3.2-de.html If this error occurs again, please use "Clone This Bug".