Rozproszone systemy plików

Podobne dokumenty
Rozproszone systemy plików

Przykłady DFS z lotu ptaka :) NFS AFS Coda GoogleFS ZFS

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Wprowadzenie. Dariusz Wawrzyniak 1

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Middleware wprowadzenie października 2010

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

Prezentacja systemu plików NFS

Rozproszone systemy plików AFS i Coda

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

System plików. Warstwowy model systemu plików

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Rozproszone systemy plików Bartosz Grabiec Jerzy Brzeziński Cezary Sobaniec

Prezentacja AFS. Andrzej Kurach. 13 stycznia 2003

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

76.Struktura oprogramowania rozproszonego.

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

System plików warstwa logiczna

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Zapewnienie wysokiej dostępności baz danych. Marcin Szeliga MVP SQL Server MCT

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych

Systemy rozproszone. Wstęp. Krzysztof Banaś Systemy rozproszone 1

Rozproszony system udostępniania zasobów oparty na zdalnym wywoływaniu procedur

Systemy Rozproszone. Zagadnienia do egzaminu.

SYSTEMY WEJŚCIA-WYJŚCIA

Rodzaje pamięci masowych by Silas Mariusz

Rozproszone i obiektowe systemy baz danych. Wykład 4. Wymagania projektowe systemów rozproszonych

Sieciowe Systemy Operacyjne

5. Model komunikujących się procesów, komunikaty

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Od czego zacząć przy budowaniu środowisk wysokiej dostępności?

Wywoływanie procedur zdalnych

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Klient-Serwer Komunikacja przy pomocy gniazd

Bazy danych 2. Wykład 1

Przegląd rozproszonych systemów plików

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Sieci równorzędne, oraz klient - serwer

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Architektura i mechanizmy systemu

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

SMB jako rozproszony system plików Prezentacja na SO

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1

Zdalne wywoływanie procedur RPC 27. października 2010

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Systemy operacyjne System plików

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

1. Etapy rozwoju systemów komputerowych

Middleware wprowadzenie października Dariusz Wawrzyniak. Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5)

Komunikacja i wymiana danych

Ograniczenia efektywności systemu pamięci

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

NIS/YP co to takiego?

Kolejki FIFO (łącza nazwane)

1. Zakres modernizacji Active Directory

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:

Rozproszone systemy plików wprowadzenie. Autor: Łukasz Polak

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Tworzenie aplikacji rozproszonej w Sun RPC

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Sieci komputerowe i bazy danych

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Pliki. Operacje na plikach w Pascalu

System operacyjny Amoeba

Podstawy sieci komputerowych. Technologia Informacyjna Lekcja 19

DZANIA I MARKETINGU BIAŁYSTOK,

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Projektowanie i implementacja infrastruktury serwerów

Adres IP

Wybrane działy Informatyki Stosowanej

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Działanie systemu operacyjnego

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

7. zainstalowane oprogramowanie zarządzane stacje robocze

Dokumentacja aplikacji Szachy online

ARCHITEKTURY SYSTEMÓW ROZPROSZONYCH. 2. Rozproszone systemy plików

Software RAID funkcje dostarcza zaimplementowane oprogramowanie, bez wykorzystania z dedykowanych kontrolerów.

EXSO-CORE - specyfikacja

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Dfs - Distributed File System SMB - Server Message Block. 18 grudnia 2002

Cryptobox Aplikacja do synchronizacji danych użytkownika w systemie KMD2

T: Wbudowane i predefiniowane domenowe grupy lokalne i globalne.

Działanie systemu operacyjnego

OBSŁUGA ZDARZEO, ALARMÓW, NASTAW I FUNKCJI KONTROLNYCH W PROGRAMIE OBSŁUGI INTERFEJSU 61850

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Działanie systemu operacyjnego

Transkrypt:

Rozproszone systemy plików CEZARY SOBANIEC mailto:sobaniec@cs.put.poznan.pl Usługi plikowe Usługi plikowe i katalogowe Implementacja działań nazawartości plików klient wysyła zkażdym zleceniem jednoznaczny identyfikator pliku niepowtarzalny w zbiorze wszystkich plików systemu rozproszonego utworzenie nowego pliku => generacja nowego identyfikatora Usługi katalogowe odwzorowania między tekstowymi nazwami plików a ich identyfikatorami tworzenie i aktualizacja katalogów pobieranie identyfikatorów plików (ang. lookup) klient usługi plikowej informacja o katalogach przechowywana jest w pliku $Id: rsp-folie.lyx,v 1.8 2003/11/12 11:18:39 sobaniec Exp $ Rozproszone systemy plików (1/44) Atrybuty plików Interfejs usług plikowych 1. Transfer do klienta Długość pliku Data utworzenia pliku Data ostatniego dostępu Data ostatniej modyfikacji Data ostatniej zmiany atrybutów Licznik odwołań Właściciel Typ pliku Lista kontroli dostępu (ACL) Nadzorowane przez usługi plikowe Nadzorowane przez usługi katalogowe (a) 2. Modyfikacje u klienta Serwer 3. Transfer do serwera stary plik nowy plik kontrola praw dostępu wykonywana jest jednokrotnie podczas zamiany nazwy pliku na identyfikator 1. Zlecenie klienta Serwer Plik nieinterpretowalny ciag bajtów (definicja zgodna z koncepcja systemów Unix czy Windows) (b) 2. Potwierdzenie wykonania Rozproszone systemy plików (2/44) Rozproszone systemy plików (3/44)

Modele interfejsu usług plikowych Modele interfejsu usług plikowych (II) Model oparty na kopiowaniu (ang. download/upload model) Zalety prostota koncepcji i implementacji prosty interfejs usług plikowych model korzystny w przypadku wykonywania wielu złożonych operacji przez wydzielone procesy Wady Model zdalnego dostępu (ang. remote access model) Zalety nie ma potrzeby sprowadzania plików do klienta efektywna realizacja małych modyfikacji Wady każde zlecenie realizowane jest zdalnie, co powoduje duże opóźnienia duży narzut komunikacyjny w przypadku wykonywania małych modyfikacji wymagana przestrzeń dyskowa lub pamięciowa do tymczasowego przechowania pliku Rozproszone systemy plików (4/44) Rozproszone systemy plików (5/44) Interfejs usług katalogowych Interfejs usług katalogowych (II) Jak postrzegaja rozproszony system plików różni klienci? Serwer S1 Serwer S2 Możliwe podejścia A D 1. Nazwa komputera + nazwa ścieżki /serwer1/kat1 serwer1:/kat1 2. Montowanie zdalnego systemu plików w lokalnej hierarchii plików 3. Wspólna przestrzeń nazw B C E F Niezależność odusług plikowych K1 K2 możliwość projektowania rozmaitych usług katalogowych odwołujacych się do tych samych plików emulacja innych systemów A korzeń D B A C D B C E F E F Rozproszone systemy plików (6/44) Rozproszone systemy plików (7/44)

