VMware vSphere 4.1の進化を探る(3)
VMware vSphere 4.1 のストレージ機構 (1) VAAI
ヴイエムウェア株式会社
テクニカルアライアンスマネージャ
齋藤 康成
2010/10/6
VMware vSphere 4.1では、共有ストレージ装置が保有するさまざまな機能を、ハイパーバイザと連携させることで有効活用するための機能が搭載された。これがVAAI(vStorage API for Array Integration)だ。今回は、現時点でどのような連携が可能なのかを具体的に解説する。 |
共有ストレージ装置との連携の必要性
- - PR -
仮想化を進めれば進めるほどストレージの重要性が増す。これはほぼすべてのITインフラ管理者が実感していることだろう。共有ストレージ装置の活用は仮想マシンを活用する上で不可欠の要素であり、運用のあらゆる場面でストレージ装置へのアクセスが行われている。一方で、近年のストレージアレイ装置はさまざまな機能を保有している。データの複製や移動、効率の良いロック機構など、さまざまなインテリジェントな機能がストレージのハードウェアやファームウェア側に実装されている。VMwareでは、これらストレージ装置側が保有するさまざまな機能を、ハイパーバイザと連携させることで有効活用することはできないかと考えた。これを実現するための機構がvStorage API for Array Integration(以降VAAIと略記)である。本稿ではvSphere 4.1の新機能の1つであるVAAIについて紹介する。
■ 仮想マシンの操作とディスクI/O
先述の通り、仮想インフラストラクチャの管理・運用には多くのストレージ操作が伴う。例えばテンプレートから仮想マシンを展開する場合は仮想マシンのディスクイメージファイル(VMDKファイル)の複製処理が発生する。また、仮想ディスクのある領域をゼロで埋めるという処理は運用のさまざまな場面で実行されている。これらの処理は単純なDisk I/Oという形で実行されている。
例えば仮想マシンの複製処理を行う場合、複製元となる仮想ディスクのデータはいったんハイパーバイザによって読み込まれ、ディスクに書き込まれる(図1)。仮想ディスクに記録されているデータ容量分のRead I/OとWrite I/Oが発生し、ストレージネットワーク上にはそのトラフィック(データ容量×2)が流れる。
図1 仮想マシンの複製処理。データはいったん物理ホストまで到達してから再度書き込まれる |
ここでもし、ストレージ装置側が保有するデータコピー機能を活用することができたとしたらどうなるだろう? ハイパーバイザはストレージ装置に対して特定の領域のコピー命令を発行する。それを受けたストレージ装置はストレージ装置内でそのデータコピーを実行する(図2)。
図2 ストレージ装置との連携。データコピーはストレージ装置内で実行される |
後者の方法の場合、当然のことながら物理ホストとストレージ装置間を流れるデータトラフィックは大幅に少なくなり、ホスト側で消費されるCPUサイクルも減少する。また処理時間についてもストレージ装置側のハードウェアを活用できるため短くなることが期待できる。
このように、ストレージ装置との密な連携を行うことによって、ストレージ装置側の持つ機能を有効活用しようというアイデアがVAAIである。
■ VMFSと排他制御
ファイルシステムのスケーラビリティという観点においても、ストレージ装置との連携が期待できる場面がある。
vSphere環境ではVMFSと呼ばれるファイルシステムが利用されている。VMFSは複数のESXホストから共有可能なファイルシステムであり、vSphere環境を構築する上で極めて重要な役割を担っている。
ファイルシステムを複数のホストから共有して利用している以上、データの整合性を担保するための何らかのメカニズムが必要となる。このためファイルシステムのメタデータの更新が必要とされる操作については排他制御を行っている。
VMFSの排他制御にはSCSI-2のディスクリザベーションと呼ばれる技術が利用されている。メタデータの更新を伴うディスク操作にはさまざまなケースがあるが、仮想マシンの新規作成、仮想マシンのパワーオン、REDOファイルの伸長処理などが代表的である。これらのタイミングでメタデータの更新が行われるが、このときESXホストはSCSI-2のリザーブ/リリース処理を実行することで排他制御を実現している。
SCSI-2リザベーションはディスク単位(LUN単位)で動作するロック機構であるため、スケーラビリティという観点ではあまり効率の良い方法ではない。vSphere 4.1環境では単一データストアを最大64台(DRSを利用する場合は32台)のESXで共有することがサポートされているが、これ以上のスケーラビリティを確保するには、より効率の良い排他制御機構が必要とされている。
図3 VMFSの排他制御にはSCSI-2のディスクリザベーションが用いられている |
従って、LUN単位のロック機構ではなく、より粒度の細かいロック機構を用いることで、ファイルシステムのスケーラビリティの向上を期待することができる。最近のストレージ装置には、セクタ単位のロック機構を保有しているものがあるため、VAAIではこれを利用する(図4)。
図4 VAAIを用いてセクタ単位でロック処理を行うことで、影響範囲を最小限にとどめることができる |
■ vSphere 4.1における実装
VAAIではさまざまな機能のインテグレーションが計画されているが、vSphere 4.1では以下の3種類の機能を実装している。
(1) Full Copy
ストレージ装置内におけるデータコピー処理を、ストレージ装置側が保有する機能で実行する。ESXホストとストレージ装置の間は制御命令のみのやりとりが行われ、実データは流れない。VMのクローンの作成、テンプレートからのVMの展開、VMのデータストア移行(含Storage vMotion)のときなどに活用される。
(2) Block Zeroing
領域をゼロで埋める処理を、ストレージ装置側が保有する機能で実行する。ESXホストとストレージ装置の間は制御命令のみのやりとりが行われ、実データは流れない。VMware FTで利用するVMの新規作成、MSCS構成にするVMのディスク作成のときなどに活用される。
(3) Hardware Assisted Locking
VMFSのメタデータ更新を行うとき、ストレージ装置側が保有する粒度の細かいロック機構を用いる。これによりSCSI-2リザベーションの使用頻度を極力低く抑える。VMFSのスケーラビリティ向上に寄与する。
それでは個々の機能について詳細を見てみよう。
1/3 |
Index | |
VMware vSphere 4.1のストレージ機構(1) VAAI | |
Page1 共有ストレージ装置との連携の必要性 |
|
Page2 連携機能の具体的な解説 Full Copy Block Zeroing Hardware Assisted Locking |
|
Page3 VAAIの利用 VAAIが利用可能なストレージ装置 VAAIの有効化・無効化 統計情報の確認 |
TechTargetジャパン
- 「OpenFlowの父」が語る、OpenFlowとSDNの真実 (2012/3/21)
OpenFloは誤解され、過剰に期待されているのではないか。OpenFlowを生みだした1人に、SDNやネットワーク仮想化との関係を含めて聞いた - AWS×Azure PHP導入と開発環境の対決 (2012/3/7)
今回は、AWSとWindows Azureの2大クラウドを、PHPアプリケーションの開発環境、デプロイ環境という観点から比較 - AWSとAzure、まずはプロフィールを比較する (2012/2/6)
PHP開発で使うという観点からAWSとWindows Azureの2大サービスを多角的に検証する新連載。まずは全体像から - 進化するVMware vSphere 5のネットワーク機能 (2012/1/18)
VMware vSphereが単なる仮想化ソフトでない理由の1つは、高度なネットワーク機能にある。vSphere 5での進化を解説する
|
|