こんにちは。SB C&Sの大塚です。
「基礎から学ぶ!vSphere 8.0 検証環境構築」シリーズ第4回は、「ネットワークの設定(標準仮想スイッチ)」です。vSphere環境におけるネットワークは、vSphereを始めて学習する方々がつまずきやすい内容ですので、本記事で理解を深めていきましょう!
1. vSphereにおける仮想ネットワークとは
1.1. 仮想ネットワークの構成要素
第1回の記事で、「ESXiをサーバー上にインストールすることで、複数の仮想マシンを稼働させることができる」ことをご紹介しましたが、ESXi上で稼働する仮想マシンは、当然ながら目に見えません。本来、サーバーやPC等の物理マシンでネットワークを構築する際は、スイッチやLANケーブルを利用して目に見える形で配線を行っていましたので、イメージがしやすかったと思います。では、仮想環境におけるネットワークはどのようになっているのでしょうか?
以下の図は、ESXiにおける仮想ネットワークを構成している要素を図示したものです。
物理マシンにCPUやメモリ等のハードウェアが搭載されているのと同様に、仮想マシンには仮想化されたハードウェアを搭載できます。仮想マシンは仮想NIC(通称:vNIC)をもち、vNICにIPアドレスを割り当てることで通信できます。
もちろん、仮想マシンが物理環境へ通信するためには、ESXiホストに搭載された物理NIC(通称:vmnic)との紐づけが必要となります。従来、物理マシンに搭載されているNICはIPアドレスやMACアドレスをもちますが、ESXiにおけるvmnicはIPアドレスを持たず、仮想環境と物理環境をつなぐ橋渡しのような機能しかありません。そのため、物理環境から仮想環境への通信は、vNICに割り当てられたIPアドレス宛に行われます。
しかし、1つのvNICに1つのvmnicを割り当てると、ESXiホストには膨大な物理NICが必要になってしまいます。そこでvSphereは、ESXiホストの内部で仮想的なスイッチである仮想スイッチ(通称:vSwitch)を作ることで、この問題を解決しています。
1.2. 標準仮想スイッチ(vSphere Standard Switch)
仮想スイッチには標準仮想スイッチと分散仮想スイッチの2種類あります。今回は、標準仮想スイッチについてご説明します。
※分散仮想スイッチについては「第5回 ネットワークの設定(分散仮想スイッチ)」で説明しますので、そちらをご覧ください。
標準仮想スイッチは、ESXiホスト1台の中で独立した仮想スイッチです。まず、vSwitchには以下の図ように3種類のポートが存在します。
- アップリンクポート
- VMkernelポート
- 仮想マシンポートグループ
アップリンクポートは物理NICであるvmnicと紐づけられます。チーミングというvmnicの冗長化設定を行うこともできます。
VMkernelポートは、ESXiホストとの管理用通信や、vMotion・vSphere HA等のvSphereの機能を利用するために必要なポートです。vCenter ServerがESXiホストを管理するための通信は、このVMkernelポートを経由します。一般的には、機能やサービス毎に1つずつVMkernelポートを作成することが推奨とされています。
また、基本的にはVMKernelポート毎にネットワークセグメントを分けることが推奨とされています。理由は、ESXiにおいて、同一ネットワークサブネットで複数のVMKernelポートを使用することがサポートされていないためです。ネットワークセグメントを分けることでVMKernelポートを使用した通信を負荷分散させることができます。
仮想マシンポートグループは、vNICと接続して仮想マシンが通信を行うためのポートの集合です。vSwitchでは、ひとまとまりのポートグループとしてポートを管理するように実装されています。「本番環境用ポートグループ」や「開発環境用ポートグループ」のように、用途別にポートグループを作り、そのポートグループ毎にVLANを設定することが一般的です。
また、標準仮想スイッチはESXiホスト内で独立している仮想スイッチですので、ESXiホストが複数台あるときは、全てのESXiホストで同様の仮想スイッチを構成する必要があります。
1.3. 物理NIC(vmnic)のチーミングによる冗長設定
vmnicのチーミングとは、複数のvmnicを束ねることにより、「帯域幅の拡張」や「冗長性」を確保できる機能です。ひとつの仮想スイッチに対して複数のvmnicを割り当てることによって、自動的に構成されます。さらに、チーミングポリシーでロードバランシングやフェイルオーバーの順序を選択することで、様々なケースに適した冗長設定を行うことができます。
今回の記事では、フェイルオーバーの順序を指定することで冗長設定を行います。
2. 使用する環境
今回使用した環境は以下の通りです。
- ハードウェア:ESXi 3台(Nested仮想マシン)
※今回の検証環境ではESXiホスト1台あたり4つの物理NIC(vmnic0 ~ vmnic3)を搭載しています。
※「第1回 ESXiのインストール」でESXiの初期設定を行った際、ESXi管理ネットワーク用にvmnic0を指定しているため、vmnic0がvSwitch0に割り当たっている状態です。 - ソフトウェア:VMware ESXi 8.0 Update 2 / vCenter Server Appliance 8.0 Update 2
- ストレージ:iSCSIストレージ
※事前構築済のものを利用しています。
また、今回の環境では、以下の情報を使用しています。
コンポーネント | ホスト名 | IPアドレス |
---|---|---|
ESXi-A1 | esxi-a1.demo.local | 192.168.255.11/24 |
ESXi-A2 | esxi-a2.demo.local | 192.168.255.12/24 |
ESXi-A3 | esxi-a3.demo.local | 192.168.255.13/24 |
vCSA | vc-a1.demo.local | 192.168.255.100/24 |
コンポーネント | データストア | IPアドレス |
---|---|---|
データストア | iSCSI | 192.168.255.210/24 |
下図の赤枠部分を構築していきます。vSwitch0はESXiをインストールする際にデフォルトで作成される標準仮想スイッチ、vSwitch1は新規で作成する標準仮想スイッチです。それぞれのvSwitchに対してvmnicを2枚ずつ割り当て、チーミング設定(冗長設定)を行います。
また、これから説明する構築手順では、ESXi-A1に対する手順のみを記載しています。今回のようにESXi-A2、ESXi-A3と複数台ある場合は、それぞれに対して同じ手順を行ってください。
3. vSwitch0のネットワーク設定
標準仮想スイッチでは、仮想スイッチ単位またはポートグループの単位でチーミングすることで冗長構成にできます。
※ここでは1台目のESXiホストのみの手順を記載しています。複数台のESXiホストに対してネットワークを設定する場合は、1台ずつ同様に設定してください。
3.1. vSwitch0のチーミング設定
vSwitch0に対してvmnic0とvmnic1を割り当て、仮想スイッチ単位でチーミングを設定します。
1. ESXiホストに搭載されているvmnicの枚数を予め確認します。
- 左ペインの [esxi-a1.demo.local] をクリックします。
- 右ペインの [構成] タブをクリックします。
- [物理アダプタ] をクリックします。
- ESXiホストに搭載されているすべてのvmnicが表示されていることを確認します。
※今回の検証環境ではESXiホスト1台あたり4つのvmnic(vmnic0 ~ vmnic3)を搭載しています。
※「第1回 ESXiのインストール」でESXiの初期設定を行った際、ESXi管理ネットワーク用にvmnic0を指定しているため、vmnic0がvSwitch0に割り当たっている状態です。
2. vSwitch0の物理アダプタ設定画面を開きます。
- [仮想スイッチ] をクリックします。
- [物理アダプタの管理] をクリックします。
3. vmnicを移動させます
- ネットワーク アダプタで [vmnic1] をクリックします。
- [下へ移動]を数回クリックし、[vmnic1]を有効なアダプタへ移動させます。
4. 有効なアダプタへ移動できたら[OK] ボタンをクリックし、ウィザードを終了します。
5. Management Networkの設定を行います。
- [Management Network] の横にある [・・・] をクリックします。
- [設定の編集] をクリックします。
6. チーミングおよびフェイルオーバーの設定を行います。
- [チーミングおよびフェイルオーバー] をクリックします。
- ロードバランシングで [明示的なフェイルオーバー順序を使用] を選択します。
- フェイルオーバーの順序で未使用アダプタの [vmnic1] をクリックします。
- [上へ移動] ボタンをクリックし、vmnic1をスタンバイ アダプタに移動させます。
7. 設定内容を確認し、ウィザードを終了します。
- 有効なアダプタが [vmnic0]、スタンバイ アダプタが [vmnic1] になっていることを確認します。
- [OK] ボタンをクリックします。
8. VM Networkの設定を行います。
- [VM Network] の横にある [・・・] をクリックします。
- [設定の編集] をクリックします。
9. チーミングおよびフェイルオーバーの設定を行います。
- [チーミングおよびフェイルオーバー] をクリックします。
- ロードバランシングで [オーバーライド] にチェックを入れます。
- [明示的なフェイルオーバー順序を使用] を選択します。
- フェイルオーバーの順序で [オーバーライド] にチェックを入れます。
- 有効なアダプタの [vmnic0] をクリックします。
- [下へ移動] ボタンを数回クリックし、vmnic0をスタンバイ アダプタに移動させます。
10. 設定内容を確認し、ウィザードを終了します。
- 有効なアダプタが [vmnic1]、スタンバイ アダプタが [vmnic0] になっていることを確認します。
- [OK] ボタンをクリックします。
以上でvSwitch0におけるチーミングおよびフェイルオーバーの設定は完了です。Management Networkでは【アクティブ:vmnic0 / スタンバイ:vmnic1】、VM Networkでは【アクティブ:vmnic1 / スタンバイ:vmnic0】のようにタスキ掛けにしたことで、片方のvmnicが通信不可状態になったとしても、もう片方のvmnicに自動でフェイルオーバーされ、すぐに通信が再開されるようになります。
3.2. VMkernelポートでのネットワークサービス有効化
ここでは、VMkernelポートの用途を決めるため、ポートでネットワークサービスを有効化します。
VMkernelポートを使用した通信は、用途別に分けることが一般的です。例えば、管理用ネットワークやvMotion用ネットワーク等です。それらはネットワークの「サービス」と呼ばれており、vSwitch0のVMkernelポート(vmk0)にはデフォルトで管理サービスが有効になっています。
ただし、VMKernelポートにはiSCSI用ネットワークのサービスは存在しません。iSCSIストレージにはソフトウェアアダプタで設定したIPアドレスに従って通信を行います。
今回の検証環境では、vmk0にvMotionサービスを追加することで、vMotion用ネットワークを構築します。さらにiSCSI接続経路も同じネットワーク(192.168.255.0/24)にしていますので、vmk0に全ての通信が流れる構成となります。
1. vMotionサービスを有効化します。
- vmk0の横にある [・・・] をクリックします。
- [設定の編集] をクリックします。
※今回は検証環境の都合上、デフォルトで作成されるVMkernelポート(vmk0)にvMotionトラフィックを追加していますが、本来は、サービス毎にVMkernelポートを分けることが推奨されています。
2. vmk0にvMotionサービスを付与します。
- 使用可能なサービスで [vMotion] にチェックを入れます。
※ここでチェックを入れ忘れると、vMotion機能が利用できませんので注意してください。 - [OK] ボタンをクリックします。
4. vSwitch1のネットワーク設定
仮想マシンポートグループ用に、標準仮想スイッチvSwitch1を新規で作成し、vmnic2とvmnic3を割り当て、チーミングで冗長構成にします。
※ここでは1台目のESXiホストのみの手順を記載しています。複数台のESXiホストに対してネットワークを設定する場合は、1台ずつ同様に設定してください。
1. [ネットワークの追加] をクリックします。
2. 接続タイプを選択します。
- [標準スイッチの仮想マシンのポート グループ] を選択します。
- [次へ] ボタンをクリックします。
3. ターゲット デバイスを選択します。
- [新しい標準スイッチ] を選択します。
- [次へ] ボタンをクリックします。
4. スイッチに追加するvmnicを選択します。
- 未要求アダプタの欄で、[vmnic2] と [vmnic3] を選択します。
※CtrlキーやShiftキーを押しながら選択すると同時選択できます。 - [下へ移動] ボタンをクリックして、有効なアダプタへ移動させます。
5. vmnicが割り当たったことを確認します。
- 有効なアダプタに [vmnic2] と [vmnic3] が移動されたことを確認します。
- [次へ] ボタンをクリックします。
6. ネットワーク ラベルの設定を行います。
- ネットワーク ラベルで任意の名前を入力します。
※今回は仮想マシンポートグループを作成するため、[VirtualMachine] という名前を設定しています。 - [次へ] ボタンをクリックします。
7. 設定内容を確認し、[完了] ボタンをクリックします。
8. vSwitch0と同様に、vSwitch1にもフェイルオーバーの設定を行います。
- 作成したポートグループ名の横にある [・・・] をクリックします。
- [設定の編集] をクリックします。
9. vSwitch0と同様に、チーミングおよびフェイルオーバーの設定を行います。
- [チーミングおよびフェイルオーバー] をクリックします。
- ロードバランシングで [オーバーライド] にチェックを入れます。
- [明示的なフェイルオーバー順序を使用] を選択します。
- フェイルオーバーの順序で [オーバーライド] にチェックを入れます。
- 有効なアダプタの [vmnic3] をクリックします。
- [下へ移動] ボタンを数回クリックし、vmnic3をスタンバイ アダプタに移動させます。
10. 設定内容を確認し、ウィザードを終了します。
- 有効なアダプタが [vmnic2]、スタンバイ アダプタが [vmnic3] になっていることを確認します。
- [OK] ボタンをクリックします。
以上でvSwitch1におけるチーミングおよびフェイルオーバーの設定は完了です。仮想マシンについては、vNICをVirtualMachineポートグループに接続することで外部のネットワークと通信できるようになります。
5. Tips ~ 標準仮想スイッチのベストプラクティス ~
vSphereのドキュメントにある「vSphere ネットワークのベストプラクティス」では、ベストプラクティスのひとつとして「ネットワークサービスを物理的に分離する」ことが挙げられています。サービス毎にネットワークセグメントを分離することで、セキュリティとパフォーマンスを向上させることができます。
おさらいとなりますが、ネットワークサービスとは、管理用ネットワーク・vMotion用ネットワーク・仮想マシン用ネットワーク等、ネットワークの種類のことを指します。冒頭の標準仮想スイッチの説明で「機能やサービス毎に1つずつVMkernelポートを作成することが推奨とされています。」と説明した部分が該当します。
具体的には、VMKernelポート毎に標準仮想スイッチを作成し、vmnicを割り当てることです。下図のようなイメージになります。
ご覧の通り、管理用・vMotion用・仮想マシン用 のように、サービスによって標準仮想スイッチを作成することでネットワークを分離することができます。これによって、各サービスと専用の物理NICのセットができますので、各サービスのパフォーマンスが向上します。
しかし、このようにネットワークを分離した環境の場合、それぞれの仮想スイッチでvmnicが必要となりますし、冗長性を考慮するのであれば、さらにチーミングによる2重化が必要です。これは、物理サーバーに搭載できる物理NICの数や費用面としてもハードルが高い構成になると思います。
そこで、ポートグループ毎に異なるVLAN IDを設定することで、1つの標準仮想スイッチ内に複数のネットワークサービスがあったとしても、ネットワークを分離させることができます。このことを考慮したイメージが下図になります。
余談になりますが、物理NICではなくVLANでネットワークサービスを分離する構成は、VMwareのベストプラクティスをふまえたDell TechnologiesのHCI製品であるVxRailにも採用されています。VxRailでは標準仮想スイッチではなく、より機能が充実している分散仮想スイッチが利用されています。分散仮想スイッチでもこのベストプラクティスは共通です。
今回は、仮想ネットワークという「目に見えないもの」をご紹介しました。机上だけではなく、実際に手を動かすと理解しやすいと思います。是非今回の記事を参考に仮想ネットワークを構築してみてください!
次回は、さらに一歩踏み込んだ「分散仮想スイッチ」についてご紹介しますので、そちらも是非ご覧ください。
【SB C&S主催】 VMware製品 無償セミナーのご案内
VMwareテクニカル講座
VMwareの各種製品の機能をわかりやすく学んでいただくために、「VMwareテクニカル講座」と題するWebセミナーを無償で開催しています。これからVMware製品を学び始める方向けに重要な機能を一通り紹介しています。詳細、お申し込みはこちらをご確認ください。
VMwareテクニカルハンズオン
VMwareテクニカル講座をベースにした、より実践的なハンズオンセミナーを無償で開催しています。詳細、お申し込みはこちらをご確認ください。
皆様のご参加をお待ちしております。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 技術統括部
第1技術部 1課
大塚 亜人夢 - Atomu Otsuka -
VMware vExpert