When mounting a RBD volume to an instance, nova-volume/cinder doesn't pass Ceph monitor(MON) addresses to libvirt.Whithout the MON address, libvirt failed to tal with MON and then cannot plug in the disk into volume.
This bug also affect cinder.
Here is the error log from nova-compute:
2012-11-12 12:12:36 ERROR nova.compute.manager [req-0bb59b29-5d0a-4e1d-8f90-b3ceffb41ddb 94baac25958a4400a95535b95fad6012 4b2e53cca0
3245d0ac58041f1b6489d1] [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] Failed to attach volume a69b76be-ce01-4ede-bfac-8230d5e4c48
f at /dev/vdb
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] Traceback (most recent call last):
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] File "/usr/lib/python2.7/dist-pack
ages/nova/compute/manager.py", line 1971, in _attach_volume
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] mountpoint)
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] File "/usr/lib/python2.7/dist-pack
ages/nova/exception.py", line 117, in wrapped
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] temp_level, payload)
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] File "/usr/lib/python2.7/contextli
b.py", line 24, in __exit__
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] self.gen.next()
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] File "/usr/lib/python2.7/dist-pack
ages/nova/exception.py", line 92, in wrapped
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] return f(*args, **kw)
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] File "/usr/lib/python2.7/dist-pack
ages/nova/virt/libvirt/driver.py", line 649, in attach_volume
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] raise exception.DeviceIsBusy(dev
ice=mount_device)
2012-11-12 12:12:36 TRACE nova.compute.manager [instance: 5b919282-6e93-4b16-9bb5-9cb95d25bc20] DeviceIsBusy: The supplied device (v
db) is busy.
When looking into libvirt's log,the following error presents:
unable to find any monitors in conf. please specify monitors via -m monaddr or -c ceph.conf
Here is the XML generated by libvirt,
<disk type="network" device="disk">
<driver name="qemu" type="raw" cache="none"/>
<source protocol="rbd" name="nova/volume-a69b76be-ce01-4ede-bfac-8230d5e4c48f"/>
<target bus="virtio" dev="vdb"/>
<serial>a69b76be-ce01-4ede-bfac-8230d5e4c48f</serial>
</disk>
But from the link (http://libvirt.org/storage.html#StorageBackendRBD), we can know that monitor's ips can be specified in XML rather than a extra ceph.conf
When mounting a RBD volume to an instance, nova-volume/cinder doesn't pass Ceph monitor(MON) addresses to libvirt.Whithout the MON address, libvirt failed to tal with MON and then cannot plug in the disk into volume.
This bug also affect cinder.
Here is the error log from nova-compute:
2012-11-12 12:12:36 ERROR nova.compute. manager [req-0bb59b29- 5d0a-4e1d- 8f90-b3ceffb41d db 94baac25958a440 0a95535b95fad60 12 4b2e53cca0 b6489d1] [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] Failed to attach volume a69b76be- ce01-4ede- bfac-8230d5e4c4 8 manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] Traceback (most recent call last): manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] File "/usr/lib/ python2. 7/dist- pack compute/ manager. py", line 1971, in _attach_volume manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] mountpoint) manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] File "/usr/lib/ python2. 7/dist- pack exception. py", line 117, in wrapped manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] temp_level, payload) manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] File "/usr/lib/ python2. 7/contextli manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] self.gen.next() manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] File "/usr/lib/ python2. 7/dist- pack exception. py", line 92, in wrapped manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] return f(*args, **kw) manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] File "/usr/lib/ python2. 7/dist- pack virt/libvirt/ driver. py", line 649, in attach_volume manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] raise exception. DeviceIsBusy( dev manager [instance: 5b919282- 6e93-4b16- 9bb5-9cb95d25bc 20] DeviceIsBusy: The supplied device (v
3245d0ac58041f1
f at /dev/vdb
2012-11-12 12:12:36 TRACE nova.compute.
2012-11-12 12:12:36 TRACE nova.compute.
ages/nova/
2012-11-12 12:12:36 TRACE nova.compute.
2012-11-12 12:12:36 TRACE nova.compute.
ages/nova/
2012-11-12 12:12:36 TRACE nova.compute.
2012-11-12 12:12:36 TRACE nova.compute.
b.py", line 24, in __exit__
2012-11-12 12:12:36 TRACE nova.compute.
2012-11-12 12:12:36 TRACE nova.compute.
ages/nova/
2012-11-12 12:12:36 TRACE nova.compute.
2012-11-12 12:12:36 TRACE nova.compute.
ages/nova/
2012-11-12 12:12:36 TRACE nova.compute.
ice=mount_device)
2012-11-12 12:12:36 TRACE nova.compute.
db) is busy.
When looking into libvirt's log,the following error presents:
unable to find any monitors in conf. please specify monitors via -m monaddr or -c ceph.conf
Here is the XML generated by libvirt, volume- a69b76be- ce01-4ede- bfac-8230d5e4c4 8f"/> a69b76be- ce01-4ede- bfac-8230d5e4c4 8f</serial> libvirt. org/storage. html#StorageBac kendRBD), we can know that monitor's ips can be specified in XML rather than a extra ceph.conf
<disk type="network" device="disk">
<driver name="qemu" type="raw" cache="none"/>
<source protocol="rbd" name="nova/
<target bus="virtio" dev="vdb"/>
<serial>
</disk>
But from the link (http://