VMware Virtual Disk Development Kit (VMware VDDK)とは
VDDKには仮想ディスク(VMDK)の操作 (VixDiskLib) と仮想ディスクパーティションのマウント (VixMntapi) のためのライブラリが含まれており、VMDKに対するのアクセスと転送に必要な機能を提供します。
VMware仮想ディスクストレージの作成やアクセスを可能にするCライブラリやコードサンプル、ユーティリティやドキュメントも含まれており、以下のサイトからダウンロード可能です。
Broadcom Developer Portal : VMware Virtual Disk Development Kit (VDDK) (要ユーザー登録)
VDDKのコンポーネント
VDDKは以下のものを提供します。
- Virtual Disk Library(VixDiskLib) : VMDKファイルを操作するためのC言語関数のセット
- Disk Mount Library(VixMntapi): VMDKファイルシステムをリモートマウントするためのC言語関数のセット
- Visual StudioもしくはGNU Cコンパイラでコンパイル可能なC++コードサンプル
- PDFマニュアルとオンラインHTMLリファレンス
Virtual Disk Library - VixDiskLib
VixDiskLibはVMwareプラットフォーム製品とのインテグレーションソリューションを開発することを可能にする、独立したラッパーライブラリとして以下の機能を提供します。
- 仮想ディスクファイル操作 : 作成、変換、拡張、デフラグメント、シュリンク、リネーム
- redoログ(子ディスクもしくは差分ディスク)の作成と、VMDKファイルの削除
- VMDKファイルの任意の場所に対するランダムRead/Writeアクセスと、メタデータの読み込み
- Advanced Transport、SANもしくはHotAddによるリモートのvSphereストレージに対する接続
Advanced Transport - Virtual Diskの転送方法
SANまたはNASストレージを持つESXiホスト上で実行されている仮想マシンのファイルベースまたはイメージレベルのバックアップをサポートします。データストアから直接データを読み取るため効率的なバックアップが可能です。
バックアップソリューションが、ストレージに効率的にアクセスするためのインターフェイスとしてAdvanced Transportを提供し、以下の4種類のアクセス方法をサポートします。
- Local File Access : ESXiホスト上の /vmfs/volumes から仮想ディスクデータを読み取る。このファイルアクセスメソッドは VixDiskLib に組み込まれており、ローカルストレージで常に使用できるが、ネットワーク転送でないため、vSphereバックアップにはほとんど使用されない。
- SAN Transport : VixDiskLibはESXiホストからVMFS LUNレイアウト情報を取得し、この情報を使用して、仮想ディスクが存在するストレージLUNから直接データを読み取る。SAN接続されたESXiホストに展開されたソフトウェアにとって最も高速な転送方法。
- HotAdd Transport : 仮想マシンの実行中にデバイス追加できる、SCSI HotAdd機能を利用する。仮想ディスクをリンククローンとして複製し、仮想マシンとして実行されるバックアップアプライアンスに作成したクローンをHotAddし、バックアップデータを読み込む。
- NBD/NBDSSL : 上記のトランスポートが利用できない場合、NBD/NBDSSLプロトコルを使用してネットワークトランスポートによりデータを転送する。NBD(Network Block Device)はリモートホスト上のストレージをブロックデバイスとして扱うことができ、NBDSSLはVMwareによるNBDに対する拡張。NBD/NBDSSLは常に使用可能であるため、フォールバック先として利用されることが多い。実際のデータ転送には、ESXiホストに対するNFC(Network File Copy)が利用される。
Virtual Disk Libraryのユースケース
- 仮想マシンに関連付けられた特定のボリュームまたはすべてのボリュームのバックアップ
- バックアッププロキシをvSphereに接続し、ストレージクラスタ上のすべての仮想マシンのバックアップ
- 仮想ディスクを読み取り、仮想マシンのオフラインアンチウイルススキャンまたはパッケージ分析の実行
- 仮想ディスクに書き込み、仮想マシンのオフライン集中パッチ適用
- 仮想ディスクを操作して、ファイルシステムイメージのデフラグ、拡張、変換、名前変更、または縮小
- 破損または感染したオフライン仮想マシンでデータ復旧またはウイルスの駆除
詳細はこちらの関数一覧を参照してください。
Disk Mount Library - VixMntapi
Disk Mount Library (VixMntapi) は複数のプラットフォーム上のゲストOSをサポートし、プログラムはマウントされたディスクパーティションと同じようにアクセスできます。vixMntapiライブラリは、VixDiskLibとともにVDDK にパッケージ化されています。
詳細はこちらの関数一覧を参照してください。