Sunucu

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 nedir

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.

  1. 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.

  2. 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.

Serhat Yılmaz

Blog sayfamızda bilişim sektöründe edinmiş olduğum bilgi ve deneyimleri paylaşmaktayız. Yazılarımıza yorumlarınızı katarak bizleri mutlu edebilirsiniz.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu