Yedekli yük dengeleyici nasıl yapılır?


27

Yük dengeleyicinin amacının sunucularınız arasındaki yükü dengelemek ve örnek sağlığını vb. Takip etmek olduğunu anlıyorum. Yedekli yük dengeleyicilerini nasıl kurarsınız? (yük dengeleyici yük dengeleyiciler?)

DNS sağlık kontrollerinin nasıl faydalı olabileceğini görebiliyordum, ancak belli ki büyük gecikme sorunları var değil mi?

Bu, AWS ELB veya benzeri herhangi bir üçüncü taraf servisini kullanmadığınızı varsaymaktadır. Nginx sadece kullanıyorsanız ne yapmalı?


Hiçbir yok "yük dengeleyici dengeleme yük" senin mimarisinin en üstünde yalnızca en kümeleme tipolojileri gibi doğrudan Liderler yedekli ve sap arızaları için Yüksek Kullanılabilirlik çözümü kurmak olun.
Xavier Lucas

Yanıtlar:


32

Yük Dengeleyicisinin HA (yüksek kullanılabilirlik) düzeyini elde etmenin birkaç yolu vardır - veya bu konuda herhangi bir servis için. IP adresli iki makineniz olduğunu varsayalım:

  • 192.168.100.101
  • 192.168.100.102

Kullanıcılar bir IP'ye bağlanır, bu nedenle yapmak istediğiniz IP'yi belirli bir kutudan ayırmaktır - örneğin sanal IP oluşturmak. Bu IP 192.168.100.100 olacaktır.

Şimdi, IP adresinin otomatik yerine çalışma / başarısız olmasına dikkat edecek olan HA hizmetini seçebilirsiniz. Unix'in en basit servislerinden bazıları (u) sazan balığı ve balık yetiştiriciliğidir, daha karmaşık olanlardan bazıları örneğin RedHat Cluster Suite veya Pacemaker'dır.

Örnek olarak, her biri kendi kutusuyla çalışan iki yeniden satış hizmeti - her biri kendi kutusuyla çalışan olarak sürdürülmeye çalışalım. Bu iletişime genellikle kalp atışı denir.

|   VIP   |                           |         |
|  Box A  | ------v^-----------v^---- |  Box B  |
|   IP1   |                           |   IP2   |

Eğer bir keepalived yanıt vermeyi keserse (ya ne sebeple olursa olsun hizmetin düştüğü ya da kutu zıpladığında ya da kapandığında) - başka bir kutudaki keepalived cevapsız kalp atışlarını fark edecek ve diğer düğümün öldüğünü düşünecek ve yerine çalışma eylemleri gerçekleştirecektir. Bizim durumumuzdaki bu eylem, yüzen IP'yi artıracaktır.

                                      |   VIP   |
    ------------------ -------------- |  Box B  |
                                      |   IP2   |

Bu durumda olabilecek en kötü durum, müşteriler için oturumların kaybıdır, ancak yeniden bağlanabileceklerdir. Bundan kaçınmak istiyorsanız, iki yük dengeleyicisinin aralarındaki oturum verilerini eşitleyebilmesi gerekir ve bunu yapabilirlerse, kullanıcılar kısa bir gecikme dışında bir şey fark etmeyeceklerdir.

Bu kurulumun bir başka tuzağı da bölünmüş beyindir - her iki kutu da çevrimiçi olduğunda, ancak bağlantı koptuğunda ve her iki kutu da aynı IP'yi getirir. Bu genellikle bir çeşit çit mekanizması (SCSI rezervasyonu, IPMI yeniden başlatma, akıllı PDU güç kesintisi, ...) veya küme üyelerinin çoğunun hizmetin başlaması için hayatta kalmasını gerektiren tek sayıda düğüm aracılığıyla çözülür.

|   VIP   |                           |   VIP   |
|  Box A  |                           |  Box B  |
|   IP1   |                           |   IP2   |

Daha karmaşık küme yönetim yazılımı (Pacemaker gibi) tüm hizmeti taşıyabilir (örneğin: bir düğümde durdurup diğerinde başlatabilir) - ve bu, veritabanları gibi hizmetler için HA yönteminin elde edilebileceği yoldur.

Başka bir olası yol - eğer yük dengeleyicinizin yakınındaki yönlendiricileri kontrol ediyorsanız, ECMP kullanmaktır. Bu yaklaşım ayrıca yük dengeleyicilerini yatay olarak ölçeklemenizi sağlar. Bu, BGP’yi yönlendiricilerinizle konuşan iki kutunuzun her biri tarafından çalışır. Her kutu sanal IP’yi (192.168.100.100) tanıtmak zorundadır ve yönlendirici ECMP üzerinden denge trafiğini yükleyecektir. Bir makine ölürse VIP reklamlarını durduracak ve bu da yönlendiricilerin kendisine trafik göndermesini önleyecektir. Bu kurulumda dikkat etmeniz gereken tek şey, yük dengeleyicisinin kendisi ölürse IP reklamcılığını durdurmaktır.


3

Yük dengeleyiciniz olarak Nginx kullanmak, cevap yok zaman aşımını algılayacak şekilde config'unuzu değiştirerek bu yazıdaki ayrıntılı yönlendirmeyi izlemenizi sağlar:

nginx otomatik yük devretme yük dengeleme

Teorik olarak, eğer bir HA ortamınız varsa, kümelenmiş çoklu yük dengeleyiciler, birinin başarısız olması durumunda hizmetin korunmasına izin vermelidir.

Bu yardımcı olur umarım.


2

Donanım yük dengeleyicileri yıllar boyunca "aktif / pasif" veya "aktif / aktif" kurulumları desteklediler, her iki durumda da katman 1/2 perspektifinden paralel olarak ayarlandılar ... aktif / pasif, izleme / sürdürme mekanizmalarını açıklandığı gibi kullanıyor aktif / aktif birçok şekilde uygulanabilir. Ön uçta tek bir IP olarak görünmek için, hepsi / ikisi de çevrimiçi olduğu sürece iki veya daha fazla dengeleyici şunları yapabilir:

  • istemciler aynı ağdayken, kaynak MAC veya IP adresine sahip olan ARP isteklerini paylaşılan IP'ye seçici olarak yanıtlama
  • Belli bir yeni TCP bağlantısının trafiğini ele alan birbirleriyle müzakere
  • çoğaltılmış veya hatalı katman 3-7 trafiğinin pervasızca gerçekleşmesine izin verin ve çözümlemek için istemci / yönlendirici TCP yığınlarına güvenin

Ardından, / ortak cihazla iletişim kesildiğinde trafik trafiğini kabul etmek için kiplerini değiştirin.

arka tarafta:

  • Dengeleyicilerin her biri normal işletimde sadece belirli bir uygulama sunucusu alt havuzunu kullanabilir.
  • veya çoğaltılmış istekler burada da oluşturulabilir ...
  • veya, dengeleyiciler arasında müzakere yapılabilir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.