Nova Diablo does not support for LVM Xen SR ?

Asked by JC Martin

While testing the support for Xen in Nova Diablo, I ran into an issue with Xenserver 5.6 SP2 : when using VHD images, the glance plugin try to create a temporary disk under the local SR, and use a default value of '/var/run/sr-mount'. However, with LVM based SR, this directory does not exist. Here is the log on nova-compute :
2012-01-11 11:22:55,114 WARNING nova.virt.xenapi [-] Task [Async.host.call_plugin] OpaqueRef:0c995ea8-ecd3-959c-5178-5e1784f1c571 status: failure ['XENAP
I_PLUGIN_EXCEPTION', 'download_vhd', 'OSError', "[Errno 2] No such file or directory: '/var/run/sr-mount/45274cf4-1e20-d1a5-9f4e-5ddf7cd082f1/tmpYMuI4B'"]
2012-01-11 11:22:55,115 ERROR nova.virt.xenapi.vmops [-] instance 29: Failed to spawn
(nova.virt.xenapi.vmops): TRACE: Traceback (most recent call last):
(nova.virt.xenapi.vmops): TRACE: File "/usr/lib/pymodules/python2.6/nova/virt/xenapi/vmops.py", line 148, in spawn
(nova.virt.xenapi.vmops): TRACE: vdis = self._create_disks(context, instance)
(nova.virt.xenapi.vmops): TRACE: File "/usr/lib/pymodules/python2.6/nova/virt/xenapi/vmops.py", line 142, in _create_disks
(nova.virt.xenapi.vmops): TRACE: disk_image_type)
(nova.virt.xenapi.vmops): TRACE: File "/usr/lib/pymodules/python2.6/nova/virt/xenapi/vm_utils.py", line 424, in fetch_image
(nova.virt.xenapi.vmops): TRACE: session, instance, image, image_type)
(nova.virt.xenapi.vmops): TRACE: File "/usr/lib/pymodules/python2.6/nova/virt/xenapi/vm_utils.py", line 457, in _fetch_image_glance_vhd
(nova.virt.xenapi.vmops): TRACE: result = session.wait_for_task(task, instance_id)
(nova.virt.xenapi.vmops): TRACE: File "/usr/lib/pymodules/python2.6/nova/virt/xenapi_conn.py", line 438, in wait_for_task
(nova.virt.xenapi.vmops): TRACE: return done.wait()
(nova.virt.xenapi.vmops): TRACE: File "/usr/lib/pymodules/python2.6/eventlet/event.py", line 116, in wait
(nova.virt.xenapi.vmops): TRACE: return hubs.get_hub().switch()
(nova.virt.xenapi.vmops): TRACE: File "/usr/lib/pymodules/python2.6/eventlet/hubs/hub.py", line 177, in switch
(nova.virt.xenapi.vmops): TRACE: return self.greenlet.switch()
(nova.virt.xenapi.vmops): TRACE: Failure: ['XENAPI_PLUGIN_EXCEPTION', 'download_vhd', 'OSError', "[Errno 2] No such file or directory: '/var/run/sr-mount/45
274cf4-1e20-d1a5-9f4e-5ddf7cd082f1/tmpYMuI4B'"]

Am I doing something wrong or is it an expected behavior ?

Thanks.

JC

Question information

Language:
English Edit question
Status:
Answered
For:
OpenStack Compute (nova) Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
salzd1 (dominic-salzmann) said :
#1

Hi JC

First the bad news: unfortunately i have no solution to this problem. Reason for participating is, I see the behavior using XenServer 6.0 with essex-development-trunk. So it seems that there's certainly a bug when using Xen+VHD in an LVM environment. In my opinion this Problem is fairly critical since the .vhd compatibility seems quite central to me.

If there exists a workaround i would be very pleased to get more information...

Greetz
salzd1

Revision history for this message
Armando Migliaccio (armando-migliaccio) said :
#2

Prior to dowload_vhd, the XenAPI virt layer looks for a 'local storage' SR. This is going to be mapped on /var/run/sr-mount/{UUID} in the case of XenServer 5.6 (or above) and ext3 environments. If you can't switch to an ext3 installation, and to prove the point, you could try this (be ):

- create a CIFS remote storage to which you can write to (make a note of the SR UUID)
- clear the other-config param from your Local Storage SR (make a note of the other-config first)
- set the other-config dict of the newly created SR to the value noted before
- try again to start an instance

HTH

Revision history for this message
Armando Migliaccio (armando-migliaccio) said :
#3

I was going to say, (be careful ;)

Revision history for this message
JC Martin (jemartin) said :
#4

I have two installations, one with ext3 and one without. The result of looking for /var/run/srmount is the following:
on ext3 :
[root@xenserver-1 ~]# ls /var/run/sr-mount
56a38ca3-c603-ca1b-7d8b-9f9e4c768eba 6ee1296c-20df-d6d6-a7e5-9fc520898f76
[root@xenserver-1 ~]# mount
/dev/sda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw)
none on /dev/shm type tmpfs (rw)
/opt/xensource/packages/iso/XenCenter.iso on /var/xen/xc-install type iso9660 (ro,loop=/dev/loop0)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/XSLocalEXT--56a38ca3--c603--ca1b--7d8b--9f9e4c768eba-56a38ca3--c603--ca1b--7d8b--9f9e4c768eba on /var/run/sr-mount/56a38ca3-c603-ca1b-7d8b-9f9e4c768eba type ext3 (rw)

on the LVM installation, you get :

[root@xenserver-2 ~]# ls /var/run/sr-mount
ls: /var/run/sr-mount: No such file or directory

[root@xenserver-2 ~]# mount
/dev/sda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw)
none on /dev/shm type tmpfs (rw)
/opt/xensource/packages/iso/XenCenter.iso on /var/xen/xc-install type iso9660 (ro,loop=/dev/loop0)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

Can you help with this problem?

Provide an answer of your own, or ask JC Martin for more information if necessary.

To post a message you must log in.