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 (frontend) 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 (viewsynchronous) 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ół readany writeall (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ż readany writeall 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 readany writeall) 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