vSphere Distributed Switch(vDS)を作り、iSCSI・vMotion・vSAN 用のポートグループと VMkernel アダプターを 3 台のホストにまとめて設定する手順です。通信ごとに使う物理 NIC(アップリンク)を分け、vMotion と vSAN はアクティブ/スタンバイで冗長化し、iSCSI はポートバインドのために 1 本ずつに固定します。
この記事の前提
参照した公式ドキュメント
設計
各ホストの 5 枚の NIC を次のように使います。vmnic0(管理・仮想マシン)は、インストール時の標準スイッチ(vSwitch0)のままにします。
| ポートグループ | 用途 | サブネット | アクティブ | スタンバイ | 未使用 |
|---|---|---|---|---|---|
| iSCSI-A | iSCSI 経路 A | 10.20.81.0/24 | Uplink 1(vmnic1) | なし | Uplink 2〜4 |
| iSCSI-B | iSCSI 経路 B | 10.20.82.0/24 | Uplink 2(vmnic2) | なし | Uplink 1・3・4 |
| vMotion | vMotion | 10.20.85.0/24 | Uplink 3(vmnic3) | Uplink 4(vmnic4) | Uplink 1・2 |
| vSAN | vSAN | 10.20.83.0/24 | Uplink 4(vmnic4) | Uplink 3(vmnic3) | Uplink 1・2 |
| ホスト | vMotion(vmk1) | iSCSI-A(vmk2) | iSCSI-B(vmk3) | vSAN(vmk4) |
|---|---|---|---|---|
| doc-esx1 | 10.20.85.114 | 10.20.81.114 | 10.20.82.114 | 10.20.83.114 |
| doc-esx2 | 10.20.85.115 | 10.20.81.115 | 10.20.82.115 | 10.20.83.115 |
| doc-esx3 | 10.20.85.116 | 10.20.81.116 | 10.20.82.116 | 10.20.83.116 |
iSCSI のポートバインド(ソフトウェア iSCSI アダプターに VMkernel を結び付けて複数の経路を使う方法)では、公式ドキュメントのとおり、VMkernel ごとにアクティブなアップリンクを 1 本だけにし、ほかは未使用(Unused)にします。スタンバイを置くと、ポートバインドに使えません。
vMotion と vSAN は、アクティブとスタンバイを互い違いにしています。ふだんは別々の NIC を使い、片方の NIC が故障したらもう片方の NIC に寄せます。
vSphere Distributed Switch の作成
(1) [Networking] のビュー(左上の地球のアイコン)でデータセンター(DC-doc)を選び、[ACTIONS] → [Distributed Switch] → [New Distributed Switch] をクリックします。

(2) [Name] に名前を入力して [NEXT] をクリックします。

| 項目 | 設定値 |
|---|---|
| Name | DSwitch-doc |
| Location | DC-doc |
(3) [Select version] で vDS のバージョンを選んで [NEXT] をクリックします。つなぐホストの ESXi のうち、最も古いバージョンに合わせます。ここではすべて 8.0.3 なので [8.0.3 – ESXi 8.0.3 and later] を選びました。

(4) [Configure settings] で、アップリンクの数と既定のポートグループを設定して [NEXT] をクリックします。

| 項目 | 説明 | 設定値 |
|---|---|---|
| Network Offloads compatibility | DPU(SmartNIC)にネットワーク処理をオフロードする場合に選びます | None |
| Number of uplinks | 各ホストで vDS に接続する物理 NIC の数です | 4 |
| Network I/O Control | 通信の種類ごとに帯域を配分する機能です | Enabled(既定) |
| Default port group | vDS と一緒にポートグループを 1 つ作ります | オン |
| Port group name | 既定のポートグループの名前です | vMotion |
(5) [Ready to complete] で内容を確認して [FINISH] をクリックします。

分散ポートグループの作成
(1) vDS(DSwitch-doc)を選び、[ACTIONS] → [Distributed Port Group] → [New Distributed Port Group] をクリックします。

(2) [Name] にポートグループの名前(vSAN)を入力して [NEXT] をクリックします。

(3) [Configure settings] で、[Customize default policies configuration] をオンにして [NEXT] をクリックします。オンにすると、この後のページでセキュリティやチーミングを設定できます。

| 項目 | 説明 | 設定値 |
|---|---|---|
| Port binding | Static binding(仮想マシンやVMkernel をつないだ時点でポートを割り当てる)が既定です | Static binding |
| Port allocation | Elastic にすると、ポートが足りなくなったときに自動で増やします | Elastic |
| Number of ports | 最初に作るポートの数です | 8 |
| VLAN type | VLAN を使う場合は VLAN を選んで ID を入力します | None |
(4) [Security] はすべて [Reject](既定)のまま [NEXT] をクリックします。[Traffic shaping](帯域制限)も既定のまま進めます。

(5) [Teaming and failover] で、[MOVE UP] / [MOVE DOWN] でアップリンクの順番を設計のとおりに並べます。vSAN は、Uplink 4 を [Active uplinks]、Uplink 3 を [Standby uplinks]、Uplink 1・2 を [Unused uplinks] にしました。[NEXT] で進みます。

