Merhaba;

Bugün sizlere “Bare-metal hipervizör” yapısı (Şekil 1) sunun Oracle’ın “Oracle VM for x86” çözümünden bahsetmek istiyorum. Elbette Oracle VM’in SPARC CPU modeli için de çözümü var. “Oracle VM for SPARC” pek çok büyük ölçekli müşterimizde yoğun olarak kullanılıyor. Oldukça popüler bir çözüm. Buna rağmen, “Oracle VM for x86” ürünü markette çok bilinmiyor. Bu nedenle bu yazımı “Oracle VM for x86” çözümüne adamak istedim.

Şekil 1. “Bare-Metal Hypervisor” mimarisi

“Oracle VM for x86” mimarisinin ana bileşenleri, “Oracle VM Manager” ve “Oracle VM Server” dır (Şekil 2).

Şekil 2. “Oracle VM for x86” yapısının ana bileşenleri.

Oracle VM Manager” – Oracle VM ortamını yönetmek için kullanılır. Grafiksel ve komutsal arabirimler sağlar. Web servis API’de sağlar (Şekil 3). “Storage”, “server”, “server pool”, “virtual machines” gibi tüm bileşenleri yönetir. Oracle Linux veya Red Hat Enterprise Linux üzerine kurulur. Oracle VM ortamının ilk konfigürasyonunda kullanıldığı gibi günlük yönetiminde de kullanılır. “Oracle VM Manager”, bir WebLogic uygulamasıdır. “Oracle VM Manager”, MySQL Enterprise veri tabanı kullanır. Ürünün içine entregre edilmiş durumdadır ve “Oracle VM Manager” ile aynı sistem üzerine kurulur.

Oracle VM Servers” – “Bare metal” sunuculardır. Bir veya birden fazla Oracle VM guest’i çalıştırabilmek için ihtiyaç duyulan “CPU”, “memory”, “storage”, “network” gücünü sağlar. “Oracle VM Server”, fiziksel, “bare metal” sunucu üzerine kurulan “Xen” hipervizör ve “Dom0” dedğimiz imtiyazlı (“privileged”) domain’den oluşur. “Cluster” ve “Non-Cluster” yapılar olarak oluşturulabilirler.

Şekil 3. “Oracle VM Manager” bileşenleri.

“Oracle VM for x86” nın ana bileşenleri “VM Manager” ve “VM Server” dedik ama ürünü oluşturan diğer bileşenlerden de bahsetmemiz gerekir.

Oracle VM Server Pools” – Bir veya birden fazla “Oracle VM” sunucunun gruplar şeklinde yapılandırılmasıdır. Oracle VM sunucular, yedeklilik oluşturmak amaçlı “server pool” lar şeklinde gruplandırılırlar. Oracle VM guest’ler, “pool” içerisinde herhangi bir sunucuda çalışabilir. “Oracle VM Server Pool”u, fonksiyonel anlamda kaynaklar grubu, High-Availability (HA) grup, “Live migration” grup ve “policy” grup olarak değerlendirebiliriz. “Pool” lar “cluster” veya “non-cluster” yapıda oluşturulabilirler. Elbette “clustered” olarak oluşturulmasını öneriyoruz. Bu sayede, HA fonksiyonelitisi sağlanabilir. “Clustered” yapıda oluşturulan “pool” lar, “pool” dosya sistemine ihtiyaç duyarlar. “pool” un oluşturulması aşamasında, VM sunucuları tarafından erişilen NFS alanı, iSCSI LUN veya FC LUN olabilir. “pool file system” için lokal disk kullanılamaz. OCFS2 dosya sistemi kullanılır. Bu sayede OCFS2 dosya sisteminde olan kaynaklara paylaşımlı erişim sağlanabilir. OCFS2’de yer alan “shared disk cluster” özelliği, Oracle VM sunucuları belirlemek için “disk heartbeat”, sunucular arasındaki iletişim için “network heartbeat” ve paylaşımlı disk kaynaklarını “Oracle VM” sunucular için kitlemek ve serbest bırakmak için “Distributed Lock Manager (LDM)” fonsiyonlarını kullanır (Şekil 5). “Server pool”, “Distributed Resource Scheduling (DRS)” ve “Dynamic Power Management (DPM)” politikalarını kullanabilir. DRS, kullanıma göre hareket ederken, DPM, tüketime göre hareket eder. DRS, sizin tanımladığınız periyot lara göre harekete geçer tanımlanan eşik değerlerini kontrol eder. Tanımlanan değerlere ve hesapladığı istatistiksel verilere göre doğru bir sunucu belirlerse, herhangi bir kesinti olmadan VM’in migrasyonunu gerçekleştirir. DPM’de DRS gibi çalışır ama amacı güç tüketimini mümkün olan en az değere indirmektir. “Non-clustered server pool”’ları “pool” dosya sistemine ihtiyaç duymazlar. Buna ragmen “pool” için bir “virtual pool IP” nin olması gerekir.

Oracle VM Guests” – Guest işletim sistemlerinin çalıştığı sanal makinelerdir. Microsoft Windows, Linux, Solaris gibi pek çok farklı işletim sistemi çalışır. “Guest”ler üç farklı sanallaştırma modunda çalışabilir: “Hardware Virtualized Guest (HVM)”, “Paravirtualized Guest (PVM)”, “Hardware Virtualized with PV Drivers (HVM with PVM drivers)”. Şekil 4.’de İşletim sistemlerinin hangi modda desteklendiğini görebiliriz.

Şekil 4. “Oracle VM for x86” nın desteklediği sanallaştırma modları.

“Oracle VM for x86” yı oluşturan iki önemli bileşen daha mevcuttur.

Storage” – Her bir fiziksel sunucuda bulunan internal disklerden, enterprise seviyede birden fazla path’den ulaşılan paylaşımlı disklere kadar alternatif vardır. Paylaşımlı “storage” sayesinde, aynı “pool” içinde olan VM’lerin, bir sunucudan başka bir sunucuya migrasyonu yapılabilir. DRS ve DPM özellikleri kullanılabilir. “Pool dosya sistemi”, yukarda da belirttiğim gibi “cluster” yapıdaki “server pool”lar için gereklidir. “Pool” dosya sistemi için NFS, iSCSI veya FC üzerinde en az 12GB’lık alan ayrılır. Daha önce de belirttiğim gibi, “pool” dosya sistemi OCFS2 olarak formatlanır (Şekil 5). “Storage Repository” lerden de bahsetmemiz gerekir (Şekil 6). Her VM guest için konfigürasyon dosyalarını, sanal sistem imajlarını, static guest kaynaklarını (assemblies, ISO imajları, şablonlar) tutar. Her “server pool”, minimum bir tane “storage repository”e sahip olmalıdır. “Repository” ler NFS, iSCSI, FC, lokal “storage” üzerinde oluşturulabilir. NFS tabanlı “repository” ler “pool” lar arasında paylaşılabilir. “Clustered pool” yapıları için kullanılabilir herhangi bir fiziksel disk seçilebilir. “Non-clustered pool” yapıları için “repository”, lokal disk veya NFS olabilir. FC/iSCSI olamaz. Fiziksel disk üzerindeki “repository” ler için OCFS2 dosya sistemi oluşturulur. “Non-clustered server pool” larda “live migration” desteklenir. HA özelliği desteklenmez.

Oracle VM Virtual Machine Kaynakları” – Oracle VM guest’leri oluşturmak için kullanılan yardımcı araçlardır. “Assemblies”, Oracle VM şablonları, İşletim sistemi ISO imajları örnek olarak verilebilir. Şablonlar (“templates”) ön-tanımlı sanal makinelerdir. “Assembly”, birden fazla sanal makineyi metadata’sıyla birlikte tutar. Metadata, sanal makineler arasındaki bağlantıları tutar. “Oracle Software Delivery Cloud” üzerinden şablonları, “assemblies” leri indirebilirsiniz. Ardından, Oracle VM’e “import” edebilirsiniz. “Assembly” üzerinden kendinize yine şablon çıkartabilirsiniz. İndirdiğiniz şablonları, “assembly” leri ihtiyaçlarınıza göre düzenleyebilir ve kendi “golden” imajınızı oluşturabilirsiniz (Şekil 7).

Şekil 5. “Pool” dosya sistemi.

Şekil 6. “Storage Repository”

Şekil 7. “Golden” imaj döngüsü.

VM guest’lerin “cold” ve “hot” olmak üzere iki farklı klonunu çıkarabilirsiniz.

    • “Cold clone” – Bu durumda sanal makinenin durdurulması gerekir.

    • “Hot clone” – Bu durumda sanal makine çalışır durumdadır. OCFS2 formatında repository içinde olmalıdır.

Klon operasyonlarında üç farklı yöntem seçebilirsiniz.

    • Non-sparse klon – Orjinal fiziksel veya virtual diskin büyüklüğü kadar alana diskler kopyalanır.

    • Sparse klon – Orjinal fiziksel veya virtual diskin kullandığı alana diskler kopyalanır.

    • Thin klon – OCFS2’nin reflink özelliği kullanılır. VM çalışırken, hızlı bir şekilde snapshot’lar oluşturulur.

Oracle’ın “full stack” yapısından bahsetmeden olmaz. Şekil 8’den gördüğünüz gibi Oracle, depolama birimi katmanından, uygulamaya kadar uçtan uca çözüm sağlamaktadır. Tüm bu bileşenleri Oracle Enterprise Manager ile yönetebilirsiniz. Oracle VM Manager’ın, Enterprise Manager’a entegrasyonu vardır. Çok büyük ölçekli yapılarda Enterprise Manager ile entegre etmek oldukça fayda sağlayacaktır.

Şekil 8. Oracle “full stack” yapısı.

Yakın zamanda Atina’da bir Oracle etkinliğine katıldım. Pek çok farklı firmadan iş ortakları vardı. Yapılan bir kaç sunumda dikkatimi önemli bir şey çekti. Yurt dışında, “private cloud” olarak, maliyet avantajı yakalamak adına pek çok firma, “Oracle vm for x86” yapısını hipervizör yapısı olarak, Enterprise Manager’i “cloud” yönetim aracı olarak ve Oracle ZFS’de depolama alanı olarak yapılandırmışlar.

Yukarda anlattıklarımın tümünü Şekil 9, anlaşılır bir şekilde özetliyor. Yukarda dom0’dan kısaca bahsettim. Oracle VM for SPARC’a alışkın olanlar için, bu domain, kontrol domain olarak düşünülebilir. Donanıma ve sürücülere imtiyazlı bir erişimi vardır. DomU, imtiyazsız bir domain’dir. Donanıma ve sürücülere erişimi yoktur. domU, “user-domain” dir. Bu “domain” lerin başlatılması, yönetilmesi dom0 tarafından yapılır. DomU’lar sanal makinelerin (guest’lerin) kendi yönetim “domain” leridir. Bu “domain” ler diğer “domain” lerden bağımsız olarak başlatılabilir, kapatılabilir, yeniden başlatılabilir. Guest, bu “domain” içinde çalışan sanallaştırılmış İşletim sistemidir.

Şekil 9. Oracle VM for x86 mimarisi

Asiye Yiğit – 13 Mayıs 2018 Pazar