KVM (Kernel-based Virtual Machine), Linux çekirdeğine dahil olan sanallaştırma teknolojisidir. Bir VPS Linux Infrawire üzerinde bu, sunucunuzun başkasının sisteminde yalıtılmış basit bir klasör gibi değil, kendi çekirdeğine sahip gerçek bir makine gibi davranması demektir. Bu rehber, konteyner tabanlı teknolojilerle farkı açıklar ve bunu kendiniz nasıl doğrulayacağınızı gösterir.
📋 Ön koşullar
- Bir Linux VPS (Ubuntu 24.04, Debian 12, AlmaLinux 9 veya Rocky Linux 9)
- root veya
sudoyetkili bir kullanıcı ile SSH erişimi - Temel komut satırı bilgisi
1. KVM nasıl çalışır
KVM, fiziksel sunucunun Linux çekirdeğini bir hipervizöre dönüştürür. Her sanal makine QEMU tarafından yönetilen sıradan bir süreçtir, ancak emüle edilmiş donanım görür: işlemci, RAM, disk ve ağ kartı. İşlemcinin sanallaştırma uzantıları (Intel VT-x, AMD-V) sayesinde konuk kodu neredeyse yerel hızda çalışır.
Sanal makinenin içine kendi çekirdeği, kendi init sistemi ve kendi süreçleri olan eksiksiz bir işletim sistemi kurarsınız. Sizin açınızdan bu, ayrılmış bir sunucudur.
2. KVM, OpenVZ ve LXC karşılaştırması
Konteyner teknolojileri farklı çalışır:
- OpenVZ ve LXC: tüm konteynerler ana makinenin çekirdeğini paylaşır. Yalnızca yalıtılmış bir kullanıcı alanı elde edersiniz. Çekirdeği değiştiremez, modül yükleyemez ve çekirdek sürümünü seçemezsiniz.
- KVM: tam sanallaştırma. Her VPS kendi çekirdeğini başlatır ve kendi bellek ile disk tahsisine sahiptir.
Konteyner daha hafiftir ama ana makine çekirdeğinin izin verdiği ile sınırlıdır. KVM VPS, biraz daha fazla bellek kullanımı karşılığında özgürlük sağlar.
3. Bir VPS'te neden önemli
Kendi çekirdeğinizle şunları yapabilirsiniz:
- WireGuard,
br_netfilterveyanf_conntrackgibi çekirdek modülleri yüklemek - Docker ve diğer konteyner motorlarını kısıtlama olmadan çalıştırmak (cgroups, overlay dosya sistemi, iptables)
- Sistemi
sysctlile ayarlamak (ağ tamponları, IP yönlendirme, BBR tıkanıklık denetimi) - Kendi güvenlik duvarınızı, takas dosyanızı ve istediğiniz dosya sistemini kullanmak
- Dağıtımınızdan farklı bir çekirdek sürümü kurmak
Bash# Çalışan çekirdeği göster uname -r # Değiştirebileceğiniz çekirdek parametrelerini göster sudo sysctl net.ipv4.ip_forward net.ipv4.tcp_congestion_control
4. KVM üzerinde olduğunuzu doğrulayın
En basit yol systemd-detect-virt komutudur:
Bashsystemd-detect-virt # Beklenen çıktı: kvm
Komut openvz, lxc veya docker yazdırıyorsa bir konteyner içindesiniz. none fiziksel makine anlamına gelir.
lscpu ile doğrulayabilirsiniz:
Bashlscpu | grep -iE 'hypervisor|virtualization type' # Hypervisor vendor: KVM # Virtualization type: full
Ve çekirdek açılış mesajlarıyla:
Bashsudo dmesg | grep -i -E 'kvm|hypervisor' # Hypervisor detected: KVM
Son olarak hostnamectl çıktısında Virtualization: kvm satırı görünür.
5. KVM'nin size sağladıklarını test edin
Bir modül yükleyip konteyner çalıştırabildiğinizi kontrol edin:
Bash# Ubuntu 24.04 / Debian 12: WireGuard modülü sudo modprobe wireguard lsmod | grep wireguard # Docker'ı dağıtım deposundan kurun ve bir test konteyneri çalıştırın sudo apt update && sudo apt install -y docker.io sudo docker run --rm hello-world
AlmaLinux 9 veya Rocky 9'da araçlar için sudo dnf install -y wireguard-tools komutunu kullanın ve motoru kurmak için resmi Docker belgelerini (docs.docker.com) izleyin.
🔧 Sorun giderme
dmesg: read kernel buffer failed: Operation not permitted
Çekirdek dmesg komutunu root ile sınırlar. sudo ile çalıştırın veya sudo journalctl -k kullanın.
modprobe: FATAL: Module wireguard not found
Bazı minimal imajlarda ek modüller eksiktir. Ubuntu'da linux-modules-extra-$(uname -r) paketini kurun. Çekirdeği yeni güncellediyseniz, uname -r çıktısının kurulu modüllerle eşleşmesi için önce yeniden başlatın.
systemd-detect-virt: command not found
İmajda systemd yok veya çok minimal. Bunun yerine lscpu ya da dmesg kullanın veya systemd paketini kurun.
Docker cgroups veya iptables hatası veriyor
systemctl status docker ile servisin çalıştığını ve özel bir güvenlik duvarı yapılandırmasında nf_tables veya iptables bileşenlerini devre dışı bırakmadığınızı kontrol edin.
🚀 Artık KVM'nin VPS'inize ne kattığını biliyorsunuz: gerçek bir çekirdek, tam denetim ve ana makineden gelen gizli sınırlar yok.