Ubuntu Server Ortamında KVM Sanallaştırma

Sistem yönetiminde maliyetleri düşürmek ve kontrolü elde tutmak için KVM kullanımı en mantıklı yoldur. Ubuntu Server üzerinde sanallaştırma süreçlerini yönetmek için KVM altyapısını kuralım. Bu kurulum sayesinde donanım kaynaklarından aldığımız verimi en üst seviyeye çıkaralım.

Teknik Gereksinimler Listesi

Yapılandırmaya geçmeden önce sistemin şu özelliklere sahip olduğunu doğrulayalım. Bu sayede hatalı kurulumların önüne geçelim.

  • En az 2 GB RAM desteği
  • Sanallaştırma destekleyen x86 mimarili işlemci
  • Minimum 20 GB boyutunda boş disk yeri
  • Ubuntu 20.04 işletim sistemi veya güncel hali

Sanallaştırma Katmanına Hazırlık

İşlemcimizin sanallaştırma desteği yoksa KVM çalışmaz. Bu yüzden ilk önce donanımı kontrol etmemiz gerekiyor.

Terminal ekranına şu komutu yazalı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.

Yetki Tanımları ve Servis Kontrolü

KVM kurulumu bittikten sonra mevcut kullanıcımızın bu sistemleri yönetmesi için belirli gruplara eklenmesi gerekir. Kullanıcımızı libvirt ve kvm gruplarına dahil edelim.

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ü bulunmayan sunucularda terminal üzerinden hızlıca makine kuralım. Aşağıdaki komut yardımıyla 2 çekirdekli ve 2 GB RAM kapasitesine sahip 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.

Sanal Makineleri Virsh İle Kontrol Etme

Kurulumu tamamlanan makineleri idare etmek için virsh komut setini devreye alalım. Sanallaştırma yöneticisi olarak bu araçla tüm işlemleri gerçekleştirelim. Çalışır haldeki makinelerin listesine ulaşmak için terminale şu komutu girelim.

virsh list

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

virsh list --all
Makineyi Başlatvirsh start makine-adi
Makineyi Kapatvirsh shutdown makine-adi
Zorla Kapatvirsh destroy makine-adi
Otomatik Başlatmavirsh autostart makine-adi
Makineyi Silvirsh undefine makine-adi

Ağ Yapılandırması ve Köprü Oluşturma

Sanal makinelerin dış dünya ile iletişim kurabilmesi için bir ağ köprüsü kurmamız gerekir. KVM kurulumuyla birlikte gelen virbr0 ağı genellikle sadece iç iletişim sağlar. Fiziksel ağ kartımızı bir köprüye bağlamak için netplan yapılandırması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 ile Sistem Yedekleme ve Kurtarma

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