<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">My understanding from the page at <a href="https://github.com/sheepdog/sheepdog/wiki/Which-Format-of-QEMU-Images-Should-I-Run" id="yui_3_16_0_1_1441822682750_19501">https://github.com/sheepdog/sheepdog/wiki/Which-Format-of-QEMU-Images-Should-I-Run</a> is that sheepdog can store qemu checkpoints internally using the 'raw' format. I am having problems when trying to take a live snapshot of a VM stored on sheepdog though. I get the following error message when using `virsh snapshot-create --live domain`:<br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">"internal snapshot for disk vda unsupported for storage type raw"</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">This behavior appears to have been introduced with the following commit:</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">commit f7c1410b0ee5b878e81f2eddf86c609947a9b27c</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">Author: Shanzhi Yu <shyu@redhat.com></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">Date:   Sat Feb 28 17:51:36 2015 +0800</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br id="yui_3_16_0_1_1441822682750_25915" class=""></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    qemu: snapshot: Don't skip check for qcow2 format with network disks</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br id="yui_3_16_0_1_1441822682750_25919" class=""></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    When the domain's source disk type is network, if source protocol is rbd</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    or sheepdog, the 'if().. break' will end the current case, which lead to</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    miss check the driver type is raw or qcow2. Libvirt will allow to create</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    internal snapshot for a running domain with raw format disk which based</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    on rbd storage.</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br id="yui_3_16_0_1_1441822682750_25927" class=""></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    While both protocols support internal snapshots of the disk qemu is not</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    able to use it as it requires some place to store the memory image. The</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    check if the disk is backed by a qcow2 image needs to be executed</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">    always.</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">I reverted the above commit, built libvirt and tried again and got the following error:</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">"error: Operation not supported: live snapshot creation is supported only with external checkpoints"<br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">Before digging any further into this issue, I wanted to ask on the mailing list if this behavior seems incorrect to others. If this behavior _is_ expected then I think the wiki page linked in the opening of this email should be updated to reflect that.</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr">The versions of qemu, libvirt and sheepdog I'm using are listed below.</div><div id="yui_3_16_0_1_1441822682750_16036" class="" dir="ltr"><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="">jason@sheepdog1:~/sheepdog$ qemu-system-x86_64 --version</div><div id="yui_3_16_0_1_1441822682750_16036" class="">QEMU emulator version 2.3.0 (Debian 2.3+dfsg-0ubuntu1), Copyright (c) 2003-2008 Fabrice Bellard</div><div id="yui_3_16_0_1_1441822682750_16036" class=""><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="">jason@sheepdog1:~/sheepdog$ libvirtd --version</div><div id="yui_3_16_0_1_1441822682750_16036" class="">libvirtd (libvirt) 1.2.16</div><div id="yui_3_16_0_1_1441822682750_16036" class=""><br></div><div id="yui_3_16_0_1_1441822682750_16036" class="">jason@sheepdog1:~/sheepdog$ sheep -v</div><div id="yui_3_16_0_1_1441822682750_16036" dir="ltr" class="">Sheepdog daemon version 0.9.0_165_g01fe35e</div></div></body></html>