This section describes how to back up the TF data manually.
For the details on how to perform the automatic TF data backup using
the tf-dbbackup-job cron job, refer to the Periodic Tungsten Fabric database backups
section in Reference Architecture.
Warning
Use the tf-dbbackup-job cron job only if your cluster is not
affected by issue 53831. The issue causes some container images
silently truncate any Cassandra column family that has more
than 5000 rows during export, without any error or warning, which can
drop real user data. Until the cluster is updated to a release that
includes the fix, use the manual backup procedure below, which includes
a hot fix that prevents the truncation.
To verify whether your container image is affected:
Inside the api container of the tf-config pod, change the
directory to the Python configmanagement packages:
Since MOSK 25.1:
cd/usr/lib/python3.6/site-packages/cfgm_common
Before MOSK 25.1:
cd/usr/lib/python2.7/site-packages/cfgm_common
Verify whether db_json_exim.py contains the affected code:
grep-n"current_rows"db_json_exim.py
If the output contains the line
range=session.execute(cql).current_rows, the container image is
affected.
Manually back up TF data in the 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:
Join the Bash shell of one of the api container from the previous
step:
kubectl-ntfexec-ittf-config-<hash>-capi--bash
Example of a system response:
(config-api[hostname])[<USER>@<HOSTNAME>/]$
Inside the api container, change the directory to the Python
configmanagement packages:
Since MOSK 25.1
cd/usr/lib/python3.6/site-packages/cfgm_common
Before MOSK 25.1
cd/usr/lib/python2.7/site-packages/cfgm_common
If applicable, apply the hot fix for the known issue 53831 to
db_json_exim.py:
Warning
Skipping this step on the affected clusters, silently
truncates any Cassandra column family that has more than 5000
rows during export, causing real data to be missing from the resulting
dump.
Verify whether the container image is affected:
grep-n"current_rows"db_json_exim.py
Example of a system response that indicates the container image is
affected:
range=session.execute(cql).current_rows
If the container image is affected, apply the patch:
This patch only changes the file inside the running container
and does not persist across container or pod restarts. Repeat this
step before every manual backup until the cluster is updated to a
release that includes the fix for the known issue 53831.
Otherwise, if the container image is not affected, skip this step.