Yazılım

KVM Sanallaştırma Nedir? Ne İşe Yarar, Nasıl Çalışır?

Talha Aslan 15 dakikalık okuma 3 görüntülenme

KVM sanallaştırma nedir?

KVM (Kernel-based Virtual Machine), Linux çekirdeğine gömülü bir sanallaştırma çözümüdür. Sanallaştırma uzantılı işlemcilerde çalışır ve Linux makinenizi bir hypervisor’a çevirir. Böylece tek bir fiziksel makinede kendi işletim sistemine, diskine ve ağ kartına sahip birden fazla bağımsız sanal makine çalıştırırsınız.

Bu yazıda KVM sanallaştırmanın nasıl çalıştığını, QEMU ve libvirt ile ilişkisini ve donanım desteğini nasıl kontrol edeceğinizi anlatıyoruz. Ardından VMware, Hyper-V ve Xen ile kısa bir karşılaştırma yapıyoruz.

Biz dijital pazarlama ve web ekibiyiz, hosting firması değiliz. Bu yüzden anlatımızı resmi dokümanlara dayandırıyoruz. Sürüm numarası ya da performans rakamı vermiyoruz, çünkü bunlar dağıtıma ve donanıma göre değişir.

Sanallaştırma ve hypervisor ne demek?

Sanallaştırma, bir fiziksel makinenin işlemci, bellek ve disk kaynaklarını birden fazla yalıtılmış sanal makineye paylaştırma tekniğidir. Hypervisor ise bu paylaşımı yöneten yazılım katmanıdır. Böylece her sanal makine kendini gerçek bir bilgisayar sanır.

Misafir (guest) dediğimiz sanal makine ise kendi çekirdeğini çalıştırır, yani gerçek bir bilgisayar gibi davranır. Ev sahibi (host) ise fiziksel makineyi ve hypervisor’ı taşır. Örneğin bir Windows misafirini Linux ev sahibi üzerinde çalıştırabilirsiniz.

Sanallaştırmanın web projeleri için üç temel faydası var. İlk olarak bir makineyi daha verimli kullanırsınız. Ayrıca bir sanal makine bozulduğunda diğerleri etkilenmez. Son olarak yeni bir ortamı dakikalar içinde kurar ve silersiniz.

KVM’yi diğer sanallaştırma yaklaşımlarından ayıran nokta, hypervisor’ı ayrı bir ürün olarak kurmamanızdır. Linux çekirdeği, KVM modülü yüklendiğinde bu görevi üstlenir. Dolayısıyla Linux’un sürücü desteğinden ve güvenlik güncellemelerinden aynı çekirdek üzerinden yararlanırsınız.

Bu yaklaşım, KVM sanallaştırmayı Linux sunucu dünyasında yaygın bir temel haline getirdi. Ancak “yaygın” demek “her durumda en iyisi” demek değildir. Bu yazının ilerleyen bölümlerinde artılarını ve sınırlarını birlikte görüyorsunuz.

KVM sanallaştırma nasıl çalışır?

KVM iki parçadan oluşur: çekirdek modülü ve işlemciye özel modül. Proje sayfasına göre çekirdek tarafında kvm.ko çalışır. Intel işlemcilerde kvm-intel.ko, AMD işlemcilerde kvm-amd.ko devreye girer. Bu sayede modüller donanımın sanallaştırma komutlarını doğrudan kullanır.

Linux çekirdeği belgeleri, KVM’ye /dev/kvm aygıt dosyası üzerinden eriştiğinizi anlatır. Bu dosyayı açan bir program sistem komutlarıyla sanal makine oluşturur. Ardından sanal işlemcileri yönetir. Ayrıntıyı Linux çekirdeğinin KVM API belgesinde görebilirsiniz.

Aynı belge işlemi üç düzeyde anlatır: sistem, sanal makine ve sanal işlemci düzeyi. Sistem düzeyinde genel bilgi alır ve yeni sanal makine oluşturursunuz. Sanal makine düzeyinde makinenin genel özelliklerini ayarlarsınız. Sanal işlemci düzeyinde ise her işlemciyi ayrı ayrı yönetirsiniz.

