Sanallaştırma & Bulut

    Sanallaştırma Nedir, Türleri Nelerdir

    Sanallaştırmanın çalışma mantığı, türleri ve hangi iş yüküne hangisinin uyduğu.

    11 dk okuma Güncellendi: 25 Ağustos 2026

    Elinizde 64 GB RAM ve 24 çekirdekli bir fiziksel sunucu var, üzerinde tek bir uygulama çalışıyor ve CPU kullanımı gün boyu yüzde 8'i geçmiyor. Bu, on beş yıl önce hepimizin yaşadığı israfın ta kendisiydi: her uygulama için ayrı bir kutu, her kutuda boşta duran kaynak. Sanallaştırma tam olarak bu problemi çözmek için doğdu ve bugün kullandığınız her VDS, her bulut sunucu, her konteyner bu teknolojinin bir türevi üzerinde çalışıyor. Kısaca sanallaştırma, tek bir fiziksel donanımın kaynaklarını (CPU, RAM, disk, ağ) birbirinden yalıtılmış birden fazla mantıksal makineye bölme işidir.

    Bu rehberde sanallaştırmanın gerçekte ne yaptığını, hipervizörün donanım ile misafir işletim sistemi arasında nasıl bir aracı görevi gördüğünü, tam sanallaştırma ile konteyner arasındaki temel yalıtım farkını ve depolama/ağ sanallaştırma gibi daha az konuşulan katmanları anlatacağım. Ayrıca "hangisini seçmeliyim" sorusuna, pazarlama diline girmeden, iş yükü tipine göre net bir cevap vereceğim. Amaç, bir sunucu satın alırken veya kendi altyapınızı kurarken doğru katmanı bilinçli seçebilmeniz.

    Sanallaştırma Tam Olarak Ne Yapar#

    Bir işletim sistemi normalde donanımın tek sahibi olduğunu varsayar. Çekirdek (kernel), CPU'nun ayrıcalıklı komutlarını doğrudan çalıştırır, fiziksel bellek sayfalarını kendi yönetir, disk denetleyicisine doğrudan komut gönderir. Sanallaştırma bu varsayımı kırmadan devreye girer: donanım ile işletim sistemi arasına hipervizör adı verilen ince bir katman koyar ve her misafir sisteme "sen tek başınasın" yanılsamasını yaşatır. Misafir sistem CPUID çağırdığında, disk denetleyicisine yazdığında ya da bir ağ paketi gönderdiğinde, aslında hipervizörün ona sunduğu sanal bir aygıtla konuşur.

    Bu yanılsamanın maliyeti eskiden yüksekti. Ayrıcalıklı komutları yakalayıp yazılımla taklit etmek (binary translation) ciddi bir performans cezası getiriyordu. Intel VT-x ve AMD-V ile birlikte CPU'lar bu işi kendi üstlendi: işlemciye "kök olmayan" (non-root) yeni bir çalışma modu eklendi, misafir çekirdek kendi komutlarını doğrudan donanımda çalıştırabilir hâle geldi ve hipervizör yalnızca gerçekten müdahale gerektiren anlarda (VM exit) devreye girer oldu. Bellek tarafında da EPT/NPT sayesinde iki katmanlı sayfa tablosu çevirisi donanıma taşındı. Bugün modern bir KVM sanal makinesinde CPU'ya bağlı iş yüklerinde fiziksel makineye göre kayıp genellikle tek haneli yüzdelerde kalır; asıl kayıp disk ve ağ G/Ç katmanında, o da doğru sürücü seçimiyle büyük ölçüde kapanır.

    Sunucunuzun bu donanım desteğine sahip olup olmadığını Linux tarafında tek satırla doğrulayabilirsiniz:

    # Intel için vmx, AMD için svm bayrağı görünmeli
    grep -oE '(vmx|svm)' /proc/cpuinfo | sort -u
    
    # KVM modülü yüklü mü, aygıt açılabiliyor mu
    lsmod | grep kvm
    ls -l /dev/kvm
    
    # Daha kapsamlı bir kontrol (cpu-checker paketi)
    kvm-ok
    # Örnek çıktı:
    # INFO: /dev/kvm exists
    # KVM acceleration can be used
    

    Eğer vmx/svm bayrağı görünmüyorsa donanım desteği ya yoktur ya da BIOS/UEFI'de kapalıdır. İkinci durum, kendi kolokasyon sunucusunu ilk kez kuran herkesin bir kez düştüğü tuzaktır: sanal makineler açılır ama korkunç yavaş çalışır, çünkü emülasyona düşülmüştür.

    Donanım Sanallaştırma: Tam, Para ve Donanım Destekli#

    Sanal makine üreten yaklaşımlar kendi içinde üçe ayrılır ve bu ayrımı bilmek, performans sorunlarını teşhis ederken işinize yarar.

    Tam sanallaştırma (full virtualization) misafir işletim sistemine hiç dokunmaz. Misafir, standart bir PC donanımı gördüğünü sanar; hipervizör IDE denetleyicisinden e1000 ağ kartına kadar her şeyi taklit eder. Avantajı, değiştirilmemiş herhangi bir işletim sistemini (Windows dahil) çalıştırabilmesidir. Dezavantajı, taklit edilen aygıtların yavaş olmasıdır.

    Yarı sanallaştırma (paravirtualization) ise misafirin sanal bir ortamda olduğunu bildiği modeldir. Misafir içine kurulan özel sürücüler, aygıt taklidiyle uğraşmak yerine doğrudan hipervizörle konuşur. KVM dünyasında bunun adı virtio'dur ve pratikte en büyük performans kazancını burada elde edersiniz. Bir sanal makinede diski IDE yerine virtio-blk/virtio-scsi, ağ kartını e1000 yerine virtio-net yaptığınızda G/Ç verimi birkaç kat artar.

    Donanım destekli sanallaştırma ise yukarıda anlattığım VT-x/AMD-V katmanıdır ve bugün ikisinin de altında çalışır. Modern bir kurulum aslında melez bir yapıdır: CPU ve bellek donanım desteğiyle, disk ve ağ ise paravirtual sürücülerle hızlandırılır.

    YaklaşımMisafir değişikliğiTipik G/Ç performansıNerede görürsünüz
    Tam sanallaştırmaGerekmezDüşükEski Windows kurulumları, uyumluluk modu
    Paravirtual (virtio)Sürücü gerekirYüksekKVM/Proxmox, modern Linux misafirler
    Donanım destekliGerekmezCPU/RAM'de yüksekVT-x / AMD-V, tüm modern hipervizörler
    KonteynerOrtak çekirdekNeredeyse yerelLXC, Docker

    Sunucu tarafında bu farkı somut görmek isterseniz, aynı disk üzerinde IDE ve virtio-scsi ile ölçüm alın; fark genellikle tartışmayı bitirir.

    Konteyner Sanallaştırma ve İşletim Sistemi Düzeyi#

    Sanal makine yaklaşımının bir maliyeti var: her misafir kendi çekirdeğini, kendi init sistemini, kendi bellek yönetimini taşır. Yirmi sanal makine çalıştırıyorsanız, yirmi ayrı çekirdek RAM'de duruyor demektir. Konteyner sanallaştırma bu maliyeti tamamen ortadan kaldırır: tüm konteynerler ana makinenin çekirdeğini paylaşır, yalıtım ise çekirdeğin kendi özellikleriyle sağlanır.

    Bu yalıtımın iki ayağı vardır. Namespace'ler görünürlüğü böler: PID namespace sayesinde konteyner içindeki süreç kendini PID 1 sanır, mount namespace kendi dosya sistemi ağacını görür, network namespace kendi ağ arayüzüne ve yönlendirme tablosuna sahip olur. cgroup'lar ise kaynağı böler: bu konteyner en fazla 2 çekirdek ve 4 GB RAM kullanabilir dersiniz, çekirdek bunu zorlar. LXC/LXD ve Docker'ın altında yatan mekanizma budur; aralarındaki fark felsefededir. LXC "hafif bir sistem konteyneri" sunar (içinde systemd, birden çok servis, uzun ömürlü), Docker ise "tek uygulama, değişmez imaj" modelini benimser.

    # Bir konteynerin gerçekten ana makine çekirdeğini kullandığını görün
    # Ana makinede:
    uname -r
    # 6.8.12-4-pve
    
    # LXC konteyneri içinde aynı komut:
    uname -r
    # 6.8.12-4-pve   <- birebir aynı, çünkü çekirdek ortak
    
    # Konteynerin cgroup limitlerini kontrol edin (cgroup v2)
    cat /sys/fs/cgroup/memory.max
    cat /sys/fs/cgroup/cpu.max
    

    Konteynerin bedeli esneklik ve yalıtım sınırıdır. Ortak çekirdek demek, konteyner içinde farklı bir çekirdek sürümü ya da farklı bir işletim sistemi ailesi çalıştıramamanız demektir; Linux ana makinede Windows konteyneri açamazsınız. Güvenlik açısından da bir çekirdek açığı tüm konteynerleri aynı anda etkileyebilir; sanal makinede ise saldırganın önce hipervizörü aşması gerekir. Bu yüzden çok kiracılı (multi-tenant) ortamlarda müşteri sınırı genellikle sanal makine düzeyinde çizilir, konteynerler o sanal makinenin içinde çalışır.

    Depolama, Ağ ve Masaüstü Sanallaştırma#

    Sanallaştırma yalnızca "sunucuyu bölmek" değildir; aynı soyutlama mantığı altyapının diğer katmanlarına da uygulanır ve bunları bilmeden modern bir küme kurmanız zordur.

    Depolama sanallaştırma, fiziksel diskleri havuzlayıp üstünde mantıksal birimler sunar. LVM ile birkaç diski tek bir volume group'a alıp istediğiniz boyutta logical volume üretmeniz bunun en basit hâlidir. ZFS bir adım öteye gider ve dosya sistemi ile birim yöneticisini birleştirir; anlık görüntü (snapshot), sıkıştırma ve sağlama toplamı (checksum) doğrulaması aynı katmanda gelir. Ceph ise depolamayı birden fazla düğüme dağıtır: bir disk hatta bir sunucu ölse bile veri erişilebilir kalır.

    Ağ sanallaştırma, fiziksel kablo sayısından bağımsız olarak istediğiniz kadar mantıksal ağ üretmenizi sağlar. Linux köprüsü (bridge) sanal makineleri aynı L2 alanına koyar, VLAN etiketleri tek fiziksel arayüz üzerinden onlarca yalıtılmış ağ taşır, VXLAN ise bu ağları L3 üzerinden farklı veri merkezlerine uzatır.

    # Ana makinedeki köprüleri ve bağlı sanal arayüzleri listeleyin
    bridge link show
    
    # Bir köprünün VLAN'a duyarlı olup olmadığını görün
    ip -d link show vmbr0 | grep vlan_filtering
    
    # Sanal makine arayüzlerinin trafiğini canlı izleyin
    tcpdump -ni tap101i0 -c 20
    

    Masaüstü sanallaştırma (VDI) ise kullanıcı masaüstlerini merkezî sunucularda çalıştırıp ekran görüntüsünü ince istemcilere aktarır. Kurumsal ortamlarda veriyi merkezde tutmak, cihaz kaybında sızıntı riskini sıfırlamak ve donanım yenileme döngüsünü uzatmak için tercih edilir. Ağ ve depolama katmanına ayrıntılı girmek isterseniz Proxmox ağ yapılandırması ve Proxmox'ta ZFS depolama yazıları bu iki konuyu pratik komutlarla ele alıyor.

    Hangi Sanallaştırma Türü Hangi İşe Uygun#

    En sık sorulan soru bu ve cevabı iş yükünün üç özelliğine bakarak verilir: farklı bir çekirdeğe ihtiyaç var mı, yalıtım ne kadar sert olmalı, kaynak yoğunluğu nasıl.

    1. Farklı işletim sistemi veya çekirdek gerekiyorsa sanal makine zorunludur. Windows Server, eski bir CentOS sürümü ya da özel bir çekirdek modülü gerektiren uygulama konteynerde çalışmaz.
    2. Müşteri/kiracı sınırı çiziyorsanız yine sanal makine. Kiracılar arasındaki sınırın hipervizör düzeyinde olması, çekirdek düzeyinde olmasından ciddi biçimde daha güvenlidir.
    3. Aynı uygulamanın onlarca kopyasını çalıştırıyorsanız konteyner. Mikroservisler, CI çalıştırıcıları, kısa ömürlü işler için sanal makine başlatmak hem yavaş hem israftır.
    4. Kaynağı bölmek değil de garanti etmek istiyorsanız fiziksel sunucu ya da özel çekirdek pinlemesi düşünün. Gerçek zamanlı ses/video işleme, düşük gecikme gerektiren finans uygulamaları bu sınıfa girer.
    İş yüküUygun türNeden
    Kurumsal web sitesi + veritabanıSanal makine (VDS)Tam yalıtım, kolay yedek, tek makinede yeterli
    Mikroservis mimarisiKonteynerHızlı başlatma, yoğun paketleme
    Windows tabanlı uygulamaSanal makineKonteyner ortak Linux çekirdeği kullanır
    GPU ile model eğitimiSanal makine + passthroughFiziksel GPU'nun doğrudan atanması
    İç test/geliştirme ortamıKonteyner veya iç içe sanallaştırmaUcuz, hızlı kurulup silinir
    Yüksek G/Ç veritabanıSanal makine + virtio + NVMeEmülasyon kaybını en aza indirir

    Kendi altyapınızda hipervizör çalıştırmak istiyorsanız, yani sanal makine içinde sanal makine, iç içe sanallaştırma destekli sunucular bu senaryo için ayrı bir kategori olarak durur. Kaynağın tamamen size ait olmasını istiyorsanız dedicated sunucu, yönetimli ve ölçeklenebilir bir yapı istiyorsanız bulut sunucu tarafına bakmak mantıklıdır. İkisi arasındaki seçim kriterlerini bulut sunucu mu VDS mi yazısında ayrıntılı karşılaştırdım.

    Sık Yapılan Hatalar ve Tuzaklar#

    Yıllar içinde gördüğüm hataların büyük çoğunluğu birkaç başlıkta toplanıyor ve hepsi de önlenebilir cinsten.

    Aşırı taahhüt (overcommit) sınırını bilmemek. CPU'yu aşırı taahhüt etmek çoğu zaman güvenlidir; çünkü sanal makineler aynı anda tepe kullanıma çıkmaz. RAM'i aşırı taahhüt etmek ise tehlikelidir. Ana makine belleği tükendiğinde OOM killer devreye girer ve rastgele bir sanal makineyi öldürür. Kural basittir: RAM'i taahhüt etmeyin, CPU'yu makul oranda edin.

    Yanlış disk denetleyicisi seçmek. Yeni bir sanal makineyi hızlıca oluştururken varsayılan IDE/SATA ile bırakmak, sonra "disk çok yavaş" diye günlerce sorun aramak klasiktir. Linux misafirlerde virtio-scsi, Windows misafirlerde virtio sürücüsü kurup aynı denetleyiciyi kullanın.

    Anlık görüntüyü yedek sanmak. Snapshot, aynı diskte tutulan bir zaman noktası işaretidir. Disk ölürse snapshot da ölür. Yedek, farklı bir ortama alınmış ve geri yüklendiği test edilmiş kopyadır. Bu ayrımı Proxmox yedekleme ve geri yükleme yazısında ayrıntılı anlattım.

    Zaman senkronizasyonunu ihmal etmek. Sanal makinelerde saat kayması gerçek bir sorundur ve TLS doğrulamasından log korelasyonuna kadar her şeyi bozar. Misafirlerde chrony ya da systemd-timesyncd çalıştığından emin olun.

    Yedek diski ana makineyle aynı fiziksel disk üzerinde tutmak. Aynı RAID grubu, aynı sunucu, hatta aynı raf, tek bir arıza noktasıdır. Yedek en az bir kopyasıyla başka bir makinede durmalıdır.

    Sıkça Sorulan Sorular#

    Sanallaştırma performansı ne kadar düşürür#

    Modern donanım destekli sanallaştırmada CPU ve bellek yoğun iş yüklerindeki kayıp genellikle yüzde 2-5 aralığında kalır, çünkü misafir komutları doğrudan işlemcide çalışır. Asıl fark disk ve ağ tarafında ortaya çıkar; emüle edilen aygıtlarla çalışırsanız kayıp yüzde 30'u bulabilir. Paravirtual sürücüleri (virtio) kullandığınızda bu fark da büyük ölçüde kapanır ve pratikte fiziksel makineye çok yakın değerler alırsınız.

    Sanal makine mi konteyner mi kullanmalıyım#

    Farklı bir işletim sistemi ya da çekirdek gerekiyorsa, güvenlik sınırı kiracılar arasında çiziliyorsa sanal makine kullanın. Aynı uygulamanın çok sayıda kopyasını hızlı başlatıp durdurmanız gerekiyorsa, dağıtım süresi kritikse konteyner daha verimlidir. Pratikte çoğu ciddi kurulum ikisini birlikte kullanır: kiracı sınırı sanal makinede, uygulama paketleme konteynerde yapılır.

    Sanallaştırma için hangi donanım özellikleri gerekir#

    En temel gereklilik CPU'nun donanım sanallaştırma desteğidir: Intel'de VT-x, AMD'de AMD-V. Bunun BIOS/UEFI'de etkin olduğundan emin olun, çünkü bazı sunucularda varsayılan kapalıdır. İkinci sırada bol RAM gelir, zira bellek aşırı taahhüt edilmesi en riskli kaynaktır. Yoğun G/Ç yapacaksanız NVMe disk ve mümkünse IOMMU (VT-d / AMD-Vi) desteği aygıt geçişi için önemlidir.

    Sanallaştırma ücretsiz mi#

    Sanallaştırmanın kendisi ücretsiz olabilir. KVM Linux çekirdeğinin parçasıdır, Proxmox VE ve XCP-ng açık kaynaktır ve lisans ücreti ödemeden kurulabilir. Bu ürünlerde ücretli olan genellikle kurumsal depo erişimi ve destek aboneliğidir. Ticari alternatiflerde ise CPU soketi ya da çekirdek başına lisans modelleri yaygındır, bu yüzden bütçe planlarken donanım kadar lisans modelini de hesaba katın.

    İç içe sanallaştırma (nested) nedir, ne zaman gerekir#

    İç içe sanallaştırma, zaten sanal olan bir makinenin içinde yeniden hipervizör çalıştırabilmektir. Eğitim ortamları, küme testleri, CI hattında hipervizör senaryolarını denemek gibi durumlarda gerekir. Bunun için ana hipervizörün sanallaştırma bayraklarını misafire aktarması şarttır; aktarılmazsa iç sanal makineler ya hiç açılmaz ya da emülasyona düşerek çok yavaş çalışır.

    VDS ile sanal makine aynı şey mi#

    Pratikte evet, VDS bir sanal makinedir. VDS (Virtual Dedicated Server) terimi, kaynakların paylaştırılmak yerine size ayrılmış olduğunu vurgulamak için kullanılır: belirli sayıda çekirdek ve belirli miktarda RAM sadece sizin sanal makinenize tahsis edilir. Teknik olarak altında KVM gibi bir hipervizör çalışır ve tam root erişimiyle kendi işletim sisteminizi yönetirsiniz.

    Kapanış#

    Sanallaştırmayı tek cümleyle özetlemek gerekirse: donanımı mantıksal parçalara bölüp her parçaya kendi dünyasını sunma sanatıdır. Aklınızda kalması gereken pratik alışkanlıklar şunlar: CPU'da donanım desteğinin açık olduğunu kurulumdan önce doğrulayın, misafirlerde mutlaka paravirtual (virtio) sürücü kullanın, RAM'i aşırı taahhüt etmeyin ve anlık görüntüyü asla yedek yerine koymayın. Türü seçerken de tek soruya bakın: farklı bir çekirdeğe ya da sert bir güvenlik sınırına ihtiyacınız var mı? Varsa sanal makine, yoksa konteyner.

    Bu altyapıyı sıfırdan kurmak yerine hazır ve yönetimli bir ortamda başlamak isterseniz Clou.TR tarafında birkaç seçenek var. Tam root erişimli ve kaynakları size tahsisli VDS sunucular, esnek ölçeklenen bulut sunucu paketleri, kendi hipervizörünüzü çalıştırabileceğiniz iç içe sanallaştırma destekli sunucular ve donanımın tamamen size ait olduğu dedicated sunucu seçenekleri arasından iş yükünüze uygun olanı seçebilirsiniz. Kurulum ve bakım tarafını hiç düşünmek istemiyorsanız sunucu yönetimi hizmetimiz bu işi sizin yerinize üstlenir.

    SanallaştırmaHipervizörKVM

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.