Bug 29532 - Xen Bootmedium ändern
Xen Bootmedium ändern
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
UCS 3.1
Other Linux
: P5 normal (vote)
: UCS 3.1
Assigned To: Philipp Hahn
Stefan Gohmann
: interim-4
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-12-04 09:17 CET by Stefan Gohmann
Modified: 2012-12-12 21:07 CET (History)
0 users

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:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Gohmann univentionstaff 2012-12-04 09:17:26 CET
Ich habe eine 3.0 Instanz unter Xen in UVMM installiert. Nach der Installation habe ich die Instanz beendet und versucht das Bootmedium von DVD auf die Festplatte zu ändern. Ich bekomme keine Fehlermeldung, allerdings bootet Xen wieder vom CDROM-Laufwerk, sobald ich die Instanz wieder starte.


Logmeldungen aus der UVMM UMC Logdatei:

04.12.12 09:16:16.772  PARSER      ( INFO    ) : UMCP REQUEST 135460897670744-673 parsed successfully
04.12.12 09:16:16.772  MODULE      ( INFO    ) : Received request 135460897670744-673
04.12.12 09:16:16.772  PROTOCOL    ( INFO    ) : Received UMCP COMMAND REQUEST 135460897670744-673
04.12.12 09:16:16.772  MODULE      ( INFO    ) : Executing ['uvmm/domain/put']
04.12.12 09:16:16.772  MODULE      ( INFO    ) : Creating a paravirtual drive
04.12.12 09:16:16.772  MODULE      ( INFO    ) : Creating a paravirtual drive
04.12.12 09:16:16.772  MODULE      ( INFO    ) : Sending request DOMAIN_DEFINE to UVMMd
04.12.12 09:16:16.772  MODULE      ( INFO    ) : There are currently 1 threads running
04.12.12 09:16:16.772  MODULE      ( INFO    ) : Starting request thread ...
04.12.12 09:16:16.772  MODULE      ( INFO    ) : Thread is working on a request
04.12.12 09:16:16.773  MODULE      ( INFO    ) : Sending request DOMAIN_DEFINE to UVMM daemon ...
04.12.12 09:16:16.773  MODULE      ( INFO    ) : Setting request arguments ...
04.12.12 09:16:16.773  MODULE      ( INFO    ) : Creating UVMM daemon connection
04.12.12 09:16:16.773  MODULE      ( INFO    ) : Sending request: Packet:
 command: DOMAIN_DEFINE
 domain: <univention.uvmm.protocol.Data_Domain object at 0x197cf50>
 uri: xen://xen874.deadlock87.local/
04.12.12 09:16:19.270  MODULE      ( INFO    ) : Received response: Packet:
 data: 53ff29dc-423b-2f52-ad19-d4cac6650a56
 messages: []
 status: OK
04.12.12 09:16:19.270  MODULE      ( INFO    ) : Connection to UVMMd is closed
04.12.12 09:16:19.270  MODULE      ( INFO    ) : Returning result from UVMMd
04.12.12 09:16:19.319  MODULE      ( INFO    ) : Thread returned result: (True, '53ff29dc-423b-2f52-ad19-d4cac6650a56')
04.12.12 09:16:19.319  MODULE      ( INFO    ) : New domain: success: True, data: 53ff29dc-423b-2f52-ad19-d4cac6650a56
04.12.12 09:16:19.319  PROTOCOL    ( INFO    ) : Sending UMCP RESPONSE 135460897670744-673
04.12.12 09:16:19.319  MODULE      ( INFO    ) : Thread is free for another request
Comment 1 Stefan Gohmann univentionstaff 2012-12-04 09:39:25 CET
Aus dem Firebug:

	
200 OK
		12.65s	