Kısacası KVM tek başına bir yönetim arayüzü sunmaz. Sanal makinenin disk, ağ ve ekran gibi aygıtlarını taklit eden bir kullanıcı alanı programı gerekir. Bu program çoğu kurulumda, yani pratikte, QEMU olur.

  • Çekirdek tarafı: kvm.ko ile işlemciye özel kvm-intel.ko ya da kvm-amd.ko.
  • Arayüz: kullanıcı alanı programlarının eriştiği /dev/kvm dosyası.
  • Kullanıcı alanı: sanal aygıtları sağlayan QEMU.
  • Yönetim katmanı: libvirt ve onun araçları.

KVM, QEMU ve libvirt arasındaki ilişki nedir?

Üç bileşen birbirini tamamlar ama aynı şey değildir. KVM işlemciyi sanallaştırır. Öte yandan QEMU sanal aygıtları sağlar. libvirt ise bunları ortak bir arayüzle yönetmenizi sağlar. Bu yüzden tabloya bakınca rolleri daha kolay ayırırsınız.

BileşenRolüNerede çalışır
KVMİşlemci sanallaştırmasını donanım desteğiyle yaparLinux çekirdeği
QEMUSanal disk, ağ kartı ve ekran gibi aygıtları sağlarKullanıcı alanı
libvirtSanal makineleri tek tip arayüzle tanımlar ve yönetirKullanıcı alanı (servis ve araçlar)
virshlibvirt’in komut satırı aracıTerminal
virt-managerlibvirt için masaüstü arayüzüMasaüstü

KVM proje sayfasına göre KVM’nin kullanıcı alanı parçası ana QEMU sürümüne dahildir. QEMU belgeleri de sanallaştırıcı olarak kullanıldığında misafir kodunu doğrudan ana işlemcide çalıştırarak yerel hıza yakın performans elde ettiğini söyler. Ayrıntı için QEMU hakkında sayfasına bakın.

libvirt, sanallaştırma platformlarını yönetmek için yazılmış bir araç takımıdır. Resmi sayfası KVM, QEMU, Xen, VMware ESX ve LXC gibi birçok sürücüyü desteklediğini belirtir. Bu sayede aynı komutlarla farklı hypervisor’ları yönetirsiniz. Daha fazlasını libvirt proje sayfasında okuyabilirsiniz.

Örneğin bir sanal makineye libvirt dünyasında “domain” denir. Domain’in tanımı bir XML dosyasında durur. Bu dosyada işlemci sayısı, bellek miktarı, disk ve ağ ayarları yer alır. Dolayısıyla aynı tanımı başka bir makineye taşıyıp kopyalayabilirsiniz.

KVM sanallaştırmada host, guest ve domain ne anlama gelir?

Terimler ilk bakışta karışık görünür, ancak birkaç kavramla yetinirsiniz. Aşağıdaki tablo, belgelerde en sık karşılaşacağınız sözcükleri özetler. Böylece resmi kılavuzları okurken kaybolmazsınız.

TerimAnlamıÖrnek
Host (ev sahibi)Fiziksel makine ve üzerindeki LinuxSağlayıcının donanımı ya da kendi sunucunuz
Guest (misafir)Sanal makinenin içindeki işletim sistemiUbuntu ya da Windows misafir
Domainlibvirt’in sanal makineye verdiği advirsh list çıktısındaki satır
vCPUSanal makineye ayrılan sanal işlemciİki vCPU’lu küçük sunucu
Disk imajıSanal makinenin diskini taşıyan dosyaKurulumda belirttiğiniz 20 GB’lık dosya

Bu sözlüğü aklınızda tutarsanız komut çıktılarını daha kolay yorumlarsınız. Örneğin virsh çıktısındaki her satır bir domain’i, yani bir misafiri gösterir.

KVM sanallaştırma için hangi donanım desteği gerekir?

KVM, x86 işlemcilerde donanım sanallaştırma uzantıları ister. Intel işlemcilerde bu uzantıya VT-x, AMD işlemcilerde AMD-V denir. KVM proje sayfası da çözümün bu uzantılara sahip x86 donanımı için olduğunu söyler.

Günümüzde çoğu sunucu ve masaüstü işlemcisi bu desteği taşır, ancak her zaman açık gelmez. Ancak üretici bazı sistemlerde özelliği BIOS ya da UEFI ayarından kapalı bırakabilir. Bu yüzden destek olsa bile ayarı kontrol etmeniz gerekir.

Linux’ta Intel uzantısı “vmx”, AMD uzantısı “svm” bayrağı olarak görünür. Ayrıca bu iki bayraktan birini görüyorsanız işlemciniz sanallaştırmayı destekliyor demektir. Bir sonraki bölümde bunu nasıl denetleyeceğinizi gösteriyoruz.

