vRNI 4.2 以降で仮想インフラストラクチャの遅延機能が有効になっていると、NSX 6.4.5 または 6.4.6 用に準備された ESXi ホストで、PSOD (Purple Screen of Death) 診断画面が表示されます。
問題
BFD のトンネル数が 900 を超えると、PSOD 診断画面が表示されます。
原因
vRNI の仮想インフラストラクチャ遅延機能は、NSX 準備済みホストの BFD モニタリングを使用して、ホスト間のトンネルを確立します。NSX カーネル モジュールが、制御プレーン エージェントから送信された BFD トンネル クエリに応答するときに、BFD セッションの状態が保持されていると、PSOD が発生します。
BFD トンネルの数が数百であれば、PSOD は発生しません。BFD トンネルの数が 900 を超えると、ホストで重大なエラーが発生し、動作不能になります。900 を超える BFD トンネルを作成するホストの数は、環境内の VTEP の数によって異なります。
環境内の BFD トンネル数は次の計算式で算出します。(N-1)*(T^2)
ここで:
- N はホストの数です。
- T は、ホストごとの VTEP の数です。
たとえば、それぞれが 2 つの VTEP を持つ 4 台のホストから構成されるクラスタの場合、各ホストが認識できる BFD トンネルの数は次のようになります。
(4-1)*(2^2)=12
PSOD のスタック トレースで、次のようなエントリを確認します。
#0 DLM_free (msp=0x431a455dcca0, mem=mem@entry=0x431a458cbd10, allowTrim=allowTrim@entry=1 '\001') at bora/vmkernel/main/dlmalloc.c:4924 #1 0x0000418012343ffa in Heap_Free (heap=0x431a455dc000, mem=<optimized out>, mem@entry=0x431a458cbd10) at bora/vmkernel/main/heap.c:4314 #2 0x000041801222db25 in vmk_HeapFree (heap=<optimized out>, mem=mem@entry=0x431a458cbd10) at bora/vmkernel/core/vmkapi_heap.c:250 #3 0x000041801393ca61 in __VDL2_Free (heapID=<optimized out>, data=data@entry=0x431a458cbd10) at /build/mts/release/bora-13168956/esx-datapath/modules/vdl2/vdl2.c:152 #4 0x0000418013950caf in VDL2_CPTaskFree (task=task@entry=0x431a458cbd10) at /build/mts/release/bora-13168956/esx-datapath/modules/vdl2/vdl2_ctlplane.c:164 #5 0x0000418013949415 in VDL2CPWorldProcessTask (task=0x431a458cbd10) at /build/mts/release/bora-13168956/esx-datapath/modules/vdl2/vdl2_cpworld.c:283 #6 VDL2CPWorldFunc (data=data@entry=0x0) at /build/mts/release/bora-13168956/esx-datapath/modules/vdl2/vdl2_cpworld.c:335 #7 0x0000418012308adf in vmkWorldFunc (data=<optimized out>) at bora/vmkernel/main/vmkapi_world.c:528 #8 0x00004180124c91f5 in CpuSched_StartWorld (destWorld=<optimized out>, previous=<optimized out>) at bora/vmkernel/sched/cpusched.c:10792 #9 0x0000000000000000 in ?? ()
ホストの
/var/log/vmkernel.log ファイルで、次のエントリを確認します。これは、BFD がホスト上で有効になっていることを表します。
# cpu75:68603 opID=6616a61a)vxlan: VDL2PortsetPropSet:1036: Updating BFD VTEP config to : enable # cpu75:68603 opID=6616a61a)BFD: BFD_CreateNewSession ENTER: localIP: a.b.c.d , remoteIP: w.x.y.z , probeInterval (in milli seconds): 12000 # cpu75:68603 opID=6616a61a)WARNING: BFD: Inserted new session: Discriminator 1471713223, localIP: a.b.c.d remoteIP: w.x.y.z
ESXi のコア ダンプまたはメモリ ダンプで、BFD メッセージ (BFD state change: init -> up) を確認します。
less vmkernel-zdump.1 vers:1 diag:"No Diagnostic" state:up mult:3 length:24 flags: pol my_disc:0x50c322ca your_disc:0x39f2436f min_tx:300000us (300ms) min_rx:12000000us (12000ms) min_rx_echo:0us (0ms)(null): BFD state change: init->up "No Diagnostic"->"No Diagnostic".(null): New remote min_rx. vers:1 diag:"No Diagnostic" state:up mult:3 length:24 flags: pol my_disc:0x5a566ae8 your_disc:0x16f3890c min_tx:300000us (300ms) min_rx:12000000us (12000ms) min_rx_echo:0us (0ms)(null): BFD state change: init->up "No Diagnostic"- >"No Diagnostic".(null): New remote min_rx.