<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Dec 8, 2017 at 4:08 PM Kevin Wolf &lt;<a href="mailto:kwolf@redhat.com">kwolf@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 07.12.2017 um 23:19 hat Nir Soffer geschrieben:<br>
&gt; On Wed, Dec 6, 2017 at 6:02 PM Jason Lelievre &lt;<a href="mailto:jlelievre@folksvfx.com" target="_blank">jlelievre@folksvfx.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt; &gt; Hello,<br>
&gt; &gt;<br>
&gt; &gt; What is the best way to set up a daily live snapshot for all VM, and have<br>
&gt; &gt; the possibility to recover, for example, a specific VM to a specific day?<br>
&gt;<br>
&gt; Each snapshot you create make reads and writes slower, as qemu has to<br>
&gt; lookup data through the entire chain.<br>
<br>
This is true in principle. However, as long as the lookup is purely in<br>
memory and doesn&#39;t involve I/O, you won&#39;t even notice this in average<br>
use cases. Whether additional I/O is necessary depends on whether the<br>
metadata caches already cover the part of the image that you&#39;re<br>
accessing.<br>
<br>
By choosing the right cache size values for the use case, it can<br>
normally be achieved that everything is already in memory.<br></blockquote><div><br></div><div>Can you give more details about selecting the cache size?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; When we take a snapshot, we create a new file (or block device) and make<br>
&gt; the new file the active layer of the chain.<br>
&gt;<br>
&gt; For example, assuming you have a base image in raw format:<br>
&gt;<br>
&gt; image-1.raw (top)<br>
&gt;<br>
&gt; After taking a snapshot, you have:<br>
&gt;<br>
&gt; image-1.raw &lt;- image-2.qcow2 (top)<br>
&gt;<br>
&gt; Now when qemu need to read data from the image, it will try to get the<br>
&gt; data from the top layer (image-2), if it does not exists it will try<br>
&gt; the backing file (image-1).  Same when writing data, if qemu need to<br>
&gt; write small amount of data, it may need to get entire sector from a<br>
&gt; another layer in the chain and copy it to the top layer.<br>
<br>
Yes, though for this operation it doesn&#39;t matter whether it has to copy<br>
it from the second image in the chain or the thirtieth. As soon as you<br>
do a partial write to a cluster that hasn&#39;t been written yet since the<br>
last snapshot was taken, you get to copy data, no matter the length of<br>
the chain.<br></blockquote><div><br></div><div>So do you think keeping 30 snapshots for backup/restore purpose is</div><div>a practical solution with negligible effect on performance? </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Kevin<br>
</blockquote></div></div>