概要
複数のvmkernelポートを作成する(管理専用、vMotion専用、NFS用、...を分ける)時はセグメントを分けます。
詳細
vmkernelポートの用途は管理通信、vMotion通信、NFS通信など複数あります。これらのトラフィックを分けたり、トラフィックシェーピングをかけるなどの目的で、個別にvmkernelポートを作成することがあります。この時は、各vmkernelポートグループに別々のセグメントのIPアドレスを与えます。
同一セグメント使用時の挙動
「ESX/ESXi 上のマルチホーミング (2094476) | VMware KB」によれば、複数のVMkernel ポートを同じIPサブネットで作成すると、次のような動作をします。
例:VMkernel ポートを次のように構成した場合
・vMotion 用の 1 つの VMkernel ポート。次の名前を付けます。 vmk0
・iSCSI 用のもう 1 つの VMkernel ポート。次の名前を付けます。 vmk1
これらの vmknic の両方が同じ IP サブネットで構成される場合、VMkernel TCP/IP スタックでは、そのサブネットで出て行くすべての VMkernel トラフィック(vMotion および NFS)の 2 つのインターフェイスのうちいずれかを選択します。
「Why is vMotion using the management network instead of the vMotion network? - frankdenneman.nl」によれば、以下の動作をするようです(該当部を筆者が和訳)。
管理ネットワーク(正確には1つ目のVMkernel NIC)とvMotionネットワークが同じサブネット(同じIP範囲)を共用している場合、vMotionはトラフィックをこのネットワークに接続された1つ目のVMkernel NICから送り出します。vMotionネットワークを別の標準スイッチや分散スイッチに作成しているかとか、別のNICを割り当てているかには関わらず、vMotionは同じIP範囲/サブネット上で検出された1つ目のVMkernelをデフォルトとします。
この挙動は送信元のホストによる送出にだけ適用されることに注意してください。宛先ホストではvMotionネットワークでのみ到達したvMotionトラフィックを受け取ります!
問題
以下の問題状況が想定されます。
- 管理ポート(vmk0)とvMotion用ポート(vmk1)を分け、vMotion用ポートにトラフィックシェーピングをかけたのに、実際のvMotion時には大域幅いっぱいの通信が流れる。
- 管理通信とvMotion通信の物理NICやスイッチを分けている場合、送信側ホストは管理ポート(vmk0)からvMotionトラフィックを送り出し、宛先側ホストはvMotion用ポート(vmk1)で待ち受けるため、vMotionトラフィックが届かない。
参照
- ESX/ESXi 上のマルチホーミング (2094476) | VMware KB
- Why is vMotion using the management network instead of the vMotion network? - frankdenneman.nl
本ページ内容は筆者が参照の便のためにある持点でまとめた個人的なメモです。内容を保証するものではなく、また筆者の所属組織等とは一切かかわりがありません。