ネットワンシステムズ 宮下 徹、奈良 昌紀

 サーバー仮想化ソフトは、ネットワークの観点から見ると、仮想マシン、仮想NIC、仮想スイッチの三つのコンポーネントに分けられる。ネットワーク設計に当たっては、これらと、物理NIC、物理スイッチを合わせてトポロジーや冗長構成を考える必要がある。

 仮想化環境というテーマからすると意外かもしれないが、このうち仮想ネットワークの設計で最も重要なのは物理NICである。今回は、冗長化を中心とした、仮想化環境のネットワーク設計について解説する。

設計の肝はNICの「チーミング」

 ネットワーク設計で重要なのは、可用性と十分な帯域、柔軟性を確保すること。このうち可用性と帯域の確保に役立つのが、複数の物理NICのチーミング*1である。チーミングは複数のNICを一つのNICとして扱えるようにする技術。複数の物理NICへのネットワーク・トラフィックの分散や、物理NICのフェールオーバーが可能になり、仮想マシンのネットワーク性能と可用性を同時に高められる。

 例えば20~30台の仮想マシンを1台の物理サーバーに集約した場合を想像してほしい。このとき、すべての仮想マシンのトラフィックが一つの1Gビット/ 秒の物理NICポートに集中すると、ここが性能のボトルネックになる可能性がある。物理サーバーでNICチーミングを設定して物理NICのポート数を増やせば、仮想マシンのネットワーク・トラフィックを分散(ロードバランス)させ、より大きな帯域を利用することが可能になる。物理NICに障害が発生した場合も、チーミングした他のNICにフェールオーバーすることで、仮想マシンの通信路を確保できる。

 ハイパーバイザによって提供される仮想マシンや仮想スイッチ、仮想NICはすべてソフトウエアで作り出されているため、物理的な障害が発生することはない。これらは単一障害ポイントにはならないわけだ。

 このため、物理NICや物理スイッチを冗長化しておけば、これらの物理コンポーネントを介して通信するすべての仮想マシンのネットワークが冗長化される(図1)。仮想化環境の方が物理環境よりも可用性が高まると言われるのは、こうした理由からだ。

図1●仮想化環境での冗長化は物理NICの冗長化により実現する
[画像のクリックで拡大表示]

 例えば2枚の物理NICをチーミングするとしよう。この環境で一方のNICに障害が発生した場合、もう一方のNICが通信処理を自動的に引き継ぐ。障害が発生した物理NICを自動的に避け、問題がない方の物理NICで通信を続けられる。

障害検知は「リンク状態のみ」で

 NICチーミングした場合の障害検知方法や、ロードバランスの方法などについて、VMware ESXでは様々なポリシーを設定できる(表1)。

表1●VMware ESXのNICチーミング機能
表1●VMware ESXのNICチーミング機能

 可用性を高めるための障害検知方法に関しては、「リンク状態のみ」または「ビーコンの検知」のどちらかを設定できる。このうち「リンク状態のみ」は、物理 NICのリンク・ステータスだけを使う設定である。接続ポートがリンクダウン状態になった場合に、障害を認識する。ただ、リンクアップ状態であるにもかかわらず通信できないような障害は検出できない。例えば物理スイッチ・ポートがスパニング・ツリー・プロトコル*2(STP)によってブロックされた場合や、スイッチのバーチャルLAN*3(VLAN)設定の間違いによる構成エラーがある場合である。

 これに対して「ビーコンの検知」は、チーム内(チーミングした物理NICのグループ)のすべてのNICに対してビーコンの送受信を行い、この情報とリンク・ステータスを使ってネットワークの疎通を確認する手法である。この方法では、上記のリンク状態のチェックだけでは検知できない障害の多くを検知できる。ただし当社の検証環境では、ビーコン検知により期待した動作をしなかったケースが見られた。現時点では、ビーコン検知機能の利用は推奨しない。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら