ネットワーク NSX

新卒 SE 社員が贈る NSX のキソ︕第 3 回〜NSX Manager・NSX Controller・ハイパーバイザー カーネル モジュールについて〜

こんにちは! VMware 新卒 4 期生 SE の甫木佑美佳です。第 3 回の「新卒 SE 社員が贈る NSX  のキソ!」では、私たちが NSX Data Center を勉強した時に少々理解にてこずり、でもここが分かると NSX Data Center のアーキテクチャへの理解が深まる気がする…そんなコンポーネントである NSX Manager、NSX Controller、ハイパーバイザー カーネル モジュールをご紹介していきます。

1. NSX Manager・NSX Controller・ハイパーバイザー カーネル モジュール

図 1 サンプル構成図 NSX Data Center 導入前

前回は、NSX Data Center を構成する主要なコンポーネントやサンプル構成についてお話してきました。NSX Edge や分散論理ルータコントロール仮想マシンは、ネットワークに触れたことのある方ならエッジ、ルータといった単語からなんとなく環境の境界にあるんだろう、ルーティングに関連するんだろうと想像できると思いますが、NSX Manager、NSX Controller、ハイパーバイザー カーネル モジュールはなかなかイメージがつきにくいですよね。Manager と Controller って似てそうだけどどう違うの?、モジュールって一体何?、今回はそういった疑問にお応えすべくこれらの 3 つのコンポーネントを解説していきます。

図 2 NSX Manager、NSX Controller クラスタ、ハイパーバイザー カーネル モジュール

図 2 が今回ご紹介するコンポーネントの全体像です。NSX Data Center は管理・制御・データプレーンによって構成されていることは前回お話ししました。それぞれのプレーンについて、一度ここでおさらいしましょう。管理プレーンでは NSX Data Center が提供する機能の設定・管理を実施します。実際のデータトラフィックが流れてスイッチングやルーティングが行われるのがデータプレーン、そしてスイッチングやルーティングに必要な計算を行いデータプレーンを制御するのが制御プレーンです。今回ご紹介するコンポーネントはそれぞれ、NSX Manager は管理プレーン、NSX Controller は制御プレーン、ハイパーバイザー カーネル モジュールはデータプレーンに属しています。
これだけの説明だとちょっと抽象的ですよね。それでは、より具体的なイメージを掴んでいただくために、従来の物理ルータ 1 台が提供する基本的な機能を NSX Manager、NSX Controller、ハイパーバイザー カーネル モジュールの 3 つのコンポーネントがそれぞれどのように提供するか、図 3 で示してみました。

図 3 物理ルータと NSX Data Center の比較(例)

図 3 の左にある従来の物理ルータでは、管理者がコマンドで作成した設定の反映や、ルーティング情報の制御、そして実際のデータトラフィックの処理といったサービスを 1 台の機器で集中的に提供していました。一方で図 3 の右側にある、今回ご紹介する 3 つのコンポーネントでは、管理者による設定の反映は NSX Manager が、ルーティング情報の制御は NSX Controller が、データトラフィックの処理はハイパーバイザー カーネル モジュールがそれぞれの機能を提供します。このように、従来物理機器 1 台で提供されていた機能が複数のNSX Data Center のコンポーネントに分散されます。
これらのコンポーネントへの認識が少し深まったところで、ここから NSX Manager、NSX Controller、ハイパーバイザー カーネル モジュールそれぞれの展開方法、役割、機能についてもっと詳しくお話ししていきます!

2. NSX Manager について
2.1 役割
NSX Manager は、管理プレーンに属しており NSX Data Center 環境全体の管理はこのコンポーネントで実施します。NSX Data Center を構築する際に最初に立てる必要があるコンポーネントで、これなしでは NSX Data Center によるネットワーク仮想化のサービスは提供されません。NSX Data Center を集中管理するという点から、vSphere における vCenter Server 的な存在だと考えてください。
2.2 展開方法
この NSX Manager、先ほど vSphere における vCenter Server のような存在とお伝えしましたが、デプロイは vCenter Server の管理コンソールである vSphere Web Client で実施します。vSphere Web Client 上で NSX Manager の ova ファイルをアップロードし、仮想アプライアンスとして展開します。デプロイされた NSX Manager は vCenter Server と 1:1 でマッピングされます。vSphere Web Client にプラグインが追加されることで、NSX Data Center が提供するサービスは vSphere Web Client を通じて展開および管理されます。
2.3 機能
NSX Manager が提供する機能は、主に 4 つあります。
① GUI の提供

