ESXi PSOD – Intel Ethernet Controller X710

tarafından 11 Nisan 2017 tarihinde VMware, VMware ESXi kategorisine yazıldı.

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] DevStartTxImmediate@com.vmware.driverAPI#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.

email

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur.Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2017, VCP5, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.