Restores

Definition

A Restore is the workflow to bring back the backed up VMs from a Trilio Snapshot.

List of Restores

Using Horizon

To reach the list of Restores for a Snapshot follow these steps:

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to show

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the searched Snapshot in the Snapshot list

  8. Click the Snapshot Name

  9. Navigate to the Restores tab

Using CLI

workloadmgr restore-list [--snapshot_id <snapshot_id>]
  • --snapshot_id <snapshot_id> ➡️ ID of the Snapshot to show the restores of

Restores overview

Using Horizon

To reach the detailed Restore overview follow these steps:

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to show

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the searched Snapshot in the Snapshot list

  8. Click the Snapshot Name

  9. Navigate to the Restores tab

  10. Identify the restore to show

  11. Click the restore name

Details Tab

The Restore Details Tab shows the most important information about the Restore.

  • Name

  • Description

  • Restore Type

  • Status

  • Time taken

  • Size

  • Progress Message

  • Progress

  • Host

  • Restore Options

The Restore Options are the restore.json provided to Trilio.

  • List of VMs restored

    • restored VM Name

    • restored VM Status

    • restored VM ID

Misc Tab

The Misc tab provides additional Metadata information.

  • Creation Time

  • Restore ID

  • Snapshot ID containing the Restore

  • Workload

Using CLI

workloadmgr restore-show [--output <output>] <restore_id>
  • <restore_id> ➡️ ID of the restore to be shown

  • --output <output> ➡️ Option to get additional restore details, Specify --output metadata for restore metadata,--output networks --output subnets --output routers --output flavors

Delete a Restore

Once a Restore is no longer needed, it can be safely deleted from a Workload.

Deleting a Restore will only delete the Trilio information about this Restore. No Openstack resources are getting deleted.

Using Horizon

There are 2 possibilities to delete a Restore.

Possibility 1: Single Restore deletion through the submenu

To delete a single Restore through the submenu follow these steps:

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to delete

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the searched Snapshot in the Snapshot list

  8. Click the Snapshot Name

  9. Navigate to the Restore tab

  10. Click "Delete Restore" in the line of the restore in question

  11. Confirm by clicking "Delete Restore"

Possibility 2: Multiple Restore deletion through a checkbox in Snapshot overview

To delete one or more Restores through the Restore list do the following:

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to show

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the searched Snapshots in the Snapshot list

  8. Enter the Snapshot by clicking the Snapshot name

  9. Navigate to the Restore tab

  10. Check the checkbox for each Restore that shall be deleted

  11. Click "Delete Restore" in the menu above

  12. Confirm by clicking "Delete Restore"

Using CLI

workloadmgr restore-delete <restores_id>
  • <restore_id> ➡️ ID of the restore to be deleted

Cancel a Restore

Ongoing Restores can be canceled.

Using Horizon

To cancel a Restore in Horizon follow these steps:

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to delete

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the searched Snapshot in the Snapshot list

  8. Click the Snapshot Name

  9. Navigate to the Restore tab

  10. Identify the ongoing Restore

  11. Click "Cancel Restore" in the line of the restore in question

  12. Confirm by clicking "Cancel Restore"

Using CLI

workloadmgr restore-cancel <restore_id>
  • <restore_id> ➡️ ID of the restore to be deleted

One Click Restore

The One Click Restore will bring back all VMs from the Snapshot in the same state as they were backed up. They will:

  • be located in the same cluster in the same datacenter

  • use the same storage domain

  • connect to the same network

  • have the same flavor

The user can't change any Metadata.

The One Click Restore requires, that the original VM's that have been backed up are deleted or otherwise lost. If even one VM is still existing, will the One Click Restore fail.

The One Click Restore will automatically update the Workload to protect the restored VMs.

Using Horizon

There are 2 possibilities to start a One Click Restore.

Possibility 1: From the Snapshot list

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to be restored

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the Snapshot to be restored

  8. Click "One Click Restore" in the same line as the identified Snapshot

  9. (Optional) Provide a name / description

  10. Click "Create"

Possibility 2: From the Snapshot overview

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to be restored

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the Snapshot to be restored

  8. Click the Snapshot Name

  9. Navigate to the "Restores" tab

  10. Click "One Click Restore"

  11. (Optional) Provide a name / description

  12. Click "Create"

Using CLI

