Home > Blogs > Japan Cloud Infrastructure Blog


押さえておきたいvSphereの基本~ストレージ編 第2回~

~ストレージの能力を最大限に引き出す vSphere~
皆様こんにちは!前回は、vSphereのストレージ機能において比較的小規模環境(約ESXi2~3台)でも使用できる代表的な機能をご紹介しました。一般的に仮想基盤は小規模構成から運用開始することが多く、仮想基盤の運用に慣れていくに伴い、規模を拡張していくことが多いです。規模を拡張するにあたり、物理リソースを単に増やしてしまうとコストメリットがなかなか出しにくくなり、安全に統合率(ESXi上で稼動する仮想マシン数)を上げていくことも考慮していく必要があります。そこで安全に統合率を上げていく際、重要な役割を担うポイントの一つとしてストレージがあげられます。

図2-1
 

図1 仮想マシンの増加とIO増加
仮想マシンの台数が増えると、もちろんストレージへのアクセス(通常のIOに加え仮想マシンの作成、テンプレートから仮想マシンを展開、Storage vMotion等)は増えます。ここで忘れてはいけない点として、仮想基盤は物理リソースを「共有」しているという点です。これはIO競合が発生しやすい状態ともいえ、ストレージがボトルネックになりやすい環境にもなりかねません。ここで管理者は仮想マシンの配置を仮想基盤の特性を十分理解する必要がでてきます。ストレージ側に関してはなかなか手が回らず、余裕の持ちすぎたサイジングになってしまう傾向があります。そういった中、vSphereではストレージとより連携し、そもそもストレージが持っている能力を最大限引き出し、管理者に余計な負荷がからない様、下支えをする仕組みを持っております。

■仮想基盤特有、ストレージのボトルネックを抑える
前回VMFSと呼ばれるファイルシステムをvSphereでは持っているとご説明をしました。複数のホストからアクセスされているような環境では、データの整合性のためにファイルシステムのメタデータの更新が必要となる場合、排他制御の仕組みが必要になってきます。vSphere 環境におけるメタデータの更新が必要となる代表的なオペレーションとしては、仮想マシンを新規作成、仮想マシンの起動/停止、vMotion、仮想マシンスナップショット取得時、等実行するタイミングになります。vSphere では、排他制御のためにSCSI-2のディスクリザベーションを利用しており、「LUN全体をロック」して他のホストからのアクセスを抑制するという動作になります。非常に短い時間ではありますが、他のホストで稼動している仮想マシンは、一時的にI/O ができない瞬間が発生してしまいます。 (図2)

図2-2withoutVAAI
 

図2 排他制御が多くかかってしまうと他の仮想マシンに影響してしまう
1LUN上に多く仮想マシンを配置させた結果、排他制御を多く発生させる仮想マシンがあることにより、同じLUN上にある他の仮想マシンのパフォーマンスを劣化させてしまう可能性がでてきます。そのため管理者は、なるべくこの排他制御の影響が出ないよう多くLUNを作成して仮想マシンの配置を細かく分けたり(=管理の煩雑さ増)、必要最低限のみ仮想マシンを配置(=余剰リソース増)させてしまう手法をとってしまいます。ストレージとしては、まだまだ余裕があるにも関わらず、少しもったいない使い方ともいえます。ここでvSphereで持っているStorage APIs for Array Integration(以下VAAI)を使用し、vSphereとストレージが連携することによって、排他制御の単位をLUN全体ではなく、より粒度の小さい単位でロックすることができます。これにより排他制御処理が発生した瞬間もLUN全体がロックされませんので、多くの仮想マシンを1LUN上に配置しても、排他制御による他の仮想マシンへの影響を少なくすることができます。図3(LUNも必要以上に細かく分ける必要性も減ってきますね)

図2-3 VAAIon
 

図3 VAAIを使用した排他制御 他のホストへの影響は最低限に
■ストレージにお願いできることはストレージへお願いする
もう1つ、VAAIの機能でストレージの能力を引き出す機能を紹介します。仮想化基盤を運用、管理するためには、仮想マシンのIO 以外にストレージに対する様々なIOが発生します。具体的には、テンプレートから仮想マシンを展開したり、前回ご紹介したStorage vMotion があげられます。ストレージから見れば、ファイル(ブロック)を“コピー”したり“移動”するような操作です。そのような操作は通常、図4の左のように複製元のストレージからデータをESXiで読み込んだ後、複製先のストレージにデータを書き込むことになります。もちろんこの動作はESXi自身が実施しているので、ESXi側リソース(CPUやメモリ)、ESXiとストレージ間の帯域を多く消費してしまいます。そこでvSphereではこの動作をストレージと連携してストレージ側にお願い、実施してもらうこともVAAIを通じて可能になります。

