← Back to team overview

openstack team mailing list archive

[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


Follow ups