wtorek, 13 maja 2014

High availability - the way to safety services

High availability 
 
Kontynując rozważania nad skalowalnymi systemami nie sposób zapomieć o HA.
W parze ze skalowalnością często idzie termin zwany nadmiarowością.

Według danych Google na 10 tyś komputerów w klastrze codziennie awarii ulegnie jeden z nich.

Musimy uwzględnić sytuację kiedy to jeden z elementów naszego systemu przestanie działać. Wtedy to inny musi przejąć jego zadania.

Nasze wyzwanie to eliminacja SPOF.

Single Point of Failure – Pojedynczy Punkt Awarii



Tylko który element może zawieść ? - odpowiedź jest prosta każdy.
Wszystko możę się spierdolić. Od pojedyńczego dysku, komponentu sprzętowego po cały klaster czy awarie całego centrum danych.

Tip : Stwórz pocedury na wypadek tego typów awarii. Powinny być one dobrze opisane i najlepiej odpalane automatycznie w postaci skryptów. Tak by każdy członek zespołu mógł w prosty sposób przywrócić do działania system lub jego uszkodzony element. Tworzenie  takiego dokumentu w procesie projektowania systemu ma jeszcze jedną zaletę, pozwala na identyfikacje potencjalnych zagrożeń i awarii Twojego systemu.


HA osiągniemy poprzez  :
  - pasywną redundancję (replikacja, failover, zamiennik)
  - aktywną redundancje (load balancing, klastry HA)

Oznacza to tyle, że :
Clustering - jeśli jeden serwer padnie inny nadal działa
RAID - jeśli jeden z dysków padnie inny nadal działa
Power - UPS, agregaty - zapewniamy dostępność mocy
Network - niedziałający switch nie zrobi nam krzywdy. Ruch będzie odbywał się inną drogą.
Geo-DC - rozproszenie geograficzne centrów danych

Niezależnie od architektury i rozdzaju sprzętu aby zagwarantować ciągłość pracy musi brać pod uwagę nadmiarowość sprzętu.

Tip: RAID

Sprzęt zapasowy dzielimy na trzy kategorie :

  - cold spare (zimny) 
Generalnie są to urządzenia sieciowe. W przypadku awarii zastępujemy takie urządzenie nowym nie martwiąc się o żadną konfigurację.

  - warm spare (ciepły)
Są to w pełni skonfigurowanie urządzenia, wymagające tylko podcięcia w miejsce starego uszkodzonego urządzenia. Np komputer pełniący rolę node w klastrze z pełni skonfigurowanym systemem i bazą danych wraz z jej schematem potrzebnym do prawidłowego działania naszej aplikacji. 

  - hot spare (gorący)
Są to pasywne komponenty podłączone cały czas w ramach szerszej struktury. W przypadku awarii system automatycznie przełączy taki komponent na status active. Zaletą tego rozwiązania jest natychmiastowe eliminowanie usterek.



Flapping (łopotanie) - zjawisko występujące podczas przełączania elementów pomiędzy sobą (active - passive , passive - active - tylko jedne urządzenie wykonuje właściwe zadania, drugie czeka bezczynnie). Aktywny element ulega chwilowej awarii, system przełącza ruch na element pasywny który teraz staje się aktywny. Po chwili okazuje się, żę element aktywny powrócił do prawidłowego działania i z powrotem system przełącza go w stan aktywny. Taki stan może trwać bez końca a konsekwencje mogą być opłakane.

TIP : stosuj tłumiki. (czasem tłumik może niepotrzebnie opóźniać procedure przełączania co również jest dużym problemem)  Czasem element pasywny może już pozostać aktywnym. Poprostu zamienią się miejscami.

TIP : W razie flappingu rozważ użycie strategii Active-Active.

Strategie :

Active-Passive - tylko jedno urządzenie jest aktywne.





źródło : Active-Passive Load Balancing Configurations

 







 









źródło : http://networksandservers.blogspot.com/2011/09/failover-clustering-iv.html

Jeśli dojdziemy do wniosku , że jeden nadmiarowy komputer to za mało aby zapewnić nieprzewaną pracę w przypadku awarii możemy użyć więcej nadmiarowych maszyn.
Węzły w kastrze nawzajem się odpytują (polling). Wzajemny odbiór i transmisja komunikatów (heartbeat) . W przypadku braku pulsu przez pewien określony czas następuje przełącznie węzła. Migracja usługi z węzła active na passive nosi nazwę failover

Tip : Skonfiguruj puls tak aby był transmitowany przez różne media równoczenie.

Wady :
   - komputer który długo jest nieczynny podczas przełączenia może ulec awarii potencjelnie częściej.
   - dłuższy czas przełącznia

Zalety:
  - oszczędność energii



Active - Active - wszystkie komputery w klastrze są aktywne.

W przypadku awarii, inne aktywne węzły rozdystrybuują między sobą zadania.

Zaleta :
 - żaden komputer nie pozstaje bezczynny
 - bardzo szybki czas przełącznia

Wada :
 - takie komputery często niepotrzebnie zabierają miejsce i energii, a zadania które ma wykonać klaster podstawowe komputery i tak by wykonały.


N+1 = n węzłów aktywnych i tylko jeden pasywny

N+M = n węzłów aktywnych + m węzłów pasywnych

TIP : W przypadku baz danych możesz użyć proxy HA-JDBC 

Dzięki HA proxy dostajesz :
    - support wielu baz danych poprzez JDBC
    - wysoką odporność na błędy
    - zwiększenie wydajności aplikacji opartych na bazach danych
     (jednoczesny odczyt czy zapis na wielu węzłach jednocześnie)
    - monitoring przez jmx
    - zarządzanie, dodawanie nowych baz w locie
    - open source (LGPL)

Słownik :

RTO (Recovery Time Objective) - gwarantowany czas przywrócenia działania usługi)

cdn