Bir uyarı not edelim. Özellikle bazı dizüstü ve masaüstü bilgisayarlarda bu ayar varsayılan olarak kapalı gelir. Sanal makine denemesi yapacaksanız firmware ayarlarına girip seçeneği açmanız gerekebilir. Seçeneğin adı üreticiye göre değişir, bu yüzden kendi kılavuzuna bakın.

İşlemcinin sanallaştırma desteğini nasıl kontrol edersiniz?

İlk kontrol, işlemci bayraklarına bakmaktır. Aşağıdaki komut vmx ya da svm bayrağı taşıyan çekirdek sayısını yazar. Sonuç sıfırdan büyükse yani destek varsa devam edebilirsiniz. Sonuç sıfırsa donanım desteği yoktur ya da BIOS’ta kapalıdır.

grep -E -c '(vmx|svm)' /proc/cpuinfo

lscpu | grep -i virtualization

İkinci komut, lscpu çıktısındaki “Virtualization” satırını gösterir. Burada Intel için VT-x, AMD için AMD-V yazması beklenir. Çıktının biçimi dağıtıma ve sürüme göre biraz değişebilir.

Bir sanal sunucunun içindeysiniz ve bayrak görünmüyorsa şaşırmayın. Çünkü birçok VPS sağlayıcısı bu bayrakları misafire açmaz. Bu konuyu iç içe sanallaştırma bölümünde ele alıyoruz.

KVM modülleri yüklü ve çalışıyor mu?

Bayrak varsa sıradaki adım KVM modüllerini ve aygıt dosyasını görmektir. Modül listesinde kvm ile birlikte kvm_intel ya da kvm_amd satırı olmalıdır. Ayrıca /dev/kvm dosyası bulunmalıdır. Aşağıdaki komutlarla bunları görürsünüz.

lsmod | grep kvm

ls -l /dev/kvm

sudo virt-host-validate qemu

virt-host-validate, libvirt ile gelen bir doğrulama aracıdır. Resmi kılavuzuna göre makinenin libvirt hypervisor sürücülerini çalıştırmaya uygun olup olmadığını denetler. Çıktıda her madde için “PASS” ya da uyarı görürsünüz. Böylece eksiği ilk elde bulursunuz.

Komutların çıktısı dağıtıma göre değişir. Dolayısıyla hata görürseniz önce dağıtımınızın belgesine bakın. Ayrıca üretim ortamındaki bir sunucuda denemeden önce mutlaka test makinesinde çalışın.

KVM, VMware, Hyper-V ve Xen ile nasıl karşılaştırılır?

Dört çözüm de sanal makine çalıştırır, ancak lisans modeli, yönetim araçları ve ekosistemleri farklıdır. Aşağıdaki tablo genel resmi gösterir. Ayrıntılı özellik karşılaştırması için her ürünün güncel belgesine bakmalısınız, çünkü özellikler sürümle değişir.

ÇözümLisans yapısıÇalıştığı yerTipik kullanım
KVMAçık kaynakLinux çekirdeğinin parçasıVPS sağlayıcıları, Linux sunucular, test ortamları
VMwareTicari ürünler, lisans koşulları değişebilirKendi hypervisor ürünleriKurumsal veri merkezleri
Hyper-VMicrosoft ürünü, Windows ile birlikte gelirWindows tabanlı ortamlarWindows ağırlıklı kurumlar
XenAçık kaynakAyrı bir hypervisor katmanıBazı bulut ve sanallaştırma altyapıları

Seçimi çoğu zaman teknik üstünlük değil, mevcut altyapınız belirler. Örneğin Windows ağırlıklı bir ofiste Hyper-V doğal seçimdir. Linux ağırlıklı bir ekip ise KVM ile ek lisans bedeli ödemeden başlayabilir. Yine de lisans ve destek koşullarını üreticinin güncel sayfasından kontrol edin.

VPS sağlayıcıları KVM sanallaştırmayı nasıl kullanır?

Birçok VPS ve bulut sağlayıcısı, müşterilerine sanal sunucu verirken KVM tabanlı sanallaştırma kullanır. Siz panelden bir sunucu sipariş edersiniz. Sağlayıcı da fiziksel makinede sizin için bir sanal makine oluşturur. Sonuçta kendi çekirdeğiniz ve işletim sisteminiz olan bir sunucu elde edersiniz.

