VMware ESX 4.0のVCBによるバックアップでゲストOS内のプリコマンド・ポストコマンドを実行させる

VCB (VMware Consolidated Backup)による仮想マシンバックアップのとき、ゲストOS内でプリコマンド・ポストコマンドを実行することができます。
このゲストOS内でのプリコマンド・ポストコマンドの実行はVMware Toolsを通じて処理されるため、VMware ESX上で正式にサポートされたゲストOSであり、適切なVMware Toolsが提供され、それをゲストOS内にインストールしている必要があります。

仮想マシンをシャットダウンしてからバックアップするのが一番いいのですが、少しでもサービス停止時間を短縮したいとか、ホスト側から仮想マシンのシャットダウンや起動のスクリプトを作りこむのが複雑だとかの理由により、ゲストOS内で特定のサービスを停止してバックアップする方法はとても有効だと思います。

処理の流れはこうなります
・VCBでバックアップの開始を宣言
・ゲストOS内でプリコマンドの実行
・仮想マシンのスナップショットを作成
・ゲストOS内でポストコマンドを実行
・スナップショットされた仮想マシンをVCBプロキシサーバのマウントポイントにエクスポート
・仮想マシンをバックアップ(ここはバックアップソフトで)
・バックアップ終了
・VCBでバックアップの終了を宣言
・スナップショットされていた仮想マシンと差分ファイルが合成されて通常の運用に戻る

まあこれは私の想像みたいなもんなので、多少の違いがあるかもしれませんが。
実際に現在構築中の環境で試してみました。

仮想化ホスト環境
VMware ESX 4.0 Update 1

仮想マシン環境
・ゲストOSはWindows Server 2008 Standard SP2 (32ビット)
・仮想ディスクは1つ (シンプロビジョニング50GB中7.6GB使用済み)

管理サーバ兼VCBプロキシサーバ兼バックアップサーバ環境
・Windows Server 2008 Standard SP2 (32ビット)
・VMware vCenter Server 4.0 Update 1
・VMware Consolidated Backup 1.5 Update 1
・ARCserve Backup r12.5 (本体)
・ARCserve Backup r12.5 Agent for Virtual Machines


ゲストOS内のプリコマンド・ポストコマンドは、特定の場所に特定のルールでバッチファイルを用意することで自動的に実行されます。
そのルールはVMware ESXのバージョンによって大きく変わっています。

VMware ESX 3.5 Update 1およびそれ以前
プリコマンド(Pre-freeze)
C:\Windows\pre-freeze-script.bat

ポストコマンド(Post-thaw)
C:\Windows\post-thaw-script.bat

VMware ESX 3.5 Update 2およびそれ以降
プリコマンド(Pre-freeze)、ポストコマンド(Post-thaw)共通
C:\Program Files\VMware\VMware Tools\backupScripts.d フォルダ内のスクリプト

プリコマンドの場合、第1引数としてfreezeが渡される。
backupScripts.dフォルダ内のスクリプトはアルファベットの昇順に実行される。

ポストコマンドの場合、第1引数としてthawが渡される。
backupScripts.dフォルダ内のスクリプトはアルファベットの降順に実行される。



VMware ESX 3.5 Update 1およびそれ以前はわかりやすい。
特定のフルパスで指定されたバッチファイルだから迷わない。

しかしVMware ESX 3.5 Update 2およびそれ以降は、ちょっとはわかりにくい。
プリコマンドの場合はbackupScripts.dフォルダ内のスクリプトがアルファベットの昇順に、ポストコマンドの場合はアルファベットの降順に実行される。
プリコマンドの場合は引数としてfreezeが、ポストコマンドの場合はthawが渡される。
わかってしまえばどうって事無いけど、実際にやってみて試行錯誤して、この意味がわかりました。

スクリプトの例
@echo off
color 3f
title バックアップ前ジョブ後ジョブテストバッチ

set LOGFILENAME="C:\Program Files\VMware\VMware Tools\backupScripts.d\BackupScript.log"
echo %date% %time% 第1引数は%1です >>%LOGFILENAME%
echo %1 >Temp.txt

rem 第1引数によって、前ジョブと後ジョブを分岐させる。
:PRE01
FIND /I "freeze" Temp.txt
IF ERRORLEVEL 1 GOTO POST01
SET %ERRORLEVEL%=0

echo %date% %time% バックアップ前ジョブ実行 >>%LOGFILENAME%
net stop  "Windows Update" >>%LOGFILENAME%
GOTO JOBEND

:POST01
FIND /I "thaw" Temp.txt
IF ERRORLEVEL 1 GOTO JOBEND
SET %ERRORLEVEL%=0

echo %date% %time% バックアップ後ジョブ実行 >>%LOGFILENAME%
net start "Windows Update" >>%LOGFILENAME%

:JOBEND
del Temp.txt /q
echo %date% %time% ERRORLEVELは%errorlevel% >>%LOGFILENAME%
echo -------------------------------------- >>%LOGFILENAME%