workloadmgr snapshot-oneclick-restore [--display-name <display-name>]
                                      [--display-description <display-description>]
                                      <snapshot_id>
  • <snapshot_id> ➡️ ID of the snapshot to restore.

  • --display-name <display-name> ➡️ Optional name for the restore.

  • --display-description <display-description> ➡️ Optional description for restore.

Selective Restore

The Selective Restore is the most complex restore Trilio has to offer. It allows to adapt the restored VMs to the exact needs of the User.

With the selective restore the following things can be changed:

  • Which VMs are getting restored

  • Name of the restored VMs

  • Which networks to connect with

  • Which Storage domain to use

  • Which DataCenter / Cluster to restore into

  • Which flavor the restored VMs will use

The Selective Restore is always available and doesn't have any prerequirements.

The Selective Restore will automatically update the Workload to protect the created instance in the case that the original instance is no longer existing.

Using Horizon

There are 2 possibilities to start a Selective Restore.

Possibility 1: From the Snapshot list

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to be restored

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the Snapshot to be restored

  8. Click on the small arrow next to "One Click Restore" in the same line as the identified Snapshot

  9. Click on "Selective Restore"

  10. Configure the Selective Restore as desired

  11. Click "Restore"

Possibility 2: From the Snapshot overview

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to be restored

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the Snapshot to be restored

  8. Click the Snapshot Name

  9. Navigate to the "Restores" tab

  10. Click "Selective Restore"

  11. Configure the Selective Restore as desired

  12. Click "Restore"

Using CLI

workloadmgr snapshot-selective-restore [--display-name <display-name>]
                                       [--display-description <display-description>]
                                       [--filename <filename>]
                                       <snapshot_id>
  • <snapshot_id> ➡️ ID of the snapshot to restore.

  • --display-name <display-name> ➡️ Optional name for the restore.

  • --display-description <display-description> ➡️ Optional description for restore.

  • --filename <filename> ➡️ Provide file path(relative or absolute) including file name , by default it will read file: /usr/lib/python2.7/site-packages/workloadmgrclient/input-files/restore.json .You can use this for reference or replace values into this file.

Inplace Restore

The Inplace Restore covers those use cases, where the VM and its Volumes are still available, but the data got corrupted or needs to a rollback for other reasons.

It allows the user to restore only the data of a selected Volume, which is part of a backup.

The Inplace Restore only works when the original VM and the original Volume are still available and connected. Trilio is checking this by the saved Object-ID.

The Inplace Restore will not create any new RHV resources. Please use one of the other restore options if new Volumes or VMs are required.

Using Horizon

There are 2 possibilities to start an Inplace Restore.

Possibility 1: From the Snapshot list

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to be restored

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the Snapshot to be restored

  8. Click on the small arrow next to "One Click Restore" in the same line as the identified Snapshot

  9. Click on "Inplace Restore"

  10. Configure the Inplace Restore as desired

  11. Click "Restore"

Possibility 2: From the Snapshot overview

  1. Login to Horizon

  2. Navigate to Backups

  3. Navigate to Workloads

  4. Identify the workload that contains the Snapshot to be restored

  5. Click the workload name to enter the Workload overview

  6. Navigate to the Snapshots tab

  7. Identify the Snapshot to be restored

  8. Click the Snapshot Name

  9. Navigate to the "Restores" tab

  10. Click "Inplace Restore"

  11. Configure the Inplace Restore as desired

  12. Click "Restore"

Using CLI

workloadmgr snapshot-inplace-restore [--display-name <display-name>]
                                     [--display-description <display-description>]
                                     [--filename <filename>]
                                     <snapshot_id>
  • <snapshot_id> ➡️ ID of the snapshot to restore.

  • --display-name <display-name> ➡️ Optional name for the restore.

  • --display-description <display-description> ➡️ Optional description for restore.

  • --filename <filename> ➡️ Provide file path(relative or absolute) including file name , by default it will read file: /usr/lib/python2.7/site-packages/workloadmgrclient/input-files/restore.json .You can use this for reference or replace values into this file.

required restore.json for CLI

The workloadmgr client CLI is using a restore.json file to define the restore parameters for the selective and the inplace restore.

An example for a selective restore of this restore.json is shown below. A detailed analysis and explanation is given afterwards.

The restore.json requires many information about the backed up resources. All required information can be gathered in the Snapshot overview.