図 4 vSphere Web Client 上のNSX Data Center 管理画面

NSX Data Center では NSX Manager が唯一の管理ポイントであり、NSX Data Center に関するすべての設定はNSX Manager で実施します。図 3 のスクリーンショットが実際の管理画面です。
② REST API の提供
NSX Data Center は、セキュリティ製品など様々なサードパーティ製品と連携することが可能です。他のソリューションとの連携には、NSX Manager が唯一のエントリポイントとなります。
③ コンポーネントのデプロイ

図 5 コンポーネントのデプロイ

今回ご紹介する NSX Controller、ハイパーバイザー カーネル モジュールや第 2 回の記事で登場した NSX Edge ゲートウェイ、分散論理ルータコントロール仮想マシンといった NSX Data Center を構成するコンポーネントは NSX Manager からデプロイします。
④ 構成情報の配布・保持

図 6 NSX Manager による構成情報の配布

NSX Manager が提供する GUI 上で設定を実施することはこの記事でお伝えしました。NSX Data Center のコンポーネントに対する設定は図 3 の画面から実施し、各コンポーネントに配布されます(図6)。
このように、NSX Manager は NSX Data Center のすべての構成情報を保持しているため、NSX Manager のバックアップを取ってしまえば NSX Controller、論理スイッチ、ファイアウォールルールなど、あらゆる NSX Data Center の設定のバックアップまで取ることになります!

3. NSX Controller について

3.1 役割
NSX Controller は制御プレーンに属しており、冒頭でお話ししたようにカーネル モジュールがデータトラフィックの処理を実施する論理ネットワークの制御を行います。また、NSX Manager と ESXi ホストのカーネル モジュールからそれぞれ情報を受け取って管理する役割を担います。
3.2 展開方法
NSX Controller は、他のコンポーネント同様 NSX Manager からデプロイされ、NSX Manager が提供する GUI から仮想アプライアンスとして展開されます。図 7 をご覧いただくと、NSX Controller が 01、02、03 と 3 台構築されていることがお分かりいただけると思います。なぜ 3 台も立てる必要があるのでしょうか?この理由については、後ほどご説明します。

図 7 NSX Controller ノード

3.3 NSX Controller の機能
NSX Controller が提供する機能は 2 つあります。
① NSX Data Center 環境の論理スイッチング・分散論理ルーティングに関する情報の制御
NSX Controller は、それぞれのホストのハイパーバイザー カーネル モジュールや分散論理ルータコントロール仮想マシンから送られてくる仮想マシンの情報を管理、制御します。このあたりの仕組みについては、第 5 回でもう少し詳しい説明をします。
② ESXi ホストに対して、論理スイッチング・分散論理ルーティングに関する情報の提供

図 8 NSX Controller による情報のプッシュ

上記 ① の機能で収集した論理スイッチング・分散論理ルーティングの情報を NSX Controller は環境内のホストに送信します。NSX Controller がこれらの情報をまとめてホストに提供することで、それぞれのホストはそのホスト上にない仮想マシンの情報も把握します。
3.4 NSX Controller が3 台必要な理由
ところで、このシリーズの冒頭から登場している NSX Controller ですが、サンプル構成図では「NSX Controller クラスタ」と表記され、アイコンが 3 つ並んでいることにはお気づきでしょうか?

NSX Controller の展開方法をご説明した際にも 3 台立てられていたことをご確認いただきましたが、実は NSX Controller は 3 台構成する必要があります。なぜ NSX Controller が 3 台必要なのか、端的にお伝えすると以下の 2 つがその理由です。
・負荷分散
・冗長性の確保
まずどのように負荷分散させているかというと、NSX Controller が論理スイッチング・分散論理ルーティングの情報を管理することは既にお話ししましたが、NSX Controller が 3 台あることで、そのワークロードを分散させることが可能となります。その際にNSX Controller クラスタでは、それぞれの情報に対してマスターのロールを持つノードが 1 台選ばれ、そのマスターが他のノードにワークロードの割り当てを実施します。

