NSX-T バックアップの世代管理方法

最終更新日

はじめに

NSX-T Manager のバックアップでは vCenter とは異なり、GUI から世代管理の設定を行うことができません。

スケジュールによるバックアップの定期取得は可能ですが、このままではバックアップサーバのストレージを大量に消費してしまう可能性があります。

今回は標準で用意されている Python のスクリプト nsx_backup_cleaner.py を利用してバックアップの世代管理を行う方法を紹介します。

NSX-T のバージョンは 3.2.0.1.0.19232396 で確認しました。

バックアップの設定

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