クラウド構築のベースとなるVMware vSphere 5を試す【ネットワーク編】


 vSphere 4から、ホスト間をまたぐ「分散仮想スイッチ(vNetwork Distributed Switch:vDS)」という仮想スイッチが採用され、仮想スイッチは従来型の仮想スイッチ(vNetwork Standard Switch:vSS)とvDSの2つがサポートされた。vSphere 5では、このうちvDSの機能をさらに強化している。

 今回は、vSphere 5環境においてのネットワーク機能を紹介していく。


vSphere 5をベースとするVMwareの製品群(VMwareのWebサイトより)vSphere 5の機能コンポーネント(VMwareのWebサイトより)

仮想ネットワークの基本となる仮想スイッチ、仮想NIC

 vDSの機能を紹介する前に、vSphereが採用しているvSSに関して、まずは説明していこう。

 多くのハイパーバイザーでは、ハードウェアを仮想化するということで、CPUやメモリなど多くのハードウェアが抽象化されている。ネットワークにおいても、仮想マシンに接続するソフトウェアで作られた仮想NICが用意されている。

 仮想NICには、それぞれにIPアドレスやMACアドレスが付与され、物理NICとほぼ同じ機能が実現されている。この仮想NICは、仮想ネットワークを構築する仮想スイッチに接続される。

 仮想ネットワークは、どこかで物理NICと接続して、物理的なネットワークと通信する必要がある。このため、vSphereでは仮想スイッチに物理NICをソフトウェア的に接続している。

 vSphereにおいて、物理NICにはIPアドレスは付与されない。また、物理NICが持つMACアドレスも使用されない。つまりvSphereにおいては、物理NICは、仮想スイッチに接続されているケーブルとたとえることが可能だ。

 物理NICは、常にプロミスキャストモードで動作し、仮想スイッチに接続されている仮想NICに、受信したイーサネットフレームをそのまま届ける。仮想NICから送信されたイーサネットフレームも、仮想スイッチを経由して、物理NICから物理ネットワークに送り出される。

 つまり、物理NICは、仮想スイッチに接続されている複数の仮想NICのイーサネットフレームをそのまま送受信することになる。

 このような仮想ネットワークを構築するためのインフラとなる仮想スイッチが、vSSになる。

 vSSは、ホストごとに仮想スイッチを作成していた。このため、ホストの台数が増えてくると、ホストごとに分かれている仮想スイッチの管理が面倒になってきた。さらに、ホスト間で仮想マシンが移動するVMotionが頻繁に行われる場合、ホストごとに作成されている仮想ネットワークを正しく構築しておかないと、一貫性に問題が出て、システム全体にトラブルが波及することになる。


vSSは、各ホスト上に仮想スイッチを作成する。このため、仮想ネットワークはホストごとにできる(vForum09の資料より)

複数のホスト間をまたぐ仮想スイッチ「vDS」

 そこで、複数のホスト間をまたぐ仮想スイッチが必要になった。これが、vDS(分散仮想スイッチ)だ。

 vDSは、複数のホストにある仮想スイッチを1つに集約し、vDSに各ホストの物理NICや仮想NICを接続しての一括管理が可能になった。

 例えば、仮想マシンが通信するvDSを作成し、すべての仮想マシンがその仮想ネットワークに接続するように設定したり、各仮想マシンがVMotionする時に使用するだけのvDSを構築したりすることができる。これにより、目的に合わせた仮想ネットワークが構築できる。

 さらに、vDSでは、複数のホスト上にある仮想スイッチを一元化しているため、VMotionなどで別のホストに移動しても、仮想ネットワーク上では、全く同じ分散仮想スイッチに接続されることになる。このため、仮想ネットワークからみれば、仮想マシンが別のホストに移動しても、以前の環境と全く変わらないことになる。

 vSSでVMotionを行う場合は、ポートグループ名、トラフィックシェーピング、セキュリティ設定、VLANの設定など、仮想スイッチのさまざまな設定を管理者がVMotionする各ホスト上で設定の一貫性を管理する必要があった。

 ただ、クラウド化により、ホスト数が増えてくると、あまりにも設定が煩雑になり、一貫性を持った管理が難しくなった。

 vDSは、vSSでの仮想ネットワーク管理の面倒さをなくしてくれた。vDSで設定さえ行えば、各ホストで仮想ネットワークの設定を繰り返す必要がなくなった。クラウドにおいて、仮想ネットワークがシンプルに管理できることは大きなメリットがある。


