NSX Manager バックアップの世代管理
はじめに
NSX Manager のバックアップは vCenter と異なり、GUI から世代管理の設定を行うことができない。
スケジュールによるバックアップの定期取得は可能だが、バックアップサーバのストレージを大量に消費してしまう可能性がある。
この投稿では標準で用意されている Python スクリプト nsx_backup_cleaner.py を利用してバックアップの世代管理を行う方法を紹介する。
バックアップの設定
NSX Manager の[システム]タブから、バックアップとリストアの操作を行う。
NSX Manager のバックアップとしてサポートされるのは SFTP によるバックアップのみであるため注意が必要。
ディレクトリパスはルートディレクトリを指定できないので、予めバックアップ用のディレクトリを作成しておく。
構成情報を入力したら、[バックアップの開始]から実行。
スケジュール設定はここでは1日おきにバックアップを取得するよう設定。
適切なものを選択する。
バックアップの確認
ログは、/var/log/proton/nsxapi.log
から確認可能。
バックアップサーバ側で確認してみると cluster-node-backups
というファイルが作成されている。
[root@cent01 nsxt-mgr]# ls
cluster-node-backups
スクリプトによる世代管理
スクリプトは NSX Manager の/var/vmware/nsx/file-store
にある。
root@nsxt-mgr01:~# cd /var/vmware/nsx/file-store
root@nsxt-mgr01:/var/vmware/nsx/file-store# ls
backup_restore_helper.py get_backup_timestamps.sh nsx_backup_cleaner.py
ファイルの中身を見てみると利用方法について補足あり。
# On Linux SFTP server:
# You can add this script in the crontab to automatically run this script once daily
# Edit the anacron at /etc/cron.d or use crontab -e and add following line to execute the script at 10am everyday
# 00 10 * * * /sbin/nsx_backup_cleaner.py
今回は SFTP を利用したバックアップサーバとして CentOS を利用しているので、そこで世代管理のスクリプトを実行する。
まず、スクリプトファイルをバックアップサーバに転送する。
scp /var/vmware/nsx/file-store/nsx_backup_cleaner.py root@172.16.0.xx:~
スクリプトを実行。構文は以下のとおり。
[root@cent01 ~]# ./nsx_backup_cleaner.py -h
Usage: nsx_backup_cleaner.py -d backup_dir [-k 1] [-l 5] [-h]
Or
nsx_backup_cleaner.py --dir backup_dir [--retention-period 1] [--min-count 5] [--help]
Required
-d/--dir: Backup root directory
-k/--retention-period: Number of days need to retain a backup file
Optional
-l/--min-count: Minimum number of backup files to be kept, default value is 100
-h/--help: Display help message
-d でバックアップディレクトリを指定して、 -k で何日間バックアップファイルを保持するかを指定。
オプションとして -l で保存したい最小ファイル数の指定が可能。
今回は以下のように設定。
[root@cent01 ~]# /root/nsx_backup_cleaner.py -d /backup/nsxt-mgr -k 7 -l 2
Keeping the following backup files for folder /backup/nsxt-mgr/cluster-node-backups
/backup/nsxt-mgr/cluster-node-backups/3.2.0.1.0.19232400-f4f53142-6242-4680-9125-9df0f210fff9-172.16.0.xx/backup-2022-02-27T06_36_15UTC
cron の設定
スクリプトを定期的に自動実行させたいので cron の設定を行う。
cron とは、crond デーモンを介してスクリプトなどのジョブを実行するプロセスで今回紹介するのは Linux での設定方法である。
crond が起動していることを確認する。
[root@cent01 ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-02-27 11:11:09 JST; 5h 13min ago
Main PID: 1194 (crond)
Tasks: 1 (limit: 11259)
Memory: 1.1M
CGroup: /system.slice/crond.service
└─1194 /usr/sbin/crond -n
設定ファイルを編集して、毎日 20時に自動実行されるように設定した。
[root@cent01 ~]# vi /etc/crontab
---
...
0 20 * * * /root/nsx_backup_cleaner.py -d /backup/nsxt-mgr -k 7 -l 2
以上。
参考
https://docs.vmware.com/jp/VMware-NSX-T-Data-Center/3.2/administration/GUID-E6181BF1-2CB7-4870-B508-BFAF5B47D702.html
https://www.virten.net/2021/02/how-to-backup-and-restore-nsx-t/
https://docs.vmware.com/jp/VMware-NSX-T-Data-Center/3.2/administration/GUID-ECFFBD6D-4D2F-4773-B552-B27D4ECE0AC4.html