Proxmox’ta Hangi Servis LXC Hangi Servis KVM Olmalı?

Proxmox’ta sanallaştırma kurulurken yapılan en büyük hatalardan biri, LXC ve KVM’in aynı çözüm olarak görülmesidir. İki teknoloji de sanal ortam oluşturur fakat hedefledikleri kullanım alanları net biçimde ayrılır. Bu ayrım göz ardı edildiğinde ortaya çıkan sorunlar, basit bir performans düşüşünden ibaret olmaz.

Proxmox’ta LXC ve KVM Arasındaki Temel Ayrım

LXC, host sistemin Linux çekirdeğini paylaşan izole bir çalışma ortamı sunar. Ayrı bir işletim sistemi başlatılmaz. Bu yapı sayesinde hızlı çalışır, hafif kalır ve minimum kaynak tüketir.

KVM ise tam teşekküllü bir sanal makinedir. Kendi kernel’i, sanal donanımı ve bağımsız açılış süreci bulunur. Daha fazla kaynak tüketir ancak izolasyon seviyesi belirgin şekilde yüksektir.

⚠️ Bu fark, performanstan ziyade bir problem yaşandığında müdahalenin hangi katmanda yapılacağını belirler.

Bir sorun oluştuğunda odak noktası şudur,

LXC’de problem → host kernel, cgroup ve namespace
KVM’de problem → guest işletim sistemi, disk sürücüleri ve VM yapılandırması

LXC Nedir Proxmox’ta Ne İşe Yarar?

LXC, Linux işletim sistemini sanal bölmelere ayıran bir yapı sunar. Her bölme, kendi Linux ortamı varmış gibi izole şekilde çalışır.

Klasik sanal makinelerin aksine, her konteyner için ayrı bir kernel yüklenmez.

  • Bu nedenle LXC bir sanal makine sayılmaz. Mevcut sistem kaynaklarını kullanarak daha hafif bir yapı oluşturur.
  • Hızlıdır ve bekleme süresi yoktur. Bilgisayar açar gibi beklemeden anında hazır hale gelir.
  • İzolasyon yapısı sayesinde, konteyner içindeki uygulamalar ana sistemden güvenli biçimde ayrılır.

Proxmox’ta LXC Nasıl Çalışır?

Proxmox VE, LXC teknolojisini yerleşik olarak destekler. Bu sayede ekstra bir yazılım kurmaya gerek kalmadan, yönetim paneli üzerinden doğrudan konteyner oluşturulabilir ve yönetilebilir.

Proxmox tarafında LXC’nin çalışma mantığı temel olarak şu bileşenlere dayanır.

Ortak Linux Çekirdeği

Tüm LXC konteynerleri, Proxmox host sisteminin kernel’ini ortak şekilde kullanır. Bu yapı sayesinde her konteyner için ayrı bir kernel yüklenmesine ihtiyaç duyulmaz.

Kaynak İzolasyonu

Her konteyner için ayrı kaynak limitleri tanımlanabilir. Bir konteynere 2 GB RAM, diğerine yalnızca 1 CPU çekirdeği vererek kaynakların kontrolsüz şekilde tüketilmesi engellenir.

  • CPU core sınırı
  • RAM limiti
  • Disk I/O kısıtlaması

Namespace Yapısı

Bu konteynerler disk üzerinde bağımsız sanal diskler gibi çalışmaz. Proxmox’un sunduğu namespace yapısı sayesinde dosya sistemi ve süreçler izole edilir.

Proxmox Üzerinde LXC Container Oluşturma

Bir LXC container kurulumuna başlamadan önce, uygun işletim sistemi template’inin sisteme indirilmesi gerekir.

Panel üzerinden işlem yapmak için Local (pve) → CT Templates → Templates yolu izlenir.

Alternatif olarak, template işlemlerini komut satırı üzerinden yönetmek isteyenler aşağıdaki adımları kullanabilir.

pveam update
pveam available
pveam download local debian-12-standard_12.2-1_amd64.tar.zst

Create CT – Genel Ayarlar Ekranı

Template indirildikten sonra Create CT adımıyla container oluşturma sürecine başlayalım.

Root Disk ve Storage Seçimi

LXC diskleri blok disk değildir, filesystem bazlı çalışır.

CPU ve RAM Kaynaklarının Belirlenmesi

Container oluşturulduktan sonra, CPU ve RAM limitleri bu adımda ayarlanır. Komut satırı üzerinden örnek bir kaynak tanımı aşağıdaki gibidir.

pct set 101 --cores 2 --memory 2048 --swap 512

Ağ Yapılandırması (vmbr)

Container’ın dış ağ ile iletişimi bu aşamada tanımlanır. Genellikle Proxmox’un varsayılan bridge yapısı olan vmbr0 kullanılır.

pct set 101 --net0 name=eth0,bridge=vmbr0,ip=dhcp