Hangi sanallaştırma türünü kullandıklarını sağlayıcıların ürün sayfasından öğrenirsiniz. Sağlayıcı bunu belirtmiyorsa destek ekibine sorun. KVM tabanlı bir VPS’te root yetkisiyle kendi güvenlik duvarınızı kurabilir, istediğiniz Linux dağıtımını seçebilirsiniz.

VPS, VDS ve bulut sunucu terimlerinin farkını merak ediyorsanız VPS, VDS ve bulut sunucu karşılaştırmamıza göz atın. Orada kaynak garantisi ve faturalama farklarını anlatıyoruz.

Elinizdeki sanal sunucunun türünü bir komutla da öğrenebilirsiniz. Birçok modern Linux dağıtımında bulunan systemd-detect-virt aracı, sistemin hangi sanallaştırma teknolojisinde çalıştığını yazar. KVM tabanlı bir misafirde çıktının kvm olmasını beklersiniz.

systemd-detect-virt

lscpu | grep -i hypervisor

lscpu çıktısındaki hypervisor satırı da ipucu verir. Çıktı biçimi sürüme göre değişebilir. Emin olamıyorsanız sağlayıcınızın belgesine ya da destek ekibine başvurun.

KVM sanal makinesi ile Docker konteyneri arasındaki fark nedir?

KVM sanal makinesi kendi çekirdeğini çalıştırır. Docker konteyneri ise ev sahibinin çekirdeğini paylaşır. Bu yüzden konteyner daha hafiftir ve saniyeler içinde başlar. Sanal makine ise daha güçlü bir yalıtım sunar ve farklı işletim sistemleri çalıştırabilir.

  • Sanal makine: kendi çekirdeği ve tam işletim sistemi vardır, yalıtımı güçlüdür.
  • Konteyner: ev sahibinin çekirdeğini kullanır, hafiftir ve hızlı başlar.
  • Birlikte kullanım: Birçok ekip konteynerleri bir sanal makinenin içinde çalıştırır.

İkisi rakip değil, tamamlayıcıdır. Örneğin KVM tabanlı bir VPS alır, içine Docker kurar ve uygulamanızı konteynerle yayınlarsınız. Konteyner mantığını öğrenmek için Docker ve konteyner rehberimize bakabilirsiniz.

virsh ile sanal makineleri nasıl yönetirsiniz?

virsh, libvirt’in komut satırı aracıdır. Resmi kılavuzuna göre domain listeleme, başlatma, durdurma ve konsola bağlanma gibi işlemleri yapar. Aşağıdaki örnekte vm1 adlı bir sanal makine kullanıyoruz. Adı kendi makinenizin adıyla değiştirin. Komutların hangi libvirt bağlantısına gittiğini de bilmelisiniz.

libvirt belgeleri iki yaygın bağlantı adresi anlatır. qemu:///system sistem genelindeki domain’lere, qemu:///session ise kullanıcıya ait domain’lere bağlanır. Bir domain’i listede göremiyorsanız yanlış bağlantıya bakıyor olabilirsiniz. Bağlantıyı -c seçeneğiyle belirtirsiniz, örneğin: virsh -c qemu:///system list --all.

virsh list --all
virsh start vm1
virsh domstate vm1
virsh dominfo vm1
virsh console vm1
virsh shutdown vm1
virsh autostart vm1
  • list --all: hem çalışan hem kapalı domain’leri listeler.
  • start: tanımlı ama kapalı bir domain’i başlatır.
  • shutdown: misafir işletim sistemine kapanma isteği gönderir.
  • autostart: domain’i her açılışta otomatik başlatacak şekilde ayarlar.
  • console: sanal seri konsola bağlanır.

Bir de destroy komutu var. Adı tehlikeli görünse de sanal makineyi yalnızca anında sonlandırır, yani fişi çekmeye benzer. Disk dosyasını silmez. Ancak açık dosyalar bozulabileceği için önce shutdown deneyin. undefine ise domain tanımını kaldırır.

virt-manager ve virt-install ne işe yarar?

virt-manager, libvirt üzerinden sanal makine yöneten bir masaüstü uygulamasıdır. Proje sayfası, uygulamanın öncelikle KVM sanal makinelerini hedeflediğini ve Xen ile LXC’yi de yönettiğini belirtir. Sanal makine oluşturur, kaynakları ayarlar, grafik konsola bağlanırsınız. Ayrıntı için virt-manager sayfasına bakın.