vDSは、複数のホストでバラバラに作成されていた仮想スイッチをデータセンター単位で1つにまとめる。これにより、VMotionなどの設定も一元的に管理できる(VMwareのWebサイトより)vDSは、複数のホストにまたがる仮想的なスイッチを構成する(VMwareのドキュメントより)
vDSの設定画面(vForum09の資料より)vDSのアーキテクチャ。個々のホスト上に隠れた仮想スイッチがある。これをvDSが束ねている

サードパーティの仮想スイッチをサポート

 vDSには、サードパーティの仮想スイッチを追加できる機能が提供されている。実際、Ciscoの物理スイッチをソフトウェア化したNexus 1000Vという仮想スイッチが提供されている。

 Nexus 1000Vでは、Ciscoのスイッチの機能をソフトウェア化している。このため、ネットワーク管理者にとっては、仮想ネットワークを管理するために新しいVMwareの分散仮想スイッチの使い方を覚えるのではなく、使い慣れたCiscoのスイッチを利用するのと同じ使い勝手で仮想ネットワークを管理することが可能になった。また、物理スイッチとしてCiscoの製品が採用されていれば、物理スイッチと同じ管理が行えるため分かりやすい。


VMwareのvSS、vDS、Nexus1000Vの比較表(vForum09の資料より)

 vDSやサードパーティ製の分散仮想スイッチを利用するためには、すべてのホストで、vSphere 4以降のEnterprise Plusエディション以上のライセンスが必要(vCenter Serverは必須)。


vDSでは、プライベートVLANがサポートされている(vForum09の資料より)vDSでは、トラフィックシェーピングがサポートされている(vForum09の資料より)

vSphere 5で追加されたネットワーク関連の機能

 vSphere 4で分散仮想スイッチ(vDS)という新しいコンセプトを導入したため、vSphere 5では、それほどドラスチックな機能アップは行われていないが、いくつか機能が追加されている。

 vSphere 5のvDSでは、Link Layer Discovery Protocol(LLDP)がサポートされた。この機能を使えば、特定のポートが、どの物理スイッチの何番ポートに接続されているのかといった情報が簡単に把握することが可能になっている(物理スイッチでもLLDPがサポートされている必要がある)。

 また、ネットワークトラフィックのモニタリングを行うNetFlow機能をサポートした。この機能では、分散仮想スイッチからネットワークトラフィックなどに関する情報をNetFlowコレクタに送信している。

 ただし、vSphere 5では、NetFlowコレクタやアナライザーにデータを送信するインフラが整備されただけで、vSphere 5にNetFlowコレクタやアナライザーが用意されているわけではない。実際に利用するには、サードパーティの製品が必要となる。


NetFlowを使えば、分散仮想スイッチからトラフィックデータをNetShowコレクタに収集できる(VMwareのドキュメントより)

 ネットワークのトラブル解消のために、ネットワークからパケットをキャプチャして、分析するツールだ。仮想ネットワークでも、同じことができるように、仮想ポートの入力/出力を別に仮想ポートにミラーリングする機能が、ポートミラーリングだ。

 ポートミラーリングを使えば、仮想スイッチの仮想ポートでもパケットキャプチャが行える。


ポートミラーリングでは、特定のポートのデータを別のポートにも転送する。これによりパケットかキャプチャが可能になる(VMwareのドキュメントより)

 また、ネットワーク関連の機能拡張としては、仮想マシン単位で、仮想ネットワークを使用する優先度がつけられるようになった。例えば、トランザクション処理が中心の仮想マシンの優先度をアップし、ファイルサーバーなどの仮想マシンは優先度を下げるといった設定が可能になった。


