SUSE Virtualization (Harvester) VM Backup and Restore Support

This document outlines the backup and restore support functionality for SUSE Virtualization Virtual Machines (VMs) in Veeam Kasten. Certain conditions and limitations should be kept in mind before initiating the backup or restore process:

1. DHCP-identifier:

If using DHCP for network connectivity, the network interface configuration for VMs should have DHCP identifier configured to use MAC address, as otherwise the SUSE Virtualization DHCP server may fail to assign an IP address to the VM after it is restored via Kasten. An example of the cloud-init configuration is shown below:

cloud-user@customer-test-vm:~$ sudo cat /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        enp1s0:
            dhcp4: true
            dhcp-identifier: mac
    version: 2

2. QEMU Guest Agent:

The QEMU guest agent should be activated within your VM to ensure the consistent backup of data. The guest agent can halt write functions during the backup procedure, thus preventing data manipulation or loss. For more information, refer to the Harvester instruction installing the QEMU guest agent.

3. VM OS Disk Images:

If the VM uses a disk image in the IMG format and it is constantly attached to the VM, there will be certain restrictions. While VM restore operation on the same cluster will be successful, restoring it on a different cluster requires uploading of the same VM images to the new cluster. Refer to the Harvester instruction to upload VM images in a different cluster. To bypass this limitation, it is possible to configure a One-time Boot For ISO Installation and detach the disk image after completing the OS installation.

4. Volume Snapshot Class Annotation:

For successful operations with Harvester VMs, users need to annotate the Volume Snapshot Class (VSC) with a specific annotation. Currently, the support is limited to VSCs having the "parameters.type.snap" (same as the default "longhorn-snapshot"). One of its limitations is that users cannot restore the VM using a "local" restore point. Only 'Import and Restore' are feasible - this implies each Veeam Kasten VM backup needs to be exported to a location specified in a "Location Profile" before a VM restoration.

5. Backup of SSH Key Objects:

If "SSH Key" objects - represented as Kubernetes Custom Resource Definition named "KeyPair" need to be backed up, additional Veeam Kasten policy configuration may be necessary. This is because "KeyPair" objects may be located in a different Kubernetes namespace than that of the VM.

6. Block Mode Export of VM Image Volumes

SUSE Virtualization (Harvester) VM images are standard KVM-compatible images in qcow2, raw, or ISO format, used as templates for creating VMs. They are managed via the VirtualMachineImage CRD. A VM image can be created by uploading via URL, uploading a local file, or creating it from volumes. When creating an image, a special image storage class is created and used for further provisioning of VM image volumes from an image.

Backing up a VM image volume with an associated PVC in Block Mode by default does not require the special annotation if the storage class used for VM image creation is already annotated. If the storage class used for VM image creation is not annotated, the annotation can be applied to the image storage class itself.