パートナー NSX vSphere

仮想スイッチのお作法~標準スイッチから分散スイッチへの道~

3回目:仮想スイッチのお作法#3 (vSphere 6. 5の分散スイッチの機能とアーキテクチャ)


– Back Number –
#1…仮想スイッチのお作法#1
#2…仮想スイッチのお作法#2
#3…vSphere 6. 5の分散スイッチの機能とアーキテクチャ#3
#4…分散スイッチの管理①#4
#5…分散スイッチの管理②#5
#6…Network I/O Control#6
日本ヒューレット・パッカード株式会社の中川明美です。
「仮想スイッチのお作法」は、以前所属する会社名で執筆していたものです。
最近こちらのブログのフィードバックをいただくことがあり、サブタイトルにあります「分散スイッチへの道」を継続投稿することにいたしました。
マーケット的には、「VMware NSX」が注目されていますね。NSXは分散スイッチを拡張した機能を持ちます。標準スイッチから分散スイッチ、分散スイッチからNSXへと、順次ステップアップしていくのはNSXを理解する一つの方法ではないかと思います。それは、私自身がNSXの認定コースを受講した際に、「分散スイッチがわかっているとNSXを理解しやすい」と感じたからです。
あらためて分散スイッチを知りたい方、将来的にネットワークも仮想化しようとプランされていらっしゃる方の一助になれば幸いです。
3回目以降は、次の内容で進めます。
#3… vSphere 6.5の分散スイッチの機能とアーキテクチャ
#4…分散スイッチの管理①
#5…分散スイッチの管理②
#6…Network I/O Control

◆vSphere 6.5で提供される分散スイッチの機能

下表は分散スイッチが提供する機能の一部です。
一般的なレイヤー2物理スイッチと同様に、IPアドレスまたはMACアドレスでトラフィックのフィルタリング、CoSタグまたはDSCPタグでトラフィックにマーキングすることもできます。

◆分散スイッチ提供のライセンス

分散スイッチは、次の製品のエディションで提供されます。
vSphere Standardエディション環境であっても、VMware NSX for vSphereを購入すれば分散スイッチを使用することができます。

(参考) VMware NSX for vSphereのエディション
https://kb.vmware.com/s/article/2145269

◆分散スイッチのアーキテクチャ

下図は、分散スイッチのアーキテクチャです。

<アップリンクポートグループ>

分散スイッチを理解するには、「アップリンクポートグループ」から。#2で「dvUplink Ports」と表現したコンポーネントです。
アップリンクポートグループは論理的な物理NICのポートです。分散スイッチを作成する際、1つ以上のアップリンクポート数を指定します。NICチーミング (フェイルオーバーおよびロードバランシング) を設定するなら、2つ以上のアップリンクポート数を指定する必要があります。
上図では3つのアップリンクポートを構成しています。「Uplink1」にはESXiホスト1のvmnic0とESXiホスト2のvmnic0を、「Uplink2」にはESXiホスト1のvmnic1とESXiホスト2のvmnic1を、「Uplink3」にはESXiホスト1のvmnic2とESXiホスト2のvmnic2を割り当てている想定です。
Uplink#が論理的な物理NICのポートであり、標準スイッチでたとえるなら、選択可能な3つの物理NICがあるのと同様です。
下図は分散ポートグループのNICチーミングの設定画面です。標準スイッチでは「有効なアダプタ」と表示されますが、分散ポートグループでは「アクティブアップリンク」と表示されます。

<管理プレーンとデータプレーン>

vSphere の仮想スイッチは、「データプレーン」と「管理(制御)プレーン」の2つのセクションで構成されます。標準スイッチは仮想スイッチ内に「データプレーン」と「管理(制御)プレーン」が含まれますが、分散スイッチは「データプレーン」と「管理(制御)プレーン」が分離されます。
分散スイッチの「管理プレーン」は、vCenter Serverにあり、データセンターレベルでネットワーク構成を一元管理します。「データプレーン」は、分散スイッチに関連付けられる各ホストで管理します。分散スイッチのデータプレーンセクションをホストプロキシスイッチ (または隠された仮想スイッチ) と呼びます。
vCenter Server (管理プレーン) で作成するネットワーク構成は、すべてのホストプロキシスイッチ (データプレーン) に自動的にプッシュダウンされます。そのため、vCenter Serverが停止したとしても、I/Oは停止しません。vCenter Serverの障害がネットワークトラフィックに影響されることはありません。ただしvCenter Serverが開始されるまで、新たなネットワーク構成を行うことはできません。