{
    oneclickrestore: False,
    restore_type: selective, 
    type: openstack, 
    openstack: 
        {
            instances: 
                [
                    {
                        include: True, 
                        id: 890888bc-a001-4b62-a25b-484b34ac6e7e,                        
                        name: cdcentOS-1, 
                        availability_zone:, 
                        nics: [], 
                        vdisks: 
                            [
                                {
                                    id: 4cc2b474-1f1b-4054-a922-497ef5564624, 
                                    new_volume_type:, 
                                    availability_zone: nova
                                }
                            ], 
                        flavor: 
                            {
                                ram: 512, 
                                ephemeral: 0, 
                                vcpus: 1,
                                swap:,
                                disk: 1, 
                                id: 1
                            }                         
                    }
                ], 
            restore_topology: True, 
            networks_mapping: 
                {
                    networks: []
                }
        }
}

General required information

Before the exact details of the restore are to be provided it is necessary to provide the general metadata for the restore.

  • name➡️the name of the restore

  • description➡️the description of the restore

  • oneclickrestore <True/False>➡️If the restore is a oneclick restore. Setting this to True will override all other settings and a One Click Restore is started.

  • restore_type <oneclick/selective/inplace>➡️defines the restore that is intended

  • type openstack➡️defines that the restore is into an openstack cloud.

  • openstackstarts the exact definition of the restore

Selective Restore required information

The Selective Restore requires a lot of information to be able to execute the restore as desired.

Those information are divided into 3 components:

  • instances

  • restore_topology

  • networks_mapping

Information required in instances

This part contains all information about all instances that are part of the Snapshot to restore and how they are to be restored.

Even when VMs are not to be restored are they required inside the restore.json to allow a clean execution of the restore.

Each instance requires the following information

  • id ➡️ original id of the instance

  • include <True/False> ➡️ Set True when the instance shall be restored

All further information are only required, when the instance is part of the restore.

  • name ➡️ new name of the instance

  • availability_zone ➡️ Nova Availability Zone the instance shall be restored into. Leave empty for "Any Availability Zone"

  • Nics ➡️ list of openstack Neutron ports that shall be attached to the instance. Each Neutron Port consists of:

    • id ➡️ ID of the Neutron port to use

    • mac_address ➡️ Mac Address of the Neutron port

    • ip_address ➡️ IP Address of the Neutron port

    • network ➡️ network the port is assigned to. Contains the following information:

      • id ➡️ ID of the network the Neutron port is part of

      • subnet➡️subnet the port is assigned to. Contains the following information:

        • id ➡️ ID of the network the Neutron port is part of

To use the next free IP available in the set Nics to an empty list [ ]

Using an empty list for Nics combined with the Network Topology Restore, will the restore automatically restore the original IP address of the instance.

  • vdisks ➡️ List of all Volumes that are part of the instance. Each Volume requires the following information:

    • id ➡️ Original ID of the Volume

    • new_volume_type ➡️ The Volume Type to use for the restored Volume. Leave empty for Volume Type None

    • availability_zone ➡️ The Cinder Availability Zone to use for the Volume. The default Availability Zone of Cinder is Nova

  • flavor➡️Defines the Flavor to use for the restored instance. Contains the following information:

    • ram➡️How much RAM the restored instance will have (in MB)

    • ephemeral➡️How big the ephemeral disk of the instance will be (in GB)

    • vcpus➡️How many vcpus the restored instance will have available

    • swap➡️How big the Swap of the restored instance will be (in MB). Leave empty for none.

    • disk➡️Size of the root disk the instance will boot with

    • id➡️ID of the flavor that matches the provided information

The root disk needs to be at least as big as the root disk of the backed up instance was.

The following example describes a single instance with all values.

'instances':[
  {
     'name':'cdcentOS-1-selective',
     'availability_zone':'US-East',
     'nics':[
       {
          'mac_address':'fa:16:3e:00:bd:60',
          'ip_address':'192.168.0.100',
          'id':'8b871820-f92e-41f6-80b4-00555a649b4c',
          'network':{
             'subnet':{
                'id':'2b1506f4-2a7a-4602-a8b9-b7e8a49f95b8'
             },
             'id':'d5047e84-077e-4b38-bc43-e3360b0ad174'
          }
       }
     ],
     'vdisks':[
       {
          'id':'4cc2b474-1f1b-4054-a922-497ef5564624',
          'new_volume_type':'ceph',
          'availability_zone':'nova'
       }
     ],
     'flavor':{
        'ram':2048,
        'ephemeral':0,
        'vcpus':1,
        'swap':'',
        'disk':20,
        'id':'2'
     },
     'include':True,
     'id':'890888bc-a001-4b62-a25b-484b34ac6e7e'
  }
]

