KVM ve QEMU ile Sanal Makine Oluşturma: Linux Host Üzerinde
Linux üzerinde KVM ve QEMU ile sanal makine oluşturma rehberi. virt-manager GUI ve virt-install CLI ile VM kurulum adımları.
KVM Nedir?
KVM (Kernel-based Virtual Machine), Linux çekirdeğine entegre edilmiş bir sanallaştırma çözümüdür. 2007 yılından bu yana Linux çekirdeğinin bir parçası olan KVM, Intel VT-x veya AMD-V donanım sanallaştırma uzantılarını kullanarak tam sanallaştırma sağlar. Bu sayede sanal makineler, fiziksel donanıma neredeyse doğrudan erişim imkânı bulur ve performans kayıpları minimuma iner.
KVM genellikle QEMU (Quick Emulator) ile birlikte kullanılır. QEMU, donanım bileşenlerini (disk, ağ kartı, USB vb.) taklit eden katmanı sağlarken KVM işlemci ve bellek sanallaştırmasını yönetir. libvirt, bu ikiliyi yönetmek için kullanılan standart API ve servis katmanıdır. virt-manager (GUI) ve virsh (CLI) ise libvirt üzerinden KVM/QEMU'yu kontrol eder.
KVM vs. VirtualBox vs. VMware
- KVM: Kernel düzeyinde entegrasyon, en yüksek performans, kurumsal kullanım
- VirtualBox: Masaüstü kullanımı, kolay arayüz, çapraz platform
- VMware ESXi: Kurumsal bare-metal hypervisor, lisanslı
Donanım Kontrolü
KVM kullanabilmek için işlemcinizin sanallaştırmayı desteklemesi gerekir:
# Intel VT-x veya AMD-V kontrolü
egrep -c '(vmx|svm)' /proc/cpuinfo
# 0: sanallaştırma desteği yok
# 1+: sanallaştırma destekleniyor
# Daha ayrıntılı kontrol
lscpu | grep Virtualization
# KVM modülü yüklü mü?
lsmod | grep kvm
Eğer VPS üzerinde çalışıyorsanız, hosting sağlayıcınızın "nested virtualization" özelliğini desteklediğinden emin olun.
İşletim Sistemine Göre KVM Kurulumu
🟠 Ubuntu/Debian Üzerinde Kurulum
apt update
apt install -y qemu-kvm libvirt-daemon-system libvirt-clients \
bridge-utils virt-manager virtinst cpu-checker
# Kullanıcıyı libvirt ve kvm gruplarına ekle
usermod -aG libvirt,kvm $USER
# Servis durumunu kontrol et
systemctl enable --now libvirtd
virsh list --all
🔵 AlmaLinux/CentOS Üzerinde Kurulum
dnf install -y @virt virt-install virt-manager virt-viewer
systemctl enable --now libvirtd
usermod -aG libvirt $USER
virsh list --all
Sanal Makine Oluşturma: virt-install ile
ISO İndirme ve Depolama Havuzu
# Varsayılan depolama havuzu
ls /var/lib/libvirt/images/
# Ubuntu 22.04 ISO indirme
wget -P /var/lib/libvirt/images/ \
https://releases.ubuntu.com/22.04/ubuntu-22.04.4-live-server-amd64.iso
VM Oluşturma (CLI)
virt-install \
--name ubuntu-vm \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20,format=qcow2 \
--cdrom /var/lib/libvirt/images/ubuntu-22.04.4-live-server-amd64.iso \
--network network=default \
--os-variant ubuntu22.04 \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole
VM Yönetimi: virsh Komutları
virsh list --all # Tüm VM'leri listele
virsh start ubuntu-vm # VM'yi başlat
virsh shutdown ubuntu-vm # VM'yi kapat
virsh destroy ubuntu-vm # VM'yi zorla kapat
virsh snapshot-create-as ubuntu-vm snap1 "İlk Snapshot"
virsh dominfo ubuntu-vm # VM bilgilerini göster
Ağ Köprüsü (Bridge) Yapılandırması
VM'lerin doğrudan ağa (LAN) erişebilmesi için bridge ağı kurulabilir:
# /etc/netplan/00-bridge.yaml (Ubuntu)
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
interfaces: [eth0]
dhcp4: yes
# Uygula
netplan apply
Sık Karşılaşılan Sorunlar
- BIOS'ta sanallaştırma kapalı: Sunucu BIOS'undan Intel VT-x veya AMD-V seçeneğini etkinleştirin.
- Permission denied:
usermod -aG libvirt,kvm $USERkomutunu çalıştırıp oturumu yeniden açın. - VM ağa çıkamıyor:
virsh net-start defaultvevirsh net-autostart defaultkomutlarını çalıştırın. - Düşük performans: Disk formatı olarak raw yerine qcow2 kullanın; virtio sürücülerini etkinleştirin.
İlgili Makaleler
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!