ストレージネットワークのための仮想I/O

著者:George Crump
Storage Magazine 2012年3月号より


仮想サーバー環境はストレージネットワーク上のI/Oを急激に増やし、パフォーマンスは地を這うような速度まで落ちてしまう。ネットワークリソースを仮想化することは、サービスの競合を減らし著しいパフォーマンスの改善につながる。

 

ネットワーク(ストレージもIPも)は、全面的に仮想化された未来のデータセンターへと至る過程における次の目標である。仮想化I/Oは、あればいいなという機能をはるかに超えている。サーバーやデスクトップの仮想化によって、ストレージ・システムによせられる新たなI/O要求を満たす、より経済的な基盤を提供することは究めて重要なことである。仮想化I/Oは、ネットワークやストレージ・システムに繋がっているホストに実装することができる。あるいは基盤(インフラストラクチャー) に 配備することもできる。仮想化I/Oが導入されたところでは、仮想化I/Oに対する認識が若干変わってくるかもしれない。我々は両方のアプローチを調査し、これらがどのように違うかを解説し、またこれらがどのように連携するかも説明していく。

 

今日のサーバー/ホストは4、5年前のモデルとはほとんど似ても似つかない。単体のサーバーが、単体のアプリケーションおよび、そのアプリケーションに貢献する全てのI/O機能をサポートしていた。仮想化されたデータセンターでは、ホストシステムの中のネットワークインターフェースカード(NIC)とストレージ・ホストバスアダプター(HBA)は、今では複数の仮想マシン(VM)間で共有されている。従来のサーバーアーキテクチャーでは、これらふたつのI/Oアダプター(NICとHBA)の種類はそれぞれ別になっていた。今日、iSCSI、NAS、FCoEの登場によって、これらは集約されはじめており、理論的には ホスト内の一枚の物理アダプターカードで全てを動かすことができるようになっている。

 

 

I/Oミキサーの時代

 

仮想化と集約によって、各VMはいまやI/Oリソースを巡って競合しなければならず、アダプターが複数の種類のネットワークやストレージI/Oトラフィックをさばかなければならない状況を作り出している。10Gbps Ethernet,10Gbps FCoE、8Gbpsや16Gbps FCのような先進的なネットワークは、これらの全ての仮想マシンからホストによせられる要求を満たすだけの豊富な帯域を提供している。ここで問題になるのは、適正なVMが適正な量の可用帯域を適正なタイミングで獲得することを、どうやって保証するかということだ。

 

このVM/適正量/適正タイミングのプロセスは、サーバー仮想化が第3フェーズに到達することによって、ますます重要になってきた。第3フェーズは要求が多く、ミッション・クリティカルなアプリケーションの仮想化だ。仮想化の第1フェーズは、一般的にテスト用や開発用のサーバーで展開された。第2フェーズは、プライオリティが低く、要求の低いサーバーだった。これらのフェーズでは、単純な割り込み方式でVM間のI/Oを公平に配布するやり方が受け入れられていた。

 

ミッション・クリティカルでパフォーマンス要求の高いアプリケーションが仮想化されるにつれて、VM間で平等に扱われ、単純に共有されているI/Oはそれではすまなくなった。あるVMは、高いレベルのサービスを保証する必要があり、割り込みはそれを邪魔するかのように、CPUの使用率に影響を与える。予測能力が本番アプリケーションの仮想化環境への移行を成功させる鍵になっている。

 

ミッション・クリティカルな作業負荷にたいするI/Oを予測する必要性に対応するひとつの方法は、VMごとに一枚のNICまたはHBAをインストールし、ミッション・クリティカルなVMに各インターフェースカードを割り当てることである。この方法はうまくいくだろうが、費用面において効果的ではなく、またスペース面からも実際的ではない。結果的には、各ホスト上で稼働するVMの数を制限することになるだろう。もうひとつの方法は、大量に可用なストレージとネットワーク帯域を過剰配備し 、ホストに、それがサポートしているさまざまなVMの全てのパフォーマンス要求を処理するだけの十分すぎるほどのI/Oを持たせることである。しかし、ほとんどの仮想マシンは、常時フルのI/Oパフォーマンスを必要としているわけではないため、この方法は費用面において効果的でなく、効率もよくない。さらに、ハイパーバイザが可用帯域を共有する時に利用する"ラウンドロビン"キューイング方式である割り込み方式 には効率性の損失がある。

 

 

ネットワークアダプター上の仮想I/O

 

ネットワークアダプターレベルにおけるI/Oの仮想化は、Brocade Communications Systems Inc.、Emulex Corp.、Qlogic Corp.などの会社から提供されている。この技術は、大量の仮想マシン間に配備され共有される高速アダプターの数を減らすことができ、しかもミッション・クリティカルなVMのアプリに適正なサービスを保証する。例えば、仮想I/O対応の10GigEネットワークアダプターは、複数の仮想アダプターに分けることも、あらかじめ決められたVMのグループ毎に一定のパーセンテージで帯域を割り当てる機能も持っている。

 

