At Sat, 19 Jan 2013 16:47:37 +0800,
harryxiyou wrote:
Hi all,
I wanna add a new block storage driver by Libvirt/Qemu way for Openstack, which
is as same as Sheepdog driver for Openstack. So i think the theories
are like this.
1, In the Openstack Nova branch, Openstck driver call libvirt client
and send parameters
to libvirt client.(From this point, i should modify Openstack Nova
source codes. They are
a, nova/nova/virt/libvirt/driver.py add new driver way
b, /OpenStack/nova/nova/tests/test_libvirt.py add new driver test)
2, According to own protocol, libvirt client in Openstack Nova branch
send parameters to
Libvirt server.(From this point, i should modify libvirt library to
let libvirt library support this
new driver like Sheepdog).
3, Libvirt server call Qemu interfaces to send parameters to
Qemu.(From this point, i should
modify Qemu source codes to let Qemu support this new driver like Sheepdog).
4, In Openstack Cinder branch, Openstack driver use Qemu commands to
create this new volumes
to Qemu.(From this point, i should modify Openstack Cinder branch
source codes like this.
a, Add new driver file
/OpenStack/cinder/cinder/volume/drivers/new_driver.py like Sheepdog.py
b, Change file /OpenStack/cinder/cinder/tests/test_drivers_compatibility.py
to test new driver).
5, At last, i should also modify
/OpenStack/manuals/doc/src/docbkx/openstack-compute-admin/tables/hypervisors-nova-conf.xml
to configure this new driver.
Are my theories right? Should i do any other stuffs? Could anyone give
me any other suggestions?
If you do the above work, I think you can use your file system with
OpenStack.
But I suggest doing them step by step. If your file system is not
supported in QEMU, I think libvirt won't support it. If libvirt
doesn't support it, OpenStack shouldn't support it too.
Thanks,
Kazutaka