To back up the TF databases, use db_json_exim.py
, located on the
tf-config
pods. This script will create a dump of Cassandra and ZooKeeper
databases. Cassandra is a fault-tolerant and horizontally scalable database
that provides persistent storage of configuration and analytics data. ZooKeeper
is used by TF for allocation of unique object identifiers and transactions
implementation.
To prevent data loss, Mirantis recommends that you simultaneously back up the ZooKeeper database dedicated to configuration services and the Cassandra database.
Caution
The backup of database must be consistent across all systems because the state of the Tungsten Fabric databases is associated with other system databases, such as OpenStack databases.
To back up TF databases in JSON Format
Disable the Neutron server that is used by OpenStack to communicate with the Tungsten Fabric API:
Note
The database changes associated with northbound APIs must be stopped on all systems before performing any backup operations.
Scale the neutron-server
deployment to 0 replicas:
kubectl -n openstack scale deploy neutron-server --replicas 0
Verify the number of replicas:
kubectl -n openstack get deploy neutron-server
Example of a positive system response:
NAME READY UP-TO-DATE AVAILABLE AGE
neutron-server 0/0 0 0 6d22h
Join the Tungsten Fabric API that is part of the config
DaemonSet:
Obtain the tf-config
pod:
kubectl -n tf get pod -l tungstenfabric=config
Example of a system response:
NAME READY STATUS RESTARTS AGE
tf-config-6ppvc 5/5 Running 0 5d4h
tf-config-rgqqq 5/5 Running 0 5d4h
tf-config-sb4kk 5/5 Running 0 5d4h
Join the Bash shell of one of the api
container from the previous
step:
kubectl -n tf exec -it tf-config-<hash> -c api -- bash
Example of a system response:
(config-api[hostname])[<USER>@<HOSTNAME> /]$
Inside the api
container, change the directory to the Python
config management
packages:
cd /usr/lib/python2.7/site-packages/cfgm_common
Back up data using db_json_exim
in JSON format:
python db_json_exim.py --export-to /tmp/db-dump.json
Verify the created dump:
cat /tmp/db-dump.json | python -m json.tool | less
Copy the backup from the container:
kubectl -n tf cp tf-config-<hash>:/tmp/db-dump.json <DESTINATION-PATH-FOR-BACKUP>
Enable the Neutron server:
Scale the neutron-server
deployment back to the desired number of
replicas. Default is 3.
kubectl -n openstack scale deploy neutron-server --replicas <DESIRED-NUM-REPLICAS>
Verify the number of replicas:
kubectl -n openstack get deploy neutron-server
Example of a system response:
NAME READY UP-TO-DATE AVAILABLE AGE
neutron-server 3/3 3 3 6d23h
See also