Wysoka dostępność dla wielu witryn

15

Mamy aplikację SaaS, która musi być wysoce dostępna. Mamy już drogi, dobrze utrzymany klaster przełączania awaryjnego Hyper-V, ale dzisiaj centrum danych, w którym hostujemy ten klaster, miało pięciogodzinną przerwę w zasilaniu, która całkowicie nas przerwała. Zastanawiamy się teraz, czy lepszym rozwiązaniem byłoby użycie serwerów w dwóch oddzielnych centrach danych. Zakładając, że otrzymujemy całą replikację plików zaplecza i replikację danych działającą między tymi dwiema lokacjami, zastanawiamy się, jak obsłużyć routing frontonu - nic dziwnego, jak podchodzimy do problemu, zawsze kończymy z funkcją równoważenia obciążenia pojedynczy punkt awarii.

Pytanie brzmi: jak możemy ustawić równoważenie obciążenia między dwoma witrynami hostingowymi, aby moduł równoważenia obciążenia nie był pojedynczym punktem awarii? Czy istnieje sposób użycia dwóch oddzielnych modułów równoważących obciążenie, po jednym w każdej witrynie? Czy powinniśmy zastanawiać się nad systemem DNS typu round-robin?

Mikrofon
źródło

Odpowiedzi:

14

Aby zrobić to poprawnie, musisz mieć:

  • Dwa oddzielne wystąpienia w dwóch centrach danych (jak już ustaliłeś)
  • Synchronizacja między dwoma centrami danych (jak już ustaliłeś)
  • Sposób przekierowywania klientów z jednego do drugiego w przypadku awarii

Istnieją dwa typowe sposoby na zrobienie tego. Jeden prosty, jeden ... nie.

DNS

Round-Robin DNS nie jest dokładnie tym, czego chcesz, ponieważ są szanse, że chcesz, aby wszystkie żądania trafiały do ​​podstawowego kontrolera domeny, a drugi kontroler domeny jest używany tylko podczas przestoju pierwszego kontrolera domeny.

Co można zrobić, choć jest ustawiony bardzo niski TTL w systemie DNS (powiedzmy, 30 sekund lub 5 minut), co będzie oznaczać, że jeśli DC ma iść w dół, po prostu zaktualizować DNS iw ciągu 5 minut lub tak, wszystkie Twoi klienci będą wskazywać na inne DC.

Oznacza to, że ponieważ dwa kontrolery domeny będą miały różne układy adresów IP, należy to dostosować w konfiguracji centrum danych.

BGP

Zasadniczo, jeśli zadajesz to pytanie, to jest to poza twoim zasięgiem. Krótko mówiąc, twoje adresy IP pozostają takie same, ale są „przenoszone” z jednego centrum danych do drugiego. Dotyczy to drogich routerów, drogich zakresów adresów IP i kosztownych subskrypcji lokalnego rejestru numerów AS i zakresów adresów IP.

Routery BGP przestają reklamować się w twoim głównym centrum danych i zaczynają reklamować się w twoim drugim centrum danych. Następnie Internet kieruje wokół centrum danych offline i wysyła ruch do nowego centrum dystrybucji.


Jeśli jesteś zwirtualizowany za pomocą ESXi i vSphere, VMWare ma całkiem niezły produkt, który wypróbowaliśmy kiedyś pod nazwą VMWare Site Recovery Manager , który w zasadzie robi wszystko za Ciebie. Utrzymuje zsynchronizowane konfiguracje maszyn wirtualnych i włącza je w drugiej witrynie, gdy pierwsza witryna przechodzi w tryb offline. To jednak duże pieniądze.

Mark Henderson
źródło
Nawet w przypadku SRM nadal musisz uporządkować replikację, a także pewnego rodzaju przełączanie awaryjne IP.
EEAA,
To prawda, chociaż esxi5 ma nowy produkt do replikacji innej niż San. Jednak nie zagłębiałem się zbytnio w to.
Mark Henderson
Och, właśnie tak. Pamiętam, że coś o tym słyszałem.
EEAA
1

Musisz wyrównać obciążenie modułów równoważących obciążenie.

Możesz to zrobić za pomocą round-robin DNS, ale takie podejście ma wiele problemów. Nie możesz kontrolować klientów, którzy przechowują wpisy w pamięci podręcznej dłużej niż chcesz i nie możesz zmusić ruchu do przejścia do określonej lokalizacji.

Możesz to również zrobić za pomocą usługi Global Server Load Balancing (GSLB). Jest to bardziej zaawansowany sposób na wykorzystanie DNS, aby zapewnić widoczność wielu centrów danych z Internetu. Krótko mówiąc, konfigurujesz mechanizm podziału ruchu na plasterki i używasz DNS do wybrania plasterka. Używamy skrótu usługi rozpoznawania nazw DNS skonfigurowanego do wyszukiwania klienta. Inni ludzie używają geografii, aby dotrzeć do „najbliższego” centrum danych. Musisz dodać jakiś mechanizm, aby szybko usunąć adres IP z GSLB w przypadku awarii jednego punktu awarii dla tego centrum danych lub klastra.

http://www.eukhost.com/web-hosting/kb/global-server-load-balancing/

Wreszcie, niektórzy naprawdę zaawansowani ludzie rozwiązują ten problem za pomocą Anycast DNS. To znów próbuje wykorzystać „najbliższe” podejście do centrum danych. Anycasting twojej usługi oznacza, że ​​będziesz musiał wyeliminować wszelkie „stanowości”. To może okazać się trudne.

dmourati
źródło
Wygląda na to, że w tym podejściu nadal występuje jeden punkt awarii, „serwer główny” opisany w podanym linku.
Mike
1

Wiele lat później… ale dla tych, którzy wciąż szukają, wydają się być najbardziej przystępnymi / prostymi rozwiązaniami dla przełączania awaryjnego DNS:

Subimage
źródło