仮想ネットワークごとに、物理ネットワークの占有率を設定することが可能(VMwareのドキュメントより)

 昨年8月末に米国・サンフランシスコで開催されたVMwareの年次イベント「VMworld 2011」で、ネットワーク仮想化に関する新たな構想として、「VXLAN」が提案された。VXLANは、レイヤ2の下で仮想マシンのマイグレーションを実現する。この機能を使えば、ネットワークの物理的なロケーションも、仮想化することが可能になる。

 VXLANに関しては、VMwareやCisco、Intelなど規格を最初に提唱した。さらに、VXLAN規格は、IEFT(インターネットで使われる規格を標準化している団体)に提案されている。このドラフトには、Citrix、Red Hat、Broadcom、Aristaなども提案者として明記されている。

分散仮想スイッチの設定

 さて、ここからは実際の設定を画面で紹介していこう。


分散仮想スイッチの設定は、vCenter Serverのインベントリ→ネットワークから行う分散仮想スイッチは、物理NICのUplinkと仮想マシンが利用するPortに分かれている。また、Portは仮想マシンごとにグループ化することも可能分散仮想スイッチの作成は、データセンターを選択して、新しいvSphere Distributed Switchを選択
分散仮想スイッチは、vSphere4からサポートされているため、vSphere4、vSphere4.1、vSphere 5の3つのバージョンが用意されている。このため、データセンターを構成しているホストが使用しているESX/ESXiのバージョンが最も古いモノに合わせることになる。このため、できるだけホストのハイパーバイザーのバージョンは、最新版でそろえる方がベストだvDSの名前とUplinkポートの数を設定。Uplinkのポートは、各ホストに接続されている物理NICが表示されるここでは、1台のホストしかないため、1台しか表示されていない。普通は、複数のホストが表示される。vDSに登録する物理NICを指定
ネットワークに作成したvDSが表示されている作成したvDSの設定画面ネットワークアダプタには、Uplinkに設定した物理NICが表示されている
vDSでは、プライベートVLANに設定が行える。これにより、仮想マシンごとにネットワークを隔離することが可能vSphere 5で追加されたNetFlow機能。コレクタのIPアドレスなどを設定することで、ネットワークトラフィックのデータが送信される。vSphere 5では、NetFlow v5がサポートされている。NetFlowコレクタは、vSphere 5には用意されていないため、サードパーティの製品が必要になるポートミラーリングを使えば、パケットのキャプチャが仮想スイッチでも行える
Uplinkの設定。セキュリティ、トラフィックシェーピング、VLAN、チーミング/フェイルオーバー、リソース割り当て、監視、その他などが設定できるvDSのポート側の設定。設定項目は、Uplink側と同じ作成したvDSの構成
すでに作成されている仮想アダプタをvDSに移行することもできる。この場合、正しく設定されていないと、ホストとの接続が切れてしまう移行する仮想アダプタを指定し、移行先のポートグループを選択する作成したvDSのポートグループの詳細
vDSのUplink側の詳細vDSのプロパティを表示すると、検出プロトコルにLLDPとCDPのどちらを使用するのか設定可能ポートミラーリングの設定。名前を入力し、ポートミラーリングの入出力、カプセル化VLAN、ミラーパケット長などの設定を行う
どのポートをミラーリングするかを設定(ソース)

 vSphereのvDSは、抽象化が進んでいなかったネットワークに本格的な仮想化を持ち込んだ。vSphere 4においては、革新的といってもいい機能だ。現状では、ネットワークレイヤを本格的に仮想化しているのは、VMwareとCitrixだけだ。CitrixのXenServer 5.6 FP1から、OpenFlowベースのOpen vSwitchがサポートされている。

 ただ、今年リリースが計画されているマイクロソフトのWindows Server 8(開発コード名)では、マルチテナントを意識した本格的な仮想ネットワーク機能がサポートされる。昨年開催された開発者イベントでは、サードパーティがWindows Server 8の仮想スイッチを提供できるようになっている。実際、開発者イベントでCiscoがNexus1000Vの提供を発表したり、NECがOpenFlowの提供をアナウンスしたりしている。

 数年前から仮想ネットワーク機能を提供しているvSphereは、他社よりも一歩進んでいるといえる。しかし、マイクロソフトやシトリックスの動きを見れば、VMwareだけの機能とはいえなくなってきている。

 今後の、各社の展開を注目して見守りたい。

関連情報