Jak skonfigurować HAProxy z przełączaniem awaryjnym?

14

Rozumiem, że aby przejść w tryb failover w konfiguracji równoważenia obciążenia HAProxy, potrzebujesz dwóch komputerów z uruchomionym HAproxy (i przekieruj go do kilku instancji serwera WWW). Ale w tym przypadku, powiedzmy abcd.com, w jaki sposób dzielimy / kierujemy ten ruch do 2 adresów IP zamiast jednego? DNS zazwyczaj rozpoznaje nazwy domen w jednym adresie IP. Jak to robimy, korzystając z bezpłatnych / tanich narzędzi / usług?

mixdev
źródło
Sprawdź to też serverfault.com/questions/238605/…
mixdev

Odpowiedzi:

20

Jeśli masz tak dużo obciążenia, że ​​musisz załadować równowagę między dwoma instancjami haproxy, to okrągły robin DNS nie jest złym pomysłem (byłbym zaskoczony, gdybyś miał takie obciążenie). Runda robin DNS nie zapewni jednak dobrego przełączania awaryjnego.

W stosie przepełnienia stosujemy heartbeat jednego wirtualnego adresu IP, ten adres IP jest aktywny tylko na jednym haproxy na raz (jeśli spadnie, drugi przejmuje ten adres IP). Możesz użyć pulsu, aby mieć adres IP na każdej maszynie, a następnie okrągły robin DNS między nimi. Jeśli jeden miałby zawieść, drugi miałby oba te adresy IP.

HAProxy używa około 1-5% procesora na naszym fizycznym serwerze, aby zrównoważyć nasz ruch, który ma jeden Intel(R) Xeon(R) CPU E5504 @ 2.00GHz. Tak więc HAProxy może z łatwością obsługiwać duży ruch.

Kyle Brandt
źródło
1
Nie. Zdecydowanie nie mam takiego ruchu. To tylko próba uniknięcia SPOF.
mixdev
2
@mixdev: W takim przypadku wystarczy, że DNS wskaże pojedynczy wirtualny adres IP dostarczony przez heatbeat i powinieneś już iść. Po prostu zostawiasz haproxy działający na obu komputerach. Pamiętaj, aby przetestować przełączanie awaryjne pulsu, zanim zaczniesz żyć.
Kyle Brandt
@KyleBrandt: A gdyby proces haproxy umarł? Czy masz skonfigurowane coś, co pozwoliłoby na przeniesienie wirtualnego adresu IP na tej podstawie?
CarpeNoctem,
@CarpeNoctem: W tej chwili nie mamy tego. Myślę, że zarówno bicie serca, jak i utrzymywanie aktywności mogą być również skonfigurowane do monitorowania procesów. Jeśli wybierzesz tę trasę, zaleciłbym ustawienie jej tak, aby proces był wyłączony przez odpowiedni czas (tj. 1 minutę). Prawdopodobnie nie chcesz, aby bicie serca uderzyło w błąd konfiguracji. HAProxy sprawdza większość z nich -c, ale może nie wykryć czegoś takiego jak błąd konfiguracji wiązania.
Kyle Brandt
5
Dla każdego, kogo to obchodzi, w Stack przeprowadziliśmy się, aby utrzymać się dobrze ponad rok temu
Kyle Brandt
24

Jak mówi Kyle, pulsu można użyć, aby dwa serwery haproxy działały jak para przełączania awaryjnego. Jednak podczas gdy wiele osób korzysta z pracy serca w pracy, żyj dalej znaczy sugerować autor HAProxy użytkownika.

Przedstawia szczegóły na liście mailingowej haproxy: http://www.formilux.org/archives/haproxy/1003/3259.html

W skrócie wygląda to tak:

  • bicie serca jest zorientowane na klaster. Zapewnia tylko jeden serwer ma dostęp do zasobu (tj. Pamięci SAN)

  • keepalived jest zorientowany na sieć. Zapewnia, że ​​co najmniej jeden serwer ma dany adres IP.

Coops
źródło
-1

Możesz znaleźć to, czego szukasz tutaj: http://blog.haproxy.com/2014/01/17/emulation-activepassing-application-clustering-with-haproxy/

użytkownik3595100
źródło
1
Proszę zamieścić pełną treść przepisu w swoim poście. Nie jesteśmy usługą blogowania.
Deer Hunter,
1
dodatkowo blogi często psują się lub zmieniają adresy URL, a następnie informacje są tracone.
Dennis Nolte
Głosuj w dół, ponieważ jest to całkowicie niezwiązane z pytaniem.
danieljimenez
@danieljimenez, Myślę, że nie jest zupełnie niezwiązany, tylko nieporozumienie. OP poprosił o Active / Passive dla samego HAProxy , a użytkownik3595100 zinterpretował to pytanie jako Active / Passive dla backendu HAProxy. Niemniej jednak opublikowanie linku nie jest samo w sobie akceptowalną odpowiedzią.
duct_tape_coder