ESXi PSOD – Intel Ethernet Controller X710
Merhaba,
Geçtiğimiz günlerde yaşamış olduğum bir PSOD’u sizinle paylaşmak istiyorum. Host’un üzerinde çalışan virtual machine’lerde herhangi bir sorun yok iken, host’un biranda PSOD’a düşüp üzerinde bulunan virtual machine’lerin ise vSphere HA ile farklı host’lar üzerinde açıldığı bir durum ile karşılaştım. Bu PSOD Intel X710 10GbE SFP kullanılan ortamlarda NIC’in fail olmasından kaynaklanıyor. Özellikle kullanılan Firmware ve Driver’dan kaynaklı bu sorunun oluşabileceği yönünde bilgiler bulunuyor. Zaten yazının sonunda KB’leride paylaşacağım.
@BlueScreen: #PF Exception 14 in world wwww:WorldName IP 0xnnnnnnnnnn addr 0x0 PTEs:0x0; 0xnnnnnnnnnnnn [0xnnnnnnnnnnnn] i40e_lan_xmit_frame@#+0x3a4 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] [email protected]#9.2+0x137 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] UplinkDevTransmit@vmkernel#nover+0x295 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] NetSchedFIFORunLocked@vmkernel#nover+0x1a5 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] NetSchedFIFOInput@vmkernel#nover+0x24e 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] NetSchedInput@vmkernel#nover+0x191 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] IOChain_Resume@vmkernel#nover+0x247 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] PortOutput@vmkernel#nover+0xe3 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] TeamOutputPerFrame@#+0x26f 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] TeamES_Output@#+0x115 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] EtherswitchPortDispatch@#+0x13e6 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] Port_InputResume@vmkernel#nover+0x146 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] Port_Input_Committed@vmkernel#nover+0x29 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] Vmxnet3VMKDevTQDoTx@vmkernel#nover+0x2f8 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] Vmxnet3VMKDev_AsyncTx@vmkernel#nover+0xd7 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] NetWorldletPerVMCB@vmkernel#nover+0xae 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] WorldletProcessQueue@vmkernel#nover+0x489 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] WorldletBHHandler@vmkernel#nover+0x60 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] BH_Check@vmkernel#nover+0x185 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] VMMVMKCall_Call@vmkernel#nover+0x27a 0xnnnnnnnnnnnn:[0xnnnnnnnnnnnn] __vmk_versionInfo_str@#+0xf14dd015
Bu yazıda belirtmiş olduğum PSOD’u yaşıyorsanız muhtemelen yukarıdaki satırların aynısını sizde göreceksiniz. Bu PSOD’un sebebi TSO ve LRO ‘nun driver’da enable olarak gelmesinden kaynaklanmaktadır. TSO ve LRO diye belirttiğim değerler hakkında kısaca bilgi vermek istiyorum. Fiziksel ve virtual machine NIC’lerinde TSO ve LRO’yu kullanmak, TCP / IP network operasyonlarında CPU yükünü azaltarak ESX / ESXi host’ların performansını artırır.
Sorunun çözümü olarak bir workaround belirtilmiş. Bunun için LRO ve TSO’nun disable edilmesi gerekmektedir.
esxcli system settings advanced list -o /Net/UseHwTSO
Yukarıdaki komut ile TSO ‘nun enable olduğunu doğruluyoruz. Yukarıdaki komutu çalıştırdığımızda aşağıdaki gibi bir sonuç ile karşılaşıyoruz.
esxcli system settings advanced list -o /Net/UseHwTSO Path: /Net/UseHwTSO Type: integer Int Value: 1 Default Int Value: 1 Min Value: 0 Max Value: 1 String Value: Default String Value: Valid Characters: Description: When non-zero, use pNIC HW TSO offload if available
Yukarıdaki değerleri incelediğimizde Int Value değerinin 1 olduğunu görüyoruz. Disable olması için bunun 0 olması gerekmektedir.
esxcli system settings advanced set -o /Net/UseHwTSO -i 0 esxcli system settings advanced set -o /Net/UseHwTSO6 -i 0
Yukarıdaki komutları çalıştırarak host bazında TSO ve TSO6 ‘yı disable duruma getiriyoruz.
LRO disable etmek için öncelikle durumunu kontrol ediyoruz.
esxcli system settings advanced list -o /Net/TcpipDefLROEnabled
Bunun için yukarıdaki komutu çalıştırıyoruz. Int Value değerinin 1 olduğunu görüyoruz.
Tüm VMkernel adaptorlerin’de LRO disable etmek için aşağıdaki komutu çalıştırıyoruz.
esxcli system settings advanced set -o /Net/TcpipDefLROEnabled -i 0
Tüm bu işlemleri tamamladıktan sonra ESXi host’u reboot etmeniz gerekiyor. Reboot ettikden sonra değiştirdiğiniz parametreler geçerli oluyor. ESXi host’u reboot ettikden sonra yukarıda belirttiğim list komutları ile tekrar kontrol edebilirsiniz.
Bu işlemi yaptığınızda network’de %20’lik bir performans kaybı yaşayabilirsiniz. Bunu göz önünde bulundurmanız gerekmektedir. Konu ile ilgili aşağıdaki KB’leri inceleyebilirsiniz.
https://kb.vmware.com/kb/2126909
https://kb.vmware.com/kb/2055140
Umarım faydalı olmuştur.
İyi çalışmalar.
Elinize kolunuza sağlık, VMware konusunda en iyi Türkçe kaynak sizin siteniz. Çok teşekkürler.
Çok teşekkürler.