Niezawodność i replikacja

Transkrypt

Niezawodność i replikacja
Niezawodność i replikacja
Krzysztof Banaś
Systemy rozproszone
1
Niezawodność systemów rozproszonych
➔
Niezawodność systemów rozproszonych można określać w kategoriach dostępności (availability) świadczonych przez nie usług (wyrażanej w procentach czasu)

➔
W celu zagwarantowania dostępności usług

➔
system powinien móc świadczyć dalej usługi w przypadku usterki (awarii elementów – jednego z omawianych wcześniej typów)
• efektywność świadczenia usług może ulec zmniejszeniu
• nie może dojść do utraty lub niespójności danych
zasoby krytyczne (także zasoby danych), których awaria powodowałaby awarie całego systemu, powinny być powielane i móc być zastępowane lub rekonstruowane
Konieczność zarządzania powielanymi zasobami zwiększa złożoność i zmniejsza wydajność systemu
Krzysztof Banaś
Systemy rozproszone
2
Niezawodność systemów rozproszonych
➔
➔
Niezawodny system musi posiadać możliwość diagnozowania własnych usterek i podejmowania odpowiednich działań
Działania takie obejmują:


maskowanie usterek (uszkodzeń)
• całkowite ukrycie usterki, kontynuacje dalszej pracy
• zgłoszenie jednego z dopuszczalnych wadliwych zachowań systemu (ich liczba powinna być minimalizowana)
➢
w pewnych systemach dopuszcza się maskowanie jednych awarii innymi (np. IP­ maskowanie awarii błędów awariami pominięcia)
chwilowe lub całkowite przerwanie funkcjonowania
• w przypadku niemożności ukrycia usterki system powinien zawieść w przyjazny sposób (fail gracefully), tzn. sposób przewidywalny i ściśle określony oraz nieprowadzący do utraty lub niespójności danych
Krzysztof Banaś
Systemy rozproszone
3
Replikacja
➔
Replikacja (powielanie, replication) jest jedną z podstawowych technik uzyskiwania wysokiej efektywności i niezawodności działania systemów rozproszonych



replikacja oznacza utrzymywanie odrębnych kopii danych (replik), z których każda jest zarządzana przez odrębnego zarządcę kopii (replica manager, RM)
zwiększenie wydajności uzyskuje się przy powielaniu poprzez korzystanie przez klientów z kopii znajdujących się blisko klienta, każdy zarządca kopii obsługuje mniejszą liczbę klientów niż centralny serwer
podniesienie niezawodności i odporności na uszkodzenia uzyskuje się dzięki dostępności danych mimo wystąpienia usterek w systemie, awaria centralnego serwera nie oznacza awarii systemu
Krzysztof Banaś
Systemy rozproszone
4
Replikacja
➔
Wymagania w stosunku do systemu stosującego replikację są dwojakie:


przeźroczystość – klient nie powinien mieć świadomości, że istnieją rozmaite kopie danych, ani nie powinien zauważać różnicy w funkcjonowaniu systemu niezależnie od tego czy używa oryginału czy którejkolwiek kopii danych
spójność – każdy dostęp do danych ze strony klienta powinien być realizowany na danych poprawnych
• poprawność może oznaczać, że każda zmiana w ostateczności jest przenoszona na wszystkie kopie
• poprawność może także oznaczać, że każdy dostęp dokonywany jest na najbardziej aktualnych danych
Krzysztof Banaś
Systemy rozproszone
5
Spójność replikacji
➔
Z zapewnieniem spójności replikacji związane są problemy:



uporządkowania operacji dokonywanych przez klientów na kopiach
zagwarantowania realizacji operacji na najbardziej aktualnych danych
minimalizacji narzutów czasowych związanych z zarządzaniem kopiami • im wyższe wymagania spójności tym większe narzuty
Krzysztof Banaś
Systemy rozproszone
6
Replikacja
➔
Elementy systemu stosującego replikację:



