KVM Sanallaştırma Nedir ? Kurulum Aşamaları
KVM, Linux çekirdeği için geliştirilmiş olup bir üst sisteme dönüştürülmek için kullanılan sanallaştırma altyapısıdır. 5 Şubat 2007’de 2.6.20 sürümüyle birlikte Linux çekirdeğine tamamen eklenmiştir. KVM kullanabilir olması için işlemcinizin sanallaştırma desteğine ihtiyaç duyar.
KVM Nedir ?
KVM hypervisor, Linux dağıtımları için ücretsiz, açık kaynaklı bir sanallaştırma teknolojisi katmanıdır.
KVM, ana hat Linux çekirdeğinin bir parçası olan ve piyasada bulunan hemen hemen her Linux dağıtımında kullanılabilen bir hiper yönetici teknolojisi olan Çekirdek tabanlı Sanal Makine’nin kısaltmasıdır.
KVM’yi kullanabilmeniz için VT (sanallaştırma teknolojisi) uzantılarına sahip bir Intel işlemci üzerinde yeni bir Linux çekirdeği çalıştıran bir x86 makinesine veya SVM uzantılarına (AMD-V olarak da adlandırılır) sahip bir AMD işlemciye ihtiyacınız olacaktır.
KVM sadece bir hipervizör katmanı olduğundan, çoğu insanın bir sanallaştırma platformunda arayacağı işlevselliği sağlamak için diğer araçları kullanır.
Örneğin, bir grafik kullanıcı arabirimi (GUI) istiyorsanız , bu işlevi sağlamak için Virtual Machine Manager (başka bir Linux tabanlı paket) veya oVirt gibi bir araca ihtiyacınız vardır. KVM, donanım erişimi sağlar ve VM adres alanlarını, I / O akışını, vb. şeyleri yönetir. VMM ve diğer araçlar, KVM’nin komuta ve kontrolü için kullanıcı dostu arayüzler sağlayarak modern kullanım için eksiksiz bir sanal platform oluşturur.
İki farklı hipervizör türü vardır:
Tip 1 (bare metal) : Bu hiper yönetici, bir işletim sistemine yerleştirilmeden doğrudan kullanılan donanım üzerinde çalışır.
Tip 2 (hosted) : Bu hiper yönetici, ana bilgisayar işletim sistemine yerleşiktir ve buradan etkinleştirilir.
KVM , sanallaştırmada Linux işletim sistemi çekirdeğini (kernel) yönetici olarak görev yapar ve sanallaştırılmış yapıda performansı yükseltir. Bu yapı sanallaştırılmış sunucu (VM) oluşturur. İşlemci, ram, hard disk ve diğer kaynaklar için özel bir yapı oluşturarak bunları koordine eder. Bir nevi donanımsal sanallaştırma gerçekleştirir.
KVM Özellikleri
Güvenlik: Çekirdek tabanlı sanal makine, optimum VM güvenliği ve izolasyonunu sağlamak için güvenli sanallaştırma (sVirt) ve gelişmiş güvenlik (SELinux) ile bir Linux kombinasyonu kullanır. SELinux, sanal makinenin güvenlik sınırlarını tanımlar, sVirt ise SELinux’un işlevlerini genişletir. Örneğin sVirt, konuk VM’ler için zorunlu erişim kontrolünün kullanılmasını sağlar ve manuel tanımlama hatalarının daha yüksek sistem seviyelerine yayılmasını önler.
Depolama: KVM, karmaşık NAS (Ağa Bağlı Depolama) sistemleri dahil olmak üzere Linux tarafından desteklenen herhangi bir depolama ortamını kullanabilir . Depolama sistemini optimize etmek ve yedeklilik sağlamak için “çok yollu I / O” kullanılabilir. Çekirdek tabanlı sanal makine ayrıca paylaşılan dosya sistemleri için destek sunar , böylece VM görüntüleri farklı ana bilgisayarlar arasında paylaşılabilir. Buna ek olarak, disk görüntüleri ince provizyonu destekler ve birçok benzer sistemde olduğu gibi önceden değil, gerektiğinde depolamayı tahsis edebilir .
Donanım desteği: KVM, Linux tarafından desteklenen çeşitli platformlarda kullanılabilir. Birçok donanım üreticisi düzenli olarak çekirdek geliştirmeye katkıda bulunur, böylece yeni donanım işlevleri ve özellikleri çoğu durumda çekirdeğe çok hızlı bir şekilde entegre edilir .
Bellek yönetimi: Çekirdek tabanlı sanal makine, tek tip olmayan bellek erişimi ve çekirdekle aynı sayfa birleştirme dahil olmak üzere Linux’un bellek yönetimi altyapısını kullanır. Bir sanal makinenin hafızası kişisel ihtiyaçlara göre tasarlanabilir ve daha büyük kapasiteler veya daha iyi performans ile güçlendirilebilir.
Gerçek zamanlı geçiş: KVM, canlı geçiş için yerel destek sağlar . Bu, çalışan bir sanal makineyi VM’ nin çalışmasını kesintiye uğratmadan fiziksel ana bilgisayarlar arasında taşıma yeteneğidir . VM açık kalır, ağ bağlantıları aktif kalır ve VM yeniden konumlandırılırken uygulamalar çalışmaya devam eder. KVM ayrıca yerel olarak veya bulutta kaydedilebilmesi ve daha sonra devam edilebilmesi için bir sanal makinenin mevcut durumunu da kaydeder.
Ölçeklenebilirlik ve performans: KVM , Linux’un performansını temel alır ve sanal makinelere gelen istek sayısı arttıkça otomatik olarak yük gereksinimlerine göre ölçeklenebilir. Çekirdek tabanlı sanal makine ile büyük uygulama iş yükleri hızlı ve kolay bir şekilde sanallaştırılabilir. KVM ayrıca özel bulutlar ve veri merkezleri gibi birçok kurumsal sanallaştırma kurulumunun temelini oluşturur.
Planlama ve kaynak kontrolü: KVM modelinde bir VM, çekirdek tarafından planlanan ve yönetilen bir Linux sürecidir. Linux zamanlayıcı, bir Linux sürecine tahsis edilen kaynakların ayrıntılı kontrolüne izin verir ve belirli işlem için bir hizmet kalitesini garanti ederi. KVM’ de bu tamamen adil zamanlayıcıyı, kontrol gruplarını, ağ adı alanlarını ve gerçek zamanlı uzantıları içerir.
KVM Sanallaştırmanın Avantajları ve Dezavantajları
KVM Sanallaştırmanın Avantajları
- Düşük maliyetlidir.
- Doğrudan Kernal ile etkileşime girebilir.
- Mükemmel güvenlik: KVM’nin temeli Linux’tan oluştuğu için, SE Linux gelişmiş güvenlik sistemini kullanır.
- Herkes İçin Kullanılabilir: Açık ortam, herkesin onu kullanabileceği ve sistemi belirli gereksinimlere uyacak şekilde özelleştirebileceği anlamına gelir.
- Açık kaynaklı bulut otomasyon yazılımının çoğu, varsayılan bir hiper yönetici olarak KVM’yi kullanır.
- KVM’nin diğer bir avantajı, tüm uygulamaların aynen özel bir sunucuda olduğu gibi çalıştırıyor olmasıdır.
- Kendi çekirdeğini kullanır.
KVM Sanallaştırmanın Dezavantajları
- Karmaşık Ağ Oluşturma: KVM kullanmanın ana dezavantajlarından biri karmaşık kurulum sürecidir. Diğer sistemlerden daha karmaşıktır.
- Sınırlı İşlemciler: Diğer bir dezavantaj, KVM sanallaştırmasının hepsinde değil, yalnızca belirli işlemcilerde mevcut olmasıdır.
- CPU Sanallaştırma Desteği: KVM gibi tam sanallaştırmanın dezavantajı, -performans seviyesinin Para-sanallaştırmaya kıyasla biraz düşebilmesidir.
Linux KVM’ye Alternatifler
XEN, benzer işlere sahip yazılım söz konusu olduğunda ücretsiz olarak kullanılabilir bir alternatiftir. Linux ile yakından bağlantılı ancak çekirdeğe entegre edilmemiş bir sanallaştırma çözümü.
VMware , firmasının ESXi yazılımı ile sunucuları sanallaştırmaya ve iş istasyonu oluşturmaya alternatif çözümler sunar.
VirtualBox , tüm yaygın işletim sistemlerinin temeli olarak kullanılabilen tam sanallaştırmaya başka bir ücretsiz alternatiftir.
Hyper-V Linux KVM’ye benzer işlevselliğe sahip olan sanallaştırma için Microsoft Windows sanallaştırma çözümüdür. Özel bir Windows Hyper-V sunucusuna ve sunucu işletim sistemlerinde yerleşik işlevselliğe sahiptir.
KVM Kurulumunun Ön Şartları
CPU’nuzun donanım sanallaştırmayı destekleyip desteklemediğini kontrol edin
KVM’yi çalıştırmak için, donanım sanallaştırmayı destekleyen bir işlemciye ihtiyacınız vardır. Intel ve AMD, işlemcileri için sırasıyla Intel VT-x (kod adı Vanderpool) ve AMD-V (kod adı Pacifica) olarak adlandırılan uzantılar geliştirilmiştir. İşlemcinizin bunlardan birini destekleyip desteklemediğini görmek için bu komutun görüntüsünü inceleyebilirsiniz:
egrep -c '(vmx|svm)' /proc/cpuinfo
Eğer komutun sonucu 0 ise donanım sanallaştırma desteklemediği anlamına gelir.
Eğer bu komutun sonucunda 1 çıkıyorsa BIOS üzerinden etkinleştirme yapıldığından emin olmak gerekiyor.
Varsayılan olarak, XEN çekirdeğine önyükleme yaptıysanız grep komutunu kullanarak svm veya vmx bayrağını görüntülemeyecektir. Xen’den etkin olup olmadığını görmek için şunu girin:
cat /sys/hypervisor/properties/capabilities
Çıktıda hvm bayraklarını görmelisiniz.
Alternatif olarak, şunları da uygulayabilirsiniz:
kvm-ok
şunun gibi bir çıktı sağlayabilir:
INFO: /dev/kvm exists KVM acceleration can be used
Eğer görürsen :
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
Sanal makineleri çalıştırabilirsiniz, ancak KVM uzantıları olmadan çok daha yavaş olacaktır.
NOT: “KVM hızlandırması kullanılabilir / KULLANILAMAZ” gibi bir mesaj görebilirsiniz. Bu yanıltıcı olabilir ve yalnızca KVM’nin * şu anda * kullanılabilir olması (yani, “açık” olması), destekleniyorsa * olmaması * anlamına gelmektedir.
64 bitlik bir çekirdek kullanın
Ana bilgisayar işletim sisteminde 64 bitlik bir çekirdek çalıştırılması önerilir.
VM’leriniz için 2 GB’den fazla RAM sunmak için 64 bitlik bir çekirdek kullanmanız gerekir. 32 bitlik bir çekirdek kurulumunda, belirli bir VM için maksimum 2GB RAM ile sınırlandırılırsınız.
- Ayrıca 64 bitlik bir sistem hem 32 bit hem de 64 bit konukları barındırabilir. 32 bitlik bir sistem yalnızca 32 bit konukları barındırabilir.
İşlemcinizin 64 bit olup olmadığını görmek için aşağıdaki komutu kullanabilirsiniz.
egrep -c ' lm ' /proc/cpuinfo
Eğer bu komutun sonucu 0 ise işlemcinin 64 bit olmadığı anlamına gelir.
Eğer 1 ise işlemcinin 64 bit olduğu anlamına gelir.
Şimdi çalışan çekirdeğinizin 64 bit olup olmadığını kontrol edin,
uname -m
x86_64 , çalışan 64 bitlik bir çekirdeği gösterir. İ386, i486, i586 veya i686 kullanıyorsanız, 32 bitlik bir çekirdek çalıştırıyorsunuz demektir.
Not: x86_64, amd64 ile eş anlamlıdır.
KVM kurulumu
Gerekli Paketleri Kurun
Aşağıda kurulum için, KVM’yi bir sunucuya dağıttığınızı ve bu nedenle makinede herhangi bir X sunucunuzun olmadığını varsayarak anlatacağız.
Önce birkaç paket kurmanız gerekir:
Lucid (10.04) veya üstü
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Karmic (9.10) veya öncesi
$ sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
libvirt-bin , libvirt kullanarak qemu ve kvm örneklerini yönetmeniz gereken libvirtd’yi sağlar
qemu-kvm ( Karmic ve önceki sürümlerde kvm ) arka uçtur
ubuntu-vm-builder sanal makineler oluşturmak için güçlü komut satırı aracı
bridge-utils , ağınızdan sanal makinelere bir köprü sağlar
Örnekleri görüntülemek için sanal görüntüleyiciyi de kurmak isteyebilirsiniz .
Kullanıcıları Gruplara Ekleyin
Karmic (9.10) ve sonrası (ancak 14.04 LTS değil)
Kullanıcı adınızın libvirtd grubuna eklendiğinden emin olmanız gerekir:
$ sudo adduser `id -un` libvirtd Adding user '<username>' to group 'libvirtd' ...
Bundan sonra kullanıcı libvirtd grubunun etkili bir üyesi olması için tekrar giriş yapması gerekir. Bu grubun üyeleri sanal makineleri çalıştırabilir.
Karmic’ten önceki sürümler (9.10)
Kullanıcı adınızın kvm ve libvirtd gruplarına eklendiğinden emin olmanız gerekir.
Kontrol etmek için aşağıdaki komutu uygulayın,
$ groups adm dialout cdrom floppy audio dip video plugdev fuse lpadmin admin sambashare kvm libvirtd
Kullanıcı adı ‘nızı gruplara eklemek için:
$ sudo adduser `id -un` kvm Adding user '<username>' to group 'kvm' ... $ sudo adduser `id -un` libvirtd Adding user '<username>' to group 'libvirtd' ...
Kurulumdan sonra, kvm ve libvirtd kullanıcı gruplarının etkin bir üyesi olması için kullanıcınızın yeniden oturum açması gerekir. Bu grubun üyeleri sanal makineleri çalıştırabilir.
Kurulumu Doğrulayın
Aşağıdaki komutla kurulumunuzun başarılı olup olmadığını test edebilirsiniz:
$ virsh list --all Id Name State ---------------------------------- $
Böyle bir yazı ile karşılaşırsanız eğer,
$ virsh list --all libvir: Remote error : Permission denied error: failed to connect to the hypervisor $
/var/run/libvirt/libvirt-sock dosyasına yazma izniyle ilgili sorun bulunuyor demektir.
Sock dosyalarının izinleri aşağıdaki gibi olmalıdır
$ sudo ls -la /var/run/libvirt/libvirt-sock srwxrwx--- 1 root libvirtd 0 2010-08-24 14:54 /var/run/libvirt/libvirt-sock
Ayrıca /dev /kvm’ nin doğru grupta olması gerekir.
$ ls -l /dev/kvm crw-rw----+ 1 root root 10, 232 Jul 8 22:04 /dev/kvm
Sanal makine oluştururken yukarıdaki gibi bir sorunlarla karşılaşabilirsiniz. Aygıtın grubunu kvm/libvirtd olarak değiştirin:
sudo chown root:libvirtd /dev/kvm
Şimdi çekirdek modülleri için yeniden oturum açmanız veya yeniden başlatmanız gerekmektedir:
rmmod kvm modprobe -a kvm
ÖZET
KVM, Linux çekirdeği için geliştirilmiş olup bir üst sisteme dönüştürülmek için kullanılan sanallaştırma altyapısıdır.
Linux dağıtımları için ücretsiz, açık kaynaklı bir sanallaştırma teknolojisi katmanıdır.
KVM , sanallaştırmada Linux işletim sistemi çekirdeği (kernel) yönetici olarak görev yapar ve sanallaştırılmış yapıda performansı yükseltir. Bu yapı sanallaştırılmış sunucu (VM) oluşturur. İşlemci, ram, hard disk ve diğer kaynaklar için özel bir yapı oluşturarak bunları koordine eder. Bir nevi donanımsal sanallaştırma gerçekleştirir.
KVM Sanallaştırma Nedir ? Kurulum Aşamaları başlıklı yazımız ile ilgili aklınıza takılan sorularınızın yanıtını alabilmeniz için veya öneride bulunabilmeniz için aşağıda yer alan yorumlar kısmını kullanarak bizimle iletişime geçebilirsiniz.
Dilerseniz daha önce bloğumuzda paylaştığımız cPanel Comodo WAF Kurulumu ve Yapılandırılması başlıklı yazımızı da okuyabilirsiniz.