Virtual Switch Load Balancing Algoritmaları

Load Balancing Policy, NIC team içindeki ağ adaptörleri arasındaki trafiğin nasıl dağıtıldığını belirler. vSphere virtual switch’ler sadece giden trafiği dengeler. Gelen trafik, fiziksel switch’lerdeki yük dengeleme politikası tarafından kontrol edilebilir.

Bu yazıda Virtual Switch üzerindeki Load Balancing policy’lerini anlatmaya çalışacağım.

Route Based on Originating Virtual Port

vSphere Standard Switch ve vSphere Distributed Switch üzerindeki sanal makinenin port ID’si baz alınarak uplink seçilir.

Route Based on Originated Virtual Port, vSphere Standard Switch ve vSphere Distributed Switch üzerindeki varsayılan yük dengeleme ilkesidir.

ESXi host üzerinde çalışan her bir sanal makinenin, virtual switch’te ilişkili bir virtual port ID’si vardır. Bir sanal makinenin uplink’ini hesaplamak için, virtual switch sanal makine port ID ve NIC team içindeki uplink sayısını kullanır. Virtual switch bir sanal makine için bir uplink seçtikten sonra, sanal makine aynı portu kullandığı sürece trafiği aynı uplink üzerinden iletir. Virtual switch, NIC team içine yeni uplink’ler eklenmedikçe veya çıkarılmadıkça, sanal makineler için uplink’i bir kez hesaplar.

Bir sanal makinenin port ID’si, sanal makine aynı host üzerinde çalıştığı sürece sabitlenir. Sanal makineyi taşır, kapatır veya silerseniz, virtual switch’teki port ID’si serbest kalır. Virtual switch bu port’a trafik göndermeyi durdurur, ilişkili uplink bağlantısının genel trafiğini azaltır. Bir sanal makine açılır veya taşınırsa, farklı bir port üzerinde görünebilir ve yeni port ile ilişkilendirilmiş olan uplink’i kullanabilir.

Avantajları

  • Sanal NIC’lerin sayısı team içindeki fiziksel NIC’lerin sayısından fazlaysa, trafiğin eşit dağılımı.
  • Düşük kaynak tüketimi, çünkü çoğu durumda virtual switch sanal makineler için uplink’ler yalnızca bir kez hesaplar.
  • Fiziksel switch’te bir değişiklik gerektirmez.

Dezavantajları

  • Virtual switch, uplink’lerdeki trafik yükünün farkında değildir ve daha az kullanılan uplink’lere giden trafiği dengelemez.
  • Bir sanal makinenin kullanabileceği bant genişliği, sanal makinede birden fazla sanal NIC bulunmadığı sürece, ilgili port ID ile ilişkilendirilen uplink hızıyla sınırlıdır.

Route Based on Source MAC Hash

Virtual switch, sanal makine MAC adresini baz alarak bir sanal makine için uplink seçer. Sanal makinenin uplink bağlantısını hesaplamak için virtual switch, sanla makine MAC adresini ve NIC team içindeki uplink sayısını kullanır.

Avantajları

  • Virtual switch her paket için bir uplink hesapladığından, Trafiğin Route Based on Originating Virtual Port’dan daha eşit bir şekilde dağıtılması.
  • Sanal makineler, MAC adresleri static olduğundan aynı uplink’i kullanır. Bir sanal makinenin açılması veya kapatılması, sanal makinenin kullandığı uplink’i değiştirmez.
  • Fiziksel switch’te bir değişiklik gerektirmez.

Dezavantajları

  • Bir sanal makine için mevcut olan bant genişliği, sanal makine birden fazla kaynak MAC adresi kullanmadığı sürece, ilgili port ID ile ilişkilendirilen uplink hızıyla sınırlıdır.
  • Route Based on Originating Virtual Port’dan daha yüksek kaynak tüketimi, çünkü virtual switch her paket için bir uplink hesaplar.
  • Virtual switch, uplink’lerin yükünün farkında değildir. Bu nedenle uplink’ler aşırı yüklenebilir.

Route Based on IP Hash

Virtual switch, her paketin kaynak ve hedef IP adresine göre sanal makineler için uplink seçer.

Bir sanal makine için uplink hesaplamak için virtual siwtch, paketteki hem kaynak hem de hedef IP adreslerinin son octet’lerini alır, bunları bir XOR işleminden geçirir ve ardından sonucu, NIC team içindeki uplink sayısına göre başka bir hesaplama ile çalıştırır. Sonuç, 0 ile team içindeki uplink sayısı eksi bir arasında bir sayıdır. Örneğin, bir NIC team’in dört uplink’i varsa, sonuç, her numara ekipteki bir NIC ile ilişkilendirildiği için 0 ile 3 arasında bir sayıdır. IP olmayan paketler için, virtual switch, IP adresinin bulunacağı çerçeveden veya paketten iki adet 32 bitlik ikili değer alır.