<参考>

参考までにNSXのコンポーネントをご紹介します。
この図では、NSXのコンポーネントを4つの役割および目的で分類しています。
NSXには論理ネットワークの管理のためにデータプレーンと分離する、「NSX Controller」や「NSX論理ルータコントロール仮想マシン」の制御プレーンがあります。
データプレーンには、分散スイッチを拡張したNSX vSwitch (L3スイッチ) があります。ESXiホストにVIBパッケージをインストールし、L2スイッチの分散スイッチをL3スイッチのNSX vSwitchに拡張します。
※NSXと分散スイッチ
ドキュメントに、「分散スイッチの計画と準備を行ってから、NSXをインストールすることがベストプラクティス」とあります。NSXへの移行を検討されている方は、次のドキュメントを参照ください。
https://docs.vmware.com/jp/VMware-NSX-for-vSphere/6.4/com.vmware.nsx.install.doc/GUID-9B22794A-AC90-418D-BAA7-199D9559CF29.html

◆分散スイッチのデータフロー

下図を例に、分散スイッチのデータフローを確認します。

たとえば、仮想マシンネットワークの分散ポートグループには4台の仮想マシン用の仮想NICのポートが割り当てられ (4個の分散ポートを使用)、VMkernelネットワークの分散ポート グループにはESXiホスト2台のvMotion用の仮想NICのポートが割り当てられた(2個の分散ポートを使用)とします。
また、仮想マシン用ネットワークは、Uplink1とUplink2を使用し、ロードバランシング設定にします。vMotion用ネットワークはUplink3を使用します。各ESXiホストのネットワーク接続を提供するために、vmnic0をUplink1へ、vmnic1をUplink2へ、vmnic2をUplink3へマッピングします。
分散スイッチは次の処理を行います。

  • 分散ポートグループの作成順に、仮想マシンおよびVMkernelにポートを割り当て、0 ~ 5のIDを使用して、ポート番号を割り当てる
  • ESXiホスト1とESXiホスト2を分散スイッチに関連付ける
  • ESXiホストの作成順に、ESXiホストの各物理NICにポート (アップリンクポート) を割り当て、上記の続きとなる6から始まるIDを使用して、ポート番号を割り当てる
  • Uplink1とUplink2は仮想マシンネットワークのポートグループのトラフィックを処理し、Uplink3はVMkernelネットワークのポートグループのトラフィックを処理する

◆ホストプロキシスイッチのパケットフロー

ESXiホスト側では、仮想マシンおよびVMkernelからのパケットを特定のポートから物理ネットワークへ送信します。

ホストプロキシスイッチは次の処理を行います。

  • ESXiホスト1上の仮想マシン1から送信されるパケットは、仮想マシンネットワークの分散ポートグループのポート0へ送信
  • 分散スイッチのUplink1とUplink2は、仮想ネットワークのポートグループのトラフィックを処理するために、パケットをホストプロキシスイッチのアップリンクポート6またはアップリンクポート7へ送信
  • パケットがアップリンクポート6を通過する場合はvmnic0へ、パケットがアップリンクポート7を通過する場合はvmnic1へ送信

 

◆まとめ

今回は、分散スイッチのアーキテクチャについてご紹介しました。
分散スイッチでは、「管理」と「データ」のセクションが明示的に分離されているため、ネットワークポリシーの構成や設定をvCenter Server側で一元管理します。一方、データの管理は各ESXiホストが行います。ホストプロキシスイッチにフォーカスすると、標準スイッチと同様ですね。

分散スイッチの各ポートがホストプロキシスイッチ (隠された仮想スイッチ) のポートにマッピングされていることを知ると、vCenter Serverが停止しても、プッシュダウンされたポリシーによって、I/Oに影響がないことを理解いただけたのではないかと思います。
分散スイッチと標準スイッチの異なる点の1つにポートID (番号) があげられます。標準スイッチではポートは割り当てられますが、IDは付与されません。仮想マシンの仮想NICを仮想スイッチポートに割り当てるタイミングと方法を設定するポートバインドについては次回取り上げます。
参考としてNSXのコンポーネントについてもご紹介しました。NSXは分散スイッチを拡張したものと理解すると、難しい製品なのでは?と思うハードルが下がりますね。このブログから分散スイッチを知り、さらにNSXへの興味を高めていただけたら嬉しく思います。