VMware vSphere DRS (Distributed Resource Scheduler) Nedir?

VMware vSphere DRS (Distributed Resource Scheduler), VMware vSphere ortamında kullanılan güçlü bir özelliktir. Bir cluster içindeki kaynakların (CPU, bellek gibi) otomatik olarak dengelenmesini sağlar.

Bir cluster, birden fazla ESXi host’un (fiziksel sunucuların) bir araya gelerek oluşturduğu bir yapıdır. Bu host’lar üzerinde sanal makineler (VM’ler) çalışır. Ancak bazen bir host aşırı yük altında kalabilirken (örneğin CPU kullanımı %90’a çıkarsa), diğer host’lar boşta kalabilir (%20 CPU kullanımı gibi). İşte DRS, bu durumu otomatik olarak algılar ve sanal makineleri host’lar arasında taşıyarak kaynak kullanımını dengeler (Bu işlemi vMotion teknolojisi kullanılarak gerçekleştirilir.). Böylece sistemin performansı artar, kaynaklar optimize edilir ve kesintiler önlenir.

Örnek vermek gerekirse, bir şirkette 3 tane fiziksel sunucu (host) var ve bu sunucular bir cluster oluşturuyor. Cluster’da toplam 10 sanal makine çalışıyor. Eğer 1. sunucu aşırı yüklenirse (CPU kullanımı %90’a çıkarsa), ama 2. ve 3. sunucular boşta kalırsa (%20 CPU kullanımı gibi), DRS devreye girer. 1. sunucudaki bazı sanal makineleri otomatik olarak 2. veya 3. sunucuya taşır. Böylece tüm sunucuların kaynakları dengeli bir şekilde kullanılır ve performans sorunları önlenir.

DRS’nin Temel Amaçları:

  • Kesintileri Önlemek: Aşırı yüklenmeyi engelleyerek sistemin stabil kalmasını sağlamak.
  • Kaynakları Dengeli Kullanmak: Tüm host’ların eşit şekilde çalışmasını sağlamak.
  • Performansı Artırmak: VM’lerin daha iyi ve kesintisiz çalışmasını sağlamak

DRS Yapılandırma Ayarları

Aşağıda, DRS’nin temel sekmelerindeki ayarları ve ne işe yaradıklarını açıklamaya çalışacağım.

Automation Sekmesi

Automation Level (Otomasyon Seviyesi): Bu ayar, DRS’nin sanal makineleri nasıl yöneteceğini belirler. Üç seçeneği vardır:

  • Automation Level (Otomasyon Seviyesi): Manual (Manuel): DRS, sanal makineleri otomatik olarak taşımaz. Bunun yerine, kaynak dengesizliği olduğunda size öneriler sunar. Bu önerileri manuel olarak onaylayarak vMotion (sanal makine taşıma) işlemini siz başlatırsınız. Kontrolün tamamen sizde olmasını sağlar. Kritik sistemlerde, otomatik taşımanın riskli olabileceği durumlarda tercih edilir. İş yüklerinizin (workload) sürekli değişmediği ve manuel müdahale istediğiniz bir ortamda bu seçeneği kullanabilirsiniz.
  • Fully Automated (Tam Otomatik): DRS, kaynak dengesizliğini algıladığında sanal makineleri otomatik olarak taşır. Hiçbir onay gerekmez. Herşey otomatik ilerler. Genelde bunu tercih ederiz.
  • Partially Automated (Kısmi Otomatik): Yeni sanal makinelerin yerleştirilmesi otomatik yapılır (örneğin bir VM açıldığında hangi host’a konulacağı DRS tarafından belirlenir), ancak mevcut sanal makinelerin taşınması için manuel onay gerekir. Yeni VM’lerin sık eklendiği ama mevcut VM’lerin taşınmasının dikkatle izlenmesini istediğiniz durumlarda uygundur.

Migration Threshold (Göç Eşiği): Bu ayar, DRS’nin sanal makineleri ne kadar sık taşıyacağını belirler. Bir kaydırma çubuğu ile ayarlanır. Conservative, büyük dengesizliklerde vMotion yapar (örneğin bir host %90 dolu, diğeri %20 dolu). Aggressive ise küçük dengesizliklerde bile vMotion yapar (örneğin bir host %60 dolu, diğeri %40 dolu) Bu sebeple varsayılan ayar genelde iyidir.

Predictive DRS (Tahmini DRS): Geçmiş verilere dayanarak gelecekteki kaynak dengesizliklerini tahmin eder ve önlem alır. Örneğin, her sabah 9’da bir VM’nin CPU kullanımı artıyorsa, Predictive DRS bunu öğrenir ve taşıma yapar. Tabii, bunun için vRealize Operations Manager entegrasyonu gerekir. Entegrasyon yoksa bu özellik pek anlam ifade etmez.

Virtual Machine Automation (Sanal Makine Otomasyonu): DRS’nin sanal makineleri otomatik taşıyıp taşımayacağını belirler. İşaretliyse otomatik, işaretli değilse manuel öneriler sunar. Genelde açık bırakılır, ancak hassas sistemlerde manuel kontrol için kapatılabilir.

VM Hosts Stun Time Limit (Sanal Makine Durdurma Süre Limiti): vMotion sırasında sanal makine kısa süre “stun” (dondurulur). Bu süre limiti, maksimum dondurma süresini belirler (0-3600 saniye). Varsayılan (100 saniye) çoğu ortam için yeterlidir. Çok düşük yapılırsa vMotion da sorun yaşanabilir.

Passthrough VM DRS Automation (Passthrough Cihazları için DRS Otomasyonu): Passthrough cihaz (örneğin GPU) kullanan VM’lerin DRS tarafından taşınmasını sağlar. Passthrough cihazlar vMotion ile uyumlu olmadığından sorun oluşturabilir, bu nedenle bu özellik genellikle devre dışı bırakılır.

Additional Options (Ek Seçenekler) Sekmesi

VM Distribution (Sanal Makine Dağılımı): Sanal makineleri host’lar arasında sayısal olarak eşit dağıtır. Örneğin, 3 host’ta 15 VM varsa, her host’ta 5 VM olacak şekilde yerleştirilir. Yüksek erişilebilirlik (HA) için faydalıdır, çünkü bir host arızalandığında diğer host’larda daha az VM etkilenir. Ancak kaynak kullanımı açısından verimsiz olabilir. Genelde kapalıdır.

CPU Over-Commitment: Sanal makineler (VM’ler) için tahsis edilen sanal CPU (vCPU) miktarının, fiziksel host’lardaki gerçek CPU çekirdeklerinden (pCPU) daha fazla olmasını ifade eder. Oransal olarak ayarlanabilir.

Scalable Shares (Ölçeklenebilir Paylaşımlar): Kaynak havuzlarının (resource pool) CPU ve bellek paylaşımlarını, havuzdaki VM sayısına ve önceliklere göre dinamik olarak ayarlar.

Power Management (Güç Yönetimi)

DPM (Distributed Power Management): Boşta kalan host’ları kapatır (power-off), yoğunluk artarsa açar (power-on) ve enerji tasarrufu sağlar. Wake-on-LAN destekli host’larda enerji tasarrufu için etkinleştirilir. Ancak, host’ların açılıp kapanması performansı etkileyebilir, bu yüzden dikkatli kullanılmalıdır. Bu seçenek çok fazla hostun olduğu ve hostların uzun süre aktif olmadığı durumlarda işe yarar. Onun dışında pek kullanmıyoruz.

DPM Threshold (DPM Eşiği): Host’ların ne kadar sık açılıp kapanacağını belirler. Conservative daha az, Aggressive daha sıklıkta açma-kapama yapar. Bu ayarı kullanabilmek için Cluster -> Configure -> Host Options menüsünden ilgili hostların IPMI/iLO bilgilerinin girilmesi gerekir. Host Options seçeneğinin 3 temel çalışma şekli vardır.

  • Otomatik Mod: DPM, host’ları otomatik olarak açar veya kapatır.
  • Manuel Mod: DPM, açma/kapama önerileri sunar, ancak işlemi yönetici onaylamalıdır.
  • Kapalı: DPM devre dışı bırakılır, host’lar her zaman açık kalır.

Kurallarla DRS Özelleştirme

DRS, kaynak dengesi yapmanın ötesinde, kurallar ve gruplar aracılığıyla özelleştirilebilir. Bu bölümde, VM/Host Groups ve VM/Host Rules gibi özelliklere odaklanacağız.

VM/Host Groups (Sanal Makine/Host Grupları)

VM/Host Groups, sanal makineleri veya host’ları mantıksal gruplar halinde organize etmemizi sağlar. Bu gruplar, VM/Host Rules ile birlikte kullanmak için yerine göre gereklidir.

  • Type -> VM Group (Sanal Makine Grubu): Birden fazla VM’yi bir araya toplar. Örneğin, tüm web sunucularını bir gruba dahil edebilirsiniz.
  • Type ->Host Group (Host Grubu): Birden fazla host’u bir araya toplar. Örneğin, yüksek performanslı host’ları bir gruba alabilirsiniz.
  • Members (Üyeler): Gruba eklenecek VM’ler veya host’lar seçilir.

VM/Host Rules (Sanal Makine/Host Kuralları)

VM/Host Rules, belirli sanal makinelerin (VM’ler) veya host’ların belirli kurallara göre nasıl yerleştirileceğini veya davranacağını tanımlar. Özü itibari ile iki ana kural türü vardır. Birincisi Belirli sanal makinelerin belirli host’lara yerleştirilmesini veya yerleştirilmemesini sağlar. İkincisi Belirli sanal makinelerin birbirleriyle ilişkisini tanımlar (birlikte veya ayrı)

Sanal Makineler Arası Davranış

Keep Virtual Machines Together (Sanal Makineleri Birlikte Tut): Belirtilen sanal makinelerin aynı host’ta çalışmasını sağlar. Örneğin, Bir e-ticaret sitesinde, bir web sunucusu (WebVM) ve veritabanı sunucusu (DBVM) sürekli iletişim halindedir. Bu iki sanal makine, sürekli veri alışverişi yaptığı için aynı host’ta çalışırsa iletişim hızlanır ve gecikme (latency) azalır.

Separate Virtual Machines (Sanal Makineleri Ayır): Belirtilen sanal makinelerin farklı host’larda çalışmasını sağlar. Örneğin bir kurumda, iki kritik uygulama (App1 ve App2) aynı host’ta arızalanmasın diye farklı host’larda çalıştırılabilir.

Sanal Makineleri Host’lara Bağlama Davranışı

Bu seçenek, belirli sanal makinelerin belirli host’lara yerleştirilmesini veya belirli host’lardan uzak tutulmasını tanımlar. Belirli VM’lerin belirli host’larla ilişkilendirilmesi gerektiğinde (lisanslama vs.) kullanılır. Dört alt seçeneği vardır:

  • Must Run on Hosts in Group (Belirtilen Host Grubu Üzerinde Çalışmalı): Sanal makineler yalnızca belirtilen host grubunda çalışır.
  • Should Run on Hosts in Group (Belirtilen Host Grubu Üzerinde Çalışması Tercih Edilir): Sanal makineler mümkünse belirtilen host grubunda çalışır, ama kaynak eksikliği gibi durumlarda başka host’lara da yerleştirilebilir.
  • Must Not Run on Hosts in Group (Belirtilen Host Grubu Üzerinde Çalışmamalı): Sanal makineler belirtilen host grubunda kesinlikle çalışmaz.
  • Should Not Run on Hosts in Group (Belirtilen Host Grubu Üzerinde Çalışması Tercih Edilmez): Sanal makineler mümkünse belirtilen host grubunda çalışmaz, ama gerekliyse çalışabilir.

VM Overrides (Sanal Makine İstisnaları)

VM Overrides, cluster seviyesindeki DRS ayarlarının (Automation Level, Migration Threshold gibi) belirli sanal makineler için geçersiz kılınmasını sağlar.

Örnek: Cluster “Fully Automated” modda çalışıyorsa, ancak bir veritabanı sunucusu (DBVM) için otomatik taşıma istenmiyorsa, DBVM için “Automation Level” “Manual” olarak ayarlanabilir. Böylece DRS, DBVM’yi taşımadan önce öneri sunar ve sizin onayınızı bekler.

Gerçek Hayat Örnekleri

Örnek 1: Domain Controller’lar için Separate Virtual Machines

Bir şirkette iki domain controller (DC1 ve DC2) var. Bu iki sanal makinenin aynı host üzerinde çalışması istenmez, çünkü olası bir host arızasında ikisine de erişim kesilebilir. Separate Virtual Machines seçeneği ile DRS, DC1 ve DC2’yi farklı host’lara yerleştirir. Örneğin, DC1 Host-1’de çalışıyorsa, DC2 Host-2’de çalışır. Bu, bir host arızalansa bile diğer domain controller’ın çalışmaya devam etmesini sağlar.

Örnek 2: Lisanslama için Must Run on Hosts in Group

Bir yazılım, USB cihaz üzerinden lisanslama yapıyor ve bu USB cihaz yalnızca belirli bir host’a (Host-1) bağlı. Bu durumda, yazılımı çalıştıran sanal makine sadece Host-1’de çalışması istenir. İşte bu durumda Must Run on Hosts in Group seçeneğini kullanabiliriz.

Örnek 3: Hastane Görüntüleme Sistemi için Must Run on Hosts in Group

Bir hastanede, hasta görüntüleme makinesi için yüksek performanslı host’lar gerekiyor. Cluster’da 5 host var: Host-1 ve Host-2 yüksek hızlı SSD diskleri olan güçlü host’lar, diğerleri (Host-3, Host-4, Host-5) daha düşük performanslı. Görüntüleme VM’nin yalnızca Host-1 ve Host-2’de çalışması isteniyor. Bu durumda Must Run on Hosts in Group ile sağlanabilir.

Örnek 4: Küçük İşletme için Should Not Run on Hosts in Group

Bir küçük işletme, Logo muhasebe sistemi (LogoVM) için cluster kullanıyor. Cluster’da 3 host var: Host-1 ve Host-2 yeni ve güçlü host’lar, Host-3 ise eski bir sunucu. LogoVM’nin Host-3’te çalışması tercih edilmiyor, ama kaynaklar çok kısıtlıysa çalışabilir. Bu durumda Should Not Run on Hosts in Group kullanılabilir.

Bu örnekler dahada uzatılabilir ama genel hatları ile VMware vSphere DRS (Distributed Resource Scheduler) konusunu aktarmaya çalıştım.

VMware vSphere DRS (Distributed Resource Scheduler), kaynak yönetimini otomatikleştirerek sistem performansını artıran ve kesintileri önleyen güçlü bir özelliktir. Automation, Additional Options ve Power Management sekmeleriyle temel yapılandırmalar yapılırken, VM/Host Groups, VM/Host Rules ve VM Overrides ile özelleştirme sağlanır. Gerçek hayat örnekleriyle gördüğümüz gibi, DRS farklı sektörlerde (e-ticaret, eğitim, üretim, sağlık) çeşitli ihtiyaçlara çözüm sunar. Doğru yapılandırma ve testlerle, DRS’yi kendi sisteminize en uygun şekilde kullanabilirsiniz.

Yardımcı Kaynaklar: VMware vSphere

You may also like...