S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

VMwareの仮想マシンをARCserveでバックアップの顛末

VMware ESXi 4.1 / VDDK 1.2.1
ARCserve Backup r15 SP1

VCBとVDDK

当初VCBでバックアップを取得する予定だったけど、バックアップサーバも仮想マシンWindows Server 2008 R2
ところが、VCBプロキシサーバはR2をサポートしていないと。

Windows Server 2008 R2は、VCBプロキシサーバとしてサポートされておりません。ご了承ください。

じゃぁなんでこんな構成になったんだ!?
某N社系列の営業さんに作成してもらった構成を、同じ会社のサポートから否定されるという。。。
仮想マシン バックアップガイド(PDF)のp31
で、VDDKなら可能なのでってことで、VDDKに方針転換。

仮想マシンの名前とVMware環境設定ツールの設定

やっとバックアップのソースとして、仮想マシンが選択できるようになって、いざバックアップしてみると、2つめの仮想マシン(B)で下記のようなエラーが発生。

AE0521 VM のマウント処理に失敗しました (VM ホスト名: 仮想マシン(B))。詳細については、クライアント エージェント インストール ディレクトリ下のログ フォルダ内にある ca_vcbpopulatedb.log を参照してください。

1つめの仮想マシン(A)は完了している。仮想マシン(A)のみバックアップしてもエラーは発生しないが、仮想マシン(B)のみバックアップしても同様のエラーとなる。
メッセージにあるca_vcbpopulatedb.logを参照すると、

UUid is null or empty

というメッセージがあり、どうも仮想マシンを識別するUUIDというIDが取得できていない状況らしい。
これは、VMware環境設定ツール(Guest Based Virtual Machines Agent Bundle)で作成されるべき情報らしく、その情報が正しく作成されていないのが原因で、それは仮想マシンの名前にマルチバイト文字を使っているためという可能性があるというサポートの見立て。
VMware仮想マシン作成する時に、デフォルトで「新規仮想マシン」って表示されるもんだからマルチバイト文字って大丈夫なのかと思ってたけど。
実際にデータストア上に作成されるディレクトリやファイルは「+5paw6KaP5Luu5oOz44Oe44K344Oz」ってな名前になってて、これが原因で仮想マシンの情報が正しく作成されていない可能性があると指摘された訳です。
仮想マシンの名前を半角英数の名前に変更し、環境設定ツールで情報を再作成することでエラーは解消されたが、今度は下記のようなエラーが発生した。
今度は仮想マシン(A)と(B)で発生しており、仮想マシン(A)のバックアップも取得できない状況となった。

AE0577 VM [仮想マシン(A)] (ESX/VC サーバ [********] 上) の仮想マシン スナップショットを作成することに失敗しました。詳細については、クライアント エージェント インストール ディレクトリ下のログ フォルダ内にある ca_vcbpopulatedb.log を参照してください。
AE0580 仮想マシン [仮想マシン(A)] (ESX/VC サーバ [********] 上) バックアップに失敗しました。詳細については、クライアント エージェントインストール ディレクトリ下のログ フォルダ内にあるバックアップジョブ ログを参照してください。

この時にスナップショットのファイルがゴミとして残る問題が発生するので、その対応はこちら

仮想マシンの再作成

先の仮想マシンの名前の変更は、いわゆる見た目の名前(属性のdisplayNameの変更)であり、内部のファイル名は相変わらずマルチバイト文字をエンコードしたようなディレクトリ/ファイル名のままだった。
サポートは、この名前が一致していないのも正常な状態ではない(VMwareの機能としては問題ないハズだが…)とのことで、それでスナップショットが作成されていないのではないか?と。
ということで、仮想マシンを再作成することにしたが、ディスクイメージ(VMDKファイル)は温存したかったので、下記のような手順で再作成してみた。
1)新しい仮想マシンを、カスタムでディスクなしの構成で作成する。
2)元の仮想マシンのVMDKファイルのflatファイルのファイル名を変更し、VMDKファイルの定義ファイルのファイル名も同様に変更し、"# Extent description"の記述をそれに合わせる。
4)新規作成した仮想マシンのディレクトリにVMDKファイル(flatファイルと定義ファイル)移動し、その仮想マシンのディスクとして追加(既存の仮想ディスクを使用)してマウント。
データストアブラウザでは、VMDKファイルのファイル名って変更できないんだよね。

VMware Toolsの再インストール

VMware Toolsに余計なモノがあるらしい。
サポートからは、「ファイルシステムの同期ドライバ (Filesystem Sync Driver)とボリュームシャドウコピーサービスのサポート(Volume Shadow Copy Services Support)」を外して再インストールしてくれと。
仮想マシンの VDDK バックアップが失敗し、AE0580 と AE0577 エラー メッセージを出力
元ネタはここらしいけど、CA_VCBPopulateDB.logのログのメッセージが違う…

VCB_COM Log Cache begins
Snapshot creation failed for the VM 仮想マシン(A)
Fault : Vim25Api.SystemError
Message : A general system error occurred: Protocol error from VMX.
Log Cache ends

ということで、"Protocol error from VMX"というキーワードで検索して、辿ってみたけど下記のページでも同じよう書いてる。
Backing up virtual machines fails with the error: Protocol error from VMX
[Backing up virtual machines fails with the error: Protocol error from VMX:title=Cannot create quiesced snapshots if backup or system recovery applications are installed]
で、「ファイルシステムの同期ドライバ (Filesystem Sync Driver)」ってのが、カスタムでインストールしても選択できないんだけど…と思ったら、
VMware Consolidated Backup 1.5 リリース ノート

VMware Tools の以前のバージョンのインストール時に、サポート対象外のオペレーティング システム (Windows Vista および Windows Server 2008) に SYNC ドライバをインストールしていました。VMware Tools を ESX Server 3.5 U2 に含まれるバージョンにアップグレードする際には、SYNC ドライバが存在する場合はアンインストールされます。

って古いバージョンのVMware Toolsでは、サポート対象外のOSでもSYNC ドライバをインストールできたけど、最近のバージョンではインストールできないよって言ってる。2008R2はサポート対象外なので、選択できないようになってるのね。
ということで、
1)VMware Toolsをアンインストール
2)「ボリュームシャドウコピーサービスのサポート」を除外してカスタムでインストール
3)再度VMware環境設定ツールで環境情報を再作成
4)バックアップジョブの再作成
をして実行して、解決した。

その他の対応

ARCserveはr15からr15 SP1へ、VDDKは1.2から1.2.1へバージョンアップしたが、状況は変わらなかった。

その他の制約

異なるデータストアの仮想ディスク

異なるデータストア上に仮想ディスクを設定したゲスト OS の復旧について
ということなので、データストアを分けてディスクを構成(システムCとデータDのような)する場合に、異なるデータストアにリストアできないという。。。
VCB を利用したrawフルバックアップ仮想マシンでの復旧ができればいいんだけど、サポートしていないそうです。

スナップショットのための領域

バックアップ時にはスナップショットを作成するが、そのスナップショットは仮想マシン作成時に選択したデータストアのディレクトリに作成される。
そのためデータストアのディレクトリには、他のデータストアも含むその仮想マシンの全てのディスクのスナップショットが作成されるため、データストアの空き容量に注意する必要がある。