Herhangi bir sanal makine, kaynak ve hedef IP adresine bağlı olarak NIC team’deki herhangi bir uplink’i kullanabilir. Bu şekilde, her sanal makine, team’deki herhangi bir uplink’in bant genişliğini kullanabilir. Bir sanal makine, çok sayıda bağımsız sanal makinenin bulunduğu bir ortamda çalışıyorsa, IP hash algoritması, team’deki NIC’ler arasındaki trafiğin eşit bir şekilde yayılmasını sağlayabilir. Bir sanal makine birden fazla hedef IP adresiyle iletişim kurduğunda, virtual switch her hedef IP için farklı bir hash oluşturabilir. Bu şekilde, paketler virtual switch’te farklı uplink’ler kullanabilir ve bu da daha yüksek potansiyel verimle sonuçlanır.

Bununla birlikte, ortamınızda az sayıda IP adresi varsa, virtual switch, trafiği sürekli olarak team’deki bir uplink’ten geçirebilir. Örneğin, bir uygulama sunucusu tarafından erişilen bir veritabanı sunucunuz varsa, virtual switch her zaman aynı uplink’i hesaplar çünkü yalnızca bir kaynak-hedef çifti vardır.

Fiziksel Switch Konfigürasyonu

IP hash yük dengelemesinin doğru çalıştığından emin olmak için, fiziksel switch’te yapılandırılmış bir Etherchannel’e sahip olmanız gerekir. Bir Etherchannel, birden çok ağ adaptörünü tek bir mantıksal bağlantıya bağlar. Portlar bir Etherchannel’e bağlandığında, fiziksel switch farklı portlardaki aynı sanal makine MAC adresinden bir paket aldığında, switch, content addressable memory (CAM) tablosunu doğru şekilde günceller.

Limitler ve Konfigürasyon Gereksinimleri

  • ESXi host’lar, tek bir fiziksel switch veya stack yapılmış switch’ler üzerinde IP hash teaming destekler.
  • ESXi host’lar, Statik modda yalnızca 802.3ad link aggregation destekler. VSphere Standard Switch’leri ile yalnızca statik bir Etherchannel kullanabilirsiniz. LACP desteklenmez. 802.3ad link aggregation olmadan IP hash yük dengelemeyi etkinleştirirseniz ve bunun tersini yaparsanız, ağ kesintileri yaşayabilirsiniz.
  • IP hash yük dengeleme ile network failure detection olarak Link Status Only kullanmalısınız.
  • Team’den tüm uplink’leri Active failover listesinde ayarlamalısınız. Standby ve Unused listeleri boş olmalıdır.
  • Etherchannel’daki port sayısı, team’deki uplink sayısı ile aynı olmalıdır.

Avantajları

  • Virtual switch her paket için uplink’i hesapladığından, Route Based on Originating Virtual Port ve Route Based on Source MAC Hash’e kıyasla yükün daha eşit dağılımı.
  • Birden çok IP adresiyle iletişim kuran sanal makineler için potansiyel olarak daha yüksek bir aktarım hızı.

Dezavantajları

  • Diğer yük dengeleme algoritmalarına kıyasla en yüksek kaynak tüketimi.
  • Virtual switch, uplink’lerin gerçek yükünün farkında değildir.
  • Fiziksel ağda değişiklik gerektirir.
  • Troubleshoot yapmak zordur.

Route Based on Physical NIC Load

Route Based on Physical NIC Load, Virtual Switch’in, uplink’lerin gerçek yükünü kontrol ettiği ve aşırı yüklenmiş uplink’lerde bu yükü azaltmak için adımlar attığı Route Based on Originating Virtual Port’a dayanır.

Distributed switch, port ID’lerini NIC team’deki uplink’lerin sayısını alarak VM’ler için uplink’leri hesaplar. Distributed switch, her 30 saniyede bir uplink’leri test eder ve yükleri kullanımın %75’ini aşarsa, en yüksek I/O’ya sahip VM’in port ID’si farklı bir uplink’e taşınır.

Avantajları

  • Düşük kaynak tüketimi, çünkü distributed switch sanal makineler için uplimk’leri yalnızca bir kez hesaplar ve uplink’lerin kontrol edilmesinin minimum etkisi vardır.
  • Distributed switch, uplink’lerin yükünün farkındadır ve gerekirse bunu azaltmaya özen gösterir.
  • Fiziksel switch’te herhangi bir değişiklik gerekmez.

Dezavantajları

  • Sanal makinelerde kullanılabilen bant genişliği, distributed switch’e bağlı uplink’lerle sınırlıdır.

Use Explicit Failover Order

Bu policy ile gerçek bir yük dengeleme yapılmaz. Virtual switch her zaman failover sırasındaki Active adapters listesinde ilk sırada yer alan ve failover algılama kriterlerini geçen uplink’i kullanır. Active adapters listesinde herhangi bir uplink yoksa, virtual switch Standby listesindeki uplink’leri kullanır.

Leave a Reply