Ubuntu Server Üzerinde KVM İle Sanallaştırma Nasıl Yapılır?

Tam denetim ve düşük maliyet odaklı bir sistem yönetimi için KVM altyapısı oldukça mantıklı bir seçenektir. Ubuntu Server yüklü makinelerde sanallaştırma işlemlerini başlatmak adına KVM kurulumunu gerçekleştirelim. Fiziksel kaynakların kullanım oranını bu metotla iyileştirelim.

Donanım ve Yazılım Gereksinimleri

Adımları uygulamadan önce sistemin aşağıdaki kriterleri sağladığından emin olalım. Bu kontrol ile ileride çıkacak hataları engelleyelim.

  • 2 GB RAM alt sınırı
  • Sanallaştırma fonksiyonu olan x86 işlemci
  • En az 20 GB boş disk sahası
  • Ubuntu 20.04 ya da daha üst bir sürüm

Donanım Hazırlık Aşaması

İşlemci üzerinde sanallaştırma desteği aktif değilse KVM sistemini başlatamayız. Bu yüzden ilk adım olarak donanım uygunluğunu denetleyelim. İlgili komutu terminal ekranına girerek kontrolü sağlayalım.

egrep -c '(vmx|svm)' /proc/cpuinfo

Ekranda 0 dışında bir sayı görüyorsak devam edebiliriz. Şimdi sistemi güncelleyip gerekli paketleri yükleyelim.

sudo apt update
sudo apt upgrade -y
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst -y

Bu paketler sayesinde sanallaştırma servislerini ve ağ köprülerini yönetebiliriz.

Kullanıcı Grubu ve Servis Yapılandırması

KVM yüklendikten sonra sistem yönetimi yapabilmek için mevcut kullanıcı hesabının özel gruplarda yer alması gerekir. Kullanıcımızı libvirt ve kvm gruplarına ekleyerek işlemleri sürdürelim.

sudo adduser $USER libvirt
sudo adduser $USER kvm

Değişikliklerin geçerli olması için oturumu kapatıp tekrar açalım. Ardından servisin çalışıp çalışmadığına bakalım.

sudo systemctl status libvirtd

Aktif yazısını görüyorsak altyapımız hazır demektir.

Disk Alanı Oluşturma

Sanal makineler için disk dosyaları oluşturmamız şart. QCOW2 formatını kullanarak sadece veri yazıldıkça yer kaplayan esnek bir disk yapalım.

qemu-img create -f qcow2 /var/lib/libvirt/images/pendc-vm.qcow2 20G

Bu komutla 20 GB boyutunda bir alan ayırdık.

Sanal Makine Kurulumu

Grafik arayüzü olmayan sunucularda terminal üzerinden hızlıca makine kurabiliriz.

Aşağıdaki komutla 2 çekirdekli ve 2 GB RAM içeren bir makine başlatalım.

virt-install \
--name=ubuntu-vm \
--vcpus=2 \
--memory=2048 \
--disk path=/var/lib/libvirt/images/pendc-vm.qcow2 \
--os-variant=ubuntu22.04 \
--graphics none \
--location='http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/' \
--extra-args='console=ttyS0'

Bu komut kurulum dosyalarını internetten çeker ve terminal üzerinden yükleme yapmanıza izin verir.

Virsh İle Sanal Sunucu Denetimi

Sanal makinelerin kurulumu bittikten sonra yönetim süreçlerini virsh üzerinden yürütelim. Sanallaştırma kontrollerini sağlamak adına bu araç oldukça etkilidir. Aktif durumdaki makineleri görüntülemek için terminale ilgili komutu yazalım.

virsh list

Tüm makineleri kapalı olanlar da dahil görmek için sonuna ekleyelim.

virsh list --all

Sanal Sunucu Ağ Bağlantısı

Sanal makinelerin dış erişimini sağlamak için ağ köprüsü kurma adımını tamamlayalım. KVM bünyesindeki virbr0 ağı sadece içsel bir iletişim kanalı sunar. Fiziksel ağ kartını bir köprüye bağlayarak dış dünyaya açmak için netplan dosyasını düzenleyelim.

sudo nano /etc/netplan/00-installer-config.yaml

Dosya içeriğini şu yapıya benzer şekilde düzenleyebiliriz.

network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [enp3s0]
      dhcp4: yes

Bu ayarı sudo netplan apply ile aktif ettikten sonra artık sanal makinelerimizi br0 köprüsü üzerinden doğrudan yerel ağa dahil edebiliriz. Bu sayede her sanal makine ana sunucuyla aynı ip bloğundan adres alabilir.

Sanal makinelerin işlemci ve bellek kullanımını anlık takip etmek için virt-top aracını kullanabiliriz.

sudo apt install virt-top -y
virt-top

Snapshot Yöntemiyle Veri Yedekleme

Hata yaptığımızda geri dönmek için anlık görüntü alalım.

virsh snapshot-create-as --domain ubuntu-vm --name "yedek1"

Eski haline dönmek istersek şu komut yeterlidir.

virsh snapshot-revert --domain ubuntu-vm --snapshotname "yedek1"

Sıkça Sorulan Sorular

KVM kullanmak için mutlaka Linux mu kullanmalıyım?

KVM doğrudan Linux çekirdeği içine dahil edilmiş bir teknolojidir. Bu nedenle ana işletim sisteminin Ubuntu gibi bir Linux dağıtımı olması gerekir.

İşlemcim sanallaştırmayı desteklemiyorsa ne yapabilirim?

Sanallaştırma desteği olmayan işlemcilerde KVM tam performanslı çalışmaz. Bu durumda BIOS ayarlarından sanallaştırma seçeneğinin açık olduğunu kontrol edelim.

KVM ile Windows sanal makineleri kurabilir miyim?

KVM altyapısı üzerinde Windows dahil birçok farklı işletim sistemini sanal makine olarak çalıştırabiliriz. Bunun için kurulum sırasında ilgili ISO dosyasını sisteme tanıtmamız yeterlidir.

KVM ile VirtualBox arasındaki fark nedir?

KVM doğrudan çekirdek seviyesinde çalıştığı için daha yüksek performans sunar. Sunucu ortamlarında genellikle KVM tercih edilir.

Yorum yapın