[Libvir] Remotely starting a fully-virtualized guest

Meng Kuan mengkuan at gmail.com
Mon Sep 24 11:19:19 UTC 2007


Hi,

I am trying to start a fully virtualized guest called "full1"  
remotely. The connection URI I am using is "xen+ssh://root@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?

cheers,
mengkuan




More information about the libvir-list mailing list