概要
このドキュメントでは、さまざまな第3世代Cシリーズ仮想インターフェイスカード(VIC)アダプタのネットワークインターフェイスカード(NIC)のリオーダーの問題について説明します。動作の変化は、仮想ネットワークインターフェイスカード(VNIC)/仮想ホストバスアダプタ(vHBA)の配置、デバイスの順序、Peripheral Component Interconnect(PCI)の列挙を参照して認識され、さまざまなオペレーティングシステム(OS)からPCIの再順序の問題が発生します。
背景説明
この問題の原因は次のとおりです。
- vNICの追加/削除
- サーバのリブート
- サーバのアップグレード
この問題は、BIOS、ファームウェア、パッチアップグレードを適用した後、または新しいNICを追加するために発生するNIC列挙が原因です。
外部にネットワーク通信を提供する仮想スイッチ(vSwitch)は、仮想マシンネットワークインターフェイスコントローラ(VMNIC)名に基づいて設定されます。すべてのNICの名前が変更されると、vSwitchは存在しなくなったインターフェイスにパケットをルーティングします。
Unified Computing System Manager(UCSM)は、VIC13XXホストポートを扱う場合の標準のロードバランスアルゴリズムに従います。
次の点に注意してください。
- vNICの総数は、相対的なキャパシティ比率に比例して分配されます。
- システムは、vNICの容量が大きいアダプタカードに多くのvNICを配置し、容量が小さいアダプタカードに少ないvNICを配置しようとします。その結果、実際の配置がvNICに適切に割り当てられ、vNICは目的のPeripheral Component Interconnect(PCIe)アダプタカードにマッピングされます。この配置は、実際の順序で行われます。
- Mixed-Mezz設定の場合、すべてのアダプタカードが必要な機能をサポートしている限り、負荷分散アルゴリズムにより、少なくとも1つのvNICと1つのvHBAが各アダプタカードに配置されます。
VMWare OSシステムへの影響
PCI IDとVMNICの番号関係はブート時に決定され、持続性を確保するために/etc/vmware/にあるesx.confファイルに自動的に入力されます。ESX/ESXiホストは、最初にセグメント番号、次にバス番号、スロット番号、最後に機能番号をスキャンします。この順序により、同じマルチポートNIC上のポートに順番に番号が付けられます。
ESXi/ESXがインストールされると、VMNICの順序は順番に並びます。NICが取り外され、他のNICが追加されると、この変化は時間とともに起こります。その結果、VMNICの順序は望ましくなく、他のESX/ESXiホストの命名規則と同期しません。
ESXiがVMNICおよびvHBAデバイスを列挙する際に、必ずしもPCIアドレスの順序に従うとは限りません。初期インストールでは、PCIアドレスに従います。ただし、デバイスが削除されて追加されると、順序を処理する特定のアルゴリズムが存在します。これにより、サービスプロファイルとOSの間でVNIC/vHBA注文が誤ったり、同期しなくなる可能性があります。
VMware KBを参照:http://kb.vmware.com/kb/2019871
ESXi 5.5および6.0では、これらの症状が続く場合でも、注文アルゴリズムが変更されています。http://kb.vmware.com/kb/ 2091560を参照してください。
解決方法
初期インストール時に、新しい名前スキームは物理ロケーションによって予測可能な順序で名前を割り当てようとします。その後、システムに他のデバイスを追加または削除しても、デバイスの名前が安定します。インストール時には、通常、システムのマザーボードに統合されたデバイスは、その出力ポートがシステムのケースで番号が付けられた順に、最も小さい番号の名前を受け取り、プラグ可能なスロットにあるデバイスは、ケースで番号が付付付付次がき。このプロセスでは、ドライバが見つからないデバイスは無視されます。
回避策
この問題は、次のソリューションで解決できます。
ステップ1:ESXiの再インストール。
ステップ2:ESXi Secure Shell(SSH)からの順序の変更を手動で修正します。
ステップ3:UCSMでvNIC/vHBA配置ポリシーを作成します。
ステップ2:ESXi SSHからの再発注を手動で修正します(SSHを使用)。
1.図に示すように、サーバのUCSM GUIからMACアドレスマッピングを取得します。
2. ESXi CLIからMACアドレスマッピングを取得します。
[root@ucs-116:~] esxcli network nic list
3. UCSMからのMACアドレスがesxcli network nicリストの出力と一致するかどうかを確認します。
この出力では、MACアドレスが一致せず、vmnic2とvmnic4が入れ替えられました。これは、PCIバスの再順序付けの問題が原因です。
4. esxcliでPCIバスの順序を確認します。
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias list | grep -i vmnic | sort -k3
vmnic2とvmnic4の間のPCIバスの順序がスワップされました。
5. PCIバス番号をメモし、次のコマンドを使用して順序を変更します。
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --alias
vmnic2 --bus-address s00000000:05.00 --bus-type pci
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --alias
vmnic4 --bus-address s00000000:07.00 --bus-type pci
6.再起動し、ホストが起動したら、PCIの順序とNICのリストを確認します。
PCIの再発注を正しく修正しました。
ステップ3:UCSMでのvNIC/vHBA配置ポリシーの作成
UCSMで、[Service Profile] > [Network] > [Modify vNIC/vHBA Placement]に移動します。
1.初期インストール時:図に示すように[Modify vNIC/vHBA Placement Policy]に移動します。
2.現在、管理ホストポートがANYと表示されています。これはラウンドロビン割り当てで、ホストポート1にvnic0、ホストポート2にvnic1を配置します。サービスプロファイルに2つのvNICを追加する場合は、最初に既存のvNICの割り当てホストポートと一致します。
3.次に、新しいvNICをホストポート2のみに追加します。これにより、既存のvNICのPCIアドレスが保持され、再割り当てが行われなくなります。
注:これで、ホストポート1に1つのvNICが、ホストポート2に3つのvNICが割り当てられました。ロードバランシングのポイントは、負荷と帯域幅が均等に分散されるようにすることです。1つのホストポートの負荷が高い場合、パフォーマンスや帯域幅に影響を与える可能性があります。追加のvNICを2つ以上作成する必要がある場合は、ホストポートを均等に分散させるために、OSの再インストールを計画することをお勧めします。
不具合
機能拡張不具合が提出されました。HXインストーラは、PCI NICの再順序付けを回避するために、vNIC/vHBA配置ポリシーを作成する必要があります。
注:vCON配置ポリシー(vCONまたは管理ホストポート)を変更すると、PCIe列挙が異なる場合があります。vCON1 vNICは、vCON2 vNICの前に列挙されています。