リダイレクトで出力するログファイルは、変数%LOGFILENAME%で指定しています。
このスクリプトを実行するカレントパスが良くわからないので、ログファイルの出力先はフルパス指定が無難です。
フルパスで指定しないと%systemroot%\system32フォルダに出力されてしまったと思います。
(良くあることですが)

VCBからこのバッチファイルが自動実行されるとき、プリコマンド・ポストコマンドでそれぞれfreezeとかthawとかの引数が渡されます。
FINDコマンドでは%1を直接文字列検索できなかったので、第1引数をTemp.txtにリダイレクトして、そのTemp.txtをFINDで検索しました。

このサンプルスクリプトで停止・開始するサービスは何でも言いのですが、今回は一番害が無さそうなWindows Updateを選んでみました。
実際には運用環境に応じてOracle Databaseなり、AD DSなりのサービス停止・開始を行うようにします。(マイクロソフトはActive Directoryの復元にはシステム状態のリストアのみをサポートしますが)


スクリプトを実行したログファイルの例

2010/03/26  3:45:39.58 第1引数は"freeze"です
2010/03/26  3:45:39.60 バックアップ前ジョブ実行
Windows Update サービスを停止中です.
Windows Update サービスは正常に停止されました。

2010/03/26  3:45:42.21 ERRORLEVELは0
--------------------------------------
2010/03/26  3:46:20.15 第1引数は"thaw"です
2010/03/26  3:46:20.16 バックアップ後ジョブ実行
Windows Update サービスを開始します.
Windows Update サービスは正常に開始されました。

2010/03/26  3:46:22.16 ERRORLEVELは0
--------------------------------------



プリコマンド実行時には第1引数としてfreezeが、ポストコマンド実行時には第1引数としてthawが渡されていることがわかります。
ブイエムウェア社の仮想マシンバックアップガイドには、ポストコマンド実行時の引数は「thawまたはfreezeFail」が渡されるとありますが、プリコマンドに失敗してポストコマンドにfreezeFailが渡されるところまでは確認していません。

この例では3:45:42にプリコマンドが終わり、3:46:20にポストコマンドが実行されています。
その間、約38秒ですが、つまりこの間にスナップショットが作成されたことになります。

vcbMounterコマンドでも試しましたが、ARCserve Backup 12.5とAgent for Virtual Machinesの組み合わせからバックアップしたした場合でもプリコマンドとポストコマンドの実行は確認できました。


納期に間に合わないかもしれないプレッシャーの中でこれを試すのは、結構疲れました。
関連記事

コメントの投稿

非公開コメント

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

norimaki2000

norimaki2000のブログにようこそ
・2013/01/05テンプレートをsantaからhouseに変更
・2012/10/29テンプレートをsweet_donutsからsantaに変更
Follow norimaki2000 on Twitter気軽に話しかけてね

ニューヨーク・マンハッタン(タイムズスクェア)180×135

千葉県在住で東京都内に勤務。SE歴20年超えました。

昔々はオフコンで販売管理などのアプリケーション開発してた。
ファミリーレストランの無線オーダリングやPOS、キッチンプリンタの全国展開なんかもやっていました。
数年前まではWindows上のアプリケーション展開が多かったかな。
ここ数年はWindowsサーバーを中心としたサーバーインフラの提案・構築・保守を中心にやってます。
主な取り扱い製品は、
・Windows 2000 Server以降 (もちろんNT3.5やNT4.0も知っていますが)
・Active Directory (今で言うAD DS)
・Symantec Backup Exec
・Symantec System Recovery
・CA ARCserve Backup for Windows
・CA ARCserve Replication
・CA ARCserve D2D
・EMC RepliStor
・VMware vSphere
・某メーカーのクラスタソフトウェア

どれもこれも中途半端な知識と技術力ですが、なんとかやっています。
私自身は技術や製品を担当する立場ではなく、特定業種のお客さん(ユーザ企業)の対応窓口となるSEの役割りですから、必要であれば詳しい知識や経験豊富な別のSEを探してきてプロジェクトメンバに加えます。

もちろん小さな物件では自分で提案、インストール、お客さんへの導入、アフターサポートまでやります。
大きな物件では提案はやりますが、構築部分は専門部隊に依頼します。
その場合でもアフターサポート窓口は私がやりますので、お客さんに対しては一貫して窓口SEとなります。

サーバの世界の大きなトレンドは統合・仮想化。
2007年はVirtual Server 2005 R2によるサーバ仮想化も、2つのお客さんで本稼動させた。
2008年はVMware ESX 3.5を2セット構築。単純なローカル起動と、SANブート/VMotion/DRS/HA/VCBのフル装備もやった。
2009年はぜひHyper-Vの仮想環境を構築したいな。と思っていたが、なかなか機会に恵まれなかった。
2010年はVMware ESX 4.0でHA/VMotion/VCBバックアップを進行中。

そのほかにも、ドメインコントローラやファイルサーバの全国展開とデータ移行、特定のアプリケーションの実行基盤となるサーバ群のOS・バックアップ・DBクラスタなどインフラ部分の構築などをやっています。