このシナリオにおいて、一枚の10GigE仮想カードは、10枚の1GigE仮想カードに分割することもできる。これらの仮想カードの一枚が、仮想マシンのマイグレーション活動に割り当てられ、何枚かのカードは保証されたパフォーマンスレベルが必要な特定のVMに割り当てられ、残りのカードは残りの全ての仮想マシン間で結合されたプールとして共有されることも可能だ。

 

これら全てのことがハードウェアにおいて行われるため、仮想化ハイパーバイザの負荷は大幅に軽減し、これによってCPUリソースはホストに返される。換言すれば、CPUコアは、I/Oシェアリングを管理するために割り込まれる必要がなくなる。仮想I/OそのものがVMのより高い密集度を可能にするばかりでなく、その密集度をサポートするためのCPUパワーを戻してもくれるのだ。

 

これらの仮想I/Oカードにあらわれているもうひとつの特徴は、カード上に仮想スイッチを作成する機能である。これは特に、仮想化サーバー環境において貴重な機能であり、サーバーから出るネットワークトラフィックを大幅に減らすことができる。この機能によって、同一ホスト上のふたつのVMが直接相互に通信できるようになる(これは、非常によく発生する要求である)。全てのトラフィックが物理スイッチに行くのと違い、仮想スイッチは物理ホスト内のローカルトラフィックを外のネットワークから隔離する。これもまた、仮想マシン内部のパフォーマンスの向上に貢献し、全体のネットワーク効率改善に繋がっている。

 

 

 

 

最後になるが、I/O仮想化を提供することができるネットワークアダプターは、使用されている種類のストレージ・プロトコルを仮想化する機能を持っている。例えば、これらのカードのいくつかはFC、FCoE、10Gbps Ethernet、iSCSIをサポートしている。仮想I/Oアダプターは、サーバーまたは仮想マシンに割り込むことなくポートの種類を動的に再構成する機能を持っている。現在、いくつかのアダプターはリブートを必要としているが、この部分はいずれ修正される予定である。

 

 

基盤レベルの仮想I/O

 

I/Oの仮想化が可能なもうひとつの領域が、基盤そのものである。基盤の仮想化は、仮想化ネットワークとの連携によっても,基盤だけでも動作することが可能だ。基盤におけるI/O仮想化には、ふたつの種類がある。ひとつはスイッチ基盤の仮想化である。これは基本的には、アダプター上の仮想化の拡張版である。もうひとつは、広範なI/O仮想化を提供するゲートウェイ型のデバイスで、中身はプライベートI/Oファブリックであり、一般的にはI/Oゲートウェイと呼ばれているものだ。

 

 

スイッチ上の仮想I/O

 

仮想I/Oネットワークアダプター付きのホストの中で、ネットワーク帯域を制御し、割り当てを行えることは、確かに大きな価値を持っているが、この最適化の大半は、もしスイッチ基盤がそれをどのように管理するかを知らなければ、失われてしまう。BrocadeやCisco Systemsのような会社は、仮想I/Oをサポートし、特定のVMがネットワーク全体に対して 一定レベルのパフォーマンスを保証することを可能にするスイッチを提供している。スイッチのレイヤーでは仮想マシンを特定することが可能であり、パフォーマンス特性を含む特定のポリシー設定を与えることも可能である。通常これらは、低、中、高のクオリティー・オブ・サービス、あるいは全可用帯域のパーセンテージである。

 

しかし仮想I/Oポリシーの管理はパフォーマンスにとどまらない。セキュリティーや他の設定も物理ポートごとでなくVMごとに構成を組むことができる。VMがあるホストから別のホストに移行されるときに、ネットワークの設定もそれとともに付いて行くため、仮想化サーバー環境においてこの機能は理想的である。

 

非常に興味深いのは、いくつかのベンダーが、スイッチとNIC間の通信を可能にする仮想I/Oソリューションを提供すべく動いていることだ。これにより、カードレベルで設定されたポリシーが、ホストとスイッチの間の基盤全体に流れることになる。この通信なしでは、可用ネットワークI/O帯域の25%を受け取るように設定されたホストが、移行先のホストに移された時に、このアクセス・プライオリティーを失ってしまうかもしれない。スイッチ・レイヤーにおける仮想I/Oは、これらの種類のコンフィグレーション設定を可能にし、VMがサーバー仮想化環境の中であちこちに移動されても、設定はVMについていくようになっている。

 

最後に、自分自身をも仮想化できるスイッチを紹介しよう。このシナリオでは、ネットワークにインストールされた複数の独立したスイッチが、ひとつの大きなスイッチのように見える。これによってコンフィグレーションとポリシーの管理がずっと簡単になる。なぜならば、独立したスイッチひとつひとつにログインして管理する必要がなくなるからだ。

 

 

 

 

スイッチを横断する仮想化はまた、グループの中の一台のスイッチが故障した際に、それをカバーする大きな可用性を提供してくれる。

 

 

仮想I/Oゲートウェイ

 

