VMware機能でのバックアップ時に、どうしても時々バックアップ失敗があるんですよね。。。
それは百歩譲って許したとして、問題はそのバックアップエラーが起きた後にカスタム静止スクリプト(ポストスクリプト)が動作するかどうかです。
これは、
- カスタム静止スクリプト(pre)でサービスを停止
- VMwareスナップショット
- カスタム静止スクリプト(post)でサービス開始
としているパターンが多いため、「バックアップ失敗した上にサービスも開始されない」という状態は目も当てられない状態となってしまうわけです。
上記、動作を確認しました。
レジュメ
VMwareバックアップエラー時(VSSエラー時)にもカスタム静止スクリプトのポストスクリプトは動作するか?
環境・前提条件:
今回確かめた環境は
- VMware vSphere 5.1
- VMware vSphere 5.5 U1
- ゲストOS、Windows Server 2012
です。
VMware vSphere 5.x系はほぼ同じ動作となると思いますが、VMware vSphere 4.x系は若干違うことを確認していますので、5.x系の方が参考にして下さい。
結論、バックアップエラー時もポストスクリプトは動作する!しかしタイムアウト時は動作しない
上記は、カスタム静止スクリプトが実行された場合、時間とそのファイル名をログファイルに記述するようにした状況でテストをしたのですが、下の赤枠が、バックアップ時にVSSエラーが起きた場合のログになります。
確かにポストスクリプト(post-thaw-script.bat)が動作しています。
しかも、VSS成功時(Windowsの静止点作成成功)とVSS失敗時を比べると引数が異なるのですね!
- VSS成功(Windowsの静止点作成成功)時、カスタム静止スクリプトの引数は「thaw」
- VSS失敗(Windowsの静止点作成失敗)時、カスタム静止スクリプトの引数は「freezeFail」
どのようにテストでVSS失敗・バックアップエラーを発生させたか?
VMwareバックアップ対象のゲストOS上で、「Volume Shadow Copy」サービスを「無効」にすることで、VMwareバックアップ時にVSSのエラーを発生させる事が出来ます。
VMwareバックアップがタイムアウトでエラーになった場合の挙動は?
VSS静止点作成処理で15分以上かかりのタイムアウトした場合、残念ながらポストスクリプトは実行されないんです。
VMwareバックアップ時のタイムアウトしスナップショットエラーとなった場合もカスタム静止スクリプトのポストスクリプトは実行される? | puti se blog
- ポストスクリプトで15分以上かかってしまった場合→バックアップエラー
ポストスクリプトは実行されない - VSS処理で15分以上かかってしまった場合→バックアップエラー
ポストスクリプトは実行されない - ポストスクリプト中に15分たってしまった→バックアップエラー
ポストスクリプト処理中断
VMware vSphere 5.5では、どんな事があっても15分でタイムアウトを迎えてしまう作りのようです