Sanallaştırma Uyumlu Intel İşlemciler

Intel'in sanallaştırma teknolojileri (VT-x, VT-d, VT-c, EPT, VPID, TXT) ve Xeon E7 ile birlikte Ekim 2011 itibarıyla gelinen nokta. Westmere, Sandy Bridge ve AMD-V karşılaştırması.

Bir veri merkezinde, vSphere ya da Hyper-V tarafında oturup performans tuning yapmaya başladığınızda er ya da geç şu soruya geliyorsunuz: “Altımdaki işlemci sanallaştırma için ne kadar uygun?” Cevabı son altı yedi yılda epey değişti. Intel’in VT ailesi yıllar içinde olgunlaştı; özellikle 2011 boyunca çıkan Xeon E7 ve Westmere-EX işlemcileriyle birlikte sanallaştırma odaklı özellikler, donanımın merkezine yerleşti. Bu yazıda, Ekim 2011 itibarıyla sanallaştırma için ilgili Intel teknolojilerinin neler olduğunu, neyi nerede kullandığımızı netleştireceğim.

Neden Donanım Yardımı Lazım?

Sanallaştırmanın bir maliyeti var. Hipervizör, her sanal makinenin işlemci ve bellek erişimini denetlemek zorunda. 2005 öncesinde bu denetim tamamen yazılım üzerinden yapılıyordu; VMware’in binary translation tekniği bu işin altından kalkmaya çalışıyordu ama sanal makineler ile gerçek donanım arasındaki gecikme her zaman bir performans cezası olarak görünüyordu.

İşte donanım yardımının asıl amacı bu cezayı azaltmak. CPU, bellek yönetimi (MMU), I/O ve ağ kartı seviyesinde sanallaştırmanın doğrudan donanım tarafından desteklenmesi, bugün artık altyapımızın olmazsa olmazı.

Intel VT Ailesi, Katman Katman

VT-x, İşlemci Sanallaştırması

İlk olarak 2005’te, Vanderpool kod adıyla duyuruldu. VT-x, CPU’nun yeni bir çalışma modu ekler: VMX root ve VMX non-root. Hipervizör root modda çalışır, sanal makineler non-root modda. Hipervizör bir VM’i başlatırken VMENTRY, kontrolü geri aldığında VMEXIT komutları işliyor. Bu, yazılım tarafında uygulanan trap-and-emulate tekniğini doğrudan donanıma taşıdı.

Pratikte VT-x, sanallaştırmanın temel taşı. Bu özelliği kapalı olan ya da olmayan bir sistemde 64-bit guest çalıştıramazsınız (ESXi 4 ve sonrası bunu zorunlu kılıyor).

EPT, Extended Page Tables

2008’de Nehalem mimarisiyle gelen EPT, bellek yönetiminde devrim niteliğindeydi. Öncesinde her sanal makine için shadow page table tutmak zorundaydı hipervizör; her bellek erişiminde VMEXIT yaşanıyordu. EPT ile birlikte ikinci seviye bir sayfa tablosu doğrudan CPU tarafından yönetiliyor. Bu, guest fiziksel adresten host fiziksel adrese çeviriyi donanıma yıkıyor.

Bellek yoğun iş yüklerinde EPT, %20 ile %50 arası performans iyileşmesi sağlıyor. Bugün karşılaştırma yaparken Nehalem öncesi ve sonrasını net bir çizgi olarak değerlendirmek lazım.

VPID, Virtual Processor ID

EPT ile birlikte gelen küçük ama kritik bir özellik. Sanal makineler arası geçişte TLB’nin (Translation Lookaside Buffer) tamamen flush edilmesi gerekiyordu; her geçiş, bellek erişimi gecikmesi anlamına geliyordu. VPID, her sanal işlemciye bir kimlik veriyor ve TLB girdileri bu kimliğe göre etiketleniyor. Geçişlerde flush’a gerek kalmıyor.

VT-d, I/O Sanallaştırması

Yaklaşık 2008’den itibaren sunucu yongasetlerinde gördüğümüz VT-d, DMA remapping ve interrupt remapping sağlıyor. Bu, bir fiziksel PCIe cihazının (bir 10GbE kart, bir FC HBA, bir GPU) doğrudan bir sanal makineye atanabilmesini mümkün kılıyor. VMware tarafında DirectPath I/O, KVM tarafında VFIO ve PCI passthrough olarak adlandırılan özellikler bunun üzerine inşa edilmiş.

Yüksek throughput gereken senaryolarda (network appliance, GPU-yoğun iş yükü) VT-d olmadan hipervizör katmanını geçemiyorsunuz.

VT-c, I/O Tarafının Devamı

VT-c, ağ kartı seviyesinde sanallaştırma özelliklerini ifade ediyor. SR-IOV (Single Root I/O Virtualization), bir fiziksel ağ kartının kendisini birden fazla sanal fonksiyon olarak göstermesini sağlıyor. Intel’in 10 GbE kartlarında ve sunucu yongasetlerinde aktif. SR-IOV ile birlikte tek bir 10GbE kart, 8–16 sanal makineye yakın-fiziksel performansla ağ erişimi verebiliyor.

Intel TXT, Trusted Execution Technology

Saf sanallaştırma performansı için değil, güvenli sanallaştırma için. TXT, sistem boot’undan başlayarak hipervizörün bütünlüğünü ölçüyor; measured launch environment sayesinde hipervizörün bilinen iyi bir konfigürasyonla başladığı kanıtlanabiliyor. Bulut servis sağlayıcıları için, “müşterinin VM’i bilinen iyi bir hipervizör üzerinde çalışıyor” garantisini verebilmek açısından kritik. HyTrust gibi compliance araçları TXT’yi yoğun kullanıyor.

2011 İşlemcileri, Hangisi Nerede?

Westmere-EP (Xeon 5600 Serisi, 2010)

VT-x, VT-d, EPT, VPID, AES-NI hepsi var. Sandy Bridge’in masaüstüne odaklanması nedeniyle 2011 boyunca sunucu tarafının iş atı.

Sandy Bridge (Xeon E3, 2011 ilk yarı)

Tek soketli sunucularda gördüğümüz E3 ailesi, sanallaştırma açısından Westmere ile aynı özelliklere sahip; mimari iyileştirmelerle birim performansı arttı. Ancak E3 maksimum 32 GB RAM ile sınırlı; gerçek sanallaştırma host’u olarak değil, küçük ölçekli senaryolar için anlamlı.

Xeon E7 (Westmere-EX, Nisan 2011)

Bu yılın gerçek yıldızı. Soket başına 10 çekirdek (20 thread), 2 TB’a kadar RAM desteği, Machine Check Architecture Recovery ve sanallaştırma için optimize edilmiş yeni MCA özellikleri. Mission-critical sanallaştırma senaryolarında (büyük SAP HANA tipi iş yükleri, kurumsal veri tabanlarının sanallaştırılması) E7, gerçek bir oyun değiştirici. 4 soketlik bir E7-4870 yapılandırma, 40 fiziksel çekirdek ve 2 TB RAM ile, birkaç sene öncesinin yüksek-end UNIX makinelerinin yerini doldurabilecek seviyede.

Bunun yanında E7, MCA Recovery’nin sanal ortamlara propage edilmesi gibi özellikleriyle de öne çıkıyor: bir bellek hatası tespit edildiğinde sadece etkilenen sanal makineye sinyal gönderilebiliyor, tüm host’un kapanması gerekmiyor.

Sandy Bridge-EP (Xeon E5, Beklenen, 2012 Başı)

Bu yıl sonuna kadar geleceğini beklediğimiz E5 ailesi, Sandy Bridge mimarisini sunucu tarafına taşıyacak. PCIe 3.0, daha fazla bellek bandwidth’i, AVX. Sanallaştırma odaklı özelliklerde devrim beklemiyorum; ama her iş yükünde aynı çekirdeklerden daha fazla performans çıkacağı kesin.

AMD Tarafı, Kısa Bir Bakış

AMD-V (eski adıyla SVM, Pacifica), Intel VT-x ile fonksiyonel olarak benzer. EPT karşılığı NPT (Nested Page Tables) Barcelona/Shanghai jenerasyonundan beri mevcut. VT-d karşılığı AMD-Vi (IOMMU). Bulldozer mimarisiyle çıkan Opteron 6200 (Interlagos) serisi, çekirdek sayısı (16’ya kadar) ve fiyat-performans açısından dikkat çekici. Bizim İstanbul’daki ortamlarda bunları görme oranımız Intel’e göre düşük; bunun sebebi büyük ölçüde sunucu OEM’lerinin pazarlama tercihleri.

Pratik Notlar

  • ESXi 5’i yeni yükselten ekiplerin neredeyse hepsi EPT ve VT-d’yi aktif buluyor; ama BIOS tarafında VT-d zaman zaman default’ta kapalı geliyor. Yeni kurulumda kontrol edin.
  • Konsolidasyon oranını arttırmak istiyorsanız, EPT olmayan eski donanımları öncelikle yenileyin. Performans farkı, RAM yatırımından çok daha hızlı geri ödüyor.
  • vMotion uyumluluğu için EVC (Enhanced vMotion Compatibility) modunu doğru seçin. Westmere ve Sandy Bridge arasında EVC tanımı farklı; karma cluster’da en düşük seviyeye göre çalışacaksınız.
  • 10GbE kartlar sanal makineye SR-IOV ile verilirken, o VM’in vMotion ile taşınamayacağını unutmayın. Performans-ile-esneklik trade-off’u.

Sonuç

Intel VT ailesi, altı yıl içinde “deneysel CPU özelliği” konumundan “her sunucuda olması zorunlu” noktasına geldi. Westmere ile birlikte sanallaştırma performansı, bare-metal’in %5–10 altına indi. Xeon E7 ile birlikte, sanallaştıramayacağımız iş yükü neredeyse kalmadı. 2012’de Sandy Bridge-EP ile birlikte denklemde performans tarafı bir basamak daha çıkacak; ama önemli kararlar artık donanımda değil, hipervizör konfigürasyonunda ve uygulama mimarisinde alınıyor.