概要
- ESXiにてghettoVCBを利用したバックアップする方法を記載
方法
ghettoVCBの導入
バックアップスケジュールをcronに登録(起動スクリプトで設定)
cronに登録するのだが、ESXiの制約でcron直書きしてもESXi起動時にクリアされてしまう
したがって起動スクリプト/etc/rc.local.d/local.sh
に記載しておいて、起動都度追記されるようにする
パススルーなしの仮想マシン
- バックアップ実行:
/bin/echo "35 15 * * 1,3,5 /bin/sh <ghettoVCBのshファイルパス> -f <VM名を記載したファイルパス>" >> <ログファイルパス>
のみを記載
パススルーありの仮想マシン
パススルー(GPUなど)がある場合はスナップショットが取れないため、コールドバックアップとなる
したがって仮想マシンの停止と起動のスクリプトも必要
- バックアップ実行:
/bin/echo "35 15 * * 1,3,5 /bin/sh <ghettoVCBのshファイルパス> -f <VM名を記載したファイルパス>" >> <ログファイルパス>
- 仮想マシン停止:
/bin/echo "05 15 * * 0,2,4 vim-cmd vmsvc/power.off <仮想マシンID>" >> /var/spool/cron/crontabs/root
- 仮想マシン起動:
/bin/echo "35 21 * * 0,2,4 vim-cmd vmsvc/power.on <仮想マシンID>" >> /var/spool/cron/crontabs/root
実際の例
テストサーバ
#!/bin/sh
# 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.
sed -e "/ghettoVCB.sh/d" /var/spool/cron/crontabs/root -i
sed -e "/vim-cmd vmsvc/d" /var/spool/cron/crontabs/root -i
/bin/echo "35 15 * * 1,3,5 /bin/sh /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.sh -f /vmfs/volumes/datastore1/JBS/vmlist.txt" >> /var/spool/cron/crontabs/root
/bin/echo "35 15 * * 0,2,4 /bin/sh /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.sh -f /vmfs/volumes/datastore1/JBS/vmlist2.txt" >> /var/spool/cron/crontabs/root
/bin/echo "05 15 * * 0,2,4 vim-cmd vmsvc/power.off 19" >> /var/spool/cron/crontabs/root
/bin/echo "35 21 * * 0,2,4 vim-cmd vmsvc/power.on 19" >> /var/spool/cron/crontabs/root
/bin/kill $(cat /var/run/crond.pid)
/bin/crond
exit 0