[libvirt] [Openstack][Sheepdog][Libvirt][Qemu]Add a new block storage driver by Libvirt/Qemu way for Openstack

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? Thanks in advance ;-) -- Thanks Harry Wei

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

On Sat, Jan 19, 2013 at 10:04 PM, MORITA Kazutaka <morita.kazutaka@gmail.com> wrote:
At Sat, 19 Jan 2013 16:47:37 +0800, [...] If you do the above work, I think you can use your file system with OpenStack.
Thanks for your review ;-)
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.
Yes, i think so. I will finish this job step by step ;-) -- Thanks Harry Wei

On Sat, Jan 19, 2013 at 10:04 PM, MORITA Kazutaka <morita.kazutaka@gmail.com> wrote: [...]
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.
Hi Mortita, If i just wanna test sheepdog driver in Libvirt separately(without QEMU and Openstack), how should i do this job. You can suppose i wanna test if sheepdog driver, you add, is working well in Libvirt. Could you please give me some suggestions? Thanks in advance ;-) PS: Your patch for Libvirt can be seen here: http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=036ad5052b43fe9f0d197e8... -- Thanks Harry Wei

At Fri, 25 Jan 2013 19:05:06 +0800, harryxiyou wrote:
On Sat, Jan 19, 2013 at 10:04 PM, MORITA Kazutaka <morita.kazutaka@gmail.com> wrote: [...]
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.
Hi Mortita,
If i just wanna test sheepdog driver in Libvirt separately(without QEMU and Openstack), how should i do this job. You can suppose i wanna test if sheepdog driver, you add, is working well in Libvirt. Could you please give me some suggestions? Thanks in advance ;-)
Libvirt documentation contains an example XML format for Sheepdog. http://libvirt.org/formatdomain.html#elementsDisks You're CCing too many lists which is not appropriate for your question. Please ask Sheepdog questions in Sheepdog users mailing list. sheepdog-users@lists.wpkg.org Thanks, Kazutaka

On Fri, Jan 25, 2013 at 9:37 PM, MORITA Kazutaka <morita.kazutaka@gmail.com> wrote: [...]
Libvirt documentation contains an example XML format for Sheepdog. http://libvirt.org/formatdomain.html#elementsDisks
Thanks, let me have a try ;-)
You're CCing too many lists which is not appropriate for your question. Please ask Sheepdog questions in Sheepdog users mailing list. sheepdog-users@lists.wpkg.org
You are right, i have cut some lists. Thanks for your reminder. -- Thanks Harry Wei
participants (2)
-
harryxiyou
-
MORITA Kazutaka