ESXi の仮想のマシンバックアップを取る備忘録です.
いつもの通り結論から書くと,
ESXi の仮想マシンバックアップの定番 ghettoVCB を使うので,数多くの記事が他サイトでも見つかりますが,他サイトだと若干情報が古いところあり,
です.
ghettoVCB とは
元サイト
の説明によると,
ghettoVCB は VMware のVCB ツールに似た方法で ESX(i) の仮想マシンのバックアップを実行します.これは,動作中の仮想マシンのスナップショットを取得し,マスターの VMDK をバックアップし,完了すると,次のバックアップまでスナップショットを削除します.
だそうで,無償版の ESXi でも使えるいまのところほぼ唯一の選択肢っぽいです.
このようなものなので,他サイトでもよく紹介されているのですが,どうも情報が少し古いっぽく,手順等少し違う部分があったので,現時点(2023/7/9)の最新のやり方についてメモを残したものが本記事となります.
ghettoVCB の導入
他サイトだと zip ファイルをダウンロードして云々……と書いていることが多いですが,最新版だと,まず,vghetto-ghettoVCB.vib を元サイト
から取得して,ESXi に(データストアブラウザを使っても良いし直接 wget 等を使っても良い)入れ,以下のような感じでインストールします.ここで ****** は適当なストレージ名です.
$ esxcli software vib install -v /vmfs/volumes/*******/vghetto-ghettoVCB.vib -f Installation Result Message: Operation finished successfully. Reboot Required: false VIBs Installed: virtuallyGhetto_bootbank_ghettoVCB_1.0.0-0.0.0 VIBs Removed: VIBs Skipped:
元サイトを見ると,
- /opt/ghettovbc/bin: スクリプト
- /etc/ghettovbc: 設定ファイル
のように入ると書かれていますが,実際には,
- /opt/ghettovbc/bin: スクリプト
- /opt/ghettovbc: 設定ファイル
に入るっぽいです.なお,アップデートやアンインストールは,
$ esxcli software vib update -v ./vghetto-ghettoVCB.vib -f $ esxcli software vib remove -n ghettoVCB
だそうです.
ghettoVCB の使い方
使い方は他サイト等で紹介されている情報ほぼそのままです.
設定ファイル /etc/ghettovcb/ghettoVCB.conf の先頭行にある VM_BACKUP_VOLUME を自分の環境に合わせて,
$ vi /etc/vhettoVCB/ghettoVCB.conf VM_BACKUP_VOLUME=/vmfs/volumes/********/backups DISK_BACKUP_FORMAT=thin VM_BACKUP_ROTATION_COUNT=3 POWER_VM_DOWN_BEFORE_BACKUP=0 ENABLE_HARD_POWER_OFF=0 .....
のように書き換えるのと,/etc/rc.local.d/local.sh ファイルの内容を,
$ vi local.sh #!/bin/sh ++group=host/vim/vmvisor/boot # local configuration options # Note: modify at your own risk! If you do/use anything in this # script that is not part of a stable API (relying on files to be in # specific places, specific tools, specific output, etc) there is a # possibility you will end up with a broken system after patching or # upgrading. Changes are not supported unless under direction of # VMware support. # Note: This script will not be run when UEFI secure boot is enabled. /bin/kill $(cat /var/run/crond.pid) /bin/echo "0 2 * * 1 /opt/ghettovcb/bin/ghettoVCB.sh -a -g \ /opt/ghettovcb/ghettoVCB.conf > \ /vmfs/volumes/*********/log/ghettoVCB-backup-\$(date +\\%s).log" >> /var/spool/cron/crontabs/root /bin/sed -i -e s!dlgCore-NFS-bigboi.VM-Backups/WILLIAM_BACKUPS!*********/backups! /opt/ghettovcb/ghettoVCB.conf crond exit 0
のように書き換えて,ESXi を再起動するだけです.
上の場合だと,/vmfs/volumes/******/backups に全ての VM のバックアップを毎週月曜日の2時(UTC 時間であることに注意してください)に3世代分取ります.また,ログファイルが /vmfs/volumes/******/log 以下に作られます.バックアップを取る仮想マシンを指定したり,世代数を変えたりももちろんできますが,このあたりについては,元サイトの情報を参照してください.
以上