"could not find capabilities for domaintype=kvm" during OpenStack deployment inside virtual machine. Now what?
If Bright OpenStack is being deployed on top of KVM, then it is almost certainly a nested virtualization issue.
Summary Of Issue
Virtual machines are commonly used for testing out deployments before running the production version on dedicated hardware. Bright deployments are typically tested in this way too.
However, if an administrator deploys a Bright OpenStack cluster inside a KVM virtual machine, and follows the Openstack Deployment manual, then error messages related to KVM may come up if nested virtualization is not available.
There are workarounds, although there may be performance issues.
When provisioning a virtual machine through Openstack via the Horizon dashboard or on the command line, the guest system may fail in the ERROR state with the Nova compute message of "could not find capabilities for domaintype=kvm".
Openstack is configured by default to use KVM. However if the OpenStack cluster is running inside a KVM virtual machine for testing purposes, then hardware virtualization may not be available.
- Enable nested virtualization in libvirtd (How to enable Nested Virtualization)
- Switch nova-compute to qemu. In /etc/nova/nova.conf change the "libvirt_type" option to "libvirt_type = qemu".
- Nested virtualization in KVM is only supported in 3.10 and onwards of the Linux Kernel (Guest and Hypervisor).
- Please note, this should only be used for testing a Bright Openstack on a local machine.
- QEMU emulation is very slow.