[Libvir] Remotely starting a fully-virtualized guest

Meng Kuan mengkuan at gmail.com
Mon Sep 24 12:12:57 UTC 2007


On 24 Sep 2007, at 7:49 PM, Richard W.M. Jones wrote:

> Meng Kuan wrote:
>> Hi,
>> I am trying to start a fully virtualized guest called "full1"  
>> remotely. The connection URI I am using is "xen+ssh:// 
>> root at dell1/". (Note that I am able to start/stop/resume/shutdown  
>> para-virtualized guests without any problems with this connection  
>> URI.)
>> The XML definition for the fully virtualized guest is this:
>>       <domain type='xen'>
>>         <name>full1</name>
>>         <os>
>>           <type>hvm</type>
>>           <loader>/usr/lib/xen/boot/hvmloader</loader>
>>           <boot dev='hd'/>
>>         </os>
>>         <memory>1048576</memory>
>>         <vcpu>2</vcpu>
>>         <on_poweroff>destroy</on_poweroff>
>>         <on_reboot>restart</on_reboot>
>>         <on_crash>restart</on_crash>
>>         <features>
>>           <acpi/>
>>           <apic/>
>>           <pae/>
>>         </features>
>>         <clock offset='utc'/>
>>         <devices>
>>           <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
>>           <interface type='bridge'>
>>             <source bridge='xenbr0'/>
>>             <script path='vif-bridge'/>
>>           </interface>
>>           <disk type='file' device='disk'>
>>             <driver name='file'/>
>>             <source file='/xen/full1.img'/>
>>             <target dev='hda'/>
>>           </disk>
>>           <graphics type='vnc' port='5904'/>
>>         </devices>
>>       </domain>
>> The guest failed to start up and this is what I found in the  
>> xend.log file:
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] DEBUG  
>> (XendDomainInfo:190) XendDomainInfo.create(['vm', ['name', 'full1']
>> , ['memory', '1024'], ['maxmem', '1024'], ['vcpus', '2'],  
>> ['on_poweroff', 'destroy'], ['on_reboot', 'restart'], ['on_crash
>> ', 'restart'], ['image', ['hvm', ['kernel', '/usr/lib/xen/boot/ 
>> hvmloader'], ['device_model', '/usr/lib64/xen/bin/qemu-dm
>> '], ['vcpus', '2'], ['boot', 'c'], ['acpi', '1'], ['apic', '1'],  
>> ['pae', '1'], ['usb', '1'], ['vnc', '1'], ['vncdisplay'
>> , '4']]], ['device', ['vbd', ['dev', 'hda:disk'], ['uname', 'file:/ 
>> xen/full1.img'], ['mode', 'w']]], ['device', ['vif',
>> ['bridge', 'xenbr0'], ['script', 'vif-bridge'], ['type', 'ioemu']]]])
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] DEBUG  
>> (XendDomainInfo:296) parseConfig: config is ['vm', ['name', 'full1'
>> ], ['memory', '1024'], ['maxmem', '1024'], ['vcpus', '2'],  
>> ['on_poweroff', 'destroy'], ['on_reboot', 'restart'], ['on_cras
>> h', 'restart'], ['image', ['hvm', ['kernel', '/usr/lib/xen/boot/ 
>> hvmloader'], ['device_model', '/usr/lib64/xen/bin/qemu-d
>> m'], ['vcpus', '2'], ['boot', 'c'], ['acpi', '1'], ['apic', '1'],  
>> ['pae', '1'], ['usb', '1'], ['vnc', '1'], ['vncdisplay
>> ', '4']]], ['device', ['vbd', ['dev', 'hda:disk'], ['uname',  
>> 'file:/xen/full1.img'], ['mode', 'w']]], ['device', ['vif',
>> ['bridge', 'xenbr0'], ['script', 'vif-bridge'], ['type', 'ioemu']]]]
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] DEBUG  
>> (XendDomainInfo:397) parseConfig: result is {'shadow_memory': None,
>> 'start_time': None, 'uuid': None, 'on_crash': 'restart',  
>> 'on_reboot': 'restart', 'localtime': None, 'image': ['hvm', ['
>> kernel', '/usr/lib/xen/boot/hvmloader'], ['device_model', '/usr/ 
>> lib64/xen/bin/qemu-dm'], ['vcpus', '2'], ['boot', 'c'],
>> ['acpi', '1'], ['apic', '1'], ['pae', '1'], ['usb', '1'], ['vnc',  
>> '1'], ['vncdisplay', '4']], 'on_poweroff': 'destroy',
>> 'bootloader_args': None, 'cpus': None, 'name': 'full1', 'backend':  
>> [], 'vcpus': 2, 'cpu_weight': None, 'features': None,
>> 'vcpu_avail': None, 'memory': 768, 'device': [('vbd', ['vbd',  
>> ['dev', 'hda:disk'], ['uname', 'file:/xen/full1.img'], ['
>> mode', 'w']]), ('vif', ['vif', ['bridge', 'xenbr0'], ['script',  
>> 'vif-bridge'], ['type', 'ioemu']])], 'bootloader': None,
>> 'cpu': None, 'maxmem': 768}
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] DEBUG  
>> (XendDomainInfo:1264) XendDomainInfo.construct: None
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] DEBUG  
>> (XendDomainInfo:1296) XendDomainInfo.initDomain: 91 1.0
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: boot, val: c
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: fda, val:  
>> None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: fdb, val:  
>> None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: soundhw,  
>> val: None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: localtime,  
>> val: None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: serial,  
>> val: None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: std-vga,  
>> val: None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: isa, val:  
>> None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: vcpus, val: 2
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: acpi, val: 1
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: usb, val: 1
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: usbdevice,  
>> val: None
>> [2007-09-24 18:55:46 xend 4176] DEBUG (image:329) args: k, val: None
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] ERROR  
>> (XendDomainInfo:202) Domain construction failed
>> Traceback (most recent call last):
>>   File "/usr/lib64/python2.4/site-packages/xen/xend/ 
>> XendDomainInfo.py", line 195, in create
>>     vm.initDomain()
>>   File "/usr/lib64/python2.4/site-packages/xen/xend/ 
>> XendDomainInfo.py", line 1309, in initDomain
>>     self.info['device'])
>>   File "/usr/lib64/python2.4/site-packages/xen/xend/image.py",  
>> line 45, in create
>>     return findImageHandlerClass(imageConfig)(vm, imageConfig,  
>> deviceConfig)
>>   File "/usr/lib64/python2.4/site-packages/xen/xend/image.py",  
>> line 75, in __init__
>>     self.configure(imageConfig, deviceConfig)
>>   File "/usr/lib64/python2.4/site-packages/xen/xend/image.py",  
>> line 272, in configure
>>     self.dmargs += self.configVNC(imageConfig)
>>   File "/usr/lib64/python2.4/site-packages/xen/xend/image.py",  
>> line 383, in configVNC
>>     ret += ['-vnc', '%d' % vncdisplay]
>> TypeError: int argument required
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] DEBUG  
>> (XendDomainInfo:1463) XendDomainInfo.destroy: domid=91
>> [2007-09-24 18:55:46 xend.XendDomainInfo 4176] DEBUG  
>> (XendDomainInfo:1471) XendDomainInfo.destroyDomain(91)
>> [2007-09-24 18:55:46 xend 4176] ERROR (SrvBase:88) Request create  
>> failed.
>> Traceback (most recent call last):
>>   File "/usr/lib64/python2.4/site-packages/xen/web/SrvBase.py",  
>> line 85, in perform
>>     return op_method(op, req)
>>   File "/usr/lib64/python2.4/site-packages/xen/xend/server/ 
>> SrvDomainDir.py", line 82, in op_create
>>     raise XendError("Error creating domain: " + str(ex))
>> XendError: Error creating domain: int argument required
>> It seems that xend got a string instead of an integer for the vnc  
>> port.
>> I modified the file "image.py" at line 383 from this
>>   ret += ['-vnc', '%d' % vncdisplay]
>> to this:
>>   ret += ['-vnc', '%s' % vncdisplay]
>> Restarted xend for the change to take effect and then try starting  
>> the guest again. This time the guest gets created but its state  
>> does not change to "running".
>> # xm list
>> Name                                      ID Mem(MiB) VCPUs  
>> State   Time(s)
>> Domain-0                                   0      451     2  
>> r-----    356.7
>> full1                                     88      773     1  
>> ------      0.0
>> I removed the following vnc line from the xml definition and try  
>> again:
>>             <graphics type='vnc' port='5904'/>
>> The guest gets created but again its state is not "running".  
>> According to xml format documentation the <graphics> tag is required.
>> At this point I am stumped. Any ideas what else I can try?
>
> I think this is an instance of bug: https://bugzilla.redhat.com/ 
> show_bug.cgi?id=279581
>
> Can you try the patch in that bug please (it fixed the problem for  
> me).
>

The patch seems to be for Xen 3.1.0.

I upgraded libvirt (to 0.3.2) but not Xen itself.

virsh # version
Compiled against library: libvir 0.3.2
Using library: libvir 0.3.2
Using API: Xen 3.0.1
Running hypervisor: Xen 3.0.0

Will try upgrading to latest Xen version and try again. Thanks!

cheers,
mengkuan





More information about the libvir-list mailing list