| 項目 | 説明 | 設定値 |
|---|---|---|
| Load balancing | 複数のアクティブなアップリンクの使い分け方です | Route based on originating virtual port(既定) |
| Network failure detection | アップリンクの故障の検出方法です。Link status only はリンクの切断で判断します | Link status only(既定) |
| Notify switches | フェイルオーバー時に物理スイッチへ通知します | Yes(既定) |
| Failback | 故障した NIC が戻ったら元の NIC に戻します | Yes(既定) |
| Failover order | Active(使う)/Standby(故障時に使う)/Unused(使わない)の順番です | 設計の表のとおり |
(6) [Monitoring]・[Miscellaneous] は既定のまま進め、[Ready to complete] で [FINISH] をクリックします。

(7) vDS の作成時にできた vMotion のポートグループも、[ACTIONS] → [Edit Settings] → [Teaming and failover] で、Uplink 3 をアクティブ、Uplink 4 をスタンバイ、Uplink 1・2 を未使用にして [OK] をクリックします。

(8) 同じように、iSCSI-A(アクティブ Uplink 1 のみ、ほかは未使用)と iSCSI-B(アクティブ Uplink 2 のみ、ほかは未使用)のポートグループを作ります。
ホストの追加と物理 NIC の割り当て
(1) vDS を選び、[ACTIONS] → [Add and Manage Hosts] をクリックします。[Select task] で [Add hosts] を選んで [NEXT] をクリックします。

(2) [Select hosts] で、[SELECT ALL] をクリックして 3 台のホストを選び、[NEXT] をクリックします。

(3) [Manage physical adapters] の [Adapters on all hosts] で、各物理 NIC の [Assign uplink] を選びます。ここでの割り当ては、同じ名前の NIC を持つすべてのホストに使われます。vmnic0 は vSwitch0 で使っているので [None] のままにします。

| 物理 NIC | Assign uplink |
|---|---|
| vmnic0 | None(vSwitch0 のまま) |
| vmnic1 | Uplink 1 |
| vmnic2 | Uplink 2 |
| vmnic3 | Uplink 3 |
| vmnic4 | Uplink 4 |
(4) [Manage VMkernel adapters] では、管理用の vmk0 を移さないので何も変えずに [NEXT] をクリックします。[Migrate VM networking] も同じく何も変えずに進めます。

(5) [Ready to complete] で、追加するホストの数(3)と物理 NIC の数(12)を確認して [FINISH] をクリックします。

VMkernel アダプターの追加
(1) ポートグループ(vMotion)を選び、[ACTIONS] → [Add VMkernel Adapters] をクリックします。

(2) [Select hosts] で、[SELECT ALL] をクリックして 3 台のホストを選び、[NEXT] をクリックします。

(3) [Configure VMkernel adapter] で、[Enabled services] の [vMotion] をオンにして [NEXT] をクリックします。

| 項目 | 説明 | 設定値 |
|---|---|---|
| IP settings | IPv4 / IPv6 です | IPv4 |
| MTU | ジャンボフレームを使う場合は vDS の MTU と合わせます | Get MTU from switch(1500) |
| TCP/IP stack | Default のほか、vMotion 専用のスタック(vMotion)も選べます | Default |
| Enabled services | この VMkernel で行う通信の種類です | vMotion(vSAN 用は vSAN、iSCSI 用は何も選びません) |
(4) [IPv4 settings] で、[Use static IPv4 settings] を選び、ホストごとに IP アドレスとサブネットマスクを入力して [NEXT] をクリックします。ゲートウェイは設定しません。

(5) [Ready to complete] で内容を確認して [FINISH] をクリックします。

(6) 同じように、vSAN(サービス [vSAN])、iSCSI-A・iSCSI-B(サービスなし)のポートグループにも VMkernel を追加します。IP アドレスは設計の表のとおりです。
【検証環境】iSCSI-A・iSCSI-B・vSAN の VMkernel は、同じ設定を pyVmomi(vSphere の Python SDK)で一括作成しました。Web UI の操作は vMotion と同じです。
設定の確認
(1) vDS の [Configure] → [Topology] で、4 つのポートグループにそれぞれ 3 つの VMkernel ポートがあり、4 つのアップリンクにそれぞれ 3 枚の NIC がつながっていることを確認します。

(2) ESXi の SSH で、VMkernel ごとに通信先へ ping が通ることを確認します(doc-esx1 の例)。-I で使う VMkernel を指定します。
vmkping -I vmk1 -c 2 10.20.85.115
vmkping -I vmk4 -c 2 10.20.83.116
vmkping -I vmk2 -c 2 10.20.81.10
vmkping -I vmk3 -c 2 10.20.82.10
検証環境では、4 つとも「2 packets transmitted, 2 packets received, 0% packet loss」でした(10.20.81.10・10.20.82.10 は iSCSI ストレージの 2 つのポータルです)。