Çekirdek Tabanlı Sanal Makine (KVM), Linux’ta yerleşik olarak bulunan açık kaynak kodlu bir sanallaştırma teknolojisidir. Özellikle KVM, Linux’u bir ana bilgisayarı sanal makineler (Virtual Machines) olarak adlandırılan birden çok, yalıtılmış sanal ortamı çalıştırmasına izin veren bir hiper yöneticiye dönüştürmenize olanak tanır.
KVM, Linux’la birlikte gelir. Yani Linux sürümünüz 2.6.20 veya daha üstü ise, cihazınızda KVM var demektir. KVM ilk olarak 2006’da duyuruldu ve bir yıl sonra Linux core sürümüne dahil edildi. KVM, mevcut Linux kodunun bir parçası olduğu için, fazladan uğraşmaya gerek olmadan kullanılır, güncellenir ve kurulur.
KVM nasıl çalışır?
KVM, Linux’u tip-1 bir hipervizöre dönüştürür. Tüm hipervizörler, VM’leri çalıştırmak için bellek yöneticisi, süreç zamanlayıcı, giriş/çıkış (Input/Output) kümesi, aygıt sürücüleri, güvenlik yöneticisi, ağ (protokol) yığını gibi işletim sistemi düzeyindeki bazı bileşenlere ihtiyaç duyar. KVM, Linux çekirdeğinin bir parçası olduğu için tüm bu bileşenlere sahiptir. Her VM, ağ kartı, grafik bağdaştırıcısı, CPU(lar), bellek ve diskler gibi özel sanal donanımlarla standart Linux zamanlayıcı tarafından programlanan normal bir Linux işlemi olarak uygulanır.
KVM’yi İmplemente Etme
Uzun lafın kısası, 2007’den sonra piyasaya sürülen bir Linux sürümünü çalıştırmanız ve sanallaştırma yeteneklerini destekleyebilecek bir X86 donanımına yüklenmesi gerekiyor. Eğer kurmak istediğiniz bilgisayar ve sürüm bu standartları karşılıyorsa tek yapmanız gereken mevcut 2 modülü (ana bilgisayar çekirdeği modülü ve işlemciye özel modül), bir emülatorü ve ek sistemleri çalıştırmanıza yardımcı olacak sürücüleri yüklemektir.
Ancak KVM’yi desteklenen bir Linux dağıtımında Kvm implementasyonu, KVM’nin yeteneklerini genişleterek guest’ler arasında kaynakları dağıtmanıza, ortak kitaplıklar paylaşmanıza, sistem performansını optimize etmenize ve çok daha fazlasına olanak tanır.
KVM Sistemine Geçmek Mantıklı Mı?
Sözleşmeyle bağlandığınız bir hizmette/platformda sanal bir altyapı oluşturmak, source kodlarına erişiminizi kısıtlayabilir. Bu, IT geliştirmelerinizin muhtemelen yeniliklerden ziyade karşılaşacağınız sıkıntılara geçici çözüm bulmakla harcayacağınız ve de sizi bulutlara, konteynerlere ve otomasyona yatırım yapmaktan alıkoyabileceği anlamına gelir. KVM tabanlı bir sanallaştırma platformuna geçiş yapmak, hipervizörün arkasındaki source kodu inceleyebilmek, değiştirebilmek ve geliştirebilmek anlamına gelir. Ayrıca, korunacak bir kaynak kodu olmadığı için kurumsal lisans sözleşmesi de yoktur.
KVM özellikleri
KVM, Linux’un bir parçasıdır. Linux, KVM’nin bir parçasıdır. Linux’un sahip olduğu her şey, KVM’de de vardır. Ancak KVM’yi bir işletmenin tercih edilen hipervizörü yapan belirli özellikler vardır.
Güvenlik
KVM, güvenliği artırılmış Linux (Security Enchanced Linux) kombinasyonunu kullanır ve gelişmiş VM güvenliği ve yalıtımı için sanallaştırmayı (sVirt) güvence altına alır. SELinux, VM’ler etrafında güvenlik barikatları oluşturur. sVirt, SELinux’un yeteneklerini genişleterek guest VM’lere Zorunlu Erişim Kontrolü (MAC) güvenliğinin uygulanmasına ve manuel etiketleme hatalarının önlenmesine olanak tanır.
Depolama
KVM Linux tarafından desteklenen herhangi bir depolama ile sorunsuz bir şekilde kullanılabilmektedir. Depolamayı iyileştirmek ve yedeklilik sağlamak için Çok Yollu giriş/çıkış kullanılabilir. KVM ayrıca paylaşılan dosya sistemlerini de destekler, böylece VM görüntüleri birden çok ana bilgisayar tarafından paylaşılabilir. Disk görüntüleri, önceden değil, isteğe bağlı olarak depolama tahsis ederek ince provizyonu destekler.
Donanım desteği
KVM, sertifikalı ve Linux destekli donanım platformlarını kullanabilir. Donanım satıcıları düzenli olarak çekirdek geliştirmeye katkıda bulundukları için, en son donanım özellikleri genellikle Linux çekirdeğinde hızla benimsenir.
Hafıza Yönetimi
KVM, Linux’un bellek yönetimi özelliklerini devralır (kernel same-page merging ve non-uniform memory access vb). Bir VM’nin hafıza kapasitesi değiştirilebilir, daha iyi performans için büyük yükseltilebilir ve bir disk dosyasıyla paylaşılabilir veya desteklenebilir.
Canlı Geçiş
Canlı geçiş özelliği, hali hazırda çalışmakta olan bir sanal makineyi hizmet kesintisi olmadan fiziksel ana bilgisayarlar arasında taşımayı sağlar ve KVM bu özelliğe sahiptir. VM açık kalır, ağ bağlantıları etkin kalır ve VM yeniden konumlandırılırken uygulamalar çalışmaya devam eder. KVM ayrıca bir sanal makinenin mevcut durumunu kaydeder, böylece daha sonra devam ettirebilir veya depolayabiliriz.
Performans ve Ölçeklenebilirlik
KVM, konuk makinelerin ve isteklerin sayısı artarsa talep yüküne uyacak şekilde ölçeklendirerek Linux’un performansını devralır. KVM, en zorlu uygulama iş yüklerinin sanallaştırılmasına olanak tanır ve veri merkezleri ve özel bulutlar (OpenStack® aracılığıyla) gibi birçok kurumsal sanallaştırma kurulumunun temelini oluşturur.
Planlama ve Kaynak Kontrolü
KVM modelindeki bir sanal makine, çekirdek tarafından planlanan ve yönetilen bir Linux sürecidir. Linux zamanlayıcı, bu sürece tahsis edilen kaynakların hassas bir şekilde kontrol edilmesini sağlar ve belirli bir süreç için bir hizmet kalitesini garanti eder. KVM’de buna adil zamanlayıcı, kontrol grupları, ağ alanları ve gerçek zamanlı uzantılar dahildir.
Ne Düşünüyorsun?
Yorumları Göster / Yorum Bırak