A backup is a complete copy of user data in case the original is lost or damaged. In CloudCIX, backups are taken of virtual machines (VMs). CloudCIX allows users to create backups manually, either through the UI or through API requests. As of current, users are unable to restore backups themselves. To restore a backup, users can contact a member of CloudCIX support staff who will restore the backup manually.
Backups are part of CloudCIX infrastructure as a service (IAAS) API.
There are 2 possible actions that can be performed with backups.
Create a backup
Delete a backup
Performed using a push request.
Three pieces of data needs to be sent:
vm_id = VM to backup
name = backup name
repository = 1 or 2
Performed using a put/patch request.
The pk (primary key) sent is the id for the backup.
One piece of data needs to be sent:
state = SCRUB
CloudCIX uses hypervisors to create virtual machines. The hypervisor is also used to create backups.
CloudCIX uses two types of hypervisor:
HyperV (for windows host)
KVM (for ubuntu host)
From a CloudCIX user’s perspective backups on each host work the same, but behind the scenes they are quite different.
Backups in HyperV are performed using the Export VM feature. With the export feature, VMs are exported as a single folder containing all related VM files. The entire process is a native feature of HyperV, with functionality built into the hypervisor.
KVM is the hypervisor for Ubuntu hosts.
When creating a backup, first an external snapshot is created. This type of snapshot creates an external file to keep track of VM changes (See snapshots for more information). This leaves the original file free to be copied away safely. Once the file is copied away, the external snapshot is merged back into the VM, and operation continutes as normal.
Each host has two TrueNAS servers attached - a primary and secondary storage location:
On Hyper-v these servers are mounted as network attached storage under a P and S drive respectively.
On KVM, the servers are mounted as /mnt/backup-p/ and /mnt/backup-s/.