<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small;color:#000000"><span style="color:rgb(34,34,34)">On Wed, Mar 13, 2019 at 12:01 AM Eric Blake <<a href="mailto:eblake@redhat.com">eblake@redhat.com</a>> wrote:</span><br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 3/12/19 4:52 PM, Eric Blake wrote:<br>
<br>
>> vm_checkpoints table<br>
>><br>
>> - checkpoint_id: UUID<br>
>> - parent: UUID<br>
>> - vm_id: UUID<br>
>> - creation_date: TIMESTAMP<br>
>><br>
>> vm_checkpoint_disk_map table<br>
>> - disk_id: UUID<br>
>> - checkpoint_id: UUID<br>
>><br>
> <br>
> And no state of the <domain> at the time the checkpoint was created?<br>
<br>
I meant to add:<br>
<br>
once we start playing with checkpoints vs. external snapshots vs.<br>
hotplug in anger, then knowing WHICH disks existed at the time of a<br>
given checkpoint may prove invaluable to even figure out WHICH disks<br>
need to participate in a given backup operation.  The initial<br>
implementation uses XML (so that adding features can hopefully reuse the<br>
same API, rather than needing yet more one-off API additions), even if<br>
it is currently limited to not playing nicely with snapshots.</blockquote><div><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">When you plug a disk, you cannot use any of the bitmaps on the disk because</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">you don't have any guarantee that the user did not attach the disk to another machine</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">that modified the data in some way without updating the bitmaps. So we are going to <br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">delete a disk from checkpoints once you unplug it, and start from scratch when you </div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">plug a disk.</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">I think what we keep is enough to tell libvirt which bitmaps are needed for a backup.</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">We probably need to keep the vm configuration per checkpoint or at least ensure</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">consistency, so once you started a backup the configuration cannot change until</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">the backup ends.</div></div></div>