Interrupt remapping uyumsuzluk sorunu

Interrupt remapping uyumsuzluk sorunu
Adem YETİM tarafından 4 sene önce eklendi. 2,686 kez okundu.

Bu makalemde  interrupt remapping özelliğinin nasıl disable edileceğini ve neden disable edilmesi gerektiğini konu alacağız. Önce VT teknolosi içerisindeki VT-d nin bir özelliği olan interrupt remapping nedir onu açıklayayım.

Interrupt remapping  Nedir?

Interrupt remapping, Hypervisor de kesintiler için yazılımın temel olarak hedef ve vektörü kontrol etmesine izin veren bir diğer haritalama katmanı üzerinden bir CPU’ya Direct IO izolasyonu ve uyumluluğu sağlayan, Intel VT-d’de yüklü bir özelliktir. Unutulmaması gereken nokta Interrupt remapping Hypervisor katmanında izolasyon ve uyumluluğu sağlar, performansı değil. Bu katmana da aynı zamanda kesintileri filtre edebilme, sahte veya zararlı kesintileri engelleyebilme olanağı da sağlamış olur.

Interrupt remapping özelliği default olarak ESXi 4.1 ve ESXi 5.0’da aktiftir. Cisco UCS ve IBM sunucularındaki bazı modellerin mimarilerinde Interrupt remapping  işlevi ile uyum sorunları olduğu bilinmektedir.

Interrupt remapping özelliğinin güzel olmasının yanı sıra  uyum sorunu olan sunucularda ciddi sorunlar çıkarmaktadır. Bu özellik ile uyumlu olmayan sunucular üzerindeki Sanal Makine guess OS’de, dosya sisteminin bütünlüğünü garantileyen temel depolamaya erişimi rastgele şekilde serbest bırakmaktadır. Bu nedenle bozulan ve Interrupt remapping  sorunlarına bağlı file system tutarsızlıklarını raporlayan VM OS’un yeniden yüklenmesi gibi durumlar söz konusu olabilmektedir.

Uyumsuzluk sorunları ayrıca Sanal Makinenin “Read Only” moduna girmesine, düzgün çalışmamasına veya hata vermesine neden olmaktadır. Bunlarla sınırlı olmayıp beraberinde CISCO TAC ve IBM tarafından tanımlanan yaygın problemlerin bazıları ;

  • Yanıt vermeyen Sanal Makineler.
  • Dosya sistemi tutarsızlıkları raporlayan Sanal Makineler.
  • Takılan Sanal Makineler.
  • vCenter sunucusunda “Degraded path for an Unknown Device” uyarısı.
  • Read Only moduna giren Sanal Makineler.
  • VM’yi kapatmayı veya yeniden başlatmayı süresiz olarak reddeden Sanal Makineler.
  • Bağlantısı kesik sunucu
  • Erişilemeyen sunucu
  • Dead path
  • SSH’yi aktive ettikten sonra bağlantı kuramama
  • Yavaş yanıtlar
  • Hatalı vMotion

Bu nedenle IBM System x3650/x3550 M3, IBM BladeCenter HS22/HS22 modellerinde ve Cisco UC uygulamalarında ESXi’deki Interrupt remapping özelliğini devre dışı bırakmak gerekmektedir.

Interrupt remapping özelliğinin Intel VT-d teknolojisinin bir özelliği olduğuna değindik, şimdi ise kısaca VT ve VT-d teknolojilerine değinelim;

VT-d

“VT”yi Intelin tüm sanallaştırma teknolojilerini ifade eden bir “Şemsiye”si olarak düşünebiliriz. VT-d  “Intel Virtualization Technology for Directed I/O” ise VT teknolojisinin altındaki çözüm aileleri içinden özel bir çözümdür. VT-d’nin ardındaki genel konsept, cihazı yöneten bölüm sahibinin cihaz erişimlerini izole etmek ve engellemek için destek sağlayan bir donanımdır.

Bir VMM(Virtual Machine Monitor) I/O sanallaştırmasının pek çok modeline destek sağlayabilir ki bunlara cihaz API’ını kullanılarak, fiziksel I/O cihazlarının VM lere atama işlemini gerçekleştirmekle beraber çeşitli biçimleri paylaşan I/O cihazına erişilmesine de olanak sağlamaktadır. Temel sorun cihaza erişimin nasıl izole edileceğidir ki buda bir başka kaynak tarafından yönetilen bir cihaza bir kaynağın erişilememesi anlamına gelmektedir işte burada VT-d teknolojisi karşımıza çıkmaktadır. Kısaca VT-d teknolojisini, Hypervisor katmanın bulunduğu donanıma VM makinelerinin direk eriştirebilmesi için kullandığı bir API olarak görebilirsiniz.

VT-d teknolojisi temelde 4 yeteneğe sahiptir;

1. I/O device assignment : Bu özellik bir yöneticinin istenen herhangi bir konfigürasyonda I/O cihazlarını VM’ye atamasına olanak sağlamaktadır.

2. DMA remapping : Bu özellik cihaz DMA veri transferlerinin adres çevirisine destek sağlamaktadır.

3. Interrupt remapping : Cihaz kesintilerinde VM yönlendirmesi ve izolasyonu sağlamaktadır.

4. Reliability features : VM izolasyonunun bozulmasına neden olabilecek olan kesinti hatalarını ve sistem yazılım DMAsını raporlar ve kaydeder.

