Add RBD supporting to libvirt for creating local volume

The block storage in OpenStack is divided into Nova and Cinder, Nova is
responsible for local volume such as root, swap and ephemeral partition. Cinder
is responsible for normal volume(global volume?). This mode will make difficult
for planning storage allocation. In order to improve the availability of
storage capacity and reduce the complexity of storage allocation, implementing
the unified storage for local volume in Nova and volumes in Cinder is
necessary.

Now Nova supports lvm backend for creating local volume. Ceph as a Cinder
backend we want to implement it too in Nova.

This patch add RBD backend to libvirt image backend, and users can use specify
rbd as the source of root, ephemeral and swap partition.

Implement: blueprint bring-rbd-support-libvirt-images-type
Change-Id: Id97de5c9af4ddc5c58493a5cef21b52386afac3e
Merge "Add RBD supporting to libvirt for creating local volume"