Nazewnictwo dwupoziomowe Przezroczystość (transparentność) Rodzaje nazw nazwy symboliczne ang. symbolic names nazwy binarne ang. binary names Katalogi zajmuja się odwzorowywaniem nazw symbolicznych na binarne W systemie Unix: nazwa pliku => nazwa symboliczna i węzeł => nazwa binarna Nazwa binarna może zawierać w sobie zarówno nazwę serwera jak i ścieżkę Nazwa pliku może być odwzorowywana na grupę nazw binarnych Przezroczystość dostępu programy sa nieświadome rozproszenia plików; jeden zbiór operacji dostępu do plików zdalnych i lokalnych Przezroczystość położenia (ang. location transparency)nazwaścieżki nie daje żadnej wskazówki co do położenia pliku Porównaj: serwer1:/kat1/kat2/x i /kat1/kat2/y Niezależność położenia (ang. location independace) pliki można przemieszczać między serwerami bez zmiany ich nazwy Przezroczystość współbieżności możliwość współbieżnej realizacji dostępu do plików (modyfikacji); blokowanie dostępu Przezroczystość awarii odporność serwera na awarie klientów, odporność naprzejściowe awarie sieci Przezroczystość wydajności odporność na chwilowe przeciażenia serwerów Rozproszone systemy plików (8/44) Rozproszone systemy plików (9/44) Wymagania Wymagania przyszłe Heterogeniczność sprzętu i systemu operacyjnego. Oprogramowanie klienta i serwera musi być możliwe do zaimplementowania w różnych systemach operacyjnych Otwartość standardów komunikacyjnych Skalowalność możliwość stopniowego rozszerzania usług Skalowalnośćnaduża skalę Przezroczystość zwielokrotniania transparentna replikacja: dzielenie obciażenia, tolerowanie uszkodzeń Przezroczystość wędrówki migracja (mobilność) plików nie wymagajaca modyfikacji programów migracja automatyczna migracja ręczna Drobnoziarniste rozpraszanie danych możliwość współdzielenia małych fragmentów danych (obiektów) w pobliżu potrzebujacych ich procesów. Przechowywanie w pamięci podręcznej. nieodpowiedniość abstrakcji pliku model pamięci trwałej dla systemów scentralizowanych mobilni agenci rozproszona trwała (ang. persistent) pamięć Tolerowanie podziału sieci oraz możliwość pracy po odłaczeniu od sieci odłaczenie stacji roboczej od sieci (notebook) algorytmy quorum Klienci mobilni obsługa użytkowników korzystajacych z komputerów przenośnych przełaczanie się między lokalnymi serwerami pracapoodłaczeniu się od sieci uspójnianie danych modyfikowanych współbieżnie Rozproszone systemy plików (10/44) Rozproszone systemy plików (11/44)

Przykładowy interfejs usług plikowych Przykładowy interfejs usług katalogowych Funkcja READ(plik, i, n) dane WRITE(plik, i, dane) CREATE() plik TRUNCATE(plik, d) DELETE(plik) GETATTR(plik) attr SETATTR(plik, attr) Opis odczyt z pliku zapis do pliku utworzenie pliku skrócenie rozmiaru pliku do długości d usunięcie pliku pobranie atrybutów pliku ustawienie atrybutów pliku funkcje realizowana za pomoca zdalnego wywołania procedur (RPC) brak funkcji OPEN i CLOSE (bezstanowość) idempotentność operacji (wyjatek: CREATE) Funkcja Opis LOOKUP(kat, nazwa, tryb dostępu, id użytk) plik zwraca identyfikator pliku ADDNAME(kat, nazwa, plik, id użytk) dodanie nazwy do katalogu DELNAME(kat, nazwa) usunięcie nazwy z katalogu RENAME(kat, stara nazwa, nowa nazwa) zmiana nazwy pliku GETNAMES(kat, wzorzec) ciag nazw zwraca zawartość katalogu niebezpieczeństwo: utworzenie pliku bez zapisu w katalogu uprawnienia jako mechanizm weryfikacji dostępu (unikalny identyfikator pliku) Rozproszone systemy plików (12/44) Rozproszone systemy plików (13/44) Semantyka współdzielenia plików Semantyka współdzielenia plików (II) 1. Systemy scentralizowane Odczyt zwraca zawsze ostatnio zapisana wartość (semantyka scentralizowana) 2. Systemy rozproszone Brak wspólnego zegara: odczyt może zwrócić starawartość Semantykę scentralizowana można w systemie rozproszonym zrealizować przez pojedynczy centralny serwer duży koszt. Problem współdzielenia wskaźnika bieżacej pozycji w pliku int fd = open("/tmp/ab.txt", O WRONLY O CREAT, 0700); int d; if (fork()==0) { d = 10; write(fd, &d, sizeof(int)); } else { d = 20; write(fd, &d, sizeof(int)); } Rozproszone systemy plików (14/44) Rozproszone systemy plików (15/44)

Semantyka współdzielenia plików (III) Semantyka współdzielenia plików (IV) Semantyka sesji (ang. session semantics) Zmiany dokonane w pliku sa widoczne po jego zamknięciu Zalety większa efektywność implementacji Problemy współbieżne modyfikacje pliku naruszenie semantyki scentralizowanej (wskaźnik plikowy) Pliki tylko do odczytu dopuszczalne operacje: odczyt, usuwanie i tworzenie możliwość niepodzielnego zastapienia pliku nowym plikiem o takiej samej nazwie katalogi moga być modyfikowane Zalety brak problemów ze spójnościa replik Problemy procesy jednocześnie modyfikujace ten sam plik wstawienie nowej wersji podczas odczytu starej Rozproszone systemy plików (16/44) Rozproszone systemy plików (17/44) Semantyka współdzielenia plików (V) Implementacja rozproszonychsystemów plików Niepodzielne transakcje Jawna operacja BEGIN TRANSACTION na poczatku dostępu do pliku END TRANSACTION na końcu Końcowy wynik współbieżnie wykonywanych transakcji będzie taki sam, jak gdyby wykonano je w pewnym (nieokreślonym) sekwencyjnym porzadku. Rozwiazanie zaczerpnięte z systemów baz danych. Wady Istotna zmiana sposobu dostępu do plików dodatkowe jawne operacje synchronizujace Klasy plików pliki współdzielone i bardzo rzadko modyfikowane pliki nie współdzielone między procesami i nie modyfikowane pliki często modyfikowane, a jednocześnie rzadko współdzielone pliki często modyfikowane iwspółdzielone Decyzje projektowe Rozróżnienie klienta i serwera (por. systemy Windows i NetWare) Rozdział czy połaczenie usług plikowych i katalogowych Serwer przechowujacy informacje o klientach czy bezstanowy tolerancja uszkodzeń Rozproszone systemy plików (18/44) Rozproszone systemy plików (19/44)

Serwery bezstanowe Pamięć podręczna Zalety Nie potrzebuja operacji open i close mniejsza liczba komunikatów Serwer Nie zajmuja dodatkowych struktur na serwerze Odporne na awarie klientów Wady pamięć operacyjna klienta 3 4 lokalny dysk pamięć operacyjna serwera 2 lokalny dysk 1 Każdy komunikat musi być samowystarczalny większa długość komunikatów Potrzeba otwierania pliku przy każdym dostępie po stronie serwera Niemożliwość realizacji czytania z wyprzedzeniem po stronie serwera Złożoność realizacji zasady idempotentności Niemożliwość zakładania blokad na plikach Pamięć podręczna u klienta pamięć w procesie biblioteka wejścia/wyjścia pamięć wj adrze systemu operacyjnego pamięć w oddzielnym procesie pracujacym na komputerze klienta Rozproszone systemy plików (20/44) Rozproszone systemy plików (21/44) Pamięć podręczna (II) Pamięć podręczna (III) Pamięć podręczna na serwerze operacja odczytu nie powoduje powstawania problemu spójności zawsze jest opłacalna operacja zapisu możliwość utraty danych w przypadku awarii serwera: write-through Pamięć podręczna na dysku u klienta Zarzadzanie pamięcia podręczna przez klienta Przepisywanie (ang. write-through) Opóźnianie zapisu Zapisywanie przy zamknięciu (ang. write on close) Kontrola scentralizowana unieważnianie replik semantyka scentralizowana aktywność serwerów wielokrotnie większa od pamięci operacyjnej mniejsza efektywność i większy koszt Rozproszone systemy plików (22/44) Rozproszone systemy plików (23/44)

Replikacja Replikacja Motywacja Zwiększenie efektywności dostępu operacje odczytu Zwiększenie niezawodności Zwiększenie dostępności plików Możliwość rozłożenia obciażenia Realizacja replikacji 1. replikacja aktywna (ang. active replication) 2. replikacja pasywna (ang. passive replication) 3. replikacja z wykorzystaniem komunikacji grupowej (ang. group communication) Problemy spójność replik Serwer 1 Serwer 1 Serwer 1 Serwer 2 Serwer 2 Serwer 2 Serwer 3 Serwer 3 Serwer 3 (1) (2) (3) Rozproszone systemy plików (24/44) Rozproszone systemy plików (25/44) NFS XDR Network File System sieciowy system plików stworzony przez firmę Sun Microsystems dostępny dla stacji Unix, Windows, OS/2, Macintosh i wielu innych pracuje w środowisku heterogenicznym obsługa stacji bezdyskowych external Data Representation Standard reprezentacji danych jednolity format reprezentacji liczb całkowitych: 32 bitowe big endian kodowanie liczb rzeczywistych w formacie IEEE (typy float i double) przechowywanie danych zawsze w jednostkach będacych wielokrotnościa4bajtów Wprowadzony równolegle z mechanizmem zdalnego wywoływania procedur (ang. remote procedure call RPC) Rozproszone systemy plików (26/44) Rozproszone systemy plików (27/44)

Architektura NFS Cechy NFS Koncepcja umożliwienie współdzielenia systemów plików pomiędzy dowolna liczba komputerów dedykowany dla sieci lokalnych (nowsze implementacje umożliwiaja pracę w sieciach rozległych) każda maszyna może jednocześnie pełnić rolę klienta i serwera Eksportowanie danych udostępnianie katalogów wraz z wszystkimi podkatalogami Importowanie danych montowanie zdalnych katalogów przez klientów zamontowany katalog staje się częścia lokalnej hierarchii katalogów klienta nierozróżnialność plików lokalnych i zdalnych NFS oferuje 1. Przezroczystość dostępu 2. Przezroczystość położenia poprzez spójna konfigurację montowania zdalnych katalogów u klientów 3. Przezroczystość awarii większość usług jest idempotentna 4. Częściowa przezroczystość wydajności intensywne wykorzystanie pamięci podręcznych 5. Przezroczystość wędrówki NFS nie oferuje 1. Przezroczystości zwielokrotniania 2. Przezroczystości współbieżności (elementy w NFS 4) 3. Ograniczona skalowalność Rozproszone systemy plików (28/44) Rozproszone systemy plików (29/44) Protokoły NFS Implementacja systemu NFS protokół montowania protokół transmisji danych Protokół montowania zlecenie zamontowania katalogu weryfikacja uprawnień odpowiedź zawiera uchwyt plikowy (ang. file handler) Warstwy implementacji NFS 1. odwołania systemowe (open, read, write, close) 2. wirtualny system plików VFS ang. virtual file system 3. właściwy klient/serwer NFS Protokół transmisji danych odczyt i modyfikacja danych z plików tworzenie i usuwanie plików odczyt i modyfikacja atrybutów plików (prawa dostępu, daty dostępu i utworzenia) każdy komunikat jest samowystarczalny Rozproszone systemy plików (30/44) Rozproszone systemy plików (31/44)

Implementacja systemu NFS (II) Implementacja systemu NFS (III) Serwer Komputer A Komputer B warstwa odwolań do systemu program klient NFS r węzeł serwer NFS warstwa wirtualnego systemu plików warstwa wirtualnego systemu plików lokalny system plików klient NFS serwer NFS lokalny system plików jądro VFS v węzeł jądro VFS v węzeł i węzeł lokalny dysk komunikat do serwera komunikat od klienta lokalny dysk implementacja na poziomie jadra systemu sieć Rozproszone systemy plików (32/44) Rozproszone systemy plików (33/44) Implementacja systemu NFS (IV) Automounter Transfer danych Komputer A Komputer B zawsze w paczkach po 8KB czytanie z wyprzedzeniem przez klienta Spójność pamięci podręcznych klientów program serwer NFS klient NFS r węzeł serwer NFS ograniczenia czasowe na ważność danych w pamięciach podręcznych: kontrola znaczników czasowych przy każdym dostępie pamięć danych: ważna przez maksymalnie 3s pamięć atrybutów: ważna przez maksymalnie 30s problem spójności jest tylko ograniczany nie usuwany! Czytanie z wyprzedzeniem oddzielny proces asynchroniczne czytanie z wyprzedzeniem opóźniony zapis jądro VFS v węzeł v węzeł jednoczesna próba montowania zdalnego katalogu z wielu serwerów Rozproszone systemy plików (34/44) Rozproszone systemy plików (35/44)

Andrew File System Wydajność AFS Rozproszony system plików AFS stworzony w Carnegie-Mellon University (CMU) Cechy przezroczysty dostęp do zdalnych, współdzielonych plików skalowalność przechowywanie całych plików w trwałych pamięciach podręcznych użytkowników Scenariusz działania 1. wywołanie funkcji open skopiowanie pliku z serwera, wykonanie lokalnie funkcji open 2. dostęp do pliku realizowany całkowicie lokalnie poprzez wywołania funkcji read i write 3. zamknięcie pliku zmodyfikowana kopia jest przesyłana do serwera rozwiazanie efektywne dla większości plików: tylko do odczytu (programy, biblioteki) rzadko modyfikowanych nie współdzielonych (pliki prywatne w katalogu domowym) duży rozmiar pamięci podręcznej (kilkaset MB) typowe wielkości plików większość plików jest małych (<15KB) operacje czytania sa znacznie częstsze od operacji zapisu (~6 razy) większość plików jest modyfikowanych przez jednego użytkownika odwołania do plików sa skumulowane problem z bazami danych b.duże pliki, często modyfikowane przez wielu użytkowników Rozproszone systemy plików (36/44) Rozproszone systemy plików (37/44) Architektura AFS Architektura AFS (II) Serwer Implementacja funkcji open program Venus Vice 1. Proces Venus sprawdza obecność pliku w pamięci podręcznej. Brak pliku: wysłanie zamówienia do procesu Vice 2. Przesłanie kopii pliku do węzła klienta. Rejestracja pobrania kopii na serwerze 3. Lokalne otwarcie pliku i zwrócenie deskryptora jądro jądro Implementacja funkcji close Modyfikacje systemowe 1. Zamknięcie pliku z lokalna kopia 2. Przesłanie zmodyfikowanej wersji do serwera 3. Powiadomienie innych zainteresowanych węzłów o dokonanych modyfikacjach jadro systemu operacyjnego: przechwytywanie wywołań funkcji open i close Rozproszone systemy plików (38/44) Rozproszone systemy plików (39/44)

Odporność naawarie Coda Serwer rejestruje stan klientów informacja o pobranych kopiach plików komunikaty unieważniajace Po awarii klient: kontrola ważności przechowywanych kopii plików Automatyczne unieważnianie replik Rozproszony system plików Coda nowe wymagania replikacja plików modyfikowanych lepsze tolerowanie uszkodzeń komputery przenośne czasowe odłaczenie od sieci korzyści współdzielonego systemu plików i dostępność zasobów przy braku dostępu do serwerów skalowalność i emulacja uniksowej semantyki dostępu do plików jak w AFS brak informacji od serwera przez okres czasu T (typowo kilka minut) powoduje unieważnienie kopii Rozproszone systemy plików (40/44) Rozproszone systemy plików (41/44) Replikacja grupowa Coda Volume Storage Group (VSG) zbiór serwerów przechowujacych kopie pliku (grupy plików) Available Volume Storage Group (AVSG) dynamicznie definiowany podzbiór VSG prawidłowo działajacych serwerów Zmodyfikowane kopie plików rozsyłane sa przez klienta do wszystkich członków grupy AVSG Gdy AVSG = 0 klient pracuje w trybie odłaczonym o ile wszystkie potrzebne pliki znajduja się w pamięci podręcznej ręczna operacja umieszczenia wybranych plików w pamięci podręcznej optymistyczna strategia replikacji pliki moga być modyfikowane niezależnie wodłaczonych systemach: operacja scalania Wektor wersji systemowej Spójność danych Coda Version Vector (CVV) liczniki modyfikacji pliku na poszczególnych serwerach AVSG K 1 (2,2,2) K 1 (4,4,3) S1 S 2 S 3 AWARIA (1,1,1) K 2 (3,3,3) K 2 (3,3,4) scalanie użytkownik ręcznie musi rozwiazać konflikty powstajace podczas operacji scalania Rozproszone systemy plików (42/44) Rozproszone systemy plików (43/44)

Spójność danych klienci mobilni Modele spójności data-centric zorientowane na uspójnianie globalnego obrazu danych client-centric zorientowane na uspójnianie obrazu postrzeganego przez klienta Preferencje klienta chcę widzieć modyfikacje, które poprzednio wprowadziłem do systemu chcę aby moje modyfikacje były aplikowane wszędzie w tej samej kolejności chcę czytać dane co najmniej tak aktualne jak przy ostatnim odczycie Replikacja Serwer 1 read(x) Użytkownik Serwer 2 write(x,1) Serwer 3 Rozproszone systemy plików (44/44)