dojo.js (Zeile 2)
HeaderPostAntwortJSONCookies
JSON
		
	
options
	Object { nodeURI=

"xen://xen874.deadlock87.local/"

, domain={...}}
Quelle
{"options":{"nodeURI":"xen://xen874.deadlock87.local/","domain":{"vnc_host":null,"kernel":null,"vnc_port":"","profileData":{"pvdisk":true,"vnc":true,"rtcoffset":"utc","diskspace":"20GB","os":"UCS 3.0","ram":"1024MB","cpus":true,"name":"UCS 3.0","interface":"eth0","advkernelconf":false,"pvcdrom":true,"pvinterface":true,"kblayout":"de","name_prefix":"ucs30-","arch":"automatic","virttech":"xen-xen"},"snapshots":null,"cmdline":null,"initrd":null,"suspended":null,"curMem":0,"uuid":"53ff29dc-423b-2f52-ad19-d4cac6650a56","rtc_offset":"utc","boot":[],"state":"SHUTOFF","type":"xen-xen","annotations":{"profile":"cn=UCS 3.0,cn=xen,cn=Profiles,cn=Virtual Machine Manager,dc=deadlock87,dc=local","contact":"","os":"UCS 3.0","uuid":"53ff29dc-423b-2f52-ad19-d4cac6650a56","description":""},"maxMem":"1024.0 MB","available":true,"vnc":true,"description":"","interfaces":[{"target":null,"script":"vif-bridge","source":"eth0","mac_address":"00:16:3e:33:c3:41","model":"netfront","type":"bridge","$id$":1}],"cputime":[0,3.702475940190792e-7,4.865409187290496],"domain_type":"xen","profile":"cn=UCS 3.0,cn=xen,cn=Profiles,cn=Virtual Machine Manager,dc=deadlock87,dc=local","graphics":[{"passwd":null,"keymap":"de","autoport":true,"type":"vnc","port":-1,"listen":"0.0.0.0"}],"bootloader":"/usr/bin/pygrub","arch":"i686","vnc_remote":true,"name":"xen-ucs30-87.200","disks":[{"driver_type":"aio","target_bus":"xen","source":"/var/lib/libvirt/images/xen-ucs30-87.200-0.raw","volumeType":"file","driver":"tap2","driver_cache":"","readonly":false,"type":"file","device":"disk","target_dev":"xvdb","volumeFilename":"xen-ucs30-87.200-0.raw","paravirtual":true,"pool":"default","size":"20.0 GB","$id$":2},{"driver_type":"aio","target_bus":"xen","source":"/mnt/iso-images/ucs/ucs_3.0-2-20120717145513-dvd-i386.iso","volumeType":"file","driver":"tap2","driver_cache":"","readonly":true,"type":"file","device":"cdrom","target_dev":"xvda","volumeFilename":"ucs_3.0-2-20120717145513-dvd-i386.iso","paravirtual":true,"pool":"ISO ucs","size":"1.8 GB","$id$":1}],"bootloader_args":"-q","vnc_password":"","vcpus":"1","contact":"","kblayout":"de","os_type":"xen","os":"UCS 3.0","nodeURI":"xen://xen874.deadlock87.local/","domainURI":"xen://xen874.deadlock87.local/#53ff29dc-423b-2f52-ad19-d4cac6650a56","boot_hvm":[],"boot_pv":"/var/lib/libvirt/images/xen-ucs30-87.200-0.raw"}}}

Zumindest scheint das Frontend den richtigen Wert (boot_pv) an das Backend zu liefern. Im get ist zu sehen, dass dort der Wert nicht wieder zurück kommt:

POST http://10.201.87.1/umcp/command/uvmm/snapshot/query
	
200 OK
		720ms	
dojo.js (Zeile 2)
	
200 OK
		400ms	
dojo.js (Zeile 2)
HeaderPostAntwortJSONCookies

