Sr-11-wyk-1.0-Slajd11

From Studia Informatyczne

Maskowanie awarii i zwielokrotnianie

Maskowanie awarii i zwielokrotnianie


Maskowanie awarii odbywa się poprzez organizowanie grup procesów i rozsyłanie do nich wszystkich w sposób niezawodny komunikatów. Wymaga to zastosowania zwielokrotnienia procesów, co może być realizowane na dwa podstawowe sposoby: poprzez protokoły oparte na kopii podstawowej lub poprzez protokoły zwielokrotnionych zapisów.

Protokoły oparte na kopii podstawowej stosują najczęściej model podstawa-zapas (ang. primary-backup ), w którym wszystkie modyfikacje przetwarzane są najpierw przez wybrany węzeł koordynujący, a następnie propagowane do pozostałych węzłów. Odczyty mogą być realizowane współbieżnie przez dowolny węzeł będący kopią serwera podstawowego. Procesy są więc zorganizowane w postaci hierarchicznej grupy z wyróżnionym węzłem-koordynatorem. Wadą takiego rozwiązania jest oczywiście ryzyko awarii węzła-koordynatora. W takiej sytuacji należy wykonać algorytm elekcji i dokonać wyboru nowego węzła-koordynatora spośród kopii zapasowych.

Protokoły zwielokrotnionych zapisów działają na zasadzie aktywnego zwielokrotniania (ang. active replication ) lub poprzez dobieranie kworum . W obu podejściach procesy są zorganizowane w równouprawnioną grupę. W aktywnym zwielokrotnianiu wszystkie żądania (również zapisy) przesyłane są w identycznej postaci do wszystkich węzłów i przetwarzane współbieżnie. Algorytmy oparte na kworum wymagają wykonania modyfikacji przez procesy tworzące kworum. Zaletą protokołów zwielokrotnionych zapisów jest brak elementu centralnego przetwarzania, ale pojawia się w nich dodatkowy koszt związany z rozproszoną koordynacją.

Istotną kwestią jest liczba replik procesów, jakie będą tworzone w systemie. Mówimy, że system jest w stanie tolerować k uszkodzeń, gdy jego funkcjonowanie będzie nadal poprawne po wystąpieniu k awarii. Osiągnięcie takiego poziomu odporności zależy od charakteru awarii występujących w systemie. Jeżeli awarie mają charakter uciszający, to do tolerowania k awarii wystarczy k+1 procesów. Proces k+1 będzie w stanie udzielić odpowiedzi po awarii k procesów. W przypadku awarii bizantyjskich, w najgorszym przypadku k błędnie działających procesów może generować złą, ale spójną odpowiedź. Stwierdzenie tego faktu jest możliwe pod warunkiem posiadania dostępu do k+1 poprawnych węzłów. W efekcie do tolerowania k awarii bizantyjskich potrzeba 2k+1 węzłów.


<< Poprzedni slajd | Spis treści | Następny slajd >>