virt-install ise aynı projenin komut satırı aracıdır. Proje sayfası onu, işletim sistemlerini sanal makinelere kurmanın kolay bir yolu olarak tanıtır. Sunucuda grafik ekran yoksa bu araç işinizi görür. Aşağıdaki örnek genel bir iskelettir.

virt-install \
  --name vm1 \
  --memory 2048 \
  --vcpus 2 \
  --disk size=20 \
  --cdrom /path/to/installer.iso \
  --os-variant OS_VARIANT

OS_VARIANT yerine kurduğunuz işletim sisteminin adını yazarsınız. Uygun adları osinfo-query os komutuyla listeleyebilirsiniz. Bellek, disk ve ISO yolu ise örnek değerlerdir. Kendi ihtiyacınıza göre değiştirin.

KVM sanallaştırma hangi durumlarda işe yarar?

KVM, aynı makinede birden fazla yalıtılmış ortama ihtiyaç duyduğunuz her yerde işe yarar. Yazılım ekipleri için tipik senaryoları şöyle sıralayabiliriz.

  • Test ve hazırlık ortamı: Canlı siteyi etkilemeden güncellemeleri denersiniz.
  • Farklı işletim sistemleri: Linux üzerinde bir Windows sanal makinesi çalıştırırsınız.
  • Geliştirme: Her proje için temiz ve silinebilir bir ortam kurarsınız.
  • Sunucu birleştirme: Az kullanılan birkaç sunucuyu tek makinede toplarsınız.
  • Eğitim ve laboratuvar: Ağ ve güvenlik denemelerini gerçek sistemleri riske atmadan yaparsınız.

Web sitesi sahibi için bunun anlamı basittir. Sitenizi güncellemeden önce bir kopyasını sanal makinede denerseniz hatayı müşterilerinizden önce görürsünüz. Yedekleme düzeniniz için web sitesi yedekleme stratejisi yazımıza da bakın.

Küçük ekipler için başka bir fayda daha var: ortam tanımı tekrarlanabilir olur. Bir sanal makinenin ayarlarını belgelediğinizde yeni bir geliştirici aynı ortamı kısa sürede kurar. Böylece “bende çalışıyor” tartışmaları azalır.

Kurumsal tarafta ise sanallaştırma kapasite planlamasını kolaylaştırır. Hangi sanal makinenin ne kadar işlemci ve bellek kullandığını görür, buna göre karar alırsınız. Bu analizi yaparken gerçek kullanım verisine dayanın, tahmine değil.

KVM sanallaştırma ne zaman doğru seçim olmaz?

KVM her işe uymaz. Tek bir küçük web sitesi için sanal makine kurmak gereksiz yük getirir. Böyle bir site için paylaşımlı hosting ya da yönetilen bir hizmet çoğu zaman daha mantıklıdır. Çünkü güvenlik güncellemelerini ve yedeği sağlayıcı üstlenir.

Ayrıca donanımınız sanallaştırma uzantılarını desteklemiyorsa KVM çalışmaz. Çok eski bir işlemcide ya da uzantıyı kapatmış bir sistemde QEMU yalnızca yavaş taklit moduna düşer. Bu durumda performans ciddi biçimde düşer.

Lisans tarafı da önemlidir. KVM açık kaynak olsa bile sanal makinenin içindeki işletim sistemi ücretli olabilir. Örneğin Windows misafiri için ayrıca lisans gerekir. Yani toplam maliyeti hesaplarken yalnızca hypervisor’a bakmayın.

Son olarak yönetim yükünü hesaba katın. Sanal makine kullanmak, her misafirin güncellenmesi, yedeklenmesi ve korunması demektir. Bu yükü almak istemiyorsanız konteyner platformları ya da yönetilen hizmetler daha az iş çıkarır.

Proxmox gibi arayüzler KVM’nin neresinde durur?

Proxmox VE gibi platformlar, KVM ve QEMU’yu web arayüzüyle birleştirir. Siz tarayıcıdan sanal makine oluşturur ve izlersiniz. Altta yine KVM çalışır, yani bu bilgi oraya da taşınır. Kurulum adımlarını ayrı bir yazıda, Proxmox VE rehberimizde anlatıyoruz.