{"status": 200, "message": null, "result": {"vnc_host": null, "kernel": null, "vnc_port": null, "profileData": {"pvdisk": true, "vnc": true, "rtcoffset": "utc", "diskspace": "20GB", "os": "UCS 3.0", "ram": "1024MB", "cpus": true, "name": "UCS 3.0", "interface": "eth0", "advkernelconf": false, "pvcdrom": true, "pvinterface": true, "kblayout": "de", "name_prefix": "ucs30-", "arch": "automatic", "virttech": "xen-xen"}, "snapshots": null, "cmdline": null, "initrd": null, "suspended": null, "curMem": 0, "uuid": "53ff29dc-423b-2f52-ad19-d4cac6650a56", "rtc_offset": "utc", "boot": [], "state": "SHUTOFF", "type": "xen-xen", "annotations": {"profile": "cn=UCS 3.0,cn=xen,cn=Profiles,cn=Virtual Machine Manager,dc=deadlock87,dc=local", "contact": "", "os": "UCS 3.0", "uuid": "53ff29dc-423b-2f52-ad19-d4cac6650a56", "description": ""}, "maxMem": "1024.0 MB", "available": true, "vnc": true, "description": "", "interfaces": [{"target": null, "script": "vif-bridge", "source": "eth0", "mac_address": "00:16:3e:33:c3:41", "model": "netfront", "type": "bridge"}], "cputime": [0.0, 0.0058789756054289282, 2.0113499651184212], "domain_type": "xen", "profile": "cn=UCS 3.0,cn=xen,cn=Profiles,cn=Virtual Machine Manager,dc=deadlock87,dc=local", "graphics": [{"passwd": null, "keymap": "de", "autoport": true, "type": "vnc", "port": -1, "listen": "0.0.0.0"}], "bootloader": "/usr/bin/pygrub", "arch": "i686", "vnc_remote": true, "name": "xen-ucs30-87.200", "disks": [{"driver_type": "aio", "target_bus": "xen", "source": "/mnt/iso-images/ucs/ucs_3.0-2-20120717145513-dvd-i386.iso", "volumeType": "file", "driver": "tap2", "driver_cache": "", "readonly": true, "type": "file", "device": "cdrom", "target_dev": "xvda", "volumeFilename": "ucs_3.0-2-20120717145513-dvd-i386.iso", "paravirtual": true, "pool": "ISO ucs", "size": "1.8 GB"}, {"driver_type": "aio", "target_bus": "xen", "source": "/var/lib/libvirt/images/xen-ucs30-87.200-0.raw", "volumeType": "file", "driver": "tap2", "driver_cache": "", "readonly": false, "type": "file", "device": "disk", "target_dev": "xvdb", "volumeFilename": "xen-ucs30-87.200-0.raw", "paravirtual": true, "pool": "default", "size": "20.0 GB"}], "bootloader_args": "-q", "vnc_password": null, "vcpus": 1, "contact": "", "kblayout": "de", "os_type": "xen", "os": "UCS 3.0"}}
Comment 2 Stefan Gohmann univentionstaff 2012-12-04 10:16:34 CET
Weiteres Debugging hat gezeigt, dass es auf UMC-Seite richtig geändert wird. Das Problem scheint im Zusammenspiel Xen <-> libvirt zu liegen.
Comment 3 Philipp Hahn univentionstaff 2012-12-04 14:06:56 CET
Ein früherer Patch von mir hat das zwar in ./xenxs/xen_sxpr.c#xenParseSxprDisks für die Richtung Xen→libvirt korrigiert, aber der umgekehrte Weg libvirt→Xen wurde durch die folgende Umsortierung kaputt gemacht:
libvirt sortiert die /domain/devices/disk-Einträge nach @bus und @name, weil das für das Erzeugen der Controller bei KVM notwendig ist. Xen mit PyGrub erwartet aber, daß die Reihenfolge unverändert bleibt, weil PyGrub nur auf dem ersten Laufwerk ausgeführt wird (bootable=1 wird von Xend automatisch für die erste definierte Platte gesetzt; das wird von PyGrub dann ausgewertet.)

svn11143, libvirt_0.9.12-5.118.201212041354

ChangeLog: nicht notwendig, weil erst durch die neuere libvirt-Version (Bug #27612) diese Regression verursacht wird.
Comment 4 Stefan Gohmann univentionstaff 2012-12-05 15:19:47 CET
Ja, funktioniert jetzt.
Comment 5 Stefan Gohmann univentionstaff 2012-12-12 21:07:54 CET
UCS 3.1-0 has been released: 
 http://forum.univention.de/viewtopic.php?f=54&t=2125

If this error occurs again, please use "Clone This Bug".