Pre-requisite: EWC - OpenStack Command-Line client |
Before restoring resources in OpenStack, it's important to understand the difference between three primary methods:
Choose the appropriate method based on your recovery needs: instance snapshots for full system recovery or replication, volume snapshots for accident prevention and recovery or volume backups for full data security and recovery.
Furthermore, there are two different restoration methods, according to whether the restoration replaces an existing resource or not:
| Before starting make sure you are in the machine where you configured openstack client, have the required openstack credentials and you can run openstack commands as described in EWC - OpenStack Command-Line client |
| The restoration of backups or snapshots of VMs and volumes must be run outside from said VMs and volumes, specially in the case of in-place restoration, as the existing resource is completely replaced. |
In-place restoration of VM snapshots can be performed with OpenStack by replacing the underlying disk of an existing VM with an image. In this way it is not necessary to create a new VM instance, but rather replace an existing one. This can be achieve by running:
openstack server rebuild <instance> --image <image_snapshot> |
where
<instance> : The name or id of the existing VM<image_snapshot> : Name or id of the snapshot image of the VM previously createdInstead of performing an in-place restoration, it is possible to create a new VM using the image snapshot. This is done in the same manner as for creating a new instance, see EWC - How to create a VM using the Openstack CLI, using the command
openstack server create --flavor <flavor_name> --image <image_snapshot> --key-name <keyname> --network <network_name> --security-group <security_group_name> <vm_name> |
where here the <image_name> is the name or id of the image snapshot. It is worth noting that the image snapshot does not contain information about the flavor, networks or security groups, and therefore these need to be manually provided. Restoring a snapshot onto a flavor of smaller size than the original will result in a failure.
| An important consequence of restoring a VM in this manner, either in-place or not, is that the image snapshot becomes the underlying image of the VM, instead of the original, e.g. Ubuntu or Rocky OS, and therefore the image can no longer be removed from the list of images available in the cloud. |
To restore a backup to a new volume, first you need to detach the volume from the VM:
ssh into your VM
become root
unmount the volume
sudo umount --verbose <path-to-volume>
|
Where:
BACKUP_ID: The ID of the backup to restore
VOLUME_ID: The ID of the volume to restore to (must be at least as large as the original volume)
3. Now, you need to attach the volume again to the VM as explained in `Configuring the extra volume in the instance`.
WIP
WIP