Bug 30653 - UVMM -> Paravirtualisierung mit KVM und LVM nicht auswählbar
UVMM -> Paravirtualisierung mit KVM und LVM nicht auswählbar
Status: CLOSED WORKSFORME
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
UCS 3.1
Other Linux
: P2 normal (vote)
: UCS 3.2
Assigned To: Philipp Hahn
Moritz Muehlenhoff
: interim-1
Depends on: 19574
Blocks:
  Show dependency treegraph
 
Reported: 2013-03-05 07:48 CET by Gerd Wilhelm
Modified: 2013-11-19 06:43 CET (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:
hahn: Patch_Available+


Attachments
Auszug aus Logdatei beim Ändern der Checkbox "Paravirtualisiertes Laufwerk" (6.34 KB, text/x-log)
2013-03-05 12:05 CET, Gerd Wilhelm
Details
example libvirt XML definition for LVM storage pool (174 bytes, text/plain)
2013-08-20 08:38 CEST, Philipp Hahn
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gerd Wilhelm 2013-03-05 07:48:09 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
Comment 1 Philipp Hahn univentionstaff 2013-03-05 08:28:26 CET
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
Comment 2 Gerd Wilhelm 2013-03-05 12:05:26 CET
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
Comment 3 Philipp Hahn univentionstaff 2013-03-05 17:49:22 CET
(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'
Comment 4 Gerd Wilhelm 2013-03-05 20:03:26 CET
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
Comment 5 Philipp Hahn univentionstaff 2013-07-31 20:04:41 CEST
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>
Comment 6 Philipp Hahn univentionstaff 2013-08-20 08:38:00 CEST
Created attachment 5382 [details]
example libvirt XML definition for LVM storage pool
Comment 7 Moritz Muehlenhoff univentionstaff 2013-08-20 09:31:01 CEST
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.
Comment 8 Stefan Gohmann univentionstaff 2013-11-19 06:43:05 CET
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".