Özellikle HPE sunucularında çalıştırılan ESXi 7.0.x sürümlerinde belirli bileşenlerin (vmware-usbarbitrator, sfcb-vmw-ipmi, sensord veya vdpi) “bellek tahsis edilemiyor” (Out of Memory) hataları verdiği gözlemlenmiştir.
Bu durum sistemde ağ gecikmelerine, ESXi hostlarının yanıt vermemesine ve sanal makinelerin beklenmedik şekilde yeniden başlamasına neden olabilir.
Bu makalemde hatanın belirtilerini, nedenlerini ve bu sorunu çözmek veya hafifletmek için uygulanabilecek adımları ele alacağız.
- vdpi bileşeninde bellek yetersizliği yaşandığında ağ gecikmeleri (latency) meydana gelir.
- Sorun özellikle HPE Gen 10 ve Gen9 sunucularında görülmektedir.
- Bazı durumlarda ESXi host’u vCenter envanterinde “yanıt vermiyor” (Not Responding) olarak görünebilir.
- vSphere HA tarafından bir hata algılanırsa etkilenen sanal makineler başka bir host’a taşınarak yeniden başlatılabilir.
- ESXi host’u normal çalışıyor gibi görünse de SSH bağlantısı sağlanabilir ve esxcli komutları çalıştırılabilir.
- vmkernel.log ve syslog dosyalarında “Cannot allocate memory” (Bellek tahsis edilemiyor) hataları bulunur.
Örnek log hataları:
cpu55:2099016)WARNING: UserObj: 4914: vmware-usbarbitrator: Poll on fd 10 failed: Out of memory
error hostd[2100397] [Originator@6876 sub=Libs] BmcInfo: poll(43), failed 12 Cannot allocate memory
error hostd[2100572] [Originator@6876 sub=Default] Node 0: poll(fd=32), errno=12 Cannot allocate memory
cpu44:2116046)WARNING: UserObj: 4914: vdpi: Poll on fd 15 failed: Out of memory
cpu22:2116045)WARNING: UserObj: 4914: vdpi: Poll on fd 12 failed: Out of memory
Ek olarak syslog kayıtlarında sfcb-vmw_ipmi ve sensord bileşenleriyle ilgili benzer bellek tahsis hataları görülebilir:
sfcb-vmw_ipmi[2115198]: Node 0: poll(fd=75), errno=12 Cannot allocate memory
sensord[2099995]: recv_reply: poll(0), failed 12 Cannot allocate memory
Bu bellek tahsis hataları HPE iSUT (Integrated Smart Update Tool) yazılımından kaynaklanmaktadır. HPE iSUT ESXi host’ları için sürücü ve firmware güncellemelerini yönetmek amacıyla kullanılır ancak ESXi ile uyumsuzluk göstererek sistem belleğinin tükenmesine neden olabilir. Bu bir VMware hatası değildir, ancak ESXi’nin birçok farklı bileşenini etkileyebilir ve sistem istikrarını bozabilir.
Hata, ESXi 7.0U3q ve 8.0U2b sürümlerinde ve HPE iSUT 2.9.0 sürümünde düzeltilmiştir.
Eğer mümkünse, ESXi’yi en son sürüme yükseltmeniz önerilir. Ancak, yükseltme şu an için mümkün değilse, aşağıdaki geçici çözümü uygulayabilirsiniz.
HPE iSUT bileşenini kaldırarak bellek tahsis hatalarını önleyebilirsiniz. Aşağıdaki adımları takip edin:
ESXi Host’u Bakım Moduna Alın
Öncelikle, host’u bakım moduna almak önerilir. vSphere Client veya aşağıdaki komut ile bakım moduna geçebilirsiniz:
esxcli system maintenanceMode set --enable true
HPE iSUT Bileşeninin Yüklü Olduğunu Doğrulayın
Aşağıdaki komutu çalıştırarak HPE iSUT’un yüklü olup olmadığını kontrol edin:
esxcli software component list | grep -i sut
Çıktıda sutComponent Integrated Smart Update Tool ibaresi görünmelidir.
HPE iSUT Bileşenini Kayıttan Çıkarın
sut -deregister
HPE iSUT Bileşenini Kaldırın
esxcli software component remove –n sutComponent
ESXi Host’u Yeniden Başlatın
Değişikliklerin uygulanması için ESXi host’unuzu yeniden başlatın:
reboot
HPE iSUT Bileşeninin Kaldırıldığını Doğrulayın
Host yeniden başlatıldıktan sonra, bileşenin kaldırıldığını doğrulamak için tekrar kontrol edin:
esxcli software component list | grep -i sut
Eğer bileşen listede görünmüyorsa, işlem başarıyla tamamlanmıştır.
Host’u Bakım Modundan Çıkarın
esxcli system maintenanceMode set --enable false