VMware vSphere 4.1では、共有ストレージ装置が保有するさまざまな機能を、ハイパーバイザと連携させることで有効活用するための機能が搭載された。これがVAAI(vStorage API for Array Integration)だ。今回は、現時点でどのような連携が可能なのかを具体的に解説する。
仮想化を進めれば進めるほどストレージの重要性が増す。これはほぼすべてのITインフラ管理者が実感していることだろう。共有ストレージ装置の活用は仮想マシンを活用する上で不可欠の要素であり、運用のあらゆる場面でストレージ装置へのアクセスが行われている。一方で、近年のストレージアレイ装置はさまざまな機能を保有している。データの複製や移動、効率の良いロック機構など、さまざまなインテリジェントな機能がストレージのハードウェアやファームウェア側に実装されている。VMwareでは、これらストレージ装置側が保有するさまざまな機能を、ハイパーバイザと連携させることで有効活用することはできないかと考えた。これを実現するための機構がvStorage API for Array Integration(以降VAAIと略記)である。本稿ではvSphere 4.1の新機能の1つであるVAAIについて紹介する。
先述の通り、仮想インフラストラクチャの管理・運用には多くのストレージ操作が伴う。例えばテンプレートから仮想マシンを展開する場合は仮想マシンのディスクイメージファイル(VMDKファイル)の複製処理が発生する。また、仮想ディスクのある領域をゼロで埋めるという処理は運用のさまざまな場面で実行されている。これらの処理は単純なDisk I/Oという形で実行されている。
例えば仮想マシンの複製処理を行う場合、複製元となる仮想ディスクのデータはいったんハイパーバイザによって読み込まれ、ディスクに書き込まれる(図1)。仮想ディスクに記録されているデータ容量分のRead I/OとWrite I/Oが発生し、ストレージネットワーク上にはそのトラフィック(データ容量×2)が流れる。
ここでもし、ストレージ装置側が保有するデータコピー機能を活用することができたとしたらどうなるだろう? ハイパーバイザはストレージ装置に対して特定の領域のコピー命令を発行する。それを受けたストレージ装置はストレージ装置内でそのデータコピーを実行する(図2)。
後者の方法の場合、当然のことながら物理ホストとストレージ装置間を流れるデータトラフィックは大幅に少なくなり、ホスト側で消費されるCPUサイクルも減少する。また処理時間についてもストレージ装置側のハードウェアを活用できるため短くなることが期待できる。
このように、ストレージ装置との密な連携を行うことによって、ストレージ装置側の持つ機能を有効活用しようというアイデアがVAAIである。
ファイルシステムのスケーラビリティという観点においても、ストレージ装置との連携が期待できる場面がある。
vSphere環境ではVMFSと呼ばれるファイルシステムが利用されている。VMFSは複数のESXホストから共有可能なファイルシステムであり、vSphere環境を構築する上で極めて重要な役割を担っている。
ファイルシステムを複数のホストから共有して利用している以上、データの整合性を担保するための何らかのメカニズムが必要となる。このためファイルシステムのメタデータの更新が必要とされる操作については排他制御を行っている。
VMFSの排他制御にはSCSI-2のディスクリザベーションと呼ばれる技術が利用されている。メタデータの更新を伴うディスク操作にはさまざまなケースがあるが、仮想マシンの新規作成、仮想マシンのパワーオン、REDOファイルの伸長処理などが代表的である。これらのタイミングでメタデータの更新が行われるが、このときESXホストはSCSI-2のリザーブ/リリース処理を実行することで排他制御を実現している。
SCSI-2リザベーションはディスク単位(LUN単位)で動作するロック機構であるため、スケーラビリティという観点ではあまり効率の良い方法ではない。vSphere 4.1環境では単一データストアを最大64台(DRSを利用する場合は32台)のESXで共有することがサポートされているが、これ以上のスケーラビリティを確保するには、より効率の良い排他制御機構が必要とされている。
従って、LUN単位のロック機構ではなく、より粒度の細かいロック機構を用いることで、ファイルシステムのスケーラビリティの向上を期待することができる。最近のストレージ装置には、セクタ単位のロック機構を保有しているものがあるため、VAAIではこれを利用する(図4)。
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のスケーラビリティ向上に寄与する。
それでは個々の機能について詳細を見てみよう。
Copyright © ITmedia, Inc. All Rights Reserved.