2011年のポイントも引き続き、【ご利用は計画的に】。
今まで長年に渡って仕事も私生活も行き当たりばったりなので、少しでも物事を計画的に進められるようにしたい。
いつも計画性の無さが災いして多くの人に迷惑をかけています。
自分自身も計画的な仕事ができないため、いつもいろいろ苦労しています。
今年はさらに計画的に仕事をするようにしなきゃ。

それと若手を上手に使うようにならなきゃならん。
若手の育成はもちろんだけど、僕自身も仕事を上手に他の人に振ることができるようになりたい。
仕事の種類のせいなのか性格なのか、どうしても一人で抱え込んでしまうから。

【Twitter】2010年の元旦から始めました。平均して1日あたり10ツィート程度です。
仕事関連の呟きが少し、くだらない呟きがほとんどかな。
Follow norimaki2000 on Twitter
・norimaki2000 on Twitter

Follow norimaki2000 on Twitter
・norimaki2000 on Twilog


オンライン上ではあるけれど、今まで知らなかった人たちと交流する機会を得ることになり、非常に刺激を受けます。
仕事でも私生活でも、いろんな人のつぶやきは息抜きにもなり、また助けられたり、あるいは「もっとがんばんなきゃ」と励みになったりします。
Twitterを考え出した人の発想、システムとして作り上げた努力と情熱はすごい!!


【好きな音楽】ベテランの皆さんなら浜田省吾、尾崎豊、エコーズ、若手なら鬼束ちひろ、平原綾香、現在注目の若手はいきものがかり

【好きなアイドル】千葉県柏市を中心に活動する地元アイドルの「コズミック☆倶楽部」を激推し中です。

【好きな飲み物】シャンパンはご存知モエ・エ・シャンドン ブリュット アンペリアル、ビールはキリン ブラウマイスター、水ならビッテル、お茶ならキリン生茶

【好きなTVドラマ】Xファイル、24、ミレニアム、ER、CSI:科学捜査班シリーズ、NCIS:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



パソコン困り事相談もよろしく


最近の記事
最近のコメント
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
カテゴリー
FC2カウンター
キーワード

Windows_Server VMware_ESX VMware vCenter_Server VMware_Player PowerShell PowerCLI vSphere_Client VirtualCenter Active_Directory vStorage_API Converter 文音 Windows Hyper-V コズミック☆倶楽部 Microsoft_Security_Essentials Windows_8 vSphere VMware_Converter Backup_Exec sora なるみん あいひょん カラオケ Windows_Server_2012 System_Center VCB Red_Hat_Enterprise_Linux SQL_Server Tech_Fielders メモリダンプ System_Recovery ARCserve_Backup RHEL Internet_Explorer ESX VMware_vSphere Oracle Directory Exec Symantec VMware_HA Server vSphere_CLI ジン子 マークス Active vMotion Firefox Backup Recovery NTFS System 麗美 XenServer schtasks Vista remi コズミック倶楽部 DRS SE キリン vCenter_Converter Twitter Office Oracle_Database Windows_Update Visual_Studio wevtutil 氷結 Sysinternals DMC-FZ1000 若手 スリムス ラガー 一番搾り食物繊維 ついにステップワゴンを契約してしまった ロッキー 糖質 サッポロ 日本赤十字社 洗車 洗濯 写真 バルボア のどごし生 フィット 東京国際フォーラム カーナビ おとなのおつまみ ベビースター おやつカンパニー えびしお 献血 白石美帆 セキュリティ スパリゾートハワイアンズ カルディ サクセス けんけつちゃん はばたき福祉事業団 スタローン セルシオ スパークリングウォーター corega 経済産業省 雨どい 人口甘味料 伊藤園 ポケモン・スタンプラリー シャンプー台のむこうに サーバ デュポン  お茶のチューハイ ジョシュ・ハートネット 神戸 北野 ウォーター ハワイ エイドリアン ブラックホーク・ダウン コロン ワイヤーアクション ムエタイ カーポート 高原 バーベキュー 映画 グレープフルーツ グランダム 掃除 鬼押し出し園 草津 関西空港 羽田 夏休み 万座温泉 マッハ キャンプ 東京タワー SAP バックアップ ARCserve_D2D ARCserve_Replication Virtual_Infrastructure vStorag_API Apache グループポリシー SkyDrive VMFS OpenOffice.org ULPC XP Word OEM DSP ジャンプフェスタ ITIL OpenOffice Tween HUAWEI OneDrive 浜田省吾 GR5 れみ Windows_Serverバックアップ Paper.li Linux VMware_ESXi Windows_Azure iStorage バッチ robocopy AWS IP38X/N500 NVR500 Uptime.exe USB2.0 CG CDRW-AB24JL CD CR-V CoolMax Gathers DVD CAB Brio 修復 破損 2008 圧縮 コマンドライン ATAPI 0x0000007B Hyperion IDE SUPPLEX STOPエラー wbadmin SweetGrass Thunderbird USB Tools Resource Replication NR-7900A Kit IZZE NetBackup OREZZA PCI PC-Success オレッツァ 

月別アーカイブ
リンク
RSSフィード