Home > Blogs > Japan Cloud Infrastructure Blog > 月別アーカイブ: 2015年4月

月別アーカイブ: 2015年4月

vSphere ユーザー向け技術資料2種 「事例に学ぶ仮想化導入成功ノウハウ」&「10の技術ポイント」のご案内

こんにちは。マーケティングを担当している坂本です。本日はvSphere をお使いの方向けの資料2種、「お客様の管理画面を公開!事例に学ぶ仮想化導入成功ノウハウ」Ebookと「vSphere を管理する10の技術ポイント」という2つの資料をご紹介します。是非ダウンロードして御覧ください。

Ebookは vSphere with Operations Management を使い、自社の仮想化環境の運用を効率化された方のお話を元に作成いたしました。

  • IT 部門の課題とそれを解決した VMware ソリューション
  • Q&A 形式でご紹介するお客様の声
  • 管理ダッシュボードのカスタマイズ例

という3つのステップでそれぞれの特長を紹介しており、vSphereを管理されている方には参考になると思います。  (ダウンロードはこちら

eBook

また、 「vSphere を管理する10の技術ポイント」では、潜在的な課題を事前に検知して問題解決を効率化する10のポイントを、

  • 健全性監視とパフォーマンス分析
  • キャパシティの管理と最適化
  • 直感的に操作可能な運用ダッシュボードと根本原因の分析

という3つの軸に注目して紹介しております。是非御覧ください。(ダウンロードはこちら

Tech Tips
これらの資料は米国VMware 作成の資料の翻訳版です。翻訳のご要望はこのブログのコメントやTwitter  https://twitter.com/VMware_Japan へのメンションでお受付しております。 ご要望もお寄せください。

ネットワーク仮想化をネットワークの基本から理解する 〜 第2回:論理スイッチ(VXLAN) –Layer2 の世界

■はじめに
「ネットワーク仮想化」をセールスやマーケティングではなく、エンジニアとしてアーキテクチャを正しく理解することが、今回のブログシリーズ「ネットワーク仮想化をネットワークの基本から理解する」のテーマです。「第2回 論理スイッチ(VXLAN) –Layer2 の世界」では、ネットワーク仮想化環境のL2 ネットワークサービスを見ていきます。

論理スイッチは、VMware NSX の提供するL2 ネットワークサービスです。オリジナルのイーサネットフレームにハイパーバイザでVXLAN ヘッダを付加することで、物理ネットワーク上にオーバレイのL2 ネットワークサービスを提供します。論理スイッチを使用することで、物理ネットワークに手を加えることなくL2 ネットワークを追加できます。

NWV02-01-02

論理スイッチの設定はNSX の管理画面から行います。物理サーバや物理ネットワーク機器数十台にまたがるようなL2 ネットワークを構成する際も、個々の物理コンポーネントに設定を行う必要はありません。

NWV02-02

上記の通りGUI から簡単に設定を行うことができますが、APIを介した設定も可能となり、クラウドコントローラと連携することで設定作業を自動化できます。

 

■物理ネットワークにおけるL2スイッチのアーキテクチャ
論理スイッチのアーキテクチャの説明に入る前に、物理ネットワーク環境の説明を行います。物理ネットワーク環境において、端末間での通信を制御するテーブルは2種類あります。端末側で管理するARPテーブルと、物理スイッチ側で管理するMAC アドレステーブルです。

NWV02-03-02

図 物理ネットワーク環境で管理するテーブル

ARP テーブルは、IPアドレスとMAC アドレスを対応させたテーブルとなり、各エンドの端末が保持しています。端末は、ARP テーブルを参照し、通信を行いたい宛先IP アドレスに対応したMAC アドレス宛てにパケットを送信します。

> arp –a(端末Aで実施)
  インターネット アドレス			物理アドレス     			種類
  172.16.10.2(端末BのIP)	BB-BB-BB-BB-BB-BB(端末BのMAC)	動的

MAC アドレステーブルは、端末のMAC アドレスと物理スイッチのポート番号を対応させたテーブルとなっており、物理スイッチが管理しています。物理スイッチは、受信したフレームの送信元MAC アドレス情報を学習することで、テーブルをダイナミックに作成していきます。MAC アドレステーブルはVLAN 毎に管理されており、物理スイッチは受信したパケットの宛先MAC アドレスに対応したポートにパケットを転送します。

> show mac address-table(物理スイッチ上で実施)
Vlan	Mac Address			Type		Ports
----	-----------			--------	-----
10	AAAA.AAAA.AAAA	(端末AのMAC)	DYNAMIC		Gi1(ポート1番)
10	BBBB.BBBB.BBBB	(端末BのMAC)	DYNAMIC		Gi2(ポート2番)

このテーブルにエントリがない宛先MAC アドレスのフレームを受信した場合、物理スイッチは対応するVLAN に所属する全てのポートにフレームを転送します。MAC アドレステーブルのエントリを管理することで、トラフィックを抑制することが可能になります。物理スイッチが提供しているL2 ネットワークサービスを、ネットワーク仮想化環境では論理スイッチとして実装しています。論理スイッチのアーキテクチャについて、「テーブル」に注目する形でこの後見ていきます。

 

■ネットワーク仮想化環境における論理スイッチのアーキテクチャ
ネットワーク仮想化環境において、端末の送信したフレームをカプセル化(VXLAN ヘッダを付加すること)するポイントを、VTEP(VXLAN Tunnel Endpoint)と呼んでいます。VTEP の理解が論理スイッチ理解の第1歩です。

VTEP の実態は、vSphere の視点で見ると、ハイパーバイザの中にある仮想スイッチ(分散スイッチ VDS)上に作成されるVMkernel ポートになります。VMkernel ポートはIP アドレスを持ち、このIP アドレス間でVXLAN のオーバレイ通信を行います。VTEP は分散スイッチ上にVMkernel ポートとして展開されるため、論理スイッチの実装には分散スイッチが必須となります。


ポイント1:VTEPの実態は、ハイパーバイザ上に作成される仮想スイッチのVMkernel ポート

NWV02-04

VTEP 間をVXLAN でオーバレイすることにより構成される論理スイッチの実態は、vSphere の視点で見ると、仮想スイッチ上に作成されるポートグループになります。サーバ仮想化環境では、物理ネットワークのVLAN ID に対応する形でポートグループ作成をするケースがありますが、ネットワーク仮想化環境では論理スイッチのVNI(VXLAN Network Identifier物理環境のVLAN IDに相当)に対応したポートグループが自動的に作成されます。


ポイント2:論理スイッチの実態は、ハイパーバイザ上に作成される仮想スイッチのポートグループ

NWV02-05

仮想マシンから論理スイッチは単にポートグループとして見えています。仮想マシンを論理スイッチに対応したポートグループに接続することで、VXLAN でオーバレイしたネットワーク経由で通信を行うことが可能になります。

この後は、論理スイッチに接続された仮想マシン間で、通信がどのように成立するのかを見ていきます。ネットワーク仮想化環境で通信を成立させるために、3つのテーブルがでてきます。これらのテーブルがどのようなメカニズムで通信を成立させるか確認していきます。

VTEP テーブル:VNI(VXLAN Network Identifier)とVTEP を対応させたテーブル
MAC テーブル :VNI、VTEP、仮想マシンのMAC アドレスを対応させたテーブル
ARP テーブル :仮想マシンのIP アドレスとMAC アドレスを対応させたテーブル

補足情報:論理スイッチを構成する際、VTEP間の通信にマルチキャストを使用するモード(マルチキャストモード)と、使用しないモード(ユニキャストモード)、及び併用するモード(ハイブリッドモード)を選択できます。この後の説明は、ユニキャストモードを前提に進めています。ユニキャストモードでは、コントローラでVTEP テーブルを集約して管理することで、物理ネットワークでマルチキャストを運用する必要がありません。
———-
STEP0: ネットワーク仮想化環境は、ハイパーバイザとコントローラ間で各種テーブル情報を交換するコントロールプレーンと、VTEP 間で仮想マシントラフィックを転送するデータプレーンから構成されています。2台のESXi ホスト上でVNI(VXLAN Network Identifier 物理環境のVLAN IDに相当)5001 に接続している端末間の通信を確認してみます。端末A,B は、論理スイッチ VNI 5001 に対応するポートグループに接続し、電源がOFF の状態になっています。

NWV02-06

図:コントロールプレーンの構成


補足情報:ハイパーバイザとコントローラ間のコネクション(コントロールプレーン)は、下記で確認できます。ハイパーバイザの管理用IP アドレスからコントローラ(192.168.110.201, 192.168.110.202, 192.168.110.203)に接続していることが確認できます。

コントローラクラスタとの接続確認
# esxcli network ip connection list | grep 1234
Proto	Local Address		Foreign Address		State		World Name
-----	--------------------	--------------------	-----------	----------
tcp	192.168.210.51:59453	192.168.110.201:1234	ESTABLISHED	netcpa-worker
tcp	192.168.210.51:61471	192.168.110.202:1234	ESTABLISHED 	netcpa-worker
tcp	192.168.210.51:61397	192.168.110.203:1234	ESTABLISHED 	netcpa-worker

仮想マシン間のデータの転送は、データプレーンを使用します。データプレーンには VTEP(VMkernel ポート)が存在し、VXLAN のオーバレイ通信を行います。

NWV02-07

図:データプレーンの構成


補足情報:データプレーンのVTEP(VMkernel ポート)はESXi ホストにおいて他の管理系ネットワークから独立したTCP/IP スタック(メモリ領域、ルーティングテーブル、ARPテーブル)を持ちます。

ルーティングテーブル確認方法(VXLAN TCP/IP スタック)
# esxcli network ip route ipv4 list -N vxlan
Network        Netmask        Gateway        Interface  Source
-------------  -------------  -------------  ---------  ------
default        0.0.0.0        192.168.250.2  vmk3       MANUAL
192.168.250.0  255.255.255.0  0.0.0.0        vmk3       MANUAL
ARP テーブル確認方法(VXLAN TCP/IP スタック)
# esxcli network ip neighbor list -N vxlan
Neighbor       Mac Address        Vmknic  Expiry    State  Type
-------------  -----------------  ------  --------  -----  -----------
192.168.250.2  00:50:56:01:1e:3d  vmk3    1194 sec         Autorefresh
VTEP 間の疎通確認方法(VXLAN TCP/IP スタック)
# ping ++netstack=vxlan -I vmk3 -d -s 1572 192.168.150.51
PING 192.168.150.51 (192.168.150.51): 1572 data bytes
1580 bytes from 192.168.150.51: icmp_seq=0 ttl=63 time=1.745 ms

———-
STEP1: 仮想マシンの電源をON にすると、ハイパーバイザ内にVTEP テーブル情報が作成されます。VTEP テーブルは、VNI と、対応するVTEP のIP アドレスで構成され、VTEP テーブル情報はコントローラに送付されます。コントローラは、収集したVTEP テーブル情報を、各ハイパーバイザに通知します。この動作により、各ハイパーバイザでVNI に対応するVTEP のIP アドレスを学習することができます。


ポイント3:ハイパーバイザでVTEP テーブルを管理することにより、VNI に対応したブロードキャスト、宛先不明のユニキャスト、及びマルチキャストを転送するVTEP を把握できる

NWV02-08

図:STEP1 VTEP テーブルの作成(コントロールプレーン)


補足情報:ブロードキャスト、宛先不明のユニキャスト、マルチキャストを略してBUM トラフィックと呼びます。宛先不明のユニキャストとは、ハイパーバイザ内に後述のMAC テーブル情報のないトラフィックのことです。

コントローラでの確認方法
# show control-cluster logical-switches vtep-table 5001
VNI	IP(VTEPのIP)		Segment			MAC(VTEPのMAC)
5001	192.168.250.51(ESXi01)	192.168.250.0		01:01:01:01:01:01
5001	192.168.250.52(ESXi02)	192.168.250.0		02:02:02:02:02:02

上記よりコントローラではESXi01、ESXi02 のVTEP を認識していることが分かります。

ハイパーバイザでの確認方法
ESXi01 # esxcli network vswitch dvs vmware vxlan network vtep list --vds-name=Compute_VDS --vxlan-id=5001
IP(VTEPのIP)			Segmant ID		Is MTEP
--------------			-------------		-------
192.168.250.52(ESXi02)		192.168.250.0		false

上記よりESXi01 が、VXLAN5001 の転送先としてESXi02のVTEP を認識していることが分かります。
———-
STEP2: 仮想マシンから通信が発生した際、カーネルモジュールが通信の送信元MAC アドレスから、仮想マシンのMAC アドレスを認識します。認識した仮想マシンのMAC アドレス情報をコントローラクラスタに通知します。

NWV02-09

図:STEP2 MAC テーブルの作成(コントロールプレーン)
コントローラでの確認方法
# show control-cluster logical-switches mac-table 5001
VNI	MAC(端末のMAC)			VTEP-IP			
5001	AA:AA:AA:AA:AA:AA(端末A)	172.16.250.51(ESXi01)
5001	BB:BB:BB:BB:BB:BB(端末B)	172.16.250.52(ESXi02)

上記よりコントローラでは端末A,BのMACアドレスと、対応するVTEP を認識していることが分かります。
———-
STEP3: 仮想マシンのIP アドレス情報を含む特定の通信(ARP Response Request, GARP もしくはDHCP ACK (2016/10/7 修正))から、カーネルモジュールが仮想マシンのIP アドレスとMAC アドレスを認識します。認識した情報をコントローラクラスタに通知します。ARP 抑制(ARP Suppression)が有効な場合、このステップが実施されます。

baiboard_2016-10-31_16-40-53

図:STEP3 ARP テーブルの作成(コントロールプレーン)

ARP 抑制はデフォルトで有効となり、論理スイッチの設定画面「IP検出の有効化」のチェックボックスで有効化、無効化を行います。以降の説明はARP 抑制が有効化されている前提で進めていきます。

コントローラでの確認方法
# show control-cluster logical-switches arp-table 5001
VNI	IP(端末のIP)		MAC(端末のMAC)
5001	172.16.10.11(端末A)	AA:AA:AA:AA:AA:AA(端末A)
5001	172.16.10.12(端末B)	BB:BB:BB:BB:BB:BB(端末B)

上記よりコントローラでは端末A,B のARP テーブル情報を認識していることが分かります。
———-
STEP4: 端末A が端末B に対しARP リクエストを送信します。端末A からのARP リクエストをESXi01 のカーネルモジュール が受け取ります。ESXi01 は、リクエストをコントローラに問合せ、端末B のARP テーブル情報をコントローラから受け取ります。ESXi01 は端末A にARP リプライを返します。


ポイント4:ハイパーバイザでARP テーブルを管理することにより、仮想マシンからのARP リクエストに代理応答し、物理ネットワークを流れるトラフィック(ARPブロードキャスト)を削減できる

NWV02-12

図:STEP4 ARP テーブルの取得(コントロールプレーン)
ハイパーバイザでの確認方法
ESXi01 # esxcli network vswitch dvs vmware vxlan network arp list --vds-name=Compute_VDS --vxlan-id=5001
IP(端末のIP)		MAC(端末のMAC)	
------------		-----------------		
172.16.10.12(端末B)	BB:BB:BB:BB:BB:BB(端末B)

上記よりESXi01 がARP テーブル情報(端末BのIP アドレスとMAC アドレスの対応)を認識していることが分かります。


補足情報:コントローラで端末B に対応するARP テーブルを保持していない場合、ESXi ホストはARP リクエストを通常のブロードキャストトラフィックとして処理します。VTEP テーブルを参照しVNI 5001 に対応するESXi ホストに送信します。

———-
STEP5: ESXi01 は、端末B に対応するMACテーブルをコントローラクラスタに問合せ、端末B のMAC テーブル情報を取得します。

NWV02-13

図:STEP5 MAC テーブルの取得(コントロールプレーン)
ハイパーバイザでの確認方法
ESXi01 # esxcli network vswitch dvs vmware vxlan network mac list --vds-name=Compute_VDS --vxlan-id=5001
Inner MAC(端末のMAC)		Outer MAC(VTEPのMAC)		Outer IP(VTEPのIP)
-----------------		-----------------		-------------	
BB:BB:BB:BB:BB:BB(端末B)	02:02:02:02:02:02(ESXi02)	172.16.250.52(ESXi02)

上記よりESXi01 は、ESXi02 上に端末B が存在することを認識していることが分かります。
———-
STEP6: ESXi01 からのARP 応答(STEP4 で実施)により端末A は端末B のMAC アドレス情報を取得し、端末B に対する通信を開始します。ESXi01 はMAC テーブル(STEP5 で取得)を参照し、VXLAN でカプセル化したパケットを、ESXi02 のVTEP へ送信します。ESXi02 では、パケットを受信した際に端末A に対応するMAC テーブルを作成します。その後VXLAN ヘッダを取り除き、端末B にオリジナルのフレームを転送します。


ポイント5:ハイパーバイザでMAC テーブルを管理することにより、宛先の仮想マシンが動作しているホストのVTEP を把握し、物理ネットワークを流れるトラフィック(宛先不明のユニキャスト)を削減できる

NWV02-14

図:STEP6 端末A-B間通信の開始(データプレーン)


補足情報:STEP5 において、コントローラで端末B に対応するMAC テーブルがなく、ハイパーバイザ内にもMAC テーブルがない場合、ESXi01 は端末B に対する通信を宛先不明のユニキャストとして処理します。VTEP テーブルを参照しVNI 5001 に対応するESXi ホストに送信します。

 

■物理ネットワーク環境とネットワーク仮想化環境の比較
ポイント1-5を再掲します。


ポイント1:VTEPの実態は、ハイパーバイザ上に作成される仮想スイッチのVMkernelポート


ポイント2:論理スイッチの実態は、ハイパーバイザ上に作成される仮想スイッチのポートグループ

上記2つのポイントはサーバ仮想化エンジニアの方はイメージしやすいのではないでしょうか。


ポイント3:ハイパーバイザでVTEP テーブルを管理することにより、VNI に対応したブロードキャスト、宛先不明のユニキャスト、及びマルチキャストを転送するVTEP を把握できる


ポイント4:ハイパーバイザでARP テーブルを管理することにより、仮想マシンからのARP リクエストに代理応答し、物理ネットワークを流れるトラフィック(ARPブロードキャスト)を削減できる


ポイント5:ハイパーバイザでMAC テーブルを管理することにより、宛先の仮想マシンが動作しているホストのVTEP を把握し、物理ネットワークを流れるトラフィック(宛先不明のユニキャスト)を削減できる

上記3つのポイントについて「テーブル」の観点から、物理ネットワーク環境とネットワーク仮想化環境を比較してみます。

NWV02-15

ARP テーブルの役割は物理ネットワーク環境と全く同じです。テーブル情報を、端末だけではなく、コントローラで集約して管理を行い、端末からのARP リクエストにハイパーバイザが代理応答することで、物理ネットワークを流れるトラフィックを削減しているのがネットワーク仮想化環境の特徴となります。

MAC テーブルは、物理ネットワーク環境のMAC アドレステーブルと同等の役割を果たしています。ハイパーバイザは、MAC テーブルを参照することで、VTEPの先にある端末のMAC アドレスを把握し、物理ネットワークを流れるトラフィックを削減することができます。

VTEP テーブルは、物理スイッチにおけるポートのVLAN 設定に対応します。VTEP テーブルを参照することでブロードキャスト、宛先不明のユニキャスト、及びマルチキャスト(BUM トラフィック)を転送する先を判断することができます。ユニキャストモードではVTEP テーブルをコントローラが集約して管理することで、マルチキャストに依存しないVXLAN の運用を可能にしています。

NWV02-16

論理スイッチの管理するVTEP テーブルとMAC テーブルを合わせ、VTEP を物理スイッチのポートに置き換えて考えると、論理スイッチはネットワーク仮想化環境において、物理スイッチと同等の機能を提供していることが分かります。

ネットワーク仮想化環境では、L2ネットワークを管理するための各種テーブルを物理ネットワーク機器から切り離し、ハイパーバイザで管理することにより、物理ネットワークと同等のサービスを、物理ネットワークに依存しない形で柔軟に展開することを可能にします。さらにコントロールプレーンを実装し、コントローラで各種テーブル情報を集約することで、マルチキャストに依存しない論理スイッチ(VXLAN)の展開や、物理ネットワークを流れるトラフィックを削減する運用を可能にしています。

 

■補足情報 論理スイッチ(VXLAN)を提供するVMware NSX のコンポーネント

NWV02-17

・NSX Manager(マネジメントプレーン)
NSX を構築する際に最初に展開するコンポーネントで、仮想アプライアンスとして提供されています。NSX Manager は初期構築時の ESXi ホストへのカーネルモジュールのインストールや、論理ルータコントロールVM やNSX Edge といった仮想アプライアンスの払い出しを担います。また、NSX Manager はAPI のエントリポイントとなり、GUI だけでなくAPI 経由でNSX 環境の設定を可能にします。

・NSX コントローラクラスタ(コントロールプレーン)
NSX コントローラクラスタは、現時点で3台の仮想アプライアンスで構成することを推奨しており、論理スイッチにおいて、各種情報(VTEP テーブル、MAC テーブル、ARP テーブル)を集中管理するポイントになります。VXLAN のVNI 毎に担当するコントローラが決められ、例えばVNI 5000はコントローラ1番、VNI 5001 はコントローラ2番というように役割が割り当てられます。テーブル情報は、担当するコントローラのみが保持します。なお、論理スイッチ(VXLAN) をマルチキャストモードで実装する場合は、コントローラクラスタは必要ありません。

3台のコントローラ(192.168.110.201, 192.168.110.202, 192.168.110.203)で構成されている環境で、VNI 5001 の情報を確認する手順は下記のとおりです。

VXLAN VNI 5001 を管理するコントローラの確認
# show control-cluster logical-switches vni 5001
VNI	Controller		BUM-Replication		ARP-Proxy
5001	192.168.110.202		Enabled			Enabled

この出力結果から、192.168.110.202 のコントローラがVNI 5001 の情報を管理していることが分かります。VNI 5001 の各種テーブル情報を見るためには、該当のコントローラ(192.168.110.202)にログインする必要があります。

VXLAN VNI 5001 のVTEP テーブルの確認
# show control-cluster logical-switches vtep-table 5001
VNI	IP(VTEPのIP)		Segment			MAC(VTEPのMAC)
5001	192.168.250.51(ESXi01)	192.168.250.0		01:01:01:01:01:01
5001	192.168.250.52(ESXi02)	192.168.250.0		02:02:02:02:02:02
VXLAN VNI 5001 のMAC テーブルの確認
# show control-cluster logical-switches mac-table 5001
VNI	MAC(端末のMAC)			VTEP-IP			
5001	AA:AA:AA:AA:AA:AA(端末A)	172.16.250.51(ESXi01)
5001	BB:BB:BB:BB:BB:BB(端末B)	172.16.250.52(ESXi02)
VXLAN VNI 5001 のARP テーブルの確認
# show control-cluster logical-switches arp-table 5001
VNI	IP(端末のIP)		MAC(端末のMAC)
5001	172.16.10.11(端末A)	AA:AA:AA:AA:AA:AA(端末A)
5001	172.16.10.12(端末B)	BB:BB:BB:BB:BB:BB(端末B)

・論理ルータコントロールVM(コントロールプレーン)
論理ルータコントロールVM は論理スイッチに関与しません。(第3回分散ルーティングで解説を行います)

・ハイパーバイザ カーネルモジュール(データプレーン)
NSX 環境を構築する際、ホストの準備のステップで各ESXi にインストールされるカーネルモジュールとなります。VIB(vSphere Installation Bundle)ファイルとしてインストールされ、論理スイッチの機能はカーネルモジュール(vdl2)としてロードされます。 カーネルモジュールは、ハイパーバイザ内で論理スイッチ(VXLAN)のテーブル情報を管理します。

ハイパーバイザからは、NSX コントローラクラスタと、NSX Manager にコネクションを張り、各種情報のアップデートを行います。NSX コントローラクラスタへのコネクションはハイパーバイザ内のUWA(User World Agent)netcpa(TCP/1234)を介して確立し、NSX Manager へのコネクションはUWA vsfwd(TCP/5671)を介して確立します。

NWV02-18-02

コントローラクラスタとの接続確認
# esxcli network ip connection list | grep 1234
Proto	Local Address		Foreign Address		State		World Name
-----	--------------------	--------------------	-----------	----------
tcp	192.168.210.51:59453	192.168.110.201:1234	ESTABLISHED	netcpa-worker
tcp	192.168.210.51:61471	192.168.110.202:1234	ESTABLISHED 	netcpa-worker
tcp	192.168.210.51:61397	192.168.110.203:1234	ESTABLISHED 	netcpa-worker

上記出力より、ハイパーバイザの管理用IP アドレスから3台のコントローラ(192.168.110.201, 192.168.110.202, 192.168.110.203)に、netcpa を介して接続していることが確認できます。

NSX Manager との接続確認
# esxcli network ip connection list | grep 5671
Proto	Local Address		Foreign Address		State		World Name
-----	--------------------	--------------------	-----------	----------
tcp	192.168.210.51:23251	192.168.110.42:5671	ESTABLISHED	vsfwd

上記出力より、ハイパーバイザの管理用IP アドレスからNSX Manager に、vsfwd を介して接続していることが確認できます。

論理スイッチのカーネルモジュールは、ハイパーバイザ内でVTEP, MAC, ARP テーブルを管理します。

VXLAN VNI 5001 のVTEP テーブルの確認
ESXi01 # esxcli network vswitch dvs vmware vxlan network vtep list --vds-name=Compute_VDS --vxlan-id=5001
IP(VTEPのIP)			Segmant ID		Is MTEP
--------------			-------------		-------
192.168.250.52(ESXi02)		192.168.250.0		false
VXLAN VNI 5001 のMAC テーブルの確認
ESXi01 # esxcli network vswitch dvs vmware vxlan network mac list --vds-name=Compute_VDS --vxlan-id=5001
Inner MAC(端末のMAC)		Outer MAC(VTEPのMAC)		Outer IP(VTEPのIP)
-----------------		-----------------		-------------	
BB:BB:BB:BB:BB:BB(端末B)	02:02:02:02:02:02(ESXi02)	172.16.250.52(ESXi02)
VXLAN VNI 5001 のARP テーブルの確認
ESXi01 # esxcli network vswitch dvs vmware vxlan network arp list --vds-name=Compute_VDS --vxlan-id=5001
IP(端末のIP)			MAC(端末のMAC)	
------------			-----------------		
172.16.10.12(端末B)		BB:BB:BB:BB:BB:BB(端末B)	

・NSX Edge(データプレーン)
NSX Edge のインターフェイスを、論理スイッチに接続することでNSX Edge の持つ各種ネットワークサービス(ロードバランサ、ルーティング、NAT、ファイアウォール、VPN、 DHCP 等)を論理スイッチに接続した仮想マシンに対して提供します。論理スイッチの提供するL2ネットワークサービスには直接関与しません。

 

■関連リンク
今回ご紹介した内容をオンラインのハンズオン環境上で確認いただくことができます。コマンドラインの出力はハンズオン環境をベースに作成しています。
VMware HOL Online
HOL-SDC-1403 – VMware NSX Introduction

NSX の機能全般及び、ネットワーク仮想化環境の設計に興味のあるかたは下記テックペーパーを参照ください。
VMware® NSX for vSphere (NSX-V) Network Virtualization Design Guide

ネットワーク仮想化をネットワークの基本から理解する
第1回:理解するために必要なことを整理する
第2回:論理スイッチ(VXLAN)–Layer2 の世界(本稿)
第3回:分散ルーティング –Layer3 の世界
第4回:分散ファイアウォール -Layer4 の世界

VMwareテクニカルトレーナーよりワンポイントアドバイス~シェアと予約をおさえよう!~

こんにちは。VMware EducationのテクニカルトレーナーのSatokoです!!!
前回は、物理のCPUやメモリがどのように仮想レイヤと紐づいているか、お話させていただきました。その中で仮想環境では物理的なリソース量に対して、その物理量を超えた仮想マシンを載せることができること  (= 設定時におけるオーバーコミット状態 ) についても触れました。今回は、多くの仮想マシンを載せてしまったが、実際運用時ではどのようにリソース制御をすればよいか?の基本をお話します。

■物理リースを超えた仮想マシンのリソース総量

例えば、VMware ESXi ホスト ( ESXi ) 上に、Webサーバ、Appサーバ、DBサーバ、Fileサーバ等の仮想マシン(仮想マシン)を構成しています。

図1

 

図1 が示すように、
40GB(ホストの持つメモリリソース)  <  43GB(仮想マシンに設定されたメモリリソースの合計)
となり、ESXi ホストがもつ40GBメモリーリソース以上に仮想マシンのメモリリソース合計が設定されている状態です。この状態はどうかといういうと、設定されている値 (ここでは43GB )をすべて使用するとは限らず、必要な分だけ各仮想マシンに割り当てられていますので、物理のリソースを超えた設定自体がパフォーマンスに影響を与えるものではないことを、前回もお話しました。

続いてCPUリソースをみていきましょう

図2

図2

 

こちらもvCPU数が物理のコア数を超えていても、それぞれの仮想マシンが必要な時に必要なCPUリソースを配分されることで、パフォーマンスに影響なく複数のサービスの提供が可能です。そのため、設計時にそれぞれの仮想マシンのリソース消費のピークが重ならないように組み合わせを考慮することが重要になります。

図3

図3

図3のように、CPUリソースが競合した場合には、処理の遅延が発生することでパフォーマンスへの影響が懸念されます。
メモリリソースもCPUリソースもオーバコミットしていること自体パフォーマンスへの影響はないのですが、リソースを有効に使用する!という仮想基盤の特性上、このリソース競合とどう付き合っていくか?がとても大事になってきます。今回は、その仮想基盤の特性上欠かせない、リソース制御の「シェア」と「予約」の基本についてみていきます。

■CPU/メモリリソース制御における「シェア」を押さえよう

CPUのシェアの考え方

まず、CPUのシェアをみていきましょう。シェアはリソースが競合してしまったときに、設定した「シェア値」でリソース配分を決めることができます。

図4

図4

 

上記の図4で、CPUリソースの割り当てを具体的に見てみましょう。

物理CPU:3GHz×1
各仮想マシンvCPU:3GHz×1

1つの物理Coreを2つの仮想マシンvCPUで共有しているパターン(合計2vCPU)です。

リソースが競合した場合、シェアの値によって、リソースが割り当てされます。
デフォルトであれば、各vCPUは、1.5GHzのCPUリソースが均等にハイパーバイザによって割り当てられます。もちろん共有している物理CPUは1つなので、所有できる時間をシェアの値によって優先度を変えています。

例えばシェアの値を変えてみましょう。シェア値を大きくすることによって、特定の仮想マシンに対してより優先的にリソースを分配することが可能なのです。(図5)

図5

図5

メモリシェア編

同様に図6で、メモリシェアの割り当ても具体的に見てみましょう。

図6

図6

ESXi ホストの持つ 6GB の物理メモリを2つの仮想マシンで共有しているパターンです。
この例では、6GB の物理メモリリソースでは、各仮想マシンに設定された4GBが割り当てられるわけではなく、仮想マシンでのメモリ使用量合計が 6GB を超えた場合 (= 競合状態) にシェアの値が働きます。シェア値がデフォルトであれば、各仮想マシンは、3GBずつのメモリリソースが均等にハイパーバイザによって割り当てられます(左図)が、 シェア値を大きくすることで、優先的にリソースを分配することが可能です(右図)。

リソースの競合が起きたとき、デフォルトでは、均等にリソースは割り当てられますが、競合時にCPUメモリリソースを優先的に割り当てたいシステムは存在します。 競合発生時、それぞれのサーバが必要とするリソースが均等ではないのであれば、ここは、管理者が優先度に従い、割合を指定していくことで柔軟にリソースの割り当てを実施していきます。

 

■「予約」の基本 ~CPU編~

シェア値の設定によって、リソース競合時の優先度を定義できるのですが、シェアは、あくまでも割合の指定です。
例えば、Applicationのために十分なパフォーマンスを確約したいということであれば、具体的な数値で指定する「予約」の値を指定することで、より確実に指定したリソースを担保することも可能です。

図7

図7

CPUリソースの予約を指定した場合を見てみましょう。

1Coreを4つの仮想マシン(vCPU)で共有しているパターン(合計 4vCPU )です。
予約の値はデフォルト設定されていません。予約の値を設定することで、CPUリソースは、起動時や運用時のCPUリソースの割り当てを担保することができます。
CPUリソースは、ハイパーバイザによって割り当てられます。CPUリソースは、指定した予約の値のCPUリソースを使用していない時は、別の仮想マシンにCPUリソースが割り当てられ、より柔軟にCPUリソースは活用されます。

■「予約」の基本 ~メモリ編~

続いてメモリリソースの予約を見ていきましょう。

図8

図8

ESXi ホストの持つ物理メモリ 6GB を4つの仮想マシンで共有しているパターンです。

CPUリソースと同様に、デフォルトでは予約は設定されていません。A_VMの予約値を2GBと指定することで、2GB が起動時にハイパーバイザによって確保されます。A_VMが予約されたメモリリソース以上のメモリリソースが必要な場合は、残る共有リソースから割り当てられることになります。
予約は特定の仮想マシンがリソースを占有することになります。すなわち、仮想化のメリットであるリソースの共有を最大限に生かすのであれば、予約値を必要最低限にしておくのがコツです♪

 

■設定してみよう!

それでは各仮想マシンに対するシェアと予約の設定方法を見ていきましょう。各仮想マシンを右クリックして「リソース設定の編集」を開きますデフォルトの設定では、下記のように、シェアは「標準」、予約は「0」となっています。

図9

図9

CPUを例にシェアの値を指定してみましょう。仮想マシンに割り当てたシェアの値を、ESXi ホスト側からも確認することができます。この例の場合、CPUのシェアが4 (高): 2 (標準): 1 (低)になっていることが分かります。このように優先順位が指定されます。予約に関しても同じ画面で設定することができますので、設定自体はとても簡単ですね♪

 

図10

図10

今回は、リソースの制御方法である「シェア」と「予約」を見てきました。 安全に多くの仮想基盤を運用するには、このリソース管理の考え方が基本になってきます。ここでは、単体のESXi ホスト上でのリソース制御を紹介しましたが、クラスタ(複数のESXiホストをグループ化)のリソース制御では、リソースプールが利用できます。それはまた次の機会にお話したいと思います!

VMwareテクニカルトレーナーよりワンポイントアドバイス
第1回:VMware vSphereにおけるCPU・メモリの考え方編
第2回:シェアと予約をおさえよう!(本記事)

共同執筆 パートナーSE 中村朝之