vSphere4でお手軽にバックアップを取得したい
Vmware vShpere 4で開発環境を構築しているのですが、いつもバックアップが問題になります。
潤沢に資金のあるプロジェクトでは、お金をかけて推奨構成のバックアップ環境が構築できるのですが、
資金難のプロジェクト、とりわけ社内の開発環境となるとバックアップ環境なんていいものが望めるはずもなく。。。
しかし、今回はVmware vSphere 4 Enterprise Plusを購入したということで、VMware Data Recovery 1.2が試せる!と楽しみにしていたのですが
メディア所在不明&ユーザ登録不明ということで担当者に問い合わせ中。。。。
そこでいつもの通り(悲)、
- ゲストOSをシャットダウンし
- 関連ファイルを別の場所に複製し
- ゲストOSをスタートさせる
という手順でとりあえず、バックアップを取ろうということになりました。
今回は、VMware-vSphere-CLIというものを使用して行ってみました。
まずはダウンロードです。
Vmware(http://www.vmware.com/)のSupport&Downloadsのところの、Vmware vSphereをクリックします。
VMware vSphere CLI 4.0 U2をクリックしました。
インストール自体は簡単(困る部分はありません)ので割愛します。再起動なども要求されません。
デフォルトの設定でインストールが終了すると、C:\Program Files (x86)\VMware\VMware vSphere CLI\binにperlスクリプトが置かれます。
ゲストOSの起動・停止はvmware-cmd.plで行うのですが、コマンドライン書式が以下のようになっていて
vm-cfg-pathを指定するのです。
Usage: vmware-cmd
これ、所謂VMXのパスを指定するのですが、/vmfs〜から始まるフルパスを指定しないとダメなようで、普段ならSSHでログオンしてフルパスを
調べるところなのですが、SSHでログオンするための情報が初期セットアップ担当者から得られず。。。
試行錯誤した結果、同じvmware-cmdの-lオプションで取得できることが分かりました。
vmware-cmd.pl --server XX.XX.XX.XX --username userid --password pass -l
以下のようなバッチを組みました。本当は改行しない部分が含まれています。
@ECHO OFF REM ----------------------------------------------------------------------------- REM REM 環境変数定義開始 REM REM ----------------------------------------------------------------------------- SET DT=%date% SET LOGPATH=D:\scripts\logs\ SET LOGNAME=LOGFILE_%DT:~0,4%%DT:~5,2%%DT:~8,2%.LOG SET HOST=XX.XX.XX.XX SET USER=userid SET PASS=password SET VMPATH="C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\" REM ----------------------------------------------------------------------------- REM REM ゲストOSを停止させます REM REM ----------------------------------------------------------------------------- %VMPATH%vmware-cmd.pl -H %HOST% --username %USER% --password %PASS% (本当は改行なし) "/vmfs/volumes/4c32b2d3-740e0878-74a6-00237dd2ccc6/mdmpft/mdmpft.vmx" stop soft >> %LOGPATH%%LOGNAME% REM ----------------------------------------------------------------------------- REM REM ゲストOSのコピー開始まで、ウエイト時間を入れます REM 停止後すぐに開始するとエラーとなるため REM REM ----------------------------------------------------------------------------- TIMEOUT 60 REM ----------------------------------------------------------------------------- REM REM ゲストOSのバックアップを取得します REM REM ----------------------------------------------------------------------------- %VMPATH%vifs.pl --server %HOST% --username %USER% --password %PASS% -copy (本当は改行なし) /vmfs/volumes/4c32b2d3-740e0878-74a6-00237dd2ccc6/mdmpft (本当は改行なし) /vmfs/volumes/4c35aaaf-3cb48e58-d917-00237dd2ccc6/mdmpft_bk >> %LOGPATH%%LOGNAME% REM ----------------------------------------------------------------------------- REM REM ゲストOSを開始させます REM REM ----------------------------------------------------------------------------- TIME /T >> %LOGPATH%%LOGNAME% %VMPATH%vmware-cmd.pl -H %HOST% --username %USER% --password %PASS% (本当は改行なし) "/vmfs/volumes/4c32b2d3-740e0878-74a6-00237dd2ccc6/mdmpft/mdmpft.vmx" start >> %LOGPATH%%LOGNAME%
実際に動作させてみると、ゲストOSを停止させてからコピーまでの間にウェイトをしないとコピーでエラーとなることが
わかりました。TIMEOUTコマンドを挟んでいます。便利ですねTIMEOUTコマンド。
一時しのぎなので、これで全くOKなのですが、/vmfs〜から始まる部分ってなんとかならないのかなと思います。