So would like to share my experiences with the support of the new CephX
authentication support in 4.4, and have a few questions for the development
team.
In short, it works, but the documentation is not very clear on what needs to be
done to make it work, so here's what I did (and I'm certain this is the intent
of development currently):
* A secret needs to be defined within Libvirt on ALL hypervisor nodes that
you utilize with Ceph. This needs to be done manually prior to deploying any
virtual instances within the cluster.
* Looks like development used the guideline set forth by the Ceph
documentation. In this, it is required to create a client.libvirt user, as
shown in the example in the Ceph documentation. Otherwise, that user is not
validated via Ceph and will be unable to access RBDs in the cluster.
* The UUID can be specified or generated, however the secret.xml file must
be defined: See my example here: http://dev.opennebula.org/issues/1796 and
reference the Ceph documentation for defining the secret.xml within Libvirt.
* You must copy the key for the client.libvirt user and define the secret
* 'ceph auth list' will list the users and their appropriate keys. Copy
the key for placement in the definition string. See the link to the opennebula
issue 1796 above for an example:
Now my questions for the OpenNebula devs:
* Since the Ceph_Secret UUID can be defined within a secret.xml file, can
that UUID be automatically generated as part of the Ceph Datastore definition?
* I see why it's not based on the source, checking to see if the UUID
variable exists to ensure the deployment file has the appropriate information
* Can there be an option for Ceph Datastore creation for whether or not
you utilize CephX authentication on the Datastore (like a checkbox or YES/NO)?
If so, then a UUID can be generated and the CEPH_SECRET attribute can be
defined automatically. Otherwise, no CEPH_SECRET defined automatically.
*
I think the UUID generation would be the most difficult part. The manual
process for the administrator would need to be to define the KEY for injection
into Libvirt on each hypervisor. I would imagine this key could be defined as a
datastore attribute like CEPH_KEY or something?
* At that point, all other operations could be handled by the Transfer
Manager
* Check to see if the UUID currently exists in the Libvirt secret list
on the deployment host ("virsh secret-list | grep -c $CEPH_SECRET" should be an
appropriate validation)
* If not, then generate the secret.xml file, injecting the CEPH_SECRET
attribute
* Then define the secret and apply the CEPH_KEY value to the secret
* Continue with VM deployment.
Thoughts on the above?
Bill Campbell
Infrastructure Architect
Axcess Financial Services, Inc.
7755 Montgomery Rd., Suite 400
Cincinnati, OH 45236
NOTICE: Protect the information in this message in accordance with the
company's security policies. If you received this message in error, immediately
notify the sender and destroy all copies.
_______________________________________________
Users mailing list
Users@lists.opennebula.org
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org