ok,thank you for your reply, but now the openstack cinder use both qemu-img and dog command,so the recreate vdi from snapshot futrue has some problem.
https://github.com/openstack/cinder/blob/98706a9804d5896546cac0c565f74ec6cf0f24b9/cinder/volume/drivers/sheepdog.py <https://github.com/openstack/cinder/blob/98706a9804d5896546cac0c565f74ec6cf0f24b9/cinder/volume/drivers/sheepdog.py> Thanks, Xiaolong Xu > 在 2014年12月24日,下午10:47,Hitoshi Mitake <mitake.hito...@gmail.com> 写道: > > At Mon, 22 Dec 2014 17:41:33 +0800, > 徐小龙 wrote: >> >> [1 <text/plain; UTF-8 (7bit)>] >> hi,all, >> when i use `qemu-img snapshot -c test-s sheepdog:test` to create a >> snapshot of sheepdog vdi,the snapshot's lock not be released. >> >> root@hty-compute1:~/qemu# ./qemu-img create sheepdog:test 1G >> Formatting 'sheepdog:test', fmt=raw size=1073741824 >> >> root@hty-compute1:~/qemu# dog vdi list >> Name Id Size Used Shared Creation time VDI id Copies >> Tag >> test 0 1.0 GB 0.0 MB 0.0 MB 2014-12-22 17:10 7c2b25 3 >> >> root@hty-compute1:~/qemu# ./qemu-img snapshot -c test-s sheepdog:test >> WARNING: Image format was not specified for 'sheepdog:test' and probing >> guessed raw. >> Automatically detecting the format is dangerous for raw images, >> write operations on block 0 will be restricted. >> Specify the 'raw' format explicitly to remove the restrictions. >> >> root@hty-compute1:~/qemu# dog vdi lock list >> VDI | Owner node | Tag >> s test | IPv4 ip:172.16.17.200 port:7000 test-s >> >> when i create a snapshot ,the src vdi will be open and locked,in the >> function `sd_open` read the vdi inode info saved in the struct >> BDRVSheepdogState ,and in the function `sd_snapshot_create` the vdi inode >> information in the struct BDRVSheepdogState will point to an new vdi ,so >> when the function `sd_close` be called,the `sd_close` will try to released >> the lock of new vdi.In conclusion,the snapshot vdi will lock forever , so >> it's will be failed when i try to create a new vdi base on the snapshot. >> >> root@hty-compute1:~/qemu# ./qemu-img create -b sheepdog:test:test-s >> sheepdog:new-vdi >> qemu-img: sheepdog:new-vdi: cannot get vdi info, VDI is already locked, >> test 0 test-s >> >> There may be some wrong in the function`sd_snapshot_create`.but I'm not >> sure the root cause. >> >> Thanks, >> Xiaolong Xu > > Xiaolong, thanks for your report. I'll fix it ASAP. > > Could you use the dog command as a walkaround? > > Thanks, > Hitoshi >