図 9 NSX Controller 間でのワークロードの分散

そして冗長性の確保については、もし 3 台の NSX Controller のうち 1 台のホストで障害が発生してサービス提供が出来なくなってしまった場合には、その 1 台が担っていたワークロードが他の 2 台の NSX Controller に再分散されます。このワークロードの再分散も、マスターによって実施されます。マスターを選出する際は、クラスタ内にある全ノードの過半数票が必要となります。これが、NSX Controller クラスタのノード数が奇数である 3 台必要な理由です。
また、ホスト障害への可用性を担保するため、それぞれの NSX Controller は異なるホスト上に立てる必要があります。このように、NSX Controller は障害が発生した場合でもサービスが継続して提供できるようなアーキテクチャになっています。

図 10 NSX Controller 間でのワークロードの再分散

ちなみに、仮に NSX Controller 全台に障害が発生するという事態が起きたとしたらどうなると思いますか?仮想マシンの通信が止まってしまう…なんて心配はありません!なぜなら、 ESXi ホストは NSX Controller から配布された情報を自身で保持していますし、データトラフィックはデータプレーンに属しており制御プレーンである NSX Controller を経由しないからです。
NSX Controller が 3 台立てられる理由、お分かりいただけたでしょうか。それでは続けて、ハイパーバイザー カーネル モジュールについてご紹介していきます。

4. ハイパーバイザー カーネル モジュールについて

4.1 役割
ハイパーバイザー カーネル モジュールとは、データプレーンに属しており、ESXi ホストにインストールされます。カーネルモジュールによって、NSX Data Center では論理スイッチ、分散論理ルータ、分散ファイアウォールを提供できるようになります。ESXi ホストのカーネル内には分散仮想スイッチ(vDS: vSphere Distributed Switch)と呼ばれる仮想スイッチが存在する、というのは前回の記事でご認識いただいていると思いますが、カーネルモジュールのインストールによってこの vDS の機能が拡張されます。つまり、カーネルモジュールをホストのカーネルにインストールすることは、vDS に更に論理スイッチ、分散論理ルータ、分散ファイアウォールの機能を持たせることと同義です。
4.2 展開方法
ハイパーバイザー カーネル モジュールは、NSX Manager によって各ホストのカーネルに対してインストールされます。インストールは、NSX Manager と紐づいている vCenter Server で管理されているクラスタ単位で実施されます。

図 11 ホストへの NSX Data Center コンポーネントインストール

4.3 機能
ハイパーバイザー カーネル モジュールが提供する機能は、主に2つあります。
① 論理スイッチング・分散論理ルーティングの処理

図 12 分散論理ルータによるルーティング

カーネル モジュールのインストールは、ホスト上に論理スイッチ、分散論理ルータの機能を追加することと同様だと先ほどお話ししました。例えば、同じホスト上に異なるセグメントの仮想マシンが存在する状況でお互い通信をする場合、カーネル モジュールがルーティングの処理をしてくれます。
② NSX Manager 上で設定された分散ファイアウォールルールの反映

図 13 分散ファイアウォールルールの適用

NSX Data Center では、vDS のポートグループや仮想マシンの vNIC など、様々なオブジェクトに対して分散ファイアウォールルールを設定できます。NSX Manager で作成した分散ファイアウォールルールは、各ホストのカーネルモジュールによって管理・処理されます。NSX Data Center ではこの分散ファイアウォールと、NSX Edge が提供する境界ファイアウォールという 2 つのファイアウォールが提供されます。これらのファイアウォールについては、第 6 回で詳しくご紹介していきます。

5. おわりに

図 14 サンプル構成図 NSX Manager、NSX Controller 追加後

今回は NSX Manager、NSX Controller、ハイパーバイザー カーネル モジュールについてご説明してきました。それぞれのコンポーネントが果たす役割や機能についてご理解いただけたでしょうか?この 3 つのコンポーネントが分かると、次回以降の記事で紹介される論理スイッチ、分散論理ルータ、分散ファイアウォールといった NSX Data Center が提供するネットワークサービスの仕組みをより理解しやすくなります。次回は NSX Data Center の L2 ネットワークサービスである論理スイッチをご紹介します。お楽しみに!

-VMware SE 甫木 佑美佳