Başlangıç > VMware > 236: iovDisableIR parametresi hakkında

236: iovDisableIR parametresi hakkında

Interrupt Remapping, Intel VT-d ve AMD IOMMU tarafından implemente edilen ve I/O cihazlarından gelen interrupt taleplerinin daha verimli bir şekilde sanal sunuculara yönlendirilmesini sağlayan bir özelliktir. ESXi 4.1 ve sonrası sürümlerde, VMware tarafından da varsayılan olarak desteklenmektedir. Buraya kadar her şey güzel iken, sıkıntılı taraf her donanım bu kodu desteklememektedir ve uyumlu olmayan bir konfigürasyon sanal sunucularda problemlere sebebiyet verebilir. VMware’ın makalesi bu konuyu detaylı olarak ifade etmektedir ve bu tip durumlarda önerilen, bir adet kernel parametresi ile bu özelliğin kapatılması yönündedir.

esxcli system settings kernel set –setting=iovDisableIR -v TRUE

Not: Konu ile ilgili güzel ve gayet detaylı bir makale de Adem Yetim’in zamanında yazmış olduğu bir makaledir, buradan erişebilirsiniz.

Ancak tam tersi senaryonun problem yarattığı durumlar da vardır. Örnek olarak, HPE DL/ML/BL Gen8/9 sunucularda bu özelliğin pasif bırakılmaması yönünde yazılmış tavsiye niteliğinde makaleler de bulunmaktadır. Hatta bu özellik kapatıldığında, yüksek oranda LINT1/NMI hatası ve sonucunda PSoD almamız muhtemeldir.

iovdisableir

Burada bahsetmek istediğim kritik nokta, uzun süredir varsayılan olarak FALSE olarak tanımlı olan ve sonuç olarak Interrupt Remapping özelliğini aktif tutan iovDisableIR kernel parametresinin, “ESXi 6.0 Patch 4” sonrasında TRUE olarak değiştirilmiş ve HPE sistemlerde PSoD’ye sebebiyet verebilecek olmasıdır (Güncelleme: ESXi 5.5 için de benzer durum söz konusu görünüyor).

Bu yüzden, tüm sistemler üzerinde bu parametrenin değerinin ne olduğu ve donanım üreticisinin tavsiyeleri doğrultusunda tanımlanmış olup olmadığı bir hayli önem kazanıyor. Aşağıdaki powershell fonksiyonu ile tanımlamaları hızlı bir şekilde görebiliriz.


function Get-iovDisableIR {
$VMHosts = Get-VMHost | Sort-Object Name
foreach ($VMHost in $VMHosts) {
$esxcli = Get-EsxCli -VMHost $VMHost
$item = $esxcli.system.settings.kernel.list($false,"iovDisableIR")
Write-Host ("{0} ({1}) -> Def:{2}-Con:{3}-Run:{4}" -f $VMHost.Name,$VMHost.Build,$item.Default,$item.Configured,$item.Runtime)
}
}

Bu fonksiyon ile vCenter sunucusuna bağlı tüm ESXi sunucuların isim ve build numarası ile birlikte, iovDisableIR parametresinin Default, Configured ve Runtime değerlerini görebilirsiniz.

Aşağıdaki örnekte, son yama geçilmemiş iki adet ESXi 6.0 sunucu ile diğer sunucular arasındaki farkı net olarak görebiliriz, versiyon numarası daha düşük ve varsayılan değer FALSE olarak. Güncellenmiş sunucularda ise bu değer TRUE görünmektedir.

iovdisableir2

Sözün özü, eğer HPE DL/ML/BL Gen8/9 sunucunuz varsa, PSoD almamak adına önerilen workaround, bu parametrenin yama sonrasında yeniden FALSE olarak değiştirilmesi ve sunucunun restart edilmesi. Ancak VMware ve HPE bu konuda beraber çalışıyorlar, ilerleyen dönemlerde belki bir BIOS güncellemesi olarak belki de farklı bir yama ile durumun daha kalıcı olarak çözülmesini bekleyebiliriz. Bu zamana kadar

ESXi üzerinden Interrupt Remapping özelliğinin yeniden açılması için:

esxcli system settings kernel set –setting=iovDisableIR -v FALSE

Powercli ile toplu bir şekilde yeniden açılması için:


function Disable-iovDisableIR {
$VMHosts = Get-VMHost | Sort-Object Name
foreach ($VMHost in $VMHosts) {
$esxcli = Get-EsxCli -VMHost $VMHost
$item = $esxcli.system.settings.kernel.set("iovDisableIR","FALSE")
Write-Host ("{0}: iovDisableIR is disabled, Please reboot the server" -f $VMHost.Name)
}
}

Kategoriler:VMware Etiketler:,
  1. Henüz yorum yapılmamış.
  1. 16.02.2017, 11:02

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: