Günümüz veri merkezlerinde artık her uygulama için ayrı bir fiziksel sunucu kullanma dönemi büyük ölçüde geride kaldı. Eskiden bir muhasebe uygulaması, bir web sunucusu, bir veritabanı sistemi ya da bir dosya paylaşım servisi için ayrı ayrı fiziksel sunucular konumlandırılırdı. Bu yaklaşım ilk bakışta düzenli ve güvenli görünse de zamanla ciddi maliyetler, donanım israfı ve yönetim zorlukları ortaya çıkarıyordu.
Birçok fiziksel sunucu, sahip olduğu işlemci ve bellek kapasitesinin yalnızca küçük bir bölümünü kullanarak çalışıyordu. CPU kullanımı çoğu zaman düşük seviyelerde kalıyor, RAM kapasitesinin önemli bir kısmı boşa bekliyor, buna rağmen veri merkezi rafları doluyor, enerji tüketimi artıyor ve soğutma maliyetleri yükseliyordu. İşte sanallaştırma teknolojisi tam olarak bu noktada devreye girerek BT altyapılarında büyük bir dönüşüm başlattı.
Sanallaştırma sayesinde tek bir fiziksel sunucu üzerinde birbirinden bağımsız çalışan birden fazla sanal makine oluşturmak mümkün hale geldi. Bu yapı hem kaynakların daha verimli kullanılmasını sağladı hem de sistem yöneticilerine çok daha esnek, yönetilebilir ve ölçeklenebilir bir altyapı sundu.
Sanallaştırma Nedir?
Sanallaştırma, fiziksel donanım kaynaklarının yazılımsal olarak bölümlendirilmesi ve birden fazla bağımsız sistem tarafından kullanılabilir hale getirilmesidir. Başka bir ifadeyle, tek bir fiziksel sunucu üzerinde birden fazla sanal sunucu çalıştırılabilir.
Bu sanal sunucuların her biri kendi işletim sistemine, disk yapısına, ağ kartına, işlemci kaynağına ve belleğine sahipmiş gibi davranır. Örneğin aynı fiziksel sunucu üzerinde bir Windows Server, bir Linux web sunucusu, bir veritabanı sunucusu ve test ortamı aynı anda çalışabilir. Üstelik bu sistemler birbirinden izole durumdadır.
Bir sanal makinede yaşanan işletim sistemi hatası, diğer sanal makineleri doğrudan etkilemez. Bu izolasyon yapısı, sanallaştırmanın en güçlü avantajlarından biridir.
VMware ESXi’nin Rolü
VMware ESXi, sanallaştırma dünyasının en bilinen ve en yaygın kullanılan hypervisor çözümlerinden biridir. ESXi, “bare-metal hypervisor” olarak adlandırılır. Bunun anlamı, ESXi’nin klasik bir işletim sistemi üzerine kurulan yazılım olmamasıdır. ESXi doğrudan fiziksel sunucu donanımına kurulur ve donanım kaynaklarını kendisi yönetir.
Fiziksel sunucunun işlemcisi, belleği, diskleri ve ağ kartları ESXi tarafından kontrol edilir. Daha sonra bu kaynaklar sanal makineler arasında paylaştırılır. Her sanal makine, kendisine ayrılan kaynaklar doğrultusunda çalışır.
Bu mimari sayesinde fiziksel donanım ile sanal makineler arasında güçlü bir soyutlama katmanı oluşur. Sistem yöneticisi, fiziksel donanımı doğrudan her işletim sistemine tanıtmak yerine, kaynakları ESXi üzerinden merkezi olarak yönetir.
Fiziksel Sunucudan Sanal Makineye Geçiş
Geleneksel yapıda yeni bir uygulama kurulacağı zaman genellikle yeni bir fiziksel sunucu ihtiyacı doğardı. Bu da bütçe onayı, sipariş süreci, donanım teslimi, rack montajı, kablolama, işletim sistemi kurulumu ve bakım planlaması gibi birçok adımı beraberinde getirirdi.
Sanallaştırma ile bu süreç ciddi ölçüde kısalır. Yeni bir sanal makine oluşturmak çoğu zaman dakikalar içinde tamamlanabilir. İhtiyaç duyulan CPU, RAM, disk ve ağ kaynakları tanımlanır; ardından işletim sistemi kurulumu yapılır veya hazır şablonlardan hızlıca yeni bir sistem devreye alınır.
Bu yaklaşım özellikle test ortamları, geliştirme sistemleri, geçici projeler ve hızlı ölçeklenmesi gereken servisler için büyük avantaj sağlar.
CPU Sanallaştırması: pCPU ve vCPU Mantığı
Sanallaştırmada en çok dikkat edilmesi gereken kaynaklardan biri CPU’dur. Fiziksel sunucu üzerindeki gerçek işlemci çekirdekleri pCPU, yani physical CPU olarak adlandırılır. Sanal makinelere atanan işlemci birimleri ise vCPU, yani virtual CPU olarak ifade edilir.
Bir fiziksel sunucuda örneğin 2 işlemci soketi ve her sokette 6 fiziksel çekirdek varsa toplamda 12 fiziksel çekirdek bulunur. Bu 12 çekirdek, ESXi tarafından sanal makineler arasında paylaştırılır.
Burada önemli kavramlardan biri overcommit oranıdır. Overcommit, fiziksel kaynaklardan daha fazla sanal kaynak tanımlanması anlamına gelir. Örneğin 12 fiziksel çekirdeğe sahip bir sunucuda toplam 24 vCPU atanmışsa 2:1 oranında CPU overcommit yapılmış olur.
Bu her zaman yanlış değildir. Çünkü tüm sanal makineler aynı anda maksimum CPU gücü kullanmaz. Bazı sistemler günün büyük bölümünde düşük kaynak tüketimiyle çalışır. Ancak oran çok yükselirse performans problemleri ortaya çıkabilir.
CPU Overcommit Nasıl Değerlendirilmelidir?
CPU overcommit planlaması yapılırken sadece fiziksel çekirdek sayısına bakmak yeterli değildir. Çalışan iş yüklerinin karakteri mutlaka analiz edilmelidir.
Örneğin düşük yoğunluklu dosya sunucuları, küçük servis makineleri veya test ortamları daha yüksek vCPU:pCPU oranlarını tolere edebilir. Buna karşılık veritabanı sunucuları, yoğun uygulama sunucuları, gerçek zamanlı işlem yapan sistemler veya yüksek CPU tüketen analitik uygulamalar için daha dikkatli planlama gerekir.
Genel yaklaşım olarak 1:1 ile 3:1 arası oranlar daha güvenli kabul edilir. Daha yüksek oranlar ancak sistemlerin gerçek CPU kullanım değerleri düzenli izleniyorsa ve iş yükleri düşük yoğunlukluysa tercih edilmelidir.
Burada unutulmaması gereken en önemli nokta şudur: Sanallaştırma kaynakları esnek kullanmayı sağlar, ancak fiziksel donanımın sınırlarını ortadan kaldırmaz.
Hyper-Threading Etkisi
Intel Hyper-Threading teknolojisi, bir fiziksel işlemci çekirdeğinin iki mantıksal işlemci gibi görünmesini sağlar. Örneğin 12 fiziksel çekirdeğe sahip bir sistemde Hyper-Threading aktifse ESXi tarafında 24 mantıksal işlemci görülebilir.
Bu durum sanallaştırma ortamında ek işlem kapasitesi sağlayabilir. Ancak Hyper-Threading gerçek fiziksel çekirdek performansını birebir ikiye katlamaz. Çünkü aynı fiziksel çekirdeğe bağlı iki mantıksal thread, bazı donanım kaynaklarını ortak kullanır.
Bu nedenle kapasite planlaması yapılırken Hyper-Threading’in katkısı dikkate alınmalı, ancak fiziksel çekirdeklerle aynı seviyede değerlendirilmemelidir. Özellikle CPU yoğun çalışan sistemlerde gerçek performans izleme verileriyle karar vermek çok daha sağlıklı olacaktır.
Bellek Sanallaştırması: RAM Yönetimi Neden Daha Hassastır?
CPU kaynakları belli oranlarda esnek biçimde paylaştırılabilir. Ancak bellek tarafında durum daha hassastır. Çünkü RAM, uygulamaların doğrudan performansını etkileyen kritik bir kaynaktır.
Bir sanal makineye 8 GB RAM atanmış olabilir, fakat bu makine gerçekte her zaman 8 GB kullanmaz. ESXi, bellek kullanımını izleyerek kullanılmayan bellek alanlarını gerektiğinde geri kazanabilir ve başka sanal makinelerin kullanımına sunabilir.
Bu mekanizma özellikle fiziksel RAM’in sınırlı olduğu ortamlarda avantaj sağlar. Ancak bellek overcommit’i kontrolsüz yapılırsa ciddi performans sorunları yaşanabilir.
Ballooning ve Bellek Geri Kazanımı
VMware ortamlarında bellek yönetiminde kullanılan önemli mekanizmalardan biri ballooning yöntemidir. Ballooning sayesinde ESXi, sanal makinelerin kullanmadığı bellek alanlarını geri kazanabilir.
Örneğin bir sanal makineye 8 GB RAM atanmış ancak sistem gerçekte 4 GB kullanıyorsa, ESXi kalan kullanılmayan alanı geri kazanarak başka bir sanal makine için değerlendirebilir.
Bu işlem doğru yönetildiğinde kaynak verimliliği sağlar. Ancak ortamda sürekli bellek baskısı oluşuyorsa ve sanal makineler ihtiyaç duydukları belleğe erişmekte zorlanıyorsa, performans sorunları kaçınılmaz hale gelir.
VSWP Dosyaları ve Performans Etkisi
VMware ortamında her sanal makine için bir .vswp dosyası oluşturulur. Bu dosya, bellek baskısı oluştuğunda devreye girebilecek bir takas alanı olarak düşünülebilir.
Fiziksel RAM yetersiz kaldığında ESXi bazı bellek sayfalarını disk üzerindeki bu swap dosyasına yazabilir. Bu mekanizma sistemin tamamen durmasını engelleyebilir, ancak performans açısından ideal bir durum değildir.
Çünkü disk erişim süresi RAM’e göre çok daha yavaştır. Özellikle klasik disk yapılarında ya da yoğun kullanılan depolama sistemlerinde swap kullanımı sanal makine performansını ciddi şekilde düşürebilir.
Bu nedenle .vswp kullanımının sık görülmesi, ortamda bellek kaynaklarının yetersiz olduğuna dair önemli bir uyarıdır.
Ağ Sanallaştırması: Fiziksel Kablodan Sanal Switch’e
Fiziksel sunucularda ağ bağlantısı, fiziksel NIC kartları ve switch portları üzerinden sağlanır. Sanallaştırma ortamlarında ise bu yapı yazılım katmanına taşınır.
ESXi üzerinde sanal switch’ler oluşturulur. Fiziksel ağ kartları bu sanal switch’lere uplink olarak bağlanır. Sanal makineler ise vNIC adı verilen sanal ağ kartları aracılığıyla bu switch’lere dahil olur.
Bu sayede her sanal makine, fiziksel bir sunucu gibi ağa bağlanabilir. VLAN yapılandırmaları, trafik ayrıştırma, güvenlik politikaları ve ağ segmentasyonu yazılımsal olarak yönetilebilir.
Bu yapı özellikle büyük veri merkezlerinde ciddi esneklik sağlar. Yeni bir sanal makineyi farklı bir VLAN’a almak, fiziksel kablo değişikliği gerektirmeden birkaç ayar ile yapılabilir.
Sanal Ağ Tasarımında Dikkat Edilmesi Gerekenler
Ağ sanallaştırması büyük kolaylık sağlasa da doğru tasarlanmadığında karmaşık sorunlara yol açabilir. Yönetim trafiği, sanal makine trafiği, storage trafiği ve vMotion trafiği mümkün olduğunca ayrıştırılmalıdır.
Özellikle yüksek trafiğe sahip ortamlarda fiziksel uplink sayısı, NIC teaming yapılandırması, VLAN planlaması ve güvenlik politikaları dikkatle belirlenmelidir.
Yanlış yapılandırılmış bir sanal switch, sadece tek bir sanal makineyi değil, aynı host üzerinde çalışan birçok sistemi etkileyebilir. Bu nedenle ağ tasarımı sanallaştırma projelerinin en kritik bölümlerinden biridir.
Depolama Sanallaştırması ve VMDK Yapısı
Sanal makinelerin diskleri fiziksel diskler gibi görünse de aslında arka planda dosya tabanlı yapılardır. VMware ortamında sanal makine diskleri genellikle VMDK dosyaları olarak saklanır.
Bir sanal makinenin işletim sistemi, uygulamaları ve verileri bu VMDK dosyaları üzerinde bulunur. Bu dosyalar çoğunlukla VMFS dosya sistemi üzerinde veya paylaşımlı storage alanlarında tutulur.
Depolama sanallaştırması sayesinde sanal makinelerin diskleri kolayca taşınabilir, yedeklenebilir, kopyalanabilir veya farklı veri depolama alanlarına aktarılabilir.
Storage vMotion ile Kesintisiz Taşıma
VMware’in güçlü özelliklerinden biri Storage vMotion’dır. Storage vMotion sayesinde çalışan bir sanal makinenin disk dosyaları, sistem kapatılmadan farklı bir depolama alanına taşınabilir.
Bu özellik bakım çalışmaları, storage yenilemeleri, performans iyileştirmeleri veya kapasite düzenlemeleri sırasında büyük avantaj sağlar.
Örneğin eski bir storage sistemi devreden çıkarılacaksa, üzerindeki sanal makinelerin VMDK dosyaları yeni storage alanına canlı olarak taşınabilir. Kullanıcılar çoğu zaman bu taşıma işlemini fark etmez bile.
Bu, sanallaştırmanın operasyonel esneklik açısından sunduğu en önemli kazanımlardan biridir.
GPU Sanallaştırması: Yeni Nesil İş Yükleri İçin Kritik Bir Alan
Geçmişte GPU kaynakları daha çok grafik tasarım, CAD uygulamaları veya VDI ortamları için önemliydi. Ancak günümüzde yapay zeka, makine öğrenmesi, veri analitiği ve görsel işlem gerektiren uygulamalar nedeniyle GPU sanallaştırması çok daha önemli hale geldi.
VMware ortamlarında NVIDIA GRID vGPU gibi teknolojiler kullanılarak fiziksel GPU kaynakları birden fazla sanal makine arasında paylaştırılabilir.
Bu modelde her sanal makineye belirli bir GPU profili atanır. Bu profil, sanal makinenin ne kadar GPU belleği ve işlem kapasitesi kullanabileceğini belirler.
GPU Pass-Through ve vGPU Farkı
GPU kullanımında iki temel yaklaşım vardır: vGPU ve pass-through.
vGPU modelinde fiziksel GPU birden fazla sanal makine tarafından paylaşılır. Bu yapı özellikle VDI, grafik hızlandırma ve orta seviye GPU ihtiyacı olan iş yükleri için uygundur.
Pass-through modelinde ise fiziksel GPU doğrudan tek bir sanal makineye atanır. Bu durumda sanal makine GPU’yu neredeyse fiziksel bir sistem gibi kullanır. Performans açısından avantajlıdır, ancak GPU başka sanal makinelerle paylaşılamaz.
Bu nedenle hangi modelin seçileceği, iş yükünün ihtiyacına göre belirlenmelidir. Yapay zeka eğitimi gibi yoğun GPU gerektiren işlemlerde pass-through daha uygun olabilirken, çok kullanıcılı VDI ortamlarında vGPU daha verimli bir çözüm sunabilir.
Sanallaştırmanın Sağladığı Avantajlar
VMware sanallaştırmasının kurumlara sunduğu avantajlar oldukça fazladır. En temel kazanım, fiziksel kaynakların daha verimli kullanılmasıdır. Daha az fiziksel sunucu ile daha fazla iş yükü çalıştırılabilir.
Bunun yanında yönetim kolaylığı da önemli bir avantajdır. Sanal makineler kolayca oluşturulabilir, kapatılabilir, taşınabilir, yedeklenebilir ve geri döndürülebilir.
Bakım süreçleri de daha kontrollü hale gelir. Fiziksel bir host üzerinde bakım yapılacaksa, sanal makineler başka host’lara taşınarak kesinti süresi azaltılabilir.
Ayrıca felaket kurtarma senaryoları, test ortamları, hızlı devreye alma süreçleri ve kapasite planlaması sanallaştırma sayesinde çok daha esnek yönetilebilir.
Sanallaştırmada En Sık Yapılan Hatalar
Sanallaştırma ortamlarında yapılan en yaygın hatalardan biri, fiziksel kaynakları olduğundan fazla varsaymaktır. Sanal makine oluşturmak kolay olduğu için gereğinden fazla vCPU, RAM veya disk ataması yapılabilir.
Örneğin her sanal makineye ihtiyacından fazla vCPU vermek performansı artırmak yerine düşürebilir. Çünkü ESXi, fazla vCPU tanımlanmış makineleri planlamak için daha fazla kaynak yönetimi yapmak zorunda kalabilir.
Benzer şekilde gereğinden fazla RAM atamak, fiziksel bellek üzerinde baskı oluşturabilir. Bu da ballooning veya swap kullanımına neden olabilir.
Ağ tarafında ise VLAN karmaşası, yetersiz uplink planlaması veya yönetim trafiği ile sanal makine trafiğinin ayrıştırılmaması ciddi problemlere yol açabilir.
Doğru Kapasite Planlamasının Önemi
Başarılı bir sanallaştırma ortamı için en önemli konulardan biri düzenli izleme ve kapasite planlamasıdır. Fiziksel host üzerindeki CPU kullanımı, bellek tüketimi, disk gecikmeleri, ağ trafiği ve sanal makinelerin performans değerleri düzenli takip edilmelidir.
Sadece kaynak atamak yeterli değildir. Atanan kaynakların gerçekten kullanılıp kullanılmadığı analiz edilmelidir.
Bir sanal makineye 8 vCPU verilmiş olabilir, ancak sistem hiçbir zaman 2 vCPU’dan fazlasını kullanmıyorsa bu kaynaklar gereksiz yere ayrılmış demektir. Aynı şekilde fazla RAM atanan ama düşük bellek kullanan makineler de optimize edilmelidir.
Bu optimizasyonlar sayesinde aynı fiziksel altyapı üzerinde daha fazla sistem daha stabil şekilde çalıştırılabilir.