Konteyner İçine Erişim (Console / SSH)

Finish ile container oluşturma tamamladıktan sonra erişim sağlayabiliriz.

pct enter 101

LXC Hangi Kullanımlar İçin Uygundur?

LXC, web sunucusu barındırma, API servisleri ve mikroservis mimarilerinde yaygın olarak tercih edilir. Apache ve Nginx gibi servisler, LXC ortamında düşük overhead ile çalışır. Monitoring, logging ve CI/CD süreçlerine ait yardımcı servisler için de uygun bir yapı sunar. Redis gibi hafif servisler ve iyi yapılandırılmış PostgreSQL sistemleri LXC içerisinde çalıştırılabilir.

Proxmox’ta KVM Nasıl Çalışır?

KVM, Proxmox’un sunduğu klasik sanal makine altyapısını oluşturur. Her VM kendi işletim sistemini, kernel’ini ve sanal donanım katmanını içerir. Bu sayede Linux ve Windows dahil olmak üzere farklı işletim sistemleri çalıştırılabilir.

KVM Hangi Senaryolarda Tercih Edilir?

Windows çalıştırılması gereken tüm senaryolarda tek seçenek KVM’dir. LXC bu tür işletim sistemlerini desteklemez.

Veritabanı iş yükleri disk erişimi, bellek kontrolü ve kernel tuning gerektirir. LXC yapısı bu ihtiyaçları sağlamakta sınırlı kalır.

  • IO jitter riski artar
  • Yedekleme süreçleri zorlaşır
  • Performans tahmin edilemez olur

Docker ve Kubernetes Node’ları

Container içinde container çalıştırmak hatadır. Docker ve Kubernetes node’ları her zaman KVM VM üzerinde konumlandırılmalıdır.

KVM’nin Dezavantajları

LXC’ye kıyasla daha fazla CPU ve RAM tüketir. Sanal makinelerin açılış süresi daha uzundur. Aynı donanım üzerinde çalıştırılabilecek servis sayısı konteynerlara göre daha düşüktür.

LXC’den KVM’e Geçiş Nasıl Yapılmalı?

LXC’den KVM’e geçiş, bir container’ı doğrudan sanal makineye çevirmek anlamına gelmez. En yaygın hata da bu sürecin böyle algılanmasıdır. Doğru yöntem, servisi taşımak yerine veriyi bağımsız hale getirmektir.

İlk adımda uygulamaya ait veriler container dışına çıkarılır. Veritabanı dump’ları alınır, dosya sistemleri kopyalanır veya object storage kullanılarak veri izole edilir. Sonrasında KVM üzerinde temiz bir sanal makine oluşturulur ve servisler sıfırdan kurulur.

Kesinti süresini azaltmak için eski LXC ortamı çalışmaya devam ederken yeni KVM hazırlanır. DNS TTL değeri düşürülür, servisler paralel çalıştırılır ve kısa bir bakım anında trafik yeni VM’e yönlendirilir. Doğru planlama ile bu geçiş saniyeler içinde tamamlanabilir.

Proxmox’ta LXC ve KVM’in Birlikte Konumlandırılması

Proxmox mimarilerinde tüm iş yüklerini tek bir sanallaştırma modeliyle çalıştırmak doğru bir yaklaşım değildir. En doğru kullanım, LXC ve KVM’in rol bazlı olarak birlikte kullanılmasıdır.

LXC, kenar servisler için ideal bir alan oluşturur. Web servisleri, proxy yapıları, monitoring ve yardımcı bileşenler bu tarafta çalışır.
KVM ise merkez servisler için ayrılır. Veritabanları, Windows tabanlı sistemler ve kritik uygulamalar KVM üzerinde tutulur.

Güvenlik Tarafında LXC ve KVM

LXC güvenlik açısından yeterli olsa da kernel paylaşımı sebebiyle mutlak izolasyon sunmaz. Bu nedenle üretim ortamlarında unprivileged container kullanımı kritik öneme sahiptir. Privileged LXC’ler ciddi güvenlik riskleri doğurur.

KVM’de ise sanal makineler doğal olarak daha iyi izole edilir. Özellikle kritik, hassas ya da yasal yükümlülüklere tabi servislerde KVM daha güvenli bir seçenek olur.

SenaryoTercihNeden
Aynı host’ta çok sayıda servisLXCDüşük overhead, yüksek yoğunluk
İnternete açık kritik sistemVMKernel ve donanım izolasyonu
Klasik imaj yedeklemeVMSnapshot ve restore netliği
Hafif servisler, API’lerLXCHızlı başlama, düşük kaynak
Gelecekte taşınabilirlikVMHypervisor bağımsızlığı
Homelab test ortamıLXC ağırlıklıEsneklik ve hız
Müşteri veya üretim ortamıVM ağırlıklıGüvenlik ve kontrol

Yorum yapın