Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To summarize, we want to be communicated to users that snapshots do not qualify as a disaster recovery strategy.
But they are a good addition to an existing strategy.

Possible user stories

Cases that do not require consistency with applications:

  1. Creating a snapshot immediately after creating a logical volume and before the first launch of the application.
    This will allow us to reset the virtual machine to its initial state without recreating the logical volume (We are now
    recreating the logical volumes). Basically it just simplifies the current process in EVE to clear the logical volume
    for the VM without adding anything new.
  2. Creating/rollback a snapshot when the application is turned off. This is considered as a basic capability that does not
    need to be consistent with applications. Can be used as a checkpoint that does not imply conflicts with rollback when
    the VM is powered off. User story for this case can be anything, such as rollback a logical volume to state N after
    an unsuccessful update.

Cases where application consistency is needed (Main query):

As administrator:

  1. I need to be able to create a snapshot of the logical volume where stored database N and used by application N,
    for example before important updates once a week.
  2. I need to be able to rollback to snapshot N if something went wrong and, for example, data was corrupted in
    the database after the actions of user X.
  3. I would like to be able to get information about snapshots on the controller, for example, to understand the space
    occupied by snapshots and their status.
  4. I need to be able to manage snapshots through the controller (create/delete/rollback). For example, EVE has run out
    of space or is not enough to create a new VM. Thus, as an administrator, I can delete the old snapshot via controller
    that I no longer need, thereby freeing up space for the new VM. 

As a VM usual user without controller access:

  1. After I manually or through a script paused the I/O of application N and reset its cache (if the application has such
    functionality), I need to be able to send a command to create or roll back a snapshot, and in case of a positive or
    negative outcome, receive information about this event from EVE. (for example, lack of space when creating a snapshot,
    a successful rollback operation, and other information or problems)
  2. Be have able to get/view a list of available snapshots for a specific disk, available for rollback or deletion on the VM side.

Crash-Consistent snapshots vs application-consistent snapshots

...

For the Host-Initiated snapshot, we have to have an agent running in the virtual machine as a daemon. There is no way
around it. Fortunately, qemu comes with qemu-guest-agent software, which is available on Linux and Windows.
The agent is running as a daemon and communicates with the host via a virtio serial. From the host side commands can
be sent to the guest agent via the QMP virtio-serial or AF_VSOCK socket.

Qemu-guest-agent fsfreeze command

...