■ はじめに
有償ESXiならバックアップ機能(vMotion)が備わっているが、無償版はない。 定期敵に別筐体に仮想マシンのバックアップを取ることを考える。
■ バックアップ種類
【1】 コールドバックアップ => 一旦、仮想マシンを停止してから、バックアップ 【2】 ホットバックアップ => 起動したまま(無停止)でバックアップ
検討
* 定期実行で自動的に行いたいので、なるべく【2】がいい
■ 用語整理
NFS (Network File System)
* ネットワークを介してファイルを共有するファイルシステムおよびプロトコル
ghettoVCB
ゲットー・ヴィシービー?* 仮想マシンをホットバックアップできる無料ツール * MIT公式サイト
https://github.com/lamw/ghettoVCB
■ バックアップ方針
【A】 別筐体にバックアップファイルを格納するために、NFSストレージにマウントする 【B】 定期実行するために、ESXi内でcronを行う(Linuxと全く同じではない) 【C】 ghettoVCBスクリプトを使って、ホットバックアップ
■ バックアップ設定手順
【1】 NFSストレージをマウントする 【2】 SSHを有効にする 【3】 ghettoVCB を ESXiに設定する 【4】 バックアップを定期実行する
【1】 NFSストレージをマウントする
* 以下の関連記事を参照VMware vSphere Hypervisor(無償版ESXi) ~ NFSマウント編 ~
https://blogs.yahoo.co.jp/dk521123/37696280.html
【2】 SSHを有効にする
* 以下の関連記事を参照VMware vSphere Hypervisor(無償版ESXi) ~ データ移行編 ~
https://blogs.yahoo.co.jp/dk521123/36757644.html
【3】ghettoVCB を ESXiに設定する
[1] 以下のサイトから、ghettoVCB をダウンロードしておくhttps://github.com/lamw/ghettoVCB/archive/master.zip
[2] ESXiにsshでログインする ★ 注意 ★ (ここで若干ハマった) Tera Term を使用している場合、ユーザ名を入力後、 「チャレンジレスポンス認証を使う(キーボードインタラクティブ)」を選択し ログインするhttps://pig-log.com/esxi-ssh-login/
[3] ghettoVCB 「ghettoVCB-master.zip」を転送しておく [4] バックアップ用のディレクトリを作成する(今回は「/vmfs/volumes/datastore1」配下に「backup」) ~~~~~~ cd /vmfs/volumes/datastore1 mkdir backup cd backup ~~~~~~ [5] ghettoVCB-master.zipを設定する # ghettoVCB-master.zipを移動 mv ~/ghettoVCB-master.zip /vmfs/volumes/datastore1/backup/. unzip ghettoVCB-master.zip cd ghettoVCB-master [6] 設定ファイル「ghettoVCB.conf」を修正する cp ghettoVCB.conf ghettoVCB.conf.orig vi ghettoVCB.conf ~~~~~~~~~~ # バックアップ先のデータストア VM_BACKUP_VOLUME=/vmfs/volumes/NFS01 # バックアップファイルのフォーマットを指定 DISK_BACKUP_FORMAT=thin # バックアップの世代数を設定 VM_BACKUP_ROTATION_COUNT=3 ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=0 ~~~~~~~~~~ [7] バックアップ対象リスト「vmlist.txt」に新規作成(今回はバックアップ対象の仮想マシン名「vm01」「vm02」とする) vi vmlist.txt ~~~~~~~~~~ vm01 vm02 ~~~~~~~~~~ [8] まずは、 dryrunして確認し、問題なければ、外して実行 ~~~~~~~~~~ # テスト ./ghettoVCB.sh -f vmlist.txt -g ghettoVCB.conf -d dryrun # バックアップの実行 ./ghettoVCB.sh -f vmlist.txt -g ghettoVCB.conf # 「ls -al 【バックアップ先】」でバックアップ対象が保存されているか確認 # ★ここまででバックアップする仕組みはできた★ ls -al /vmfs/volumes/NFS01 ~~~~~~~~~~
【4】 バックアップを定期実行する
前提知識 : ESXi上での cron についてa) ESXiにはcrontabコマンドが存在しない => cronを利用する場合、「/var/spool/cron/crontabs/root」を直接編集する b) ESXi再起動した際には、上記の設定はクリアされてしまう => 再起動後にも設定を有効にする場合、再起動と同時に上記設定ファイルに設定を再度書き込むようにする設定手順
[1] バックアップを定期実行するために、 /var/spool/cron/crontabs/root に、以下の設定を追記する vi /var/spool/cron/crontabs/root ~~~~~~~ 30 22 * * sta-sun /bin/sh /vmfs/volumes/datastore1/backup/ghettoVCB-master/ghettoVCB.sh -f /vmfs/volumes/datastore1/backup/ghettoVCB-master/vmlist.txt ~~~~~~~ [2] ESXi再起動しても設定を保持するために、/etc/rc.local.d/local.sh に、以下の設定を追記する vi /etc/rc.local.d/local.sh ~~~~~~~ /bin/echo "30 22 * * sta-sun /bin/sh /vmfs/volumes/datastore1/backup/ghettoVCB-master/ghettoVCB.sh -f /vmfs/volumes/datastore1/backup/ghettoVCB-master/vmlist.txt" >> /var/spool/cron/crontabs/root /bin/kill $(cat /var/run/crond.pid) /bin/busybox crond ~~~~~~~
■ リストア
コマンド「./ghettoVCB-restore.sh -c restore.txt」でもできるみたいだが、 GUIからできるようなので、そっちでやる
手順
[1] VMware のWeb UI 上において、「ナビゲーター」欄内にある [ストレージ]-[データストア]-[データスト アブラウザ]-[【NFSのデータストア】] -[【仮想データの日付付きフォルダ】]-[【仮想データのフォルダ】]を選択し、 「【仮想データ】.vmx」を右クリックし、「仮想マシンの登録」を選択し「閉じる」ボタン押下 => 仮想マシン登録しリストア完了 [2] 確認のために、「ナビゲーター」欄内にある[仮想マシン]を選択し、移行した仮想マシンがあるか確認する
参考文献
https://sd2.dozono.net/?p=592https://blog.redbox.ne.jp/vmware-hot-backup.html
http://minato128.hateblo.jp/entry/2013/04/06/005930
http://www.unix-power.net/networking/post-508
https://blog.sky-net.pw/article/112
定期実行
https://orebibou.com/2015/01/vmware-esxi%E3%81%A7%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%84%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%AE%9A%E6%9C%9F%E5%AE%9F%E8%A1%8C%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95/
https://mtnengineer.no-ip.info/vmware-esxi-5_1_cron/
https://qiita.com/hirohiro77/items/cb7d8db76914f879c61b