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
> 

Reply via email to