Can't attach or boot nova volumes backed by cinder ceph rbd

Bug #1746550 reported by Gui Maluf Balzana
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
puppet-cinder
Won't Fix
Undecided
Unassigned
puppet-nova
Won't Fix
Undecided
Unassigned

Bug Description

I'm reusing/rewriting bug reports from fellow config management tools [1][2]

> https://github.com/openstack/nova/commit/b89efa3ef611a1932df0c2d6e6f30315b5111a57 introduced a
> change in Ocata where any data provided by cinder for rbd block devices is preferred over any local
> libvirt sectional configuration for rbd (which was used in preference in the past).

> Username on the compute units won't match the username for ceph being used on the cinder units (as
> compute and cinder units get different keys created) so I don't think the key created on the compute
> units will actually work with the username provided from cinder.

> As a result, isn't possible to attach ceph block devices in instances in a puppet deployed Ocata;

Main point here is the absence of virsh-secret with cinder ceph-auth-secret on nova-compute. Nova computes try to attach cinder volume using this xml with ceph usename cinder instead of nova.

> <disk type="network" device="disk">
> <driver name="qemu" type="raw" cache="writeback" discard="unmap"/>
> <source protocol="rbd" name="cinder_volumes/volume-d970438e-8fdd-4f05-90a8-dd4caaaaf4b0">
> <host name="192.168.203.19" port="6789"/>
> </source>
> <auth username="cinder">
> <secret type="ceph" uuid="4d317a47-2f59-4f69-ab42-c0233c496159"/>
> </auth>
> <target bus="virtio" dev="vdb"/>
> </disk>

Since cinder-ceph-virsh-secret-uuid isn't create on nova-compute nodes by neither cinder or nova modules isn't possible to attach cinder volumes to nova instances.

[1]https://bugs.launchpad.net/charm-nova-compute/+bug/1671422
[2]https://bugs.launchpad.net/openstack-ansible/+bug/1697782

Revision history for this message
Gui Maluf Balzana (guimalufb) wrote :

I've fixed that using the same ceph-auth-key for both cinder and nova ceph-user, that way, when nova tries to attach a volume using cinder-ceph-user and nova-libvirt-secret it will match and work.

Revision history for this message
Gui Maluf Balzana (guimalufb) wrote :

The best solution is to create a nova class or a generic libvirt-secret to store ceph key for both nova/cinder ceph-user and use that uuid in cinder::backend::rbd::rbd_secret_uuid

Revision history for this message
Takashi Kajinami (kajinamit) wrote (last edit ):

Defining the common value for nova and cinder is out of scope of individual modules and should be implemented in the upper-level manifest(or the hieradata set) to compose up the whole service.

I'll close this as won't fix, but please feel free to reopen this if you have any concern or objection.

Changed in puppet-cinder:
status: New → Won't Fix
Changed in puppet-nova:
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.