Information required in network topology restore or network mapping

Do not mix network topology restore together with network mapping.

To activate a network topology restore set:

restore_topology:True

To activate network mapping set:

restore_topology:False

When the network mapping is activated it is used, it is necessary to provide the mapping details, which are part of the networks_mapping block:

  • networks ➡️ list of snapshot_network and target_network pairs

    • snapshot_network ➡️ the network backed up in the snapshot, contains the following:

      • id ➡️ Original ID of the network backed up

      • subnet ➡️ the subnet of the network backed up in the snapshot, contains the following:

        • id ➡️ Original ID of the subnet backed up

    • target_network ➡️ the existing network to map to, contains the following

      • id ➡️ ID of the network to map to

      • subnet ➡️ the subnet of the network backed up in the snapshot, contains the following:

        • id ➡️ ID of the subnet to map to

Full selective restore example

{
   'oneclickrestore':False,
   'openstack':{
      'instances':[
         {
            'name':'cdcentOS-1-selective',
            'availability_zone':'US-East',
            'nics':[
               {
                  'mac_address':'fa:16:3e:00:bd:60',
                  'ip_address':'192.168.0.100',
                  'id':'8b871820-f92e-41f6-80b4-00555a649b4c',
                  'network':{
                     'subnet':{
                        'id':'2b1506f4-2a7a-4602-a8b9-b7e8a49f95b8'
                     },
                     'id':'d5047e84-077e-4b38-bc43-e3360b0ad174'
                  }
               }
            ],
            'vdisks':[
               {
                  'id':'4cc2b474-1f1b-4054-a922-497ef5564624',
                  'new_volume_type':'ceph',
                  'availability_zone':'nova'
               }
            ],
            'flavor':{
               'ram':2048,
               'ephemeral':0,
               'vcpus':1,
               'swap':'',
               'disk':20,
               'id':'2'
            },
            'include':True,
            'id':'890888bc-a001-4b62-a25b-484b34ac6e7e'
         }
      ],
      'restore_topology':False,
      'networks_mapping':{
         'networks':[
            {
               'snapshot_network':{
                  'subnet':{
                     'id':'8b609440-4abf-4acf-a36b-9a0fa70c383c'
                  },
                  'id':'8b871820-f92e-41f6-80b4-00555a649b4c'
               },
               'target_network':{
                  'subnet':{
                     'id':'2b1506f4-2a7a-4602-a8b9-b7e8a49f95b8'
                  },
                  'id':'d5047e84-077e-4b38-bc43-e3360b0ad174',
                  'name':'internal'
               }
            }
         ]
      }
   },
   'restore_type':'selective',
   'type':'openstack'
}

Inplace Restore required information

The Inplace Restore requires less information thana selective restore. It only requires the base file with some information about the Instances and Volumes to be restored.

Information required in instances

  • id ➡️ ID of the instance inside the Snapshot

  • restore_boot_disk ➡️ Set to True if the boot disk of that VM shall be restored.

When the boot disk is at the same time a Cinder Disk, both values need to be set true.

  • include ➡️ Set to True if at least one Volume from this instance shall be restored

  • vdisks ➡️ List of disks, that are connected to the instance. Each disk contains:

    • id ➡️ Original ID of the Volume

    • restore_cinder_volume ➡️ set to true if the Volume shall be restored

Network mapping information required

There are no network information required, but the field have to exist as empty value for the restore to work.

Full Inplace restore example

{
   'oneclickrestore':False,
   'restore_type':'inplace',
   'type':'openstack',   
   'openstack':{
      'instances':[
         {
            'restore_boot_disk':True,
            'include':True,
            'id':'ba8c27ab-06ed-4451-9922-d919171078de',
            'vdisks':[
               {
                  'restore_cinder_volume':True,
                  'id':'04d66b70-6d7c-4d1b-98e0-11059b89cba6',
               }
            ]
         }
      ]
   }
}

Last updated