Burada tekrar etmeyeceğiz. Sadece şunu bilin: arayüz ne olursa olsun, donanım desteği kontrolü ve çekirdek modülleri aynı kalır. Yani bu yazıdaki temel bilgiler hangi aracı seçerseniz seçin geçerlidir.

İç içe sanallaştırma nedir, VPS içinde KVM çalışır mı?

İç içe sanallaştırma (nested virtualization), bir sanal makinenin içinde ikinci bir hypervisor çalıştırmaktır. Örneğin KVM tabanlı bir VPS’in içinde yeniden KVM kurarsınız. Bunun çalışması için ev sahibinin işlemci uzantılarını misafire açması gerekir.

Her sağlayıcı bu özelliği açmaz. Bu nedenle VPS’inizde vmx ya da svm bayrağını göremezseniz sağlayıcının destek ekibine sorun. Bayrak yoksa KVM hızlandırması olmadan QEMU yavaş çalışır. Dolayısıyla üretim iş yükünü böyle bir ortamda kurmayın.

Pratik öneri şu: sanal makine laboratuvarı kuracaksanız donanım doğrudan size ait bir makine ya da bu özelliği açıkça sunan bir sağlayıcı seçin.

KVM sanallaştırmada güvenlik ve yalıtım nelere dikkat ister?

KVM güçlü bir yalıtım sunar, ama güvenliği kendi kendine sağlamaz. Ev sahibi makine ele geçirilirse tüm misafirler risk altına girer. Bu nedenle ev sahibinde yalnızca gerekli servisleri çalıştırın ve güncellemeleri geciktirmeyin.

  • Ev sahibine uzaktan erişimi sınırlayın ve güçlü kimlik doğrulama kullanın.
  • Çekirdek, QEMU ve libvirt güncellemelerini düzenli uygulayın.
  • Her misafire ayrı güvenlik duvarı kuralı tanımlayın.
  • Disk imajlarını ve yedekleri izinleri kısıtlı bir dizinde saklayın.

Burada altın kural, saldırı yüzeyini küçük tutmaktır. Ev sahibi makineyi yalnızca sanal makineleri yönetmek için kullanın. Üzerinde web sitesi, e-posta ya da başka bir uygulama çalıştırmayın. Böylece bir uygulama açığı tüm misafirleri etkilemez.

Sunucu koruması için Fail2ban rehberimizi inceleyebilirsiniz. Web uygulamaları tarafındaki riskler için OWASP Top 10 yazımız yardımcı olur.

KVM sanal makinesinin performansı nelere bağlıdır?

Performans tek bir ayara bağlı değildir. İşlemci çekirdeği sayısı, bellek, disk türü ve ağ ayarı birlikte belirler. Özellikle disk, veritabanı yoğun siteleri en çok etkiler. Bu yüzden disk hızını ölçmek önemlidir.

Disk tarafında IOPS değerine bakmanızı öneririz. Konuyu IOPS ve disk performansı yazımızda ayrıntılı işledik. Sunucu tarafı yavaşlık belirtilerini ise sunucu kaynaklı yavaşlık yazımızda bulabilirsiniz.

Sanal aygıt sürücüleri de fark yaratır. Misafirde sanallaştırmaya uygun sürücüler kullanırsanız aygıtlar daha verimli çalışır. Dağıtımınızın belgesinde hangi sürücü türünün önerildiğini kontrol edin. Rakam vermiyoruz, çünkü sonuç donanıma göre değişir.

Kaynakları aşırı dağıtmak da yavaşlığın yaygın nedenidir. Fiziksel makinenin gücünden fazlasını sanal makinelere söz verirseniz hepsi aynı anda yük bindiğinde zorlanır. Bu yüzden önce gerçek kullanımı izleyin, ardından kaynakları buna göre dağıtın. Yani tahminle değil ölçümle karar verin.

KVM sanal makinesinde anlık görüntü yedek yerine geçer mi?

Hayır, geçmez. Anlık görüntü (snapshot), sanal makinenin belirli bir andaki durumunu kaydeder. Güncelleme öncesi geri dönüş noktası olarak çok işe yarar. Ancak çoğu zaman aynı depolama alanında durur. Disk bozulursa hem makine hem görüntü gider.

virsh bu iş için snapshot-create-as komutunu sunar. Resmi kılavuz, komutun anlık görüntüyü komut satırı argümanlarından oluşturduğunu söyler. Aşağıdaki örnek, güncellemeden önce bir görüntü alır.

