Bu rehber neyi çözer?
KVM/QEMU olgun bir sanallaştırma altyapısıdır; başarılı tasarım için hypervisor kadar CPU/RAM, storage, network, HA ve backup birlikte planlanmalıdır.
KVM, QEMU, libvirt
KVM donanım sanallaştırmayı Linux çekirdeği üzerinden kullanır; QEMU sanal donanım katmanını, libvirt ise yönetim API/araçlarını sağlar.
Bu bileşenler doğrudan veya üst seviye yönetim platformlarıyla kullanılabilir.
Host boyutlandırma
CPU overcommit, NUMA, RAM rezervi ve storage IOPS workload’a göre planlanmalıdır.
HA varsa bir host kaybında kalan hostların yükü taşıyabilmesi için kapasite rezervi gerekir.
Storage ve network
Local NVMe, SAN, NFS ve dağıtık storage seçeneklerinin gecikme, IOPS ve yönetim maliyeti farklıdır.
Bridge, bonding/LACP, VLAN ve management/storage/VM trafik ayrımı planlanmalıdır.
Yedekleme ve migration
VM snapshot tek başına backup değildir; application consistency, bağımsız repository ve restore testleri gerekir.
Live migration için CPU uyumluluğu, storage ve yeterli network önemlidir.
Sık Sorulan Sorular
KVM ücretsiz mi?
KVM Linux çekirdeğinin parçasıdır; ancak yönetim, destek, storage ve operasyon maliyetleri vardır.
KVM Hyper-V yerine geçebilir mi?
Birçok workload’da evet; fakat yönetim, backup entegrasyonu ve operasyon süreçleri yeniden tasarlanmalıdır.
VM snapshot yedek midir?
Hayır. Snapshot operasyon aracıdır; bağımsız, test edilmiş backup gerekir.
Kaynaklar ve teknik referanslar
Linux Sunucu Projenizi Değerlendirelim
Mevcut Windows/Linux rollerinizi, uygulama bağımlılıklarını ve geçiş hedeflerinizi birlikte değerlendirebiliriz.
Mimari ve çalışma modeli
KVM çekirdek sanallaştırma desteği, QEMU aygıt/VM çalıştırma ve libvirt yönetim katmanı farklı rollerdir. CPU modeli, virtio sürücüleri, disk cache modu ve network bridge ayarları birlikte tasarlanır. Raw/qcow2 tercihi yalnız alan kullanımı değildir; snapshot ve işletim davranışı değişir. Storage ve ağ sağlığı hypervisor kurulumu kadar önemlidir.
- 1KVM/QEMU host
- 2Libvirt ve VM tanımı
- 3Virtio/storage/network
- 4Konuk ve restore testi
Tasarım parametreleri
- CPU modeli ve migration
- Host passthrough performans ve taşınabilirlik arasında tercih yaratabilir; hedef CPU uyumunu sınayın.
- Disk ve ağ backendleri
- Virtio, storage cache modu ve bridge erişimini konuk sürücüsü ve kalıcılık şartıyla doğrulayın.
- Servis ve kullanıcı
- Gerçek servis kullanıcısını, grup üyeliğini, çalışma dizinini ve gerekli yetkileri listeleyin. Root ile başarılı test sınırlı hesapla çalışmayı kanıtlamaz.
- Depolama ve kalıcılık
- Mount, dosya sistemi, inode ve kalıcı veriyi birlikte kontrol edin. Yeniden başlatma ve yeniden oluşturma aynı test değildir.
- Ağ ve güvenlik katmanı
- Dinlenen arayüz, firewall, TLS ve SELinux/AppArmor politikalarını ayırın. Bir katmandaki engel başka katmanın ayarıyla çözülmez.
- Paket ve işletim yöntemi
- Sürüm, depo, güncelleme yöntemi ve servis bağımlılıklarını belgeleyin. Bakım sonrası reboot ve uygulama doğrulamasını planlayın.
Hesap ve uygulama örneği
Örnek pilotta bir Linux ve bir Windows VM kurup virtio sürücü desteğini doğrulayın. Aynı veri yükünde I/O gecikmesini ve reboot davranışını ölçün. Snapshot zinciri, backup ve başka hostta restore ayrı sınanmalıdır. Migration için CPU ve storage uyumunu yalnız VM’nin açılmasıyla kanıtlamayın.
Örnek komutlar: laboratuvar değerlerini değiştirin; kullanmadan önce yetkiyi ve yazılım sürümünü doğrulayın.
virsh list --all
virsh dominfo vm-demo
Hata teşhisi
| Belirti | Olası neden / ayrım | Doğrulama |
|---|---|---|
| VM açık ama disk yavaş | Emüle controller veya host storage beklemesi olabilir. | Konuk aygıt sürücüsü, host I/O ve p95 latencyyi birlikte ölçün. |
| Servis aktif ama yanıt vermiyor | Process sağlığı, port dinleme ve uygulama sağlığı farklı kontrollerdir. | Yerel sağlık kontrolünü uzak istemci isteğiyle karşılaştırın; log ve bağımlılık durumunu inceleyin. |
| Dosya yazılamıyor | İzin, ACL, read-only mount, inode veya disk doluluğu etkili olabilir. | Servis kimliğiyle dizin zincirini ve mount durumunu doğrulayın; izinleri topluca açmayın. |
| Reboot sonrası yapılandırma kayboldu | Geçici mount, runtime ayarı veya yanlış yapılandırma kaynağı kullanılmış olabilir. | Kalıcı ayarı ve açılış sırasını kontrol edin; temiz reboot testini tekrarlayın. |
Kabul ve doğrulama kontrolleri
- Konuk sürücüsü, CPU modeli ve disk cache politikasını destek koşullarıyla birlikte kaydedin.
- Servisi tanımlanan sınırlı kimlikle çalıştırıp temel iş akışını test edin.
- Reboot sonrasında mount, ağ, zaman ve uygulama durumunu doğrulayın.
- Yapılandırma, veri ve anahtarları ayrı kurtarma kalemleri olarak kaydedin.
- Güncellemeden önce ve sonra aynı sağlık testini çalıştırın.
- Ayrı hedefe geri yükleyerek platform bağımlılıklarını doğrulayın.
İlgili kavramlar
NUMA yerelliği
NUMA sistemlerde işlemci, kendisine yakın bellekle uzak düğüm belleğine farklı maliyetle erişebilir. Bir sanal makinenin vCPU ve bellek boyutu, fiziksel düğüm kapasitesi ve hypervisor yerleştirmesiyle birlikte değerlendirilir. Daha fazla vCPU vermek her zaman hız kazandırmaz; yerellik kaybı ve zamanlama beklemesi performansı düşürebilir. Fiziksel topolojiyi, VM içindeki görünen topolojiyi ve gerçek iş yükünün bellek davranışını birlikte kaydedin. Değişikliği aynı yük altında önce/sonra karşılaştırın; yalnız CPU yüzdesi yerine uygulama gecikmesini ve uzak bellek etkisini inceleyin.
Kaynak rekabeti
Kaynak rekabeti, birden fazla iş yükünün aynı CPU, bellek, disk veya bağlantıyı paylaşırken birbirini bekletmesidir. Boş görünen toplam kapasite, tek bir sıcak çekirdek veya tek kuyruk üzerindeki darboğazı gizleyebilir. Aynı anda çalışan backup, antivirüs taraması, indeks bakımı ve kullanıcı trafiğini zaman çizelgesinde karşılaştırın. Kaynak eklemeden önce darboğazın yerini doğrulayın. Testte bir işi tek başına ve diğerleriyle birlikte çalıştırarak paylaşılan kaynağın etkisini ayırın; ortalama kullanım kadar yoğun saatlerdeki gecikmeyi de raporlayın.
Kalıcılaştırma ve güç kaybı
Commit edilmiş verinin güç kaybından sonra korunması veritabanı, işletim sistemi, dosya sistemi, kontrolcü ve diskin yazma garantilerinin birleşimine bağlıdır. Yazma önbelleği ve flush davranışını bilmeden performans için güvenlik ayarlarını kapatmayın. Güç kaybı korumalı depolama faydalıdır fakat bütün zincirin doğru yapılandırıldığını tek başına kanıtlamaz. Üretim yerine kontrollü laboratuvarda arıza ve recovery testi yapın. Veri bütünlüğünü örnek dosya açılmasıyla değil, uygulama kayıtları ve desteklenen tutarlılık kontrolleriyle doğrulayın.
Dosya sistemi ve depolama katmanları
Uygulama dizini, mount point, mantıksal disk ve fiziksel depolama aynı katman değildir. Boş alan kadar inode tükenmesi, read-only mount ve dosya sistemi hataları da yazmayı durdurabilir. Snapshot genellikle aynı depolama arızasını paylaşır ve bağımsız yedek sayılmaz. Mount seçenekleri ve kapasite genişletme yöntemi dosya sistemine göre değişir. İşletim sistemi yeniden açıldığında doğru depolamanın doğru dizine bağlandığını doğrulayın; mount edilmeyen dizine yazılan veri yanlış diski doldurabilir.
Uygulama tutarlılığı
Bir kopyanın açılabilir olması, uygulama verisinin tutarlı olduğunu kanıtlamaz. İşletim sistemi önbelleği, veritabanı günlükleri ve birden fazla disk veya servis arasındaki işlem sırası sonucu etkiler. Crash-consistent kopya beklenmedik kapanma sonrasındaki duruma benzer; application-consistent kopya uygulamanın desteklediği hazırlık ve yazma düzenini dikkate alır. Geri dönüşte yalnız dosya sayısını değil, işlem bütünlüğünü, kayıt ilişkilerini ve uygulama testini kontrol edin. Yedekleme ürününün desteklediği entegrasyonu, uygulama sürümünü ve hata çıktısını doğrulamadan tutarlılık varsaymayın.
Sürüm ve destek yaşam döngüsü
Bir ürünün kurulabilir olması üretim için desteklendiğini kanıtlamaz. İşletim sistemi, uygulama, sürücü, eklenti ve yönetim aracının uyumluluk zincirini birlikte kontrol edin. Güncelleme planında paket sürümü, destek bitişi, yeniden başlatma gereksinimi ve geri alma yöntemi bulunmalıdır. Test ortamı üretimdeki bağımlılıkları temsil etmezse sonuç yanıltıcı olabilir. Değişiklik sonrası yalnız sürüm numarasını değil, hizmet sağlığını ve önceki iş akışlarını doğrulayın. Bir sürümü sabitlemenin gelecekteki güvenlik düzeltmelerini engelleyebileceğini de dikkate alın.