このドキュメントでは、Cisco Nexus 1000V シリーズ スイッチの仮想スーパーバイザ モジュール(VSM)がホスト UUID の変更を処理する方法について説明します。 適切な数またはタイプのライセンスが使用できない場合は、トラフィック フローが中断される可能性があります。
Nexus 1000V スイッチの VSM は、ハードウェアの汎用一意識別子(UUID)に基づいてホストにライセンスを発行します。 これは、ホスト UUID が何らかの理由で変更された場合に、VSM による新しいホストとして表示されることを意味します。 ホスト UUID がそのライフタイム中に変更されることは異常ですが、UUID の変更を引き起こす可能性のある 2 つのシナリオ(ESXi 5.0 での VMware ソフトウェアの不具合と M3 ブレードでの Cisco Unified Computing System(UCS)ファームウェアの不具合)が知られています。
UUID が変更されると、VSM は過去にロードされたモジュールを新しいホストとして認識します。 そのホストは新しいモジュールとしてロードされ、新しいモジュール番号と新しいライセンスが割り当てられます。 ライセンスが使用できない場合は、ホストにオーバードラフト ライセンスが割り当てられます。 オーバードラフトが使用できない場合は、ホストにライセンスが割り当てられません。 このホスト上に実稼働仮想マシン(VM)が存在する場合は、トラフィックを通過させることができなくなります。これは、ライセンスされていないホストは VSM からプログラミングを受信できないためです。
VMware ESXi 5.0 システムのシステム管理 BIOS(SMBIOS)バージョンがバージョン 2.6 以降の場合に、ESXi 5.0 ホストから報告される SMBIOS UUID が実際の SMBIOS UUID と異なります。 UUID の最初の 3 つのフィールドのバイト順が正しくありません。
SMBIOS 仕様で、x86 アーキテクチャ システム上の BIOS インターフェイスが拡張され、マザーボードとシステムのベンダーが製品に関する管理情報を標準形式で提示する方法が規定されています。 この情報の目的は、汎用の計器で、デスクトップ管理インターフェイス(DMI)、Common Information Model(CIM)、またはダイレクト アクセスを使用する管理アプリケーションにこの情報を配信して、システム ハードウェアのプレゼンス検出などの間違いが発生しやすい操作の必要性を排除できるようにすることです。
SMBIOS 仕様の目的は、BIOS 開発者が必要な拡張機能を実装して、製品上のハードウェアとその他のシステムに関する情報が、定義されたインターフェイスのユーザによって正しく特定されるのに十分な情報を提供することです。
VMkernel が CIM を使用するハードウェアと対話してこの情報を渡します。 仮想イーサネット モジュール(VEM)が VMkernel と対話して、VMkernel 内の CIM によって最初にハードウェアから収集された UUID 情報を読み取ります。 VEM UUID は ESXi UUID と同じです。
VEM を起動または再起動(vem start/restart)すると、startDpa 関数が呼び出されます。 startDpa 関数は、/opt/cisco/vXXX/nexus/vem-vXXX/shell/vssnet-functions のスクリプトを呼び出し、ESXi ホストから UUID を抽出します。
setBiosUuid()
{
local UUID
UUID=$(esxcfg-info -u | awk '{print tolower($1)}')
if [ "${UUID}" != "" ] ; then
doCommand ${VEMCMD} card uuid vmware ${UUID}
fi
}
注:
Cisco UCS B200 M3、B220 M3、または B440 M3 ブレード サーバ上で VMwave ESXi 4.1 または ESXi 5.1 にアップグレードすると、UUID が間違って変換されます。 これは、表示上の問題だけで、ブレードに関連付けられたサービス プロファイルには影響しません。
注:
次の手順では、UUID の変更が原因で発生する問題の解決方法について説明します。
# show module vem mapping <-- old UUID shows unlicensed
# show vms internal info host-table
~ # esxcfg-info |grep UUID <-- new UUID of host
Nexus1000v# conf t
Nexus1000v(config)# no vem 'x'
Nexus1000v# show module vem mapping
Mod Status UUID License Status
--- ----------- ------------------------------------ --------------
3 powered-up 24266920-d498-11e0-0000-00000000000f licensed
4 powered-up 24266920-d498-11e0-0000-00000000000e licensed
Nexus1000v# conf tステップ 1 で示したように、ホストの新しい UUID を使用します。
Nexus1000v(config)# vem <lowest unused module #>
Nexus1000v(config-vem-slot)# host vmware id <uuid>
~ # esxcfg-info |grep UUID
VEM_MGR-2-VEM_MGR_REMOVE_NO_HB Removing VEM 15 (heartbeats lost)
ETH_PORT_CHANNEL-5-PORT_DOWN port-channel15: Ethernet15/1 is down
VEM_MGR-2-MOD_OFFLINE Module 15 is offline
VIM-5-IF_DETACHED Interface Vethernet248 is detached
VEM_MGR-2-VEM_MGR_DETECTED Host ?hostname? detected as module 32
VEM_MGR-2-VEM_MGR_UNLICENSED License for VEM 32 could not be obtained. Please contact your Cisco
account team or partner to purchase Licenses. To activate your purchased licenses, click on
www.cisco.com/go/license .
VEM_MGR-2-MOD_ONLINE Module 32 is online