Proposal: support for atomic snapshot of all VM disks at once

Ivaylo Markov ivaylo.markov at storpool.com
Fri Nov 22 16:58:16 CET 2024


Hi,

It's clear now :) My current implementation allows only for group 
snapshots if the storage supports it, and regular sequential snapshots 
otherwise. Due to the considerations around 
application/crash-consistency, it would be best to let the user pick 
(with a default set by the storage plugin/backend?).

On 21/11/2024 16:49, Max Carrara wrote:
> On Wed Nov 20, 2024 at 5:10 PM CET, Ivaylo Markov wrote:
>> Hello,
>>
>> I've been caught up in other things and it's been a while, but as I was
>> collating and testing my proposed changes, I came across this again and
>> thought I'd clarify something.
>>
>> On 08/10/2024 13:50, Max Carrara wrote:
>>>> I was directed here to discuss this proposal and my implementation idea
>>>> after an initial post in Bugzilla[1]. The goal is to give storage
>>>> plugins the option to perform atomic crash-consistent snapshots of the
>>>> virtual disks associated with a virtual machine where the backend
>>>> supports it  (e.g. Ceph, StorPool, and ZFS) without affecting those
>>>> without such a feature.
>>> Since you mentioned that the backends without such a feature won't be
>>> affected, will the disks of the storage types that *do* support it still
>>> be addressable individually? As in: Would it be possible to run both
>>> group snapshots and individual snapshots on a VM's disks? (I'm assuming
>>> that they will, but still wanted to ask.)
>>>
>> Do you mean this this as "you can snapshot the whole VM (all disks) at
>> once *or* each disk individually" or "when making a snapshot of the
>> entire VM, the user can chose between individual/group snapshot of all
>> drives". What I have so far matches the first description, but I just
>> realized you might have meant the second one, so I thought I'd ask and
>> potentially create more work for myself :)
> Hey!
>
> No worries, always feel free to ask :)
>
> I should have phrased myself better there, so I'll try to be as specific
> as possible here. Let me define some terms first:
>
> - regular snapshots: This is how things work currently; a snapshot of
>    each disk of the VM is made after the previous one finishes. In other
>    words, disk snapshots are made *sequentially*. Works for every storage
>    type.
>
> - group snapshots: What you're implementing -- essentially creating a
>    snapshot of *all* disks of a VM at once, atomically. Snapshots of this
>    type are crash-consistent. Only works for storage types that support
>    it.
>
> What I meant to ask was whether *both* options will remain available to
> users. For example, if I click on a VM, then go to Snapshots -> Take
> Snapshot, will I have the option to say whether the snapshot should be a
> group snapshot or a regular snapshot?
>
> I guess calling it "individual" was a bit ambiguous here; I didn't mean
> that I could e.g. snapshot just one disk only (if that's what confused
> you). When performing a snapshot of a VM, a snapshot for *all* disks of
> the VM is *always* made, regardless of whether a regular snapshot or a
> group snapshot is performed on a VM.
>
> I hope all that isn't too long -- just wanted to make sure everything's
> clear! :)
>
>
-- 
Ivaylo Markov
Quality & Automation Engineer
StorPool Storage
https://www.storpool.com




More information about the pve-devel mailing list