Merge "Export and import Ceph Cinder backup"
This commit is contained in:
commit
8112e2dc3b
@ -0,0 +1,2 @@
|
||||
.. location-ceph-begin
|
||||
.. location-ceph-end
|
@ -0,0 +1,123 @@
|
||||
|
||||
.. _export-and-import-cinder-backups-to-ceph-pool:
|
||||
|
||||
=============================================
|
||||
Export and Import Cinder Backups to Ceph Pool
|
||||
=============================================
|
||||
|
||||
This document describes how to export and import Cinder backups stored in Ceph
|
||||
pool, along with their respective metadata.
|
||||
|
||||
.. rubric:: |prereq|
|
||||
|
||||
#. |prefix|-openstack application is applied, up and running.
|
||||
|
||||
#. The user has OpenStack admin credentials.
|
||||
|
||||
---------------------------------
|
||||
Create and Export a Volume Backup
|
||||
---------------------------------
|
||||
|
||||
Cinder doesn't guarantee the data consistency during a backup operation, so if
|
||||
the volume to be backed up is attached to a running VM and the application in the
|
||||
VM is not crash consistent, the recommended approach is to stop the VM for the
|
||||
backup procedure. Check the OpenStack documentation
|
||||
`Back up and restore volumes and snapshots
|
||||
<https://docs.openstack.org/cinder/ussuri/admin/blockstorage-volume-backups.html>`__
|
||||
for more details.
|
||||
|
||||
.. rubric:: |proc|
|
||||
|
||||
#. Create a volume backup:
|
||||
|
||||
If the volume to be backed up is attached to a running VM, stop the VM first:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ openstack server stop <vm>
|
||||
|
||||
Then, create the backup:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ openstack volume backup create --force [--name <backup_name>] <volume_id>
|
||||
|
||||
where:
|
||||
|
||||
``--name`` is optional.
|
||||
|
||||
``--force`` allows you to back up an "in-use" volume.
|
||||
|
||||
.. only:: partner
|
||||
|
||||
.. include:: /_includes/export-and-import-cinder-backups-to-ceph-pool.rest
|
||||
:start-after: location-ceph-begin
|
||||
:end-before: location-ceph-end
|
||||
|
||||
#. Export the backup image from Ceph pool:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ rbd list -p cinder.backups
|
||||
$ rbd export -p cinder.backups <backup_image> <path_to_backup_image_file>
|
||||
|
||||
where ``<backup_image>`` uses the format
|
||||
``volume-<volume_id>.backup.<backup_id>``.
|
||||
|
||||
#. Export the backup metadata from Cinder database:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ cinder backup-export <backup_id> > <path_to_backup_metadata_file>
|
||||
|
||||
----------------------------------
|
||||
Import and Restore a Volume Backup
|
||||
----------------------------------
|
||||
|
||||
.. rubric:: |proc|
|
||||
|
||||
#. Import the backup metadata to Cinder database:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ backup_service=`grep "backup_service" <path_to_backup_metadata_file> | awk '{ print $4 }'`
|
||||
$ backup_url=`grep "backup_url" <path_to_backup_metadata_file> | awk '{ print $4 }'`
|
||||
$ cinder backup-import $backup_service $backup_url
|
||||
|
||||
#. Import the backup image to Ceph pool.
|
||||
|
||||
Check the ID of volume from which the backup was created:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ openstack volume backup show <backup_id>
|
||||
|
||||
Import the backup image to Ceph pool:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ rbd import <path_to_backup_image_file> cinder.backups/volume-<volume_id>.backup.base
|
||||
|
||||
#. Restore the backup to a new volume.
|
||||
|
||||
If the volume in which the backup will be restored is attached to a VM,
|
||||
stop the VM and set the volume status to ``available``:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ openstack server stop <vm>
|
||||
$ openstack volume set --state "available" <new_volume_id>
|
||||
|
||||
Then, restore the backup:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ openstack volume backup restore <backup_id> <new_volume_id>
|
||||
|
||||
If the volume was attached to a VM before the restore operation, set the
|
||||
volume status to ``in-use`` before starting the VM:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ openstack volume set --state "in-use" <new_volume_id>
|
||||
$ openstack server start <vm>
|
@ -22,4 +22,13 @@ Configure OpenStack Services Using Helm Chart Overrides
|
||||
using-helm-overrides-to-enable-internal-dns
|
||||
adding-configuration-rpc-response-max-timeout-in-neutron-conf
|
||||
assigning-a-dedicated-vlan-id-to-a-target-project-network
|
||||
customize-openstack-horizon-and-login-banner-branding
|
||||
customize-openstack-horizon-and-login-banner-branding
|
||||
|
||||
------
|
||||
Cinder
|
||||
------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
export-and-import-cinder-backups-to-ceph-pool
|
Loading…
Reference in New Issue
Block a user