Spis treści 1 Wprowadzenie 1 1.1 Podstawowe pojęcia............................................ 1 1.2 Sieci komunikacyjne........................................... 3 2 Problemy systemów rozproszonych 7 2.1 Koordynacja w systemach rozproszonych................................ 7 2.2 Niezawodność i bezpieczeństwo..................................... 8 1 Wprowadzenie 1.1 Podstawowe pojęcia Systemy Rozproszone Przypomnienie z pierwszego wykładu Systemy luźno powiązane oddzielne komputery wymiana komunikacji poprzez sieć każdy uczestnik jest autonomiczny Architektura klient serwer serwer udostępnia usługi i pełni rolę nadrzędną klient zapewnia użytkownikowi interfejs do korzystania usług serwera np. serwery obliczeniowe, serwery plików Architektura peer-to-peer brak wyróżnionych węzłów środowiska obliczeniowe sieci P2P System rozproszony System rozproszony Zbiór luźno powiązanych ze sobą procesorów połączonych siecia komunikacyjna. Procesory nie są taktowane wspólnym zegarem i nie współdzielą pamięci operacyjnej. Zasoby lokalne przyłączone bezpośrednio do procesora Zasoby zdalne pozostałe procesory w systemie i ich zasoby Elementy systemu rozproszonego Procesory - węzły systemu rozproszonego Sieć komunikacyjna - łączy węzły Uwaga: Rozmaite określenia procesorów związane są z architekturą i funkcją systemu. 1
węzły serwery komputery terminale stanowiska, stacje Np. węzły klastra, ale serwery plików. Węzły systemów rozproszonych Procesory systemów rozproszonych Komputery (w tym wieloprocesorowe) Systemy wbudowane Mikrosterowniki (AVR, ARM, PIC...) Sterowniki przemysłowe Uwaga: Poza szczególnymi przypadkami elementów infrastruktury sieciowej (urządzeń aktywnych sieci komunikacyjnej) nie traktuje się jako węzłów systemu rozproszonego. Cele budowy systemów rozproszonych Współdzielenie zasobów Serwery usług Udostępnianie zasobów (pliki, drukarki) Aplikacje on-line Zwiększenie (zwielokrotnienie) wydajności Obliczenia rozproszone Klastry (serwerowe, bazodanowe, HPC) Obliczenia wysokiej wydajności (HPC - High Performance Computing) Systemy o dużej mocy obliczeniowej: Klastry zbudowane z maszyn wieloprocesorowych Wykorzystanie GPU 2
Cele budowy systemów rozproszonych Niezawodność Łagodna degradacja Nadmiarowość i redundancja Systemy Fail-over i wysokiej dostępności (HA) Systemy z tolerancją uszkodzeń (FT) Rozproszenie geograficzne Komunikacja Praca grupowa komunikacja między użytkownikami Komunikacja pomiędzy elementami systemu 1.2 Sieci komunikacyjne Sieci komunikacyjne w systemach rozproszonych Sieci LAN (np. Ethernet) Sieci rozległe (WAN) Sieci bezprzewodowe (GSM, WiFi, BT,...) Sieci specjalizowane (np. CAN, sieci przemysłowe) Łącza szeregowe (RS232, RS485) Łącza IETF RFC 1149 Uwaga: Sieć w systemie nie musi być homogeniczna. Przykładowo: Sieć GSM jako sieć rozległa, łącząca lokacje systemu Ethernet jako sieć wewnątrz obiektu Magistrale przemysłowe pomiędzy komputerem sterującym a sterownikami Topologie sieciowe Sieć całkowicie połaczona (każdy z każdym) Odporność na awarie Wysoki koszt instalacji 3
Rysunek 1: Sieć całkowicie połączona Topologie sieciowe Sieć częściowo połaczona Możliwość zapewnienia redundancji połączeń Niższy koszt instalacji od sieci pełnej Rośnie koszt komunikacji trasowanie Rysunek 2: Sieć częściowo połączona Topologie sieciowe Sieć drzewiasta Brak redundancji Niski koszt instalacji Konieczność trasowania 4
Rysunek 3: Sieć drzewiasta Topologie sieciowe Sieć gwiaździsta Brak odporności na awarię centralnego węzła Za wyjątkiem centralnego węzła łagodna degradacja Niski koszt instalacji Konieczność trasowania Rysunek 4: Sieć gwiaździsta Topologie sieciowe Sieć pierścieniowa Niezawodność zależna od implementacji Umiarkowany koszt instalacji 5
Rysunek 5: Sieć pierścieniowa Topologie sieciowe Magistrala Mała odporność na uszkodzenie sieci Umiarkowany koszt instalacji Obecnie spotykane w systemach przemysłowych Rysunek 6: Magistrala Trasowanie (routing) Algorytm trasowania (routingu) Algorytm wyznaczania trasy, jaką należy przesłać komunikat w sieci od nadawcy do odbiorcy. Routing statyczny każdy węzeł posiada tablicę wiążącą możliwe cele z dostępnymi kanałami komunikacyjnymi Routing dynamiczny w sieci i/lub węzłach systemu działa algorytm automatycznie wyznaczający trasy Struktury systemów rozproszonych Hierarchiczne Wyróżnione węzły systemu pełnią specyficzne role Uogólnienie architektury klient - serwer na więcej poziomów Przykłady: 6
Przemysłowe sieci sterowania Systemy aplikacji WWW struktura warstwowa Peer-to-peer (równy z równym) Brak wyróżnionych węzłów w systemie Przykłady: Klastry obliczeniowe Systemy aplikacji WWW zwielokrotnianie zasobów 2 Problemy systemów rozproszonych 2.1 Koordynacja w systemach rozproszonych Koordynacja w systemie rozproszonym Działanie systemu rozproszonego wymaga koordynacji: Szeregowanie zadań Dostęp do zasobów Komunikacja międzyprocesowa Synchronizacja procesów Koordynacja w systemie rozproszonym Koordynacja scentralizowana Dedykowana stacja koordynatora Elekcja stacji koordynatora z systemem reelekcji Koordynacja rozproszona Koordynacja na poziomie lokalnym Niektóre funkcje koordynowane na zasadzie elekcji Szeregowanie zadań System składa się ze stacji specjalizowanych: Stacje realizują odrębne algorytmy Planowanie lokalne na każdej stacji System składa się z wielu jednakowych węzłów do których przydzielane są zadania: Centralne planowanie przydziału zadań Najprostsze algorytmy pierwszy wolny Bardziej zaawansowane równoważenie obciążeń Środowiska heterogeniczne: Kłopotliwe równoważenie obciążeń Utrudnione planowanie przydziału zadań 7
Dostęp do zasobów Pełna koordynacja na poziomie centralnym Katalog na poziomie centralnym i lokalna koordynacja Lokalne rozgłaszanie i koordynacja zasobów Komunikacja międzyprocesowa RPC/RMI Mechanizmy komunikacji sieciowej MPI (Message Passing Interface, ang. Interfejs Transmisji Wiadomości) Standard wykorzystywany w systemach równoległych Udostępniany poprzez biblioteki dla większości języków programowania Synchronizacja procesów Problemy znane z klasycznych systemów operacyjnych W mocy pozostają problemy związane ze współbieżnym wykonywaniem procesów: Problem sekcji krytycznych Zakleszczenia i blokady Głodzenie procesów Dodatkowe komplikacje związane z rozproszeniem: Utrata łączności lub błędy w sieci Awaria węzła Rekonfiguracja 2.2 Niezawodność i bezpieczeństwo Niezawodność systemów rozproszonych Wysoka dostępność (HA - High Availability) Zapewnienie ciągłej dostępności systemu: Redundancja elementy rezerwowe gotowe do przejęcia operacji w razie awarii elementu podstawowego Brak pojedynczych punktów awarii Łagodna degradacja Uszkodzenie elementu systemu nie prowadzi do jego załamania, może jednak powodować jego degradację: Redundancja zwielokrotnienie elementów systemu, elementy rezerwowe aktywne Równoważenie obciażeń działanie rozkładane równomiernie na wszystkie czynne komponenty systemu 8
Niezawodność systemów rozproszonych Tolerancja uszkodzeń (FT - Fault Tolerance) Odporność na awarie oraz błędne działanie elementów systemu: Redundancja zwielokrotnienie elementów systemu, elementy rezerwowe aktywne Praca równoległa zwielokrotnione elementy współbieżnie wykonują te same operacje Głosowanie porównanie wyników w celu weryfikacji poprawności działania podsystemów Niezawodność węzłów systemu rozproszonego Redundancja w układzie aktywny-rezerwa (active-backup) Elementy rezerwowe są włączone (goraca rezerwa), gotowe do przejęcia funkcji w razie awarii elementu podstawowego. Do momentu wystąpienia awarii elementy rezerwowe nie biorą udziału w działaniu systemu. Redundancja w układzie aktywny-aktywny (active-active) Elementy rezerwowe są włączone i współdzielą obciążenie systemu. W razie awarii któregoś z elementów, przypadające na niego obciążenie dzielone jest na czynne elementy systemu. Niezawodność sieci komunikacyjnej Odporność na awarie urządzeń sieciowych i łączy Redundancja Zwielokrotnienie łączy, prowadzonych różnymi trasami Urządzenia w konfiguracji aktywny-rezerwa lub aktywny-aktywy Łącza alternatywne Niższa przepustowość Zapewniają minimalną funkcjonalność systemu w razie awarii sieci podstawowej Odporność na ataki sieciowe Bezpieczeństwo systemu Bezpieczeństwo fizyczne Bezpieczeństwo ludzkie Bezpieczeństwo sieciowe Bezpieczeństwo systemu operacyjnego Uwaga: Bezpieczeństwo całego systemu zależy od najsłabszego ogniwa! Koniec 9