OpenStack Server Volumes Backup and Restore Tool
================================================
This command line utility can be used to backup/restore OpenStack volume backed server instances using Cinder backup service.
Screenshot
----------
.. image:: imgs/osvolbackup_test.png
:target: imgs/osvolbackup_test.png
:alt: Screenshot
Features
--------
* Live instance backup
* See ``consistency restrictions`` below
* Embed essential metadata in backup description
* Export backup volume metadata to file
Requirements
------------
* Python2.7+ and the OpenStack API libraries
* OpenStack environment with volume backed server instances
* OS environment variables set for the admin project ``(source stackrc)``
* `Cinder backup service <https://docs.openstack.org/cinder/queens/configuration/block-storage/backup-drivers.html>`_ properly configured
* Tested on [RedHat Open Stack Platform 13], should work on other OpenStack Queens based distributions
:warning: Live Backup Consistency Restrictions :warning:
--------------------------------------------------------
Live backup consistency of openstack images is dependent in the following conditions:
#. When using kvm/libvirt, guests must have the `Qemu guest agent <https://wiki.libvirt.org/page/Qemu_guest_agent>`_ installed, backups will succeed if the agent is not available, consistency will depend in the guest IO activity during the snapshot»
#. Nova API create image function does `not wait for snapshot creation <https://github.com/openstack/nova/blob/master/nova/compute/api.py#L3094>`_ before unfreezing the I/O, consistency will depend on the block device driver snapshot technology, it may depend on the guest IO activity during the snapshot creation
How to install
--------------
.. code-block:: sh
pip install --user osvolbackup
How to run from source
----------------------
.. code-block:: sh
git clone https://github.com/CCSGroupInternational/osvolbackup.git
cd osvolbackup.git
pip install --user -rrequirements.txt
python -m osvolbackup server «server_name»
How to test:
------------
.. code-block:: sh
# Create a test server
export SERVER_ID=test_server
tests/create-test-server.sh
# Create the backup
VERBOSE=1 python -m osvolbackup server ${SERVER_ID}
# Delete the test instance
openstack server delete ${SERVER_ID}
openstack volume delete ${SERVER_ID}_boot
# We use the instance uuid because the server name was deleted
INSTANCE_ID=$(openstack volume backup list | grep ${SERVER_ID}|cut -d" " -f4)
# Restore with the original config
VERBOSE=1 python -m osvolbackup server $INSTANCE_ID --restore last
# Restore with a different network config
VERBOSE=1 python -m osvolbackup server $INSTANCE_ID --restore last --network net1:10.3.1.99
Copyright
---------
© 2019 CCS Group International, distributed under the `Apache-2 license <LICENSE>`_.
================================================
This command line utility can be used to backup/restore OpenStack volume backed server instances using Cinder backup service.
Screenshot
----------
.. image:: imgs/osvolbackup_test.png
:target: imgs/osvolbackup_test.png
:alt: Screenshot
Features
--------
* Live instance backup
* See ``consistency restrictions`` below
* Embed essential metadata in backup description
* Export backup volume metadata to file
Requirements
------------
* Python2.7+ and the OpenStack API libraries
* OpenStack environment with volume backed server instances
* OS environment variables set for the admin project ``(source stackrc)``
* `Cinder backup service <https://docs.openstack.org/cinder/queens/configuration/block-storage/backup-drivers.html>`_ properly configured
* Tested on [RedHat Open Stack Platform 13], should work on other OpenStack Queens based distributions
:warning: Live Backup Consistency Restrictions :warning:
--------------------------------------------------------
Live backup consistency of openstack images is dependent in the following conditions:
#. When using kvm/libvirt, guests must have the `Qemu guest agent <https://wiki.libvirt.org/page/Qemu_guest_agent>`_ installed, backups will succeed if the agent is not available, consistency will depend in the guest IO activity during the snapshot»
#. Nova API create image function does `not wait for snapshot creation <https://github.com/openstack/nova/blob/master/nova/compute/api.py#L3094>`_ before unfreezing the I/O, consistency will depend on the block device driver snapshot technology, it may depend on the guest IO activity during the snapshot creation
How to install
--------------
.. code-block:: sh
pip install --user osvolbackup
How to run from source
----------------------
.. code-block:: sh
git clone https://github.com/CCSGroupInternational/osvolbackup.git
cd osvolbackup.git
pip install --user -rrequirements.txt
python -m osvolbackup server «server_name»
How to test:
------------
.. code-block:: sh
# Create a test server
export SERVER_ID=test_server
tests/create-test-server.sh
# Create the backup
VERBOSE=1 python -m osvolbackup server ${SERVER_ID}
# Delete the test instance
openstack server delete ${SERVER_ID}
openstack volume delete ${SERVER_ID}_boot
# We use the instance uuid because the server name was deleted
INSTANCE_ID=$(openstack volume backup list | grep ${SERVER_ID}|cut -d" " -f4)
# Restore with the original config
VERBOSE=1 python -m osvolbackup server $INSTANCE_ID --restore last
# Restore with a different network config
VERBOSE=1 python -m osvolbackup server $INSTANCE_ID --restore last --network net1:10.3.1.99
Copyright
---------
© 2019 CCS Group International, distributed under the `Apache-2 license <LICENSE>`_.
Release files for osvolbackup 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| osvolbackup-0.0.2.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| osvolbackup-0.0.2-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 17.9 kB
Release files / osvolbackup-0.0.2.tar.gz
| Download URL | osvolbackup-0.0.2.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa3e246ef03d163726d9657826528e06002dc55958a6f021bcafa0094b4eebb1
|
|
BLAKE2b-256 checksum How to use checksums |
e875e89d061ec2a77afbcb0d454faa49c1c21049b299cf29c2a59e4804664ea6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.14.2 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.5
|
Release files / osvolbackup-0.0.2-py2.py3-none-any.whl
| Download URL | osvolbackup-0.0.2-py2.py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
ee14673d2ef5531a3b40ade1e1d0b896a525bcbed1b130de0e097444d8d1dfdb
|
|
BLAKE2b-256 checksum How to use checksums |
cea8cbe767aa161a923434c253985f253ead0723dceaff99e763d0c3db1ef6c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.14.2 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.5
|