klient – dokonuje operacji na danych
• odczyt
• modyfikacja, uaktualnienie
czoło systemu (front­end) ­ FE
• przyjmuje żądania klientów
• komunikuje się z jednym lub wieloma zarządcami replik
zarządca repliki ­ RM
• dokonuje operacji na swojej kopii
• komunikuje się z innymi zarządcami kopii
Krzysztof Banaś
Systemy rozproszone
7
Replikacja
➔
Przetwarzanie pojedynczego żądania klienta przechodzi przez pięć kolejnych faz:





FE przekazuje żądanie jednemu lub wielu RM
wszystkie RM koordynują swoje działania przygotowując się do przetwarzania żądania; żądania są porządkowane zgodnie z jednym z omawianych wcześniej porządków:
• FIFO, przyczynowym lub całkowitym
wszystkie RM realizują żądanie (ewentualnie z możliwością anulowania)
wszystkie RM uzgadniają efekt żądania (np. czy zatwierdzić czy odrzucić)
jeden lub wszystkie RM przekazują odpowiedź do FE
Krzysztof Banaś
Systemy rozproszone
8
Replikacja ➔
Organizacja komunikacji pomiędzy różnymi FE i RM może odbywać się na różne sposoby


wszystkie RM są równouprawnione
• wszystkie RM uzgadniają razem stan danych
• dowolny FE może komunikować sie z dowolnym RM
istnieje jeden wyróżniony (pierwszorzędny) RM, który przechowuje kopie podstawową
• pierwszorzędny RM dokonuje modyfikacji danych
➢
żądania modyfikacji są kierowane przez różne FE do pierwszorzędnego RM
➢
pierwszorzędny RM zarządza propagacją zmian
• żądania odczytu mogą być realizowane przez dowolnego RM
Krzysztof Banaś
Systemy rozproszone
9
Niezawodność poprzez replikację
➔
➔
➔
Tolerowanie uszkodzeń poprzez replikację można osiągnąć na dwa sposoby odpowiadające mechanizmom komunikacji z poprzedniego slajdu
W przypadku rozwiązania z wyróżnionym pierwszorzędnym serwerem istotnego znaczenia nabiera komunikacja grupowa uwzględniająca zmiany w składzie grupy
W przypadku równouprawnionych RM stosuje się rozgłaszanie niezawodne całkowicie uporządkowane
Krzysztof Banaś
Systemy rozproszone
10
Zarządzanie komunikacją grupową
➔
➔
W systemach rozproszonych istotne jest nie tylko uwzględnianie awarii serwerów, ale także przypadek kiedy serwer dołącza się do już istniejącej grupy (np. po usunięciu awarii)
Oznacza to, że każdy proces w grupie powinien móc korzystać z następujących usług:




tworzenie, niszczenie grup, usuwanie, dodawanie procesów
wykrywanie awarii serwerów
informowanie o stanie grupy (dodawaniu i usuwaniu procesów)
tłumaczenie adresów, uzyskiwanie adresów poszczególnych procesów w grupie
Krzysztof Banaś
Systemy rozproszone
11
Zarządzanie komunikacją grupową
➔
➔
Rozgłaszanie IP nie dostarcza członkom grupy informacji o stanie grupy, ani nie koordynuje rozgłaszania z aktualnym stanem grupy
Systemy dostarczające pełnych usług grupowych posługują się pojęciem widok grupy



widok grupy (group view) jest to lista wszystkich członków grupy oznaczonych jednoznacznymi identyfikatorami
procesy powinny posługiwać się spójnymi widokami grupy
w przypadku rozgłaszania komunikatów mówi się o komunikacji grupowej zsynchronizowanej z widokiem grupy (view­synchronous)
Krzysztof Banaś
Systemy rozproszone
12
Zarządzanie komunikacją grupową
➔
Komunikacja grupowa zsynchronizowana z widokiem grupy posiada następujące cechy:



