2015年2月14日土曜日

VMwareの標準機能を使ったバックアップとリストアの比較

仮想マシンをバックアップしてリストアする方法について、特別なバックアップソフトウェアを使わずに標準機能のみにて実現することを検討してみた。以下3パターンの方法を実際に試し、メリデメ比較を行ってみた。
  1. 仮想マシンのクローンを使う
  2. OVFテンプレートのエクスポートを使う
  3. データストアから直接vmdkファイルをぶっこ抜く
比較結果を以下に記載する。

テスト用の仮想マシン情報

今回テストに利用する仮想マシンの情報は以下の通り。
仮想マシン名:RHEL61_64
仮想ディスクサイズ:16GB (Thin Provision)
OSの使っているディスク容量:約3GB
仮想ディスクはThinで作成しているので、実際の容量は16GBよりも小さい。ESXiのDCUIにて直接vmfs領域を見てみると以下の通り。実際の容量は合計で3.6GBとなる。
/vmfs/volumes/51d55cb3-dbe9bff0-0eeb-d89d6714e6d5/RHEL61_64 # du -ah .
3.6G    ./RHEL61_64-flat.vmdk
64.0K   ./RHEL61_64.vmdk
64.0K   ./RHEL61_64.nvram
64.0K   ./RHEL61_64.vmx
64.0K   ./RHEL61_64.vmxf
64.0K   ./RHEL61_64.vmsd
1.0M    ./vmware-8.log
1.0M    ./vmware-9.log
2.0M    ./RHEL61_64-ctk.vmdk
1.0M    ./vmware-11.log
1.0M    ./vmware.log
1.0M    ./vmware-6.log
1.0M    ./vmware-7.log
64.0K   ./RHEL61_64-1.png
1.0M    ./RHEL61_64-2.png
1.0M    ./vmware-10.log
3.6G    .

仮想マシンのクローンを使う

仮想マシンのクローンにて仮想マシンを複製してバックアップするという方法。作業手順としては最もシンプルだし、VAAIの効果もあって複製に必要となるデータコピーの時間も短くなる可能性がある。また、仮想マシン稼働中にも取得できるというメリットも大きい。ただし、クローンを使うにはvCenter Serverが必要となる。

容量はもとの仮想マシンと完全に同じになるため、今回の場合では3.6GB程度のデータコピーが発生する。

リストアしたい時に元の仮想マシンを止めて、クローンを起動させるだけで復旧できてしまうため、とてもお手軽。

OVFテンプレートのエクスポートを使う

vCenter Serverが無くてもESXの機能として実施可能な「OVFテンプレートのエクスポート」。以下の通りファイル容量が最もコンパクトになる(3.6GB→1.3GB)。詳細は不明だが、OVFテンプレート作成時に圧縮をかけてくれるようだ。
2015/02/05  09:31    <DIR>          .
2015/02/05  09:31    <DIR>          ..
2015/02/05  09:31     1,363,008,512 RHEL61_64-disk1.vmdk
2015/02/05  09:31               133 RHEL61_64.mf
2015/02/05  09:31            11,257 RHEL61_64.ovf
               3 個のファイル       1,363,019,902 バイト
一度Datastore外の領域に保存する必要があるのでネットワーク経由でのコピーとなるため、データコピーの速度はあまり高望みはできない(エクスポート先のサーバーを10GbpsのNICを付けるとかすれば別だが)。

ちなみに注意事項としては、仮想マシンの仮想CDドライブにISOファイル等をマウントしたままエクスポートしてしまうとインポート時に失敗するので注意。やってしまった場合でも回避方法はあって、ovfファイルの該当箇所を書き換えてmfファイルのハッシュ値を再計算して更新すれば良い。詳しくは別記事で記載している。

リストアは「OVFテンプレートのデプロイ」にて実施する。特に小難しいことは何もなく、ウィザードに従ってデプロイすれば良い。

データストアから直接vmdkファイルをぶっこ抜く

vSphere Clientからデータストアブラウザを使ってダウンロードした場合、ディスクをThinで作っていたとしても、Thickの容量に展開されてダウンロードされるようだ。従って、容量的に大きくなってしまい、シンプロビジョニングのメリットも全て失われることから、この方法を選択する理由は全くないと思う。

以下はデータストアブラウザからコピー後の各ファイルの容量(3.6GB→16GB)。データストアブラウザと実際のコピーしたファイルの名称には若干差があって、たとえばvmdfファイルは***-flat.vmdkファイルという名称にてダウンロードされる。
2015/02/05  09:44    <DIR>          .
2015/02/05  09:44    <DIR>          ..
2015/02/04  17:39            10,790 RHEL61_64-1.png
2015/02/04  17:39           700,121 RHEL61_64-2.png
2015/02/04  17:39         1,049,088 RHEL61_64-ctk.vmdk
2015/02/04  17:39    17,179,869,184 RHEL61_64-flat.vmdk
2015/02/04  17:39             8,684 RHEL61_64.nvram
2015/02/04  15:53               606 RHEL61_64.vmdk
2015/02/04  17:39                43 RHEL61_64.vmsd
2015/02/04  17:39             3,762 RHEL61_64.vmx
2015/02/04  17:39               264 RHEL61_64.vmxf
2015/02/04  17:39           778,394 vmware-10.log
2015/02/04  17:39           127,005 vmware-11.log
2015/02/04  17:39           223,817 vmware-6.log
2015/02/04  17:39           127,871 vmware-7.log
2015/02/04  17:39           208,558 vmware-8.log
2015/02/04  17:39           125,719 vmware-9.log
2015/02/04  17:39           127,634 vmware.log
              16 個のファイル      17,183,361,540 バイト
リストアはこのファイルをデータストアブラウザでアップロードして、vmxファイルをインベントリに追加すればできるはず(未検証)。

まとめ

以下に比較した3案のメリット・デメリットを記載する。リストアの早期復旧が必要ならばクローンを、バックアップ先のディスク容量を節約するならOVFテンプレートのエクスポートが良いと思う。

仮想マシンのクローンを使う

・メリット:vCenter Serverの標準機能であり手順がシンプル・SAN経由での仮想マシンコピー可能・仮想マシンON中でバックアップ可能・最もリストアが早い
・デメリット:vCenter Serverが必要

OVFテンプレートのエクスポートを使う

・メリット:vCenter Server不要・バックアップ容量が最もコンパクト・仮想マシンをファイルとして扱えるため取り回しし易い(さらにテープへバックアップなども可能)
・デメリット:NW経由のバックアップとなるためNW帯域がボトルネックになる

データストアから直接vmdkファイルをぶっこ抜く

・メリット:無いと思う…
・デメリット:バックアップ容量が最も大きい・NW経由のバックアップとなるためNW帯域がボトルネックになる