VT-d teknolojisindeki özellikle DMA remapping  ve I/O  device assignment özellikleri detaylı konulardır. Bu makalemizde interrupt remapping özelliğinin nasıl kapatılacağını öğreneceğimiz için terimlere yabancı kalmamak adına özet bir açıklama yapmak istedim şimdi disable işleminin nasıl yapılacağını görelim;

Not : Interrupt remapping özelliğini kapattıktan sonra yapılan değişikliklerin aktif olabilmesi için ESXi host makinasının restart edilmesi gerekmektedir. Bir diğer önemli konu da  Interrupt remapping  özelliği devre dışı kalınca  “VMDirectPath I/O Pass-through” özelliğinin de devre dışı kalacağıdır. Bu özelliği zorunlu durumlar haricinde kapatmanızı önermiyoruz.

Interrupt remaping özelliği birkaç farklı şekilde disable edilebiliyor, aşağıda detaylıca PowerCLI ve ESXi CLI ekranlarında bu işlemleri nasıl yapacağımızı göstermiş olacağız;

 ESXi 5.0 ve sonrası sistemlerde PowerCLI ile interrupt remapping özelliğini disable etmek için  aşağıdaki komut satırını kullanılır;

Kaynak Kodu

Connect-VIServer -Server vcenter.vmware.pro -User Administrator -Password passwd

$myesxcli = Get-EsxCli -VMHost esxi01.vmware.pro
$myesxcli.system.settings.kernel.set(“iovDisableIR”,”TRUE”)true
$myesxcli.system.settings.kernel.list(“iovDisableIR”)

Not: ESXi 5.1 de çalışmayacaktır.

ESXi 5.1 versiyonları için ise aşağıdaki scripti kullanarak interrupt remaping özelliğini disable edebilirsiniz;

Kaynak Kodu

Connect-VIServer vcenter.vmware.pro

Get-VMHost | Foreach { Start-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq “TSM-SSH”} ) }
$User = “root”
$Pswd = “Passw0rd”
$plink = ‘C:\plink.exe’
$plinkoptions = ” -v  -pw $Pswd”
$cmd1 = ‘esxcli system settings kernel set –setting=iovDisableIR -v TRUE & esxcli system settings kernel list -o iovDisableIR’
$remoteCommand = ‘”‘ + $cmd1 + ‘”‘
Get-VmHost | % {
$Computer = $_.Name
$command = $plink + ” ” + $plinkoptions + ” ” + $User + “@” + $computer + ” ” + $remoteCommand
$msg = Invoke-Expression -command $command
$msg
}
Get-VMHost | Foreach { Stop-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq “TSM-SSH”} ) }

Disconnect-VIServer

Note: Yukarıdaki scriptin çalışabilmesi için plink.exe nin download edilmesi gerekmektedir. Script vCenter üzerindeki bütün host sunucularında interrupt remaping özelliğini devre dışı bırakacaktır.

PowerCLI haricinde ESXi host makinesine ssh ile bağlantı yaparak aşağıdaki komut satırlarını kullanarak da bu özelliği disable edebilirsiniz.

ESXi/ESX 4.1 versiyonlarında ESXi’in CLI ekranında aşağıdaki komut satırı kullanılır;

Kaynak Kodu

esxcfg-advcfg -k TRUE iovDisableIR

esxcfg-advcfg -j iovDisableIR iovDisableIR=TRUE reboot

ESXi 5.x versiyonlarında ESXi’in CLI ekranında aşağıdaki komut satırı kullanılır;

Kaynak Kodu

esxcli system settings kernel list -o iovDisableIR

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

Sorularınız için VMware Türkiye Kullanıcı Grubu sayfasından bana ulaşabilirsiniz.

  • Burhan Abdiler: Elinize sağlık Fatih Bey , detaylı incelemeniz konuyu tamamen açıklayıcı nitelikte ....
  • Tufan ULU: Adem kardeşim, tebrik ediyorum ve başarılarının devamını diliyorum,...
  • Rafet Arslanyı lmaz: Adem Hocam, Tebrikler.. Umarım devamıda gelir :)...
  • Serkan ERSAN: Çok başarılı ve güzel bir anlatım olmuş. Emeğinize sağlık, teşekkürler....
  • Adrenalin .: Teşekkürler Adem Bey....

4 Yorum Bulunuyor

  1. Nuri Özden
    Ağustos 15, 2013 - 6:53 am

    Başarılı bir makale olmuş. Bilgine, kalemine sağlık.

  2. Hasan Yaz
    Ağustos 15, 2013 - 8:01 pm

    Adem hocam sayende çok güzel bilgiler öğreniyoruz. Emeğinize sağlık.

  3. Mehmet KOC
    Ağustos 15, 2013 - 8:03 pm

    Elinize Sağlık, oldukça yarlı bir bilgi olmuş.

  4. Ahmet Yiğit
    Ağustos 15, 2013 - 8:05 pm

    Elinize sağlık hocam.

Yorum ekleyin

Doğrulama Kodunuz : 38126963

ÖNEMLİ:
Yorumlarınızı eklerken lütfen girmiş olduğunuz bilgilerin size ait olduğundan emin olunuz. Geçersiz posta adresleri iel yapılan yorumlara yanıt vermek istenildiğinde size ulaşamayacağımız için, geçerli / aktif olarak kullandığınız posta adresiniz ile yorum eklemeniz daha sağlıklı olacaktır. Her yorum yazarı tarafından sorumlu tutulur.

Sayfa başı

Güncellemeler, yeni eklenen içeriklerden anında haberdar olmak için mail listemize adınızı soyadınızı ve posta adresinizi yazarak abone olabilirsiniz.

Adınız Soyadınız
E posta adresiniz
Kaydol