I/Oゲートウェイは、Virtensys(VirtensysはMicron Technology Inc.に買収される予定)やXsigo Systemsによって提供されている。ストレージやネットワーク・インターフェース・カードがインストールされ、ネットワークに対して共有のリソースとして見えるスイッチのようなアプライアンスと考えれば良いだろう。データセンターが、I/Oゲートウェイをこの様な形で使っているとき、データセンターは実際上、サーバー通信用にプライベートファブリック を導入しているのだ。 ある面では、仮想I/Oゲートウェイは、PCI Express(PCIe)型の接続が、サーバーからI/Oゲートウェイまで延長された(ただし、このバスはホスト間で共有が可能である)拡張型バスアーキテクチャーの一種だとも言える。

 

カードはI/Oゲートウェイが接続されたサーバーにインストールされる。それはPCIe拡張カードであるかもしれないし、インフィニバンドアダプターであるかもしれないし、10Gbps Ethernet アダプターであるかもしれない。目的は、比較的低コストながら、高パフォーマンスなものをインストールすることだ。なぜならばそれが、PCIバスを増強してくれるから。

 

仮想I/Oゲートウェイと、ネットワークアダプター上の仮想I/Oの重要な違いは、仮想I/Oゲートウェイが、複数のサーバー間で一枚のインターフェースカードを共有することができることだ。この機能は、接続性とリソースの最適化に大変有利である。

 

I/Oゲートウェイに入るカードは、ベンダー独自仕様のカードか市販のPCIカードになるが、このあたりはベンダーによってまちまちだ。一般的に、ベンダー独自仕様のカードには、優れたマルチホストの共有機能が組み込まれている。市販のPCIカードを使用するゲートウェイは、柔軟性においては優れているが、現在のPCIカードに組み込まれている共有機能は、PCIカード自体の限界に足を引っ張られるのが弱点だ。

 

仮想I/Oゲートウェイのもう一つの利点は、将来、アップグレードがあっても対応が容易なところだ。

 

I/Oゲートウェイ・ベンダーにより提供されている、カードまたはドライバー・ソフトウェア が全てのサーバーの共通項になるため、異なるネットワークやストレージ・プロトコル、ストレージ・テクノロジー間の移行する機能は非常に楽になる。

 

例えば、現在のストレージ・システムがファイバーチャネル経由で複数のサーバーに繋がっている場合、新規のiSCSIストレージ・システムはこれらのサーバーのFCインターフェースをEthernet NICに入れ替えるか、さもなければ、Ethernet NICの追加を要求するだろう。(サーバーが前述のI/Oアダプターを使っている場合は例外である。)仮想I/Oゲートウェイ型のネットワーク構成であれば、サーバーにインストールされたI/Oゲートウェイカードはそのままで、共有のためのiSCSIカードをゲートウェイにインストールするだけで良い。これによって、ホスト側の一枚のカードが両方の機能を果たすことになる。サーバーに要求される変更はただ一つ、ソフトウェアの構成変更だけだ。各サーバーでのインターフェースカードの物理的な変更は一切必要ない。この機能は、ネットワークのタイプやプロトコルを移行する際の柔軟性を提供するだけでなく、変更のために要するサーバーのダウンタイム時間の減少ももたらしてくれる。

 

 

仮想I/O選択の戦略

 

どの仮想I/O戦略があなたのデータセンターにとって効果があるかを決めるのは、あなたの直近の必要性と長期の目標に大きく依存する。例えば、もし最も大きな関心事がホスト・レイヤーにおけるストレージとネットワークI/Oの改善にあるのであれば、ベーシックな10GigEのNICを買う替わりに、ネットワーク・インターフェース・レベルのI/O仮想化を提供するカードを購入する方が、効果があるだろう。これによって、10Gbpsの帯域をより有効に使うことが可能になり、特定のミッション・クリティカルな作業負荷に対してサービス・レベルを保証することができるようになる。

 

もし、あなたがネットワーク、あるいは、ストレージ基盤の刷新または拡張を行っている最中であれば、I/O仮想化を理解できるコンポーネントを追加することは、十分検討に値することだ。スイッチ・レイヤー上の仮想I/Oはインクリメンタル・アップグレードよりも優れており、最終形としての仮想I/Oネットワーク・インターフェース・カードが実装されるまでの完璧な補完と考えることができる。

 

仮想I/Oゲートウェイ、すなわち プライベートI/Oファブリックは、既存の基盤の刷新、パフォーマンスの改善、柔軟性の増大、を求めている企業にとっては真剣に検討する価値のあるものである。これらの製品は常に変化するI/O市場に対する「未来の証明」を提供してくれるだろう。

 

どんな道を選択するにせよ、仮想I/Oは非常に大きな柔軟性と、サーバー基盤の要求に対応することが可能な動的な基盤を提供してくれるはずだ。これら3つの方法は、I/Oに対する投資の優れたリターンを提供し、サーバー仮想化プロジェクトのROIを拡張するミッション・クリティカルなアプリケーションに対するパフォーマンスの保証を提供してくれることだろう。

 

 

著者略歴:George Crumpは、ストレージと仮想化を専門とするITアナリスト企業Storage Switzerlandの社長である。

 

Copyright 2000 - 2012, TechTarget. All Rights Reserved,
*この翻訳記事の翻訳著作権はJDSFが所有しています。 このページに掲載されている記事・写真・図表などの無断転載を禁じます。