zgodność – każdy poprawny proces dostarcza tę samą sekwencje widoków grupy i kojarzy z każdym widokiem ten sam zbiór komunikatów
integralność – poprawny proces dostarcza komunikat tylko raz, a jego nadawca znajduje się w widoku grupy skojarzonym z komunikatem
ważność – poprawne procesy zawsze dostarczają wysłane przez siebie komunikaty
Krzysztof Banaś
Systemy rozproszone
13
Niezawodność poprzez replikację
➔
Rozwiązanie z pierwszorzędnym zarządcą replik (PRM)





FE wysyła żądanie z jednoznacznym identyfikatorem do PRM
PRM przyjmuje żądania niepodzielnie, w kolejności przysyłania; powtarzane żądania są obsługiwane już istniejącym wynikiem
PRM realizuje żądanie i zachowuje wynik (odpowiedź)
Jeśli żądanie jest modyfikacją PRM rozsyła zmodyfikowany stan, odpowiedź i jednoznaczny identyfikator do wszystkich RM zarządzających kopiami zastępczymi
PRM odpowiada do FE
Krzysztof Banaś
Systemy rozproszone
14
Niezawodność poprzez replikację
➔
Rozwiązanie z pierwszorzędnym zarządcą replik (PRM)


podstawowym problemem jest tolerowanie uszkodzenia polegającego na awarii PRM
• PRM musi być zastąpiony jednym z pozostałych RM
• wszystkie pozostałe RM muszą uzgodnić stan, w którym jeden z nich przejmuje rolę PRM
powyższe wymagania są spełnione jeśli PRM rozsyła modyfikacje za pomocą komunikacji grupowej synchronizowanej z widokiem grupy
Krzysztof Banaś
Systemy rozproszone
15
Niezawodność poprzez replikację
➔
Rozwiązanie z równorzędnymi zarządcami replik





FE rozgłasza żądanie do RM dodając jednoznaczny identyfikator, stosuje niezawodne rozgłaszanie z całkowitym porządkiem
żądanie jest dostarczane w tym samym porządku do każdego poprawnego RM
każdy RM realizuje żądanie (w identyczny sposób dzięki mechanizmowi rozgłaszania)
RM zwracają odpowiedzi do FE
FE zbiera odpowiedzi (ich liczba zależy od realizowanej semantyki tolerowania uszkodzeń)
Krzysztof Banaś
Systemy rozproszone
16
Protokoły uaktualniania
➔
Standardowym protokołem uaktualniania rozważanym dotąd był protokół read­any write­all (czytanie dowolnej kopii, zapis (uaktualnienie) wszystkich kopii


➔
przy uaktualnianiu kopie powinny zostać zablokowane
algorytm może wykazywać niską wydajność (przy dużej liczbie zapisów w porównaniu z liczbą odczytów)
Protokoły kopii podstawowej (primary copy)




uaktualnienie dotyczy kopii podstawowej
uaktualnienie pozostałych następuje w tle
użytkownik korzystający z dowolnej kopii do odczytu może nie mieć najbardziej aktualnych danych
protokół gwarantuje wyższą wydajność niż read­any write­all
Krzysztof Banaś
Systemy rozproszone
17
Protokoły uaktualniania
➔
Protokoły głosowania (voting protocols)





zapis dokonywany jest tylko dla pewnej liczby kopii – w
aby zagwarantować poprawność odczytu (odczyt najbardziej aktualnej kopii) czytanie musi uwzględnić więcej niż jedną kopię – dokładnie r kopii tak że w+r jest większe od całkowitej liczby kopii n
sterując parametrami w i r można wybierać optymalne strategie dla konkretnych systemów
w przypadku częstych odczytów i rzadkich zapisów optymalna może być strategia – w=n, r=1 (czyli read­any write­all) im więcej zapisów tym mniejsze powinno być w (zawsze jednak w powinno być większe niż n/2 – wzajemne wykluczanie dla współbieżnych zapisów oraz zagwarantowanie uaktualniania najbardziej aktualnej kopii)
Krzysztof Banaś
Systemy rozproszone
18

Podobne dokumenty