図2-4
図4 VAAIを使うとストレージ内でコピーが実施される
ESXi側(ハイパーバイザー)で処理している内容をストレージにお願いすることによって、ESXi側の負荷が減り、その分他の仮想マシンへリソース供給できたりします。またコピー中もVAAIを使用すればESXi~ストレージ間の帯域をほとんど使用しないので、他の仮想マシンへの影響も抑えられます。実際にその効果を見てみましょう。図5は、VAAIの有無によるStorage vMotionの結果になります。

図2-5
図5 VAAIの有無におけるStorage vMotion中の帯域
この結果を見ていただくとわかるように、VAAIを使用することで、データの複製がストレージ内で実施されることになるため、ストレージネットワークには、ほとんどデータが流れていないことがわかります。(青い線)また、ストレージ側のCPU使用率も下がり(赤い線)、Storage vMotion に要する時間も短くなっていることがわかります。VAAIはあまり機能として目に見えない「地味な存在」ですが、vSphereとストレージの連携がより密になり、ストレージにお願いできることはストレージにお願いし、仮想基盤全体としてよりリソースの効率性を上げることが可能になります。
上でご紹介した機能は、Enterprise エディションで提供されているStorage APIs for Array Integrationという機能の一部です。(Storage APIs for Array Integrationを通して他に実現できる機能はありますが、詳細はホワイトペーパ をごらんください)
※VAAIを使用するには、事前にVMwareの互換性リストでストレージがVAAIに対応しているか確認します。現状、主要ストレージベンダーから出荷されているストレージ製品であれば、ほぼこの機能に対応しておりますが、Firmwareのバージョンによって差異ありますので、事前にご確認ください。

■サーバ~ストレージ間のパスを整える
最後にESXi~ストレージ間のパスについてご紹介します。
仮想マシンが増えていくことにより、ESXi~ストレージを結ぶ”パス”をより有効に、安全に使用する必要もあります。vSphereでは標準でマルチパス機能を提供しております。もちろん経路障害によるフェイルオーバー動作であったり、IOの振り分け機能も提供しておりますが、Enterpriseエディションにある“”MultiPath”があることにより、ストレージベンダが提供するマルチパスソフトを使用することが可能になります。提供されているマルチパスソフトにより特徴があり、例えばより高度なIOロードバランシングによる帯域の有効活用が可能になったり、経路上の健全性を常に把握し、プロアクティブに障害検知を実施し影響を最小限に抑える等、ESXi~ストレージ間のパスをより整えることが可能になります。また複数のストレージにデータが分散している際、マルチパスソフト側でどのストレージにどのデータがあるのか把握できるので、目的のデータへ一発でアクセスでき余分なIOを発生させない、という特徴をもったマルチパスソフトもあります。ストレージベンダーが提供するより高度なマルチパスを使用することにより、見逃してしまいがちなリソースである「パス」をより有効に活用していただけることも可能になります。

図2-6
図6 パスの凸凹を整える
■まとめ
今回は主にvSphere Enterprise エディションで提供している機能をご紹介させていただきました。最近のストレージにおいては、ご紹介したVAAIに対応しているストレージが多くなってきております。是非このvSphereとストレージの連携に注目していただき、高機能なストレージの能力をより引き出していただき、仮想基盤を有効に使っていただければ幸いです。次回「押さえておきたvSphereの基本~ストレージ編~」では仮想基盤におけるストレージ環境の優先度の定義付けと自動化、をテーマにお送りします。お楽しみに!!

VMware青山健二/中村朝之

「押さえておきたいvSphereの基本」
~ストレージ編~
1.マニュアル操作でストレージ環境を最適化
2.ストレージと連携してパフォーマンスを最大化
3.優先度の定義付けと自動化

~ネットワーク編~
1.ホスト単位でネットワークを構築する 〜標準スイッチ編〜
2.スケーラブルで高機能なネットワークを構築する 〜分散スイッチ編〜
3.仮想化環境でL3-L7 サービスを提供する 〜vCloud Networking and Security〜

~可用性編~
・物理リソースの有効活用と仮想マシンの最適配置~DRSとリソースプール編~
・システム障害に備える仕組み~vSphere HAとFT編~