virsh snapshot-create-as vm1 guncelleme-oncesi

Gerçek yedek ise ayrı bir konumda, ayrı bir diskte saklanmalıdır. Yedekleme düzenini planlarken RAID yazımızı da okuyun. Çünkü RAID disk arızasına karşı koruma sağlar, ama silinen ya da bozulan veriyi geri getirmez.

KVM sanallaştırmada sık yapılan hatalar nelerdir?

Yeni başlayanlar aynı hatalara düşer. Bu listeyi baştan okursanız zaman kazanırsınız.

  • BIOS ya da UEFI’de sanallaştırma ayarını açmayı unutmak.
  • Anlık görüntüyü yedek sanıp gerçek yedek almamak.
  • Fiziksel kaynaktan fazlasını sanal makinelere dağıtıp sistemi yavaşlatmak.
  • Ev sahibinin güncellemelerini ertelemek.
  • Disk imajlarının dolduğunu izlememek.
  • Komutları üretim sunucusunda önce test etmeden çalıştırmak.

Bunların hiçbiri zor değildir. Ancak her biri sessizce büyür ve bir gün sizi bulur. Bu nedenle düzenli kontrol listesi tutmak, KVM sanallaştırmayı sürdürülebilir kılar.

Ne zaman kendiniz uğraşmayın, hosting sağlayıcınıza bırakın?

Açık konuşalım: her web sitesi sahibinin KVM sunucusu yönetmesi gerekmez. Aşağıdaki durumlarda işi sağlayıcınıza ya da deneyimli bir sistem yöneticisine bırakmanızı öneririz.

  • Sitenin kesintisi doğrudan gelir kaybına yol açıyorsa ve nöbetçi birine sahip değilseniz.
  • Kişisel veri ya da ödeme bilgisi tutan bir sistemi ilk kez yönetiyorsanız.
  • Yedekleme ve felaket kurtarma planınız yoksa.
  • Ev sahibi makineye fiziksel erişiminiz olmayan ve kritik bir iş yükü taşıyan bir ortamsa.

Öte yandan test ortamı, laboratuvar ve öğrenme amaçlı denemeler için kendiniz kurmak çok iyi bir yöntemdir. Önce hata yapmanın zararsız olduğu yerde başlayın. Ardından deneyim kazandıkça sorumluluğu artırın. Sağlayıcı seçimi için hosting seçim rehberimizi okuyabilirsiniz.

Web sitesi ve e-ticaret sahipleri için KVM ne anlama gelir?

Dijital pazarlama tarafında çalışıyorsanız KVM’yi doğrudan yönetmeyebilirsiniz. Yine de bilmeniz gerekir, çünkü barındırma kararınızı etkiler. Sunucunuz KVM tabanlıysa kaynaklarınız size ayrılmıştır ve komşunuzun yükü sizi daha az etkiler. Ancak bu, sağlayıcının kaynakları nasıl paylaştırdığına bağlıdır.

Hız önemlidir, çünkü sayfa hızı hem aramada hem dönüşümde rol oynar. Konuyla ilgili site hızının SEO etkisi yazımıza göz atın. Sunucunuzun konumunu anlamak için IP sorgulama aracımızı kullanabilirsiniz.

Özel yazılım ya da altyapı kararı alırken teknik ekibinizle birlikte karar vermek en sağlıklısıdır. Bu konuda destek isterseniz özel yazılım geliştirme hizmetimizi inceleyebilirsiniz.

KVM sanallaştırmaya hangi adımlarla başlarsınız?

Öğrenmek için sırayla ilerlemenizi öneririz. Her adımı önce bir test makinesinde deneyin.

  1. İşlemcinizin vmx ya da svm bayrağını kontrol edin.
  2. BIOS ya da UEFI’de sanallaştırma ayarının açık olduğunu doğrulayın.
  3. Dağıtımınızın belgesine göre KVM, QEMU ve libvirt paketlerini kurun.
  4. virt-host-validate ile ortamı denetleyin.
  5. virt-manager ya da virt-install ile ilk sanal makinenizi oluşturun.
  6. virsh ile başlatma, kapatma ve otomatik başlatma komutlarını deneyin.

Bu altı adımı tamamladığınızda KVM’nin temel mantığını kavramış olursunuz. Sonrasında ağ köprüsü, disk imajı yönetimi ve anlık görüntü gibi konulara geçebilirsiniz. Her adımda resmi belgeleri esas alın.

Öğrenme sürecinde en değerli alışkanlık not tutmaktır. Hangi komutu neden çalıştırdığınızı yazarsanız aylar sonra aynı ortamı yeniden kurabilirsiniz. Üstelik ekibinize de bilgi aktarmış olursunuz. Takıldığınız yerde ise ilgili aracın resmi kılavuzuna dönün, çünkü komut seçenekleri sürümle değişebilir.

Sıkça Sorulan Sorular

KVM açık kaynak mıdır?
Evet, KVM açık kaynaklı bir yazılımdır ve Linux çekirdeğinin parçasıdır. KVM proje sayfası, çekirdek bileşeninin ana Linux çekirdeğine dahil olduğunu belirtir. Dolayısıyla KVM için ayrı bir lisans bedeli ödemezsiniz. Ancak destek, yönetim araçları, bakım emeği ve donanım maliyeti ayrıca hesaba girer. Bu yüzden toplam maliyeti yalnızca lisans bedeline bakarak değerlendirmeyin.
KVM ile QEMU aynı şey mi?
Hayır, aynı şey değildir. KVM işlemci sanallaştırmasını çekirdek tarafında yapar. QEMU ise disk, ağ kartı ve ekran gibi sanal aygıtları sağlayan kullanıcı alanı programıdır. İkisi birlikte çalışır. QEMU, KVM’yi hızlandırıcı olarak kullandığında misafir kodunu doğrudan işlemcide çalıştırır ve yerel hıza yakın sonuç verir.
KVM için işlemcimde hangi özellik olmalı?
Intel işlemcilerde VT-x, AMD işlemcilerde AMD-V adlı donanım sanallaştırma uzantısı olmalıdır. Linux’ta bunlar vmx ve svm bayrağı olarak görünür. Uzantı BIOS ya da UEFI ayarında kapalı olabilir. Bu yüzden önce işlemci bayraklarını, sonra firmware ayarını kontrol etmelisiniz. Her ikisi de uygunsa KVM çalışmaya hazırdır.
KVM ile VPS arasında ne ilişki var?
Birçok VPS sağlayıcısı sanal sunucuları KVM tabanlı sanallaştırmayla sunar. Bu durumda sunucunuz kendi çekirdeğine ve işletim sistemine sahip bir sanal makinedir. Sağlayıcıların hangi teknolojiyi kullandığını ürün sayfasından öğrenirsiniz. Belirtmiyorlarsa destek ekibine sormanız en doğrusudur. Her sağlayıcı aynı yapıyı sunmaz. Böylece kaynak paylaşımı ve yalıtım konusunda net bilgi edinirsiniz.
KVM sanal makinesi Docker’dan daha mı güvenli?
Genel olarak sanal makine, kendi çekirdeğini çalıştırdığı için konteynerden daha güçlü yalıtım sunar. Konteynerler ev sahibinin çekirdeğini paylaşır. Ancak güvenlik yalnızca teknolojiye bağlı değildir. Güncellemeler, doğru ayarlar ve erişim kontrolü de en az yalıtım kadar belirleyicidir. Kısacası iki teknolojiyi de dikkatle yapılandırmanız gerekir.
VPS içinde KVM çalıştırabilir miyim?
Bu, sağlayıcıya bağlıdır. İç içe sanallaştırma için ev sahibinin işlemci uzantılarını misafire açması gerekir. VPS içinde vmx ya da svm bayrağını görmüyorsanız KVM hızlandırması çalışmaz. Böyle bir durumda sağlayıcınızın destek ekibine sorun ve gerekirse bu özelliği sunan başka bir çözüm seçin. Aksi halde laboratuvarınız yavaş kalır.
  • kvm
  • sanallaştırma
  • qemu
  • libvirt
  • virsh
  • vps
  • hypervisor
Paylaş:
Talha Aslan

Google Partner dijital pazarlama uzmanı. 2012’den beri SEO, Google Ads, web tasarım ve e-ticaret projelerinde sahada; bu blogda gördüğünüz her yazı o deneyimden çıkar.

Sıradaki proje

Projenizi konuşalım.

Talebiniz doğrudan Talha Aslan ve ekibine ulaşır: stratejiyi Talha kurar, uygulamayı deneyimli ekip yürütür. İlk istişare ücretsizdir; hedefinizi dinler, net bir yol haritasıyla döneriz.