Wprowadzenie do rozproszonych systemów komputerowych.

Transkrypt

Wprowadzenie do rozproszonych systemów komputerowych.
1. Wprowadzenie do rozproszonych systemów
komputerowych
Rozproszone systemy komputerowe otaczają nas wokoło. Praktycznie nie jest możliwe życie
bez ich wykorzystywania. Skoro jesteśmy od nich tak uzależnieni, dobrze by było przekonać
się jakie cechy posiadają te systemy, które zawojowały nasz świat. A z drugiej strony jak
systemy rozproszone należy konstruować i wykorzystywać, aby można było z ich używania
osiągnąć jak największe korzyści, nie będąc jednocześnie narażonym na efekty ich błędnego
działania.
Niniejszy wykład zatytułowany „Niezawodność, bezpieczeństwo i skalowalność systemów
rozproszonych” ma za zadanie wskazanie przedstawienie wybranych, najważniejszych
zdaniem autora, cech systemów rozproszonych mających bezpośredni wpływ na ich działanie
i rozwój.
1.1.
Definicja systemu rozproszonego
System rozproszony [ang. distributed system] jest zbiorem samodzielnych komputerów
połączonych za pomocą sieci i wyposażonych w rozproszone oprogramowanie
systemowe [2].
Powyższa definicja zakłada, że elementami składowymi są komputery mające możliwość
pracy w sieci komputerowej. Można powiedzieć, że komputery takie powinny posiadać NIC
oraz NOS. Skróty powyższe ukrywają zapisane w języku angielskim elementy obowiązkowe
dla takich komputerów: Network Interface Card czyli karta sieciowa, mogąca komunikować
się z medium, po którym odbywa się komunikacja w sieci, oraz Network Operating System
czyli sieciowy system operacyjny (lub nakładka sieciowa na system operacyjny)
umożliwiający komunikację komputera poprzez kartę sieciową z medium, a tym samym
z innymi komputerami znajdującymi się w sieci.
1.2.
Ewolucja systemów komputerowych
Rozwój systemów komputerowych można sprowadzić do dwóch głównych tendencji, jakie
występowały na rynku.
Najpierw mieliśmy dwa typy architektury systemów komputerowych:
systemy centralne [ang. centralized systems]
systemy rozproszone [ang. distributed systems]
Systemy centralne powoli ewoluowały do systemów rozproszonych. Wymuszone to zostało z
jednej strony specyfiką coraz to nowych zastosowań, a z drugiej strony wygodą
użytkowników i personelu obsługującego te systemy komputerowe.
Cały rozwój systemów komputerowych można podzielić na „dwa światy”: świat dużych
systemów komputerowych oraz świat małych systemów komputerowych. W trakcie rozwoju
te „dwa światy” wzajemnie na siebie wpływały. Wpływy te polegały na przenoszeniu
rozwiązań występujących w jednym świecie do drugiego i odwrotnie. W efekcie to wzajemne
przenikanie dało efekt w postaci stworzenia modelu chmury komputerowe [ang. cloud
computing].
W skrócie kolejny etapy rozwoju dużych systemów komputerowych można przedstawić w
sposób następujący:
centralny komputer z terminalami
sieć centralnych komputerów z terminalami
sieć centralnych komputerów ze stacjami roboczymi
system rozproszony: funkcje centralnego komputera rozproszone na wiele serwerów
1
system rozproszony: część funkcji serwerów przerzucona na stacje robocze
system rozproszony: pamięć masowa oddzielona od centralnego komputera/serwera
usług
dostęp do zasobów z poziomu przeglądarki internetowej
dostęp do zasobów z poziomu urządzenia mobilnego
Powyższy rozwój wynikał przede wszystkim z wyodrębnienia wybranych usług
realizowanych przez pierwotnie stosowany centralny komputer. Wyodrębnianie to miało
miejsce ze względu na potrzebę zwiększenia niezawodności oferowanych usług, możliwość
skalowania rozwiązań, zapewnienia odpowiedniego poziomu bezpieczeństwa oferowanych
usług oraz uproszczenie zarządzania (administrowania) systemami komputerowymi.
Osiągnięcie sukcesów w rozlicznych zastosowaniach spowodowało, że nagle pojawiło się
wiele komputerów, wiele połączeń w sieci i wiele stacji roboczych. To wszystko wymogło
zastosowanie jednego interface’u graficznego użytkownika (Windows) oraz jednego
programu/mechanizmu obsługi (przeglądarka internetowa).
Osiągnięty sukces dużych systemów komputerowych na początku ich drogi spowodował
powstanie świata małych systemów komputerowych. Kolejne etapy rozwoju małych
systemów komputerowych można sprowadzić do:
komputer klasy PC
sieć komputerów równorzędnych [ang. peer-to-peer]
sieć komputerów z serwerem plików/serwerem wydruku
sieć komputerów jw. z dostępem do Internetu
sieć komputerów jw. z własną pocztą elektroniczną
sieć komputerów jw. z własną stroną www
sieć komputerów jw. z e specjalizowanymi serwerami usług
sieć komputerów jw. z intranetem
sieć komputerów jw. z połączeniem z wielu lokalizacji
sieć komputerów jw. z uwzględnieniem telepracy
sieć komputerów domowych
Jak widać, świat dużych systemów komputerowych w wielu miejscach spotkał się ze światem
małych systemów komputerowych. Na obecnym etapie jest to praktycznie całość.
Widać także jak to się rozwija na poziomie biznesu. Na początku pojedynczy serwer pełnił
wszystkie funkcje (small business). Ze względu na coraz potrzebę coraz większego
dostosowania sprzętu i oprogramowania do realizowanych usług, a także dywersyfikację
platform sprzętowych i programowych wymuszoną potrzebą zwiększonej niezawodności,
zaczęto używać wielu serwerów, z których każdy realizował pojedynczą funkcję (rozwiązanie
dla ang. corporate business]. Dalszy rozwój specjalizacji serwerów i rozwój terytorialny
przedsiębiorstw wymusił nie tylko serwery rozproszone lokalnie, ale także rozproszone
terytorialnie. Ponadto zauważono, że wiele serwerów korzysta wzajemnie z zawartości
swoich pamięci masowych. Awaria jednego z serwerów powodowała brak możliwości
dostępu do danych w tej pamięci masowej. Dlatego też oddzielono pamięć masową od
serwera, tworząc ją niejako oddzielną, z możliwością dostępu z dowolnego serwera. Tym
samym zaczęliśmy stosować rozproszoną pamięć masową, co wypłynęło na zwiększenie
niezawodności istniejących rozwiązań.
Tym samym architekturę pamięci masowych można podzielić w sposób następujący:
DAS [ang. Direct Attached Storage] – pamięć (masowa) podłączona bezpośrednio
NAS [ang. Network Attached Storage] – (masowa) pamięć sieciowa
SAN [ang. Storage Area Network] – sieci pamięci masowej.
2
Systemy komputerowe wymagały systemu, który mógłby pracować w środowisku
rozproszonym. Podstawą dla kolejnych rozwiązań stał się system UNIX. Pierwotnie jego
zadaniem było przydzielanie zasobów sprzętowych (jednostka centralna, pamięć)
i zarządzanie nimi umożliwiające skorzystanie z nich przez wielu użytkowników.
Taki kierunek dał szanse wprowadzenie modelu klient-serwer. Model ten powoduje, że
realizowane zadania są rozdzielone pomiędzy klientów i serwer tak, aby optymalnie
wykorzystać zasoby i ich cechy.
Tego typu model legł i podstaw powstania wielu rozwiązań stosowanych w systemach
komputerowych. Jednym z nich jest sieciowy system plików NFS [ang. Network File
System]. Inne rozwiązanie to system wywoływania procedur zdalnych RPC [ang. Remote
Procedure Calling]. Znane jest też rozwiązanie sieciowych usług informacyjnych NIS [ang.
Network Information Service]. Rozwiązania powyższe występują w większości
współczesnych implementacji systemów rozruszonych UNIX.
Aby mogły być tworzone rozwiązania wzbogacające systemy rozproszone o dodatkowe cechy
i dodatkową funkcjonalność, system operacyjne powinny posiadać specyficzne własności.
Przykładem takiej własności jest otwartość [ang. openness]. Umożliwia ona rozbudowę
systemu w celu spełnienia nowych wymagań wynikających z potrzeb użytkowników
i nowych zastosowań.
3