Hi Sebastian, Morita and other developers,
I have studied Sheepdog pool/volume storage driver for libvirt and i have
following questions. Please give me some suggestions. Thanks in advance ;-)
1, In libvirt/src/storage/storage_backend_sheepdog.c, i just find we realized
create/delete/resize volume(send these parameters to let libvirtd receive and
execute them). I cannot find the operations about snapshot, such as
creating/deleting
snapshot. I cannot also find the operations about opening/closing cache.
2, In the func create/delete/resize volume, we call func
'virCommandRun(cmd, NULL);'
to run these commands, which i think the func send these parameters to daemon
libvirtd and libvirtd send these parameters to Sheepdog, then Sheepdog
executes them, right?
3, In func "virStorageBackendSheepdogCreateVol", it composes cmd like this
"virCommandPtr cmd = virCommandNewArgList(COLLIE, "vdi",
"create",
vol->name, NULL);"
then send create parameters. When Sheepdog receive these parameters,
how Sheepdog
create this volume? I find Sheepdog create a volume like this.
$ qemu-img create sheepdog:Alice 256G
4, What are the essences of func "virStorageBackendSheepdogRefreshPool" and
"virStorageBackendSheepdogRefreshVol"? In func
"virStorageBackendSheepdogCreateVol",
after craete volume operations, we call
"virStorageBackendSheepdogRefreshVol". But in func
"virStorageBackendSheepdogDeleteVol" and
"virStorageBackendSheepdogResizeVol", we
do not call "virStorageBackendSheepdogRefreshVol", why?
5, Actually, i am not clear about how QEMU receive these parameters
(like create/delete/snapshot,
etc) and execute the real jobs?
Thanks for anyone's suggestions ;-)
--
Thanks
Harry Wei