在 vRNI 4.2 或更高版本中启用虚拟基础架构延迟功能时,为 NSX 6.4.5 或 6.4.6 准备的 ESXi 主机将显示 Purple Screen of Death (PSOD) 诊断屏幕。
问题
当 BFD 隧道数量超过 900 时,将显示 PSOD 诊断屏幕。
原因
vRNI 中的虚拟基础架构延迟功能使用 NSX 就绪型主机上的 BFD 监控功能在主机之间建立隧道。通过控制层面代理响应详细 BFD 隧道查询时,如果 NSX 内核模块保持 BFD 会话的状态,则会出现 PSOD。
如果 BFD 隧道的数量为几百个,则不会出现 PSOD。当 BFD 隧道的数量超过 900 时,主机会出现严重错误,并变为不可操作状态。要创建 900 个以上 BFD 隧道的主机数量取决于您环境中的 VTEP 数量。
要确定环境中 BFD 隧道的数量,请使用以下公式:(N-1)*(T^2)
其中:
- N 是主机数量。
- T 是每个主机的 VTEP 数量。
例如,在每个主机具有两个 VTEP 的四主机群集中,每个主机可以看到的 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 状态更改: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.