AWS, Google ve Oracle, VMware yerine açık kaynak kodlu diğer sanallaştırma platformlarını kullanıyor.
Sunucularınızda işlenen veri miktarı arttıkça, sistemlerinizi yönetilebilmek için makinalarınızı sanallaştırmanız gerekiyor. Böylece hem maliyetler düşecek, hem de verimlilik artacak… Kısa bir araştırma sürecinden sonra, yetki verdiğiniz kişi her kimse ( CEO, CTO yada BT departmanı sorumlusu), size üç farklı VMware çözümünü alternatif olarak sunuyor. Çünkü VMware kurumsal bir firma ve çünkü herkes onu kullanıyor(?). Tabiki bir de, harika bir marketing departmanı var! Artık, ancak kurumsal bir firmanın sağlayabileceği ayrıcalıklarla(!) makinalarınızı sanal ortamda yönetebilirsiniz. Elbette faturalarınızı ödediğiniz ve çıkardıkları her yeni ürünü satın aldığınız sürece…
VMware dışında başka seçenekleriniz de var.
Üstelik, yazımın devamında açıklayacağım diğer sanallaştırma platformlarını, AWS gibi bütün büyük cloud hizmeti sunan firmalar da kullanıyor ve hiç kimse para ödemiyor. Lisanslı ürünleri tercih ederken, aslında karşılaşacağınız problemlere karşı sırtınızı dayayacağınız bir güvence arıyorsunuz. Bu anlaşılabilir, ancak diğer platformlar da sizi hiç bir zaman bir başınıza bırakmıyor. Çünkü, istediğiniz zaman sorununuzu paylaşıp çözüm arayabileceğiniz koca bir topluluk yanınızda yeralıyor.
Sanallaştırma dünyasında Tip 1 dediğimiz sanallaştırma yöntemlerinin uygulandığı üç gerçek platform mevcut. İlki herkesin bildiği lisanslı VMware. Diğerleri açık kaynak kodlu XEN ve KVM. Yazımda açık kaynak kodlu sanallaştırma yönetemlerinden bahsedeceğim.
XEN
Xen, hayatımıza Paravirtualization tanımını getiren ve şu anda, başta AWS olmak üzere, Google ve Oracle gibi bütün büyük Cloud sağlayıcıları tarafından, çok aktif olarak kullanılan bir sanallaştırma platformudur (Detaylı bilgiye https://xenproject.org adresinden ulaşabilirsiniz.)
Dünya’daki çoğu Cloud platformunun sanallaştırma omurgasını oluşturan XEN, çalıştığı makinenin Kernel’i üzerine yararlı bir virüs gibi yerleşir ve yeni sanal sunucuların Kernel’in ana kaynaklarına doğrudan erişmelerini sağlar (Paravirtualize ve Dom-0). Ancak, proje katılımcısı olan büyük şirketlerin kendileri için geliştirdikleri kısımları paylaşmaması nedeniyle zor durumda kalmıştır.
Özellikle AWS’nin ana sanallaştırma platformu XEN’dir. (AWS üzerinden aldığınız sunucularda sanallaştırma virt-what komutunu çalıştırırsanız bunu görebilirsiniz.) Ancak şirket, XEN projesine hiçbir geri dönüş yapmamıştır. Bu kadar popüler ve güçlü bir firma olmasına rağmen, açık kaynak kodlu bir projeye dahil olmanın ana yükümlülüğüne aykırı hareket edip, elde ettiği tüm sonuçları kendine saklamış ve “topluluk desteğini” çok ciddi anlamda kısır bırakmıştır.
XEN’in halen aktif olarak ilgi duyulan yetkinlikleri, embedded cihazlar üzerinde, otomobil sektöründe ve akıllı araçlarda kullanım alanları bulmuştur.
- XCP-ng (eski Xenserver)
Önce popüler olandan başlayalım. XCP-ng, Xenserver açık kaynak kodlu bir proje olarak ortadan kalktığı zaman, Xen-Orchestra isimli yazılımı geliştiren Vates adlı şirketin başlattığı bir projedir. Hatırı sayılır bir ilgi görmese de, ciddi olarak kullanan müşterileri vardır.
Kullanımını tavsiye etmiyorum. Bunun iki önemli sebebi var. İlki, donanım (driver) desteği. Genelde network kartları ile ilgili sorunlarla karşılaşabilirsiniz. Diğer sebep, XEN kernel ile çalışan bir sanallaştırma platformu, mutlaka, her yeni çıkan HW patch için tekrar derlenmelidir. Bu büyük bir zaman ve işgücü kaybına neden olur.
- Opensource XEN
Linux ile çalışan bir sunucu kurduğunuzda, sanallaştırma ortamı olarak KVM yada XEN tercih etmeniz gerekir. XEN, özellikle Centos ve SuSE platformlarında, paket yöneticisi ile kurulabiliyor. Debian platformlarında (Debian, Ubuntu vs.) ise, native desteği kaldırdıkları için, XEN’in kurulumu daha zor.
Opensource XEN, şu anda yüzlerce küçük ve orta ölçekli şirket tarafından kullanılıyor. XCP-ng arasındaki en büyük fark; XAPI gibi bir yönetim arayüzünün olmaması. Bu negatif bir özellik olarak görülse de, platform XL ve Virsh araçları ile kolayca yönetilebiliyor.
KVM
KVM:Kernel-Based Virtual Machine. İsminden de anlaşılacağı gibi, Linux, bir Kernel modülü olarak çalışmaktadır. Özellikle 2005 yılında, intel VT ve AMD-v desteği sonrası sanallaştırma dünyasında bir devrim gerçekleşti: CPU’ lar sanal makineleri işlemlerine dahil etmeye başladılar. Bu sayede VMware ve KVM gibi yazılımlar, Hardware Virtualization enable edilmiş sunucularda, XEN gibi paravirtualize olarak çalışabilmeye başladılar. Çok basit tanımlayacak olursak; KVM de her sanal sunucu, VMWare ile aynı şekilde, bir “Process” olarak yaratılır ve bu processlerin CPU izolasyonu, vtx register tarafından sağlanır.
KVM özellikle geçtiğimiz 5 yıl içersinde hatırı sayılır bir olgunluğa ve güvenirliğe ulaştı. Aklınıza gelmeyen onlarca teknoloji KVM ile geliştirildi ve geliştirilmeye devam ediyor. Bunlara en güzel örnek, RHEV ve Nutanix olacaktır. Hyperconverged mimariler için daha küçük projelerde de aktif olarak KVM sanallaştırması kullanılmaktadır. Topluluk (Community) desteği çok ciddi ve iyidir. Stable versiyonlar kullanmanız durumunda donanım sorunu dışında sorun yaşamanız neredeyse imkansızdır.
KVM çözümlerinde öne çıkan 3 çözümden bahsedebiliriz.
- Opensource KVM
Kurulumu en kolay sanallaştırma yöntemidir. BIOS içersinde “Virtualization Enable” etmeniz sonrası, sadece Linux kurmanız yeterli olacaktır. Sonrasında Redhat ve Debian tabanlı sunucular için aşağıdaki komutları yazmanız yeterlidir:
1. Sanallaştırma, sunucuda aktive edilmişti. Önce test edelim.
Tüm Linux’lar için:
$ sudo cat /proc/cpuinfo | grep -E ‘vmx|svm’
yazdığınızda eğer ekrana sonuç geliyorsa, Bios üzerinde sanallaştırma aktif demektir, sonraki adıma geçebilirsiniz. Eğer çıktı olarak tekrar $’a düşüyorsanız ve herhangi bir sonuç yoksa BIOS üzerinden sanallaştırmayı aktif etmelisiniz.
2.Sanallaştırma platformunu kurmak için aşağıdaki komutları yazalım.
Debian,Ubuntu için:
$ sudo apt install -y qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager
Centos, Redhat, Fedora için
$ sudo yum install -y qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils
Kurduğunuz Linux sunucuda grafik arayüz (gnome, KDE) ile kurulum yaptıysanız, terminal açarak “virt-manager” komutunu yazin. Sanal sunucular oluşturup silebileceğiniz bir arayüz açılacaktır.
Artık kuracağınız sanal sunucuların ISO larını indirmeye başlayabilirsiniz.
- Proxmox
Proxmox, aslında Avusturyalı bir şirket tarafından geliştirilen bir API ve arayüz. Sanallaştırma platformu olarak, KVM ve LXC kullanıyorlar. (LXC, bir Cgroup ve Container teknolojisi olduğu için, onu sanallaştırma platformu olarak ele almamak gerekli. Bunu başka bir yazıda anlatacağım)
Aynı şekilde Bios üzerinden “Virtualization Enable” etmeniz sonrası, Debian Linux kurmanız veya kendi oluşturdukları ISO üzerinden kurulum yapmanız gerekiyor. Kurulum detaylarınahttps://pve.proxmox.com/wiki/Installation erişebilirsiniz.
Proxmox’un arkasındaki firma çok büyük bir firma değil. Ancak, Debian tabanlı kurulum yapılması ve altta çalışan KVM platformu düşünüldüğünde kesinlikle çok iyi bir alternatif. 5-6 yıllık Proxmox deneyimimde, 2 kere ciddi sorun yaşadım ve ikisi de kendi topluluğu tarafından çözümlendi.
- Ovirt ve RHEV
Ovirt aslında çok daha eski bir proje. Sonraları Redhat firmayı satın aldı ve “kodu” açık hale getirdi. 3-4 yıl önce de “kod” sıfırdan yazılmaya başlandı. Doğrusunu söylemek gerekirse, şuanki haliyle ciddi eksikleri var ve kesinlikle VMware’in alternatifi olabilecek durumda değil. Ancak arkasında şirket olarak Redhat’ın bulunması ve Oracle’nin destek vereceğini açıklaması, ilerisi için onu ciddi bir oyuncu adayı yapıyor.
Kişisel olarak son 3 yıldır ürünü çok farklı ortamlarda (production ve test ortamı olarak) pozisyonlamamıza rağmen, Redhat beklenen desteği henüz veremiyor. RHEV kurmak yerine Ovirt ile açık kaynak versiyonunu kurmanızı tavsiye ederim,
Hangi ürün daha iyi? Diye soruyorsanız, cevabım: Sizin ihtiyacınıza göre değişir.
Sanallaştırma platformu kuruyorsanız, 4 tip sanallaştırma modeli öneririm:
- Test ortamı
Proxmox veya KVM
(Test ortamları için her zaman nested virtualization tavsiye ederim)
Sunucu: 1 veya 2 adet
Network: Tek network
- KOBİ ve Küçük Şirketlerde
Proxmox veya KVM(virt-manager)
Sunucu: En az 2 veya 3 eşdeğer sunucu
Storage: Hyperconverged veya local diskler
Network: Bonding opsiyonel
- Production Ortamı
KVM Openstack platformunda kullanılabilir veya 10 sunucuya kadar Standalone kullanılabilir. Live migration vs live disk migration kolaylıkla yapılabilir(Virt-Manager.)
Sunucu: 5 veya üzerinde sunucu
Storage: Hyperconverged veya Enterprise Storage
Network: 3+ network ve bonding (örn. Eth0+Eth1-management, Eth3+Eth4-vmNet, Eth5+Eth6-Storage Backend )
- Cloud Ortamı
KVM yönetimi için bir orkestrasyon aracı gerekecektir. Onapp veya Openstack
Sunucu: 100 ile 200 arası sunucu, 2 ayrı coğrafi ortam,
Storage: local/object/Hyperconverged/Enterprise (tümü olmalı)
Network: 4 + bonding + SDN
Resim: Joshua Hoehne/www.unsplash.com