Alternatywy dla Heartbeat, Pacemaker i CoroSync?


26

Czy istnieją inne alternatywy dla automatycznego przełączania awaryjnego w systemie Linux oprócz typowych kombinacji Heartbeat / Pacemaker / CoroSync? W szczególności konfiguruję przełączanie awaryjne dla instancji EC2, które obsługują tylko emisję pojedynczą - bez emisji grupowej lub emisji. W szczególności staram się obsłużyć kilka programów, które mamy, które nie mają jeszcze automatycznego przełączania awaryjnego i nie obsługują środowisk multi-master. Obejmuje to narzędzia takie jak HAProxy i Solr.

Mam Heartbeat + Pacemaker działający, ale nie jestem tym podekscytowany. Oto niektóre z moich problemów:

  • Bicie serca - samo w sobie, ograniczone do dwóch węzłów. Chciałbym mieć 3+.
  • Stymulator serca - Niemożliwa konfiguracja automatyczna. Klaster musi działać z kworum, a następnie nadal wymaga ręcznej konfiguracji.
  • CoroSync - nie obsługuje emisji pojedynczej.

Stymulator serca działa bardzo dobrze, chociaż jego moc utrudnia konfigurację. Prawdziwy problem z Pacemaker polega na tym, że nie ma łatwego sposobu na zautomatyzowanie konfiguracji. Naprawdę chcę uruchomić instancję EC2, zainstalować Chef / Puppet i uruchomić cały klaster bez mojej interwencji.

Odpowiedzi:


17

Wolę używać keepalived dla wysokiej dostępności. Łatwiej jest mi skonfigurować (jeden demon i konfigurację) niż bicie serca i towarzystwo. Jedyną wadą, na jaką się natknęłam, jest to, że keepalived nie ma domyślnie opcji emisji pojedynczej i używa tylko VRRP do komunikacji (autor HAProxy napisał jednak łatkę emisji pojedynczej dla keepalived)


Unicast jest koniecznością, ale przyjrzę się łatce.
organicveggie

4
+1 Byłem przyzwyczajony do używania bicia serca we wszystkich sytuacjach „przełączania awaryjnego”, dopóki nie przeczytałem postu (gdzieś) autora haproxy, dlaczego robiłem to źle (lub przynajmniej nieefektywnie) i zamiast tego powinienem używać keepalived . Wszystko zależy od tego, czy ważną rzeczą jest awaria ścieżki sieci (np. Przeniesienie adresu IP na inny serwer - utrzymywanie aktywności), czy konieczność zapewnienia tylko jednego dostępu do zasobu (np. Połączenie SAN - bicie serca).
Coops

5
To jest poczta, do której odnosi się @Coops,
Henrik

4
Od wydania 1.2.8 (2013-08-05) Keepalived obsługuje Unicast ( keepalived.org/changelog.html ).
Dynom,

Artykuł wprowadzający: opentodo.wordpress.com/2012/04/29/...
Vadzim

14

Właściwie pracuję nad czymś bardzo podobnym do tego, co opisałeś (klaster pracy awaryjnej w EC2), a po wypróbowaniu Heartbeat zdecydowałem się na Corosync jako moją warstwę wiadomości. Corosync będzie działał na wielu serwerach i obsługuje Unicast (UDPU) od wersji 1.3.0 (od listopada 2010). Skonfigurowałem i przetestowałem Corosync na chmurze EC2 Amazon (używając Amazon AMI Linux) i mogę potwierdzić, że działa bez problemu.

Przykładowy plik udpu jest zainstalowany w / etc / corosync.

Dodaj jeden blok elementu do sekcji interfejsu dla każdego węzła i określ transport jako updu. (Użyłem tego samego portu co puls w poniższym przykładzie, ale możesz go zmienić zgodnie z potrzebami).

na przykład:

totem {
        version: 2
        secauth: off
        interface {
                member {
                        memberaddr: 10.xxx.xxx.xxx
                }
                member {
                        memberaddr: 10.xxx.xxx.xxx
                }
                ringnumber: 0
                bindnetaddr: 10.xxx.xxx.xxx
                mcastport: 694
        }
        transport: udpu
}

(Heartbeat ma obsługiwać klastry węzłów 3+ w wersjach 1.2.3+, chociaż nigdy nie próbowałem tego osobiście i nie wiem, czy będzie działać z Unicast).


Skonfigurowałem klaster 3 komputerów za pomocą udpu i to działało dobrze. Po prostu dodajesz do nich bloki członków.
devicenull

11

Przepraszamy, ale część o Pacemaker nie jest prawdziwa. Testy regresji i zwolnienia stymulatora w szerokim zakresie wykorzystują automatyzację.

Aby skonfigurować bez aktywnego klastra, poprzedź wszystkie polecenia za pomocą CIB_file=/var/lib/heartbeat/crm/cib.xmllub ustaw je w swoim środowisku. Przed uruchomieniem klastra upewnij się, że usunąłeś plik .sig.

Dla klastrów bez kworum, większość, jeśli nie wszystkie narzędzia powinny wspierać -flub --forcektóry poinstruuje klaster, aby zaakceptować zmianę i tak. Jeśli znajdziesz narzędzie, którego nie ma - zgłoś błąd.


Przepraszam, moja opinia była oparta na opiniach, które otrzymałem z listy mailowej Pacemaker. Dam ci sugestię.
organicveggie

3

W świecie open source istnieje pakiet RedHat Cluster Suite . Minęło kilka lat, odkąd wdrożyłem RHCS, więc nie mam dziś wiele istotnych rzeczy do powiedzenia na ten temat.

Na rynku dostępny jest Veritas Cluster Server . Bez doświadczenia.

Znacznie prostszym i otwartym narzędziem HA jest UCARP . UCARP nie zapewnia prawie tego samego rodzaju „infrastruktury”, co Heartbeat / Pacemaker / CoroSync, ale można wokół niego budować rozwiązania HA.

Można również budować wysoce dostępną infrastrukturę za pomocą technologii wirtualizacji, ale rozwiązania te koncentrują się na dostępności na poziomie hosta, a nie na poziomie aplikacji.


Dzięki. Przyjrzę się RHcS, VCS i UCARP. Zaktualizowałem moje pytanie, aby odzwierciedlić fakt, że korzystam z Amazon EC2, więc dostępność na poziomie hosta nie jest czymś, nad czym mam dużą kontrolę ... dlatego patrzę na dostępność na poziomie aplikacji.
organicveggie

1

Istnieje Oracle Clusterware dla Oracle Unbreakable Linux, chociaż go nie używałem.


1

Jeśli już korzystasz z EC2, dlaczego nie zastosować Elastycznego równoważenia obciążenia ? Umożliwi to osiągnięcie dostępności na poziomie aplikacji bez konieczności samodzielnego konfigurowania przełączania awaryjnego.


Istnieje kilka powodów, dla których ELB nie pasuje. Po pierwsze, ELB działa tylko dla żądań przychodzących z publicznego Internetu - nie można go używać do wewnętrznych żądań, chyba że skierujesz swoje żądania na publiczny adres ELB, a następnie zapłacisz za cały ruch. Po drugie, ELB jest bardzo prostym modułem równoważącym - nie możesz stosować żadnych reguł ani wzorców do jego działania i nie możesz mieć serwerów rezerwowych. Na przykład nie chcesz, aby dwa osobne wystąpienia HAProxy aktywnie wskazywały na ten sam serwer WWW, ponieważ nie będą miały pojęcia o rzeczywistym obciążeniu docelowego serwera WWW.
organicveggie

1

Klaster Veritas jest świetny (w porównaniu do Linux-Heartbeat, AIX-hacmp, HP-Serviceguard i Sun klaster), ale kosztuje dużo pieniędzy. Ostatnim razem, gdy na niego spojrzałem, jego cena była oparta na rdzeniach procesora klastra. Obecny dostawca ist Symantec ...



0

opensvc ( https://www.opensvc.com ) obsługuje wiele sterowników pulsu:

  • Unicast
  • multicast
  • wspólny dysk
  • Przekaźnik strony trzeciej

a także mają mechanizmy kworum w przypadku podzielonego mózgu.

Udało mi się automatycznie skonfigurować klaster 4 węzłów złożony z 2 instancji Google Cloud + 2 instancji Amazon z terraformem + ansible.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.