Hi I found that migration with rbd will never work if using ceph for shared storage.
Current driver tries to import the images to the new compute node but the images are already there because it's shared resource.
So it tries this:
rbd import --pool volumes /var/lib/nova/instances/_base/swap_1024 b4c64eda-b684-4f3b-933c-95335ac202b8_disk.swap --new-format --id cinder --conf /etc/ceph/ceph.conf
But it fails because this disk already exists.
[Expected behavior]
It should not try to import disk, it should just use it.
Current error:
2014-07-25 22:53:13.134 4249 ERROR oslo.messaging._drivers.common [-] ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 133, in _dispatch_and_reply\n incoming.message))\n', ' File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 176, in _dispatch\n return self._do_dispatch(endpoint, method, ctxt, args)\n', ' File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 122, in _do_dispatch\n result = getattr(endpoint, method)(ctxt, **new_args)\n', ' File "/usr/lib/python2.7/dist-packages/nova/exception.py", line 88, in wrapped\n payload)\n', ' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', ' File "/usr/lib/python2.7/dist-packages/nova/exception.py", line 71, in wrapped\n return f(self, context, *args, **kw)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 274, in decorated_function\n pass\n', ' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 260, in decorated_function\n return function(self, context, *args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 327, in decorated_function\n function(self, context, *args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 248, in decorated_function\n migration.instance_uuid, exc_info=True)\n', ' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 235, in decorated_function\n return function(self, context, *args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 303, in decorated_function\n e, sys.exc_info())\n', ' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 290, in decorated_function\n return function(self, context, *args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 3559, in finish_resize\n self._set_instance_error_state(context, instance[\'uuid\'])\n', ' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/excutils.py", line 68, in __exit__\n six.reraise(self.type_, self.value, self.tb)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 3547, in finish_resize\n disk_info, image)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 3518, in _finish_resize\n block_device_info, power_on)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5017, in finish_migration\n block_device_info=None, inject_files=False)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 2680, in _create_image\n swap_mb=swap_mb)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/imagebackend.py", line 192, in cache\n *args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/imagebackend.py", line 678, in create_image\n libvirt_utils.import_rbd_image(*args)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/utils.py", line 255, in import_rbd_image\n execute(\'rbd\', \'import\', *args)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/utils.py", line 53, in execute\n return utils.execute(*args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/utils.py", line 164, in execute\n return processutils.execute(*cmd, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/openstack/common/processutils.py", line 193, in execute\n cmd=\' \'.join(cmd))\n', "ProcessExecutionError: Unexpected error while running command.\nCommand: rbd import --pool volumes /var/lib/nova/instances/_base/swap_1024 b4c64eda-b684-4f3b-933c-95335ac202b8_disk.swap --new-format --id cinder --conf /etc/ceph/ceph.conf\nExit code: 17\nStdout: ''\nStderr: 'rbd: image creation failed\\n\\rImporting image: 0% complete...failed.\\n2014-07-25 22:53:12.604111 7f5af3f877c0 -1 librbd: rbd image b4c64eda-b684-4f3b-933c-95335ac202b8_disk.swap already exists\\nrbd: import failed: (17) File exists\\n'\n"]
I have this issue also:
Openstack Icehouse on Ubuntu 14.04, using the Ubuntu packages:
ceph 0.80.5- 0ubuntu0. 14.04.1 0ubuntu0. 14.04.1 0ubuntu0. 14.04.1 1.2-0ubuntu1. 1 1.2-0ubuntu1. 1 1.2-0ubuntu1. 1 libvirt 1:2014. 1.2-0ubuntu1. 1 0ubuntu0. 14.04.1 1.2-0ubuntu1. 1
ceph-common 0.80.5-
libcephfs1 0.80.5-
libvirt-bin 1.2.2-0ubuntu13.1.2
libvirt0 1.2.2-0ubuntu13.1.2
nova-common 1:2014.
nova-compute 1:2014.
nova-compute-kvm 1:2014.
nova-compute-
python-ceph 0.80.5-
python-libvirt 1.2.2-0ubuntu1
python-nova 1:2014.
python-novaclient 1:2.17.0-0ubuntu1
Using this config settings in nova.conf:
libvirt_ images_ type=rbd images_ rbd_pool= openstack_ instances images_ rbd_ceph_ conf=/etc/ ceph/ceph. conf uuid=<secret uuid> inject_ password= false inject_ key=false inject_ partition= -2
libvirt_
libvirt_
rbd_user=cinder
rbd_secret_
libvirt_
libvirt_
libvirt_
libvirt_ live_migration_ flag="VIR_ MIGRATE_ UNDEFINE_ SOURCE, VIR_MIGRATE_ PEER2PEER, VIR_MIGRATE_ LIVE,VIR_ MIGRATE_ PERSIST_ DEST"