Merhaba;

Uzun zamandır “Oracle VM for SPARC” konusunda yazmak istiyordum. Bugüne nasip oldu.

Öncelikle, SPARC sanallaştırma ile ilgili üç farklı sanallaştırma çözümünden bahsetmeliyiz.

Dinamik domain (“Dynamic Domain”): Tek bir şasede elektriksel olarak izole ortamlar sunar. “Domain” olarak adlandırılan bu yapılar birbirinden bağımsız işletim sistemlerinin çalıştırılabileceği yapılardır.Tüm donanım kaynakları bölümlenebilir (domain yapıları şeklinde). Tek sistem üzerinde birden fazla birbirinden bağımsız “domain” ler oluşturulabilir. M-serisi Sistemler “domain” yapılarını destekler. Bölümleme donanım katmanınında, ILOM içerisinde yapılır. Dolayısıyla her “domain” kendi I/O kaynaklarına sahiptir.

Oracle VM Server for SPARC: Bu Teknoloji, lojiksel “domain” ler olarakta bilinir (LDOM). “Paravirtualization” dediğimiz bu çözümde, donanım üzerinde hipervizör dediğimiz minik bir mikro kod çalışır. Hipervizör üzerinde de, kontrol “domanin” dediğimiz yapı çalışır. Hipervizör, tüm donanımı kontrol eder ve paylaştırır. Bu yöntemde, hipervizör, I/O’a doğrudan ulaşır. Hipervizör, İşletim sistemi ile donanım arasında konumlanır, İşletim sisteminin konumlanabileceği kararlı sanal sistem mimarisi sağlar, donanım kaynaklarını kullanıma açabilir veya kullanıma kapayabilir, sayesinde sanal sistemlerin her biri kendi Open Boot Prom kodunu çalıştırabilir, Sanal makineler arasında iletişim kanalları oluşturabilir. LDOM dediğimiz yapılar:

Kaynakların mantıksal gruplanmasıyla oluşturulan bir sanal makinedir,

Kendi işletim sistemine sahiptir,

Her biri birbirinden bağımsız olarak oluşturulabilir, silinebilir, yeniden konfigüre edilebilir, yeniden başlatılabilir (“reboot”),

Her birinde performans ve güvenlik amaçlarınıza uygun izole uygulamalar çalıştırabilirsiniz,

Hipervizör tarafından kendilerine kullanım için atanan kaynakları kullanırlar.

Oracle Solaris Zones: İşletim sistemi sanallaştırma çözümüdür. Bir tane İşletim sistemi üzerinde, sanal İşletim sistemi “instance”ları oluşturulur. Tüm zone işlemleri “Global zone” üzerinden yürütülür. Sistemin “default zone”u, “Global zone”dur. Sanallaştırma amacıyla oluşturulan zone’lar, “non-global” “zone”lar olarak isimlendirilirler. Sadece “global zone”, sistem donanımından “boot” edilebilir. “Zone”lar birbirlerinden bağımsız çalışırlar ve birbirlerini monitör edemezler/etkileyemezler. “Zone”lar, “global zone”un tüm paketlerine veya bir alt kümesine sahiptir.

Şekil 1.’de bu üç teknolojinin çeşitli formlardaki kurgularını görebilirsiniz. Şekilde PDom olarak geçen kavram, “Dynamic Domain” dir. En soldaki yapıda, bir tane PDom, bu PDom üzerinde konumlanan bir tane LDOM ve bu LDOM üzerinde 64 tane zone görüyorsunuz. Diğer taraftan en sağ taraftaki yapıda, 4 tane PDOM, her PDom üzerinde, 16 tane LDOM ve toplamda 64 tane zone görüyorsunuz. Soldan sağa doğru gittikçe esneklik ve basitliğin daha fazla izolasyon sağlayacak kompleks konfigürasyona  dönüştüğünü görüyorsunuz.

Şekil 1. PDom, LDOM ve Zone Yapıları

Bugünün konusu “Oracle VM Server for SPARC” olduğu için, gelin bu teknoloji konusunda biraz daha detaya girelim. Ama öncesinde bu üç teknolojinin karşılaştırmalı görseline Şekil 2’de tekrar bir göz atalım.

Şekil 2. PDom, Zones, LDOM Karşılaştırması.

“Logical Domain” ler sahip oldukları rollere göre birbirinden farklılaşırlar.

·       “Control Domain” (Primary Domain)

·       “Service Domain”

·       “I/O Domain”

·       “Guest Domain”

·       “Root Domain”

“Control Domain”, bütün kaynakların tüm kontrolüne sahiptir. “Primary Domain” olarakta bilinir. Eğer, bir “Control Domain”, PCIe cihazlara, son nokta cihazlara (end-point devices) sahipse, “Root Domain” olarak isimlendirilir. Eğer “Control Domain”, herhangi bir I/O cihazına, son nokta cihazlara doğrudan erişebiliyorsa, “I/O Domain” olarak isimlendirilir. Genel olarak, “Control Domain”, “I/O Domain”, “Root Domain”, sanal servisleri diğer “domain” lere sağlar. Diğer “domain” lere servis sağlayan bu “domain” ler aslında “Service Domain” olarak isimlendirilir. “Guest Domain” ise tüm servisleri sanal, lojiksel olarak alan “domain” dir. “Control Domain” in sağladığı tipik servisler, “virtual network”, virtual storage” ve “virtual console” dur.

“Virtual network” servisi için, “guest domain” içinde vnet isminde “emulated ethernet device” vardır. “vsw, “virtul switch” olarak isimlendirilir ve “control domain” üzerinde tanımlanır. Network mesajlarını yönlendirmekten sorumludur.  Şekil 3.’te “vsw” in Fiziksel “network interface” “nxge” ye bağlı olması, “guest” lerin LAN ile konuşmalarına imkan verir.

Şekil 3. “Virtual Network” Bileşenleri

“vdc”, “virtual disk client” servisidir ve “block” cihazları, “guest domain” içine “export” eder. “vds”, “virtual disk server” dır. “Control Domain” üzerinde çalışır. Tüm diskler, “vds” tarafından yönetilir ve “vdc” üzerinden “Guest Domain” e “import edilir. Şekil 4, “vds ve “vdc” arasındaki etkileşimi çök güzel özetliyor.

Şekil 4. “Virtual Disk Server” ve “Virtual Disk Client”

“Virtual disk” iki bileşenden oluşur:

·       “guest domain” de görünen diskin kendisi

·       Verinin saklandığı ve “virtual I/O” nun sonlandı “virtual disk backend”

“Virtual Disk Backend”, fiziksel disk, fiziksel “disk slice”, dosya sistemindeki herhangi bir dosya, VxVM, ZFS, SVM ile oluşturulmuş lojiksel bir volume olabilir.

“Virtual disk backend”, “virtual disk server driver” servisi sayesinde “service domain”den “export” edilir.

“Service domain”de çalışan “virtual disk server driver”, “Logical Domain Channel”ları kullanarak “hypervisor” yardımıyla “guest domain”de çalışan “virtual disk client driver” ile haberleşir. Sonuç olarak ilgili “virtual disk”, “guest domain” de “/dev/[r]dsk/cXdYsZ olarak görünür.

Gelelim “Virtual Console” servisine (vcc). “Control Domain” de çalışır ve “virtual console concentrator” olarak isimlendirilir. Tüm LDOM’ların birbirinden bağımsız konsollarının olmasına imkan sağlar. Mesajlar, “vntsd” daemon üzerinden LDOM’un kendine ait konsoluna yönlendirilir. LDOM’lar, “Control Domain” üzerinde, “ldm” komutuyla yönetilir. “ldm” komutu, “ldm daemon” ile iletişim kurar. Bahsettiğimiz tüm servisleri görsel olarak Şekil 5. göstermektedir.

“Oracle VM Server for SPARC” içinde IPMP, “Link Aggregation” özelliklerini kullanabilirsiniz. Şekil 6., “Control Domain” içinde yapılan IPMP’nin “Guest Domain” e sunulmasını (LDOM1), “Guest Domain”e, “Control Domain” den tanımlanan VNET1 ve VNET2’nin IPMP1 konfigürasyonunu (LDOM2), “Control Domain” de yapılan “Link Aggregation”ın LDOM3’de VNET3 olarak tanımlanmasını, “Control” ve “IO” domain’den gelen ayrı network ara birimlerinin VNET4 ve VNET5 olarak LDOM4’de IPMP yapılanmasını göstermektedir.

Şekil 5. “Control Domain” ve “Guest Domain” servisleri

“Oracle VM Server for SPARC” yapısında yedekli LDOM yapılarıda oluşturabilirsiniz. İki farklı “Service Domain” den aldığınız kaynakları, disk ve network multipath özellikleri sayesinde yedekli yapıda LDOM oluşturacak şekilde konfigüre edebilirsiniz. Bu konfigürasyon için Şekil 6’yı inceleyebilirsiniz.

Şekil 6. Yedekli LDOM Yapısı

SR-IOV’den de bahsetmem gerekir. Bu konuda ayrı bir makalem mevcut. https://www.linkedin.com/pulse/sr-iov-teknolojisine-genel-bak%C4%B1%C5%9F-asiye-yigit/ linkinden detayına ulaşabilirsiniz.

“SR-IOV” implementasyonu, “PCI-SIG” tarafından tanımlanan standartlar temelin göre yapılandırılır. Bu standart, “PCIe” cihazların “native” performans ile karşılaştırılabilecek seviyede sanal sistemlerce etkili paylaşımını sağlar. “SR-IOV” spesifikasyonu, sanal makinenin “I/O” cihazına doğrudan erişebilmesi için gereken standartı tanımlar.

“SR-IOV” kullanılabilir olduğu donanım mesela “Ethernet Port”, kendi PCIe konfigürasyon uzayında birden fazla ayrı fiziksel cihazlar olarak görünür. Şekil 7.’de SR-IOV’ye ait görseli görebilirsiniz.

Şekil 7. “SR-IOV” Özelliği.

“Control Domain” üzerinde LDOM oluşturmak için gerekli komutları çalıştıralım. Aşağıdaki komutlarla, 16GB memory’e, 16 vCPU’ya sahip ldom1’i oluşturmuş olduk.

Domain migrasyon özelliği sayesinde bir sistem üzerinde olan “guest domain”, başka bir sistem üzerine taşınabilir. “live” migrasyon sayesinde “guest domain” çalışmaya devam ederken diğer bir sistem üzerine migrasyonu yapılabilir. Migrasyonun başlatıldığı sistem kaynak (“source”), “domain” migrasyonunun yapıldığı sistem hedef (“target”) olarak isimlendirilir. Domain migrasyonu için belli koşulların sağlanması gerekir.

“Software” uyumluluğu

“Logical Domain Manager” sürümü en az 2.1 olmalıdır.

Hedef ve kaynak “live” migrasyonu destekleyecek mikrokod seviyesinde olmalıdır.

“CPU” için “domain” migrasyon gereklilikleri

Yeterli sayıda vcpu.

Solaris 10 için hedef ve kaynak aynı CPU türüne sahip olmalıdır.

“Memory” için “domain” migrasyon gereklilikleri

Hedef sistemde eş büyüklükte memory blokları oluşturulabilmelidir.

“Virtual I/O device” için migrasyon gereklilikleri

Hedef sistemde “virtual disk backend”, aynı “volume” ve “service” ismiyle tanımlanmalıdır.

“virtual network device”, hedef sistemde aynı “virtual network switch” e karşı gelmelidir. Mesela “migrate” edilecek sistemde “vnet0”, “switch-y” isimli vsw’ye bağlıysa; hedef sistemde olan “domain” “switch-y” isimli “vsw” yi sağlamalıdır.

Hedef sistemde “virtual console concentrator” tanımlanmış olmalı ve en azından boş bir “port” a sahip olmalıdır.

“Oracle VM Server for SPARC” için yazımı tamamlamış bulunuyorum. Sorularınız olursa support@gantek.com adresine iletebilirsiniz.

Asiye Yiğit – 29 Ekim 2018