QoS W SYSTEMACH KLASTROWYCH Tomasz Rak Rzeszow

Transkrypt

QoS W SYSTEMACH KLASTROWYCH Tomasz Rak Rzeszow
QoS W SYSTEMACH KLASTROWYCH
Tomasz Rak
Rzeszow University of Technology, Control and Computer Engineering Chair, ul.
Wincentego Pola 2, 35-959 Rzeszow
[email protected], tel. (+48 17) 8651767
Quality of Service, systemy klastrowe
Streszczenie
Obecnie, rozwój usług internetowych osiągnął etap, w którym oczekuje się od nich gwarancji
dostępu oraz prawidłowego działania. W niniejszym opracowaniu zostaną przedstawione
podstawowe informacje na temat gwarancji jakości usług (QoS) dla serwisu internetowego
opartego na systemie klastrowym. ZałoŜono, Ŝe serwis internetowy jest w duŜej mierze
niezaleŜny od stosowanych usług i platformy sprzętowej.
Abstract
A stage has at whitch availability and performance guarantees are expected of these web
services. In the paper is presented information to provide Quality of Service (QoS) guarantee
for cluster-based Internet service. It is assumed that the internet service is largely independent
of the service application and the hardware/platform of the cluster.
1. Wstęp
Gwałtowny wzrost wykorzystania Internetu do celów komercyjnych zwiększył wymagania
dla platform sprzętowych, na których bazują poszczególne jego węzły. Nowe zastosowania
wymagają m. in. większej mocy obliczeniowej, szybszej komunikacji, większej szerokości
pasma, bardziej elastycznej kontroli zasobów, większej dostępności i tolerancji błędu.
Obecnie systemy internetowe muszą być bardziej niezawodne (powtarzalność jednorodnej
strukturze), lepiej skalowalne oraz przenośne. Ich zakres działania obejmuje m. in. symulację
on-line zjawisk pogodowych, akwizycję i analizę danych, środków łączności, multimediów,
awioniki, rozłoŜonych rozliczeń finansowych, odzyskiwania informacji, cyfrowych bibliotek i
interfejsów elektronicznych. Nowym wyzwaniem jest wymaganie, aby poprawność działania
aplikacji nie zaleŜała tylko od poprawności wyników, ale teŜ od czasu ich dostarczenia. Tym
wymaganiom moŜe sprostać tylko odpowiednio projektowane architektury systemu oraz
ustalene najbardziej odpowiednie zasady ich działania. System musi być zdolny do
dostarczenia aplikacjom potrzebnych parametrów osiągów taki sposób osiągów i w takim
czasie, aby usługi spełniały zdefiniowane parametry jakościowe QoS (ang. Quality of
Service). Oczekiwania te mogą m. in. spełniać systemy klastrowe, ze względu na ich
moŜliwość dostosowania do zmieniających się potrzeb [7].
2. Systemy klastrowe
Klastry stacji roboczych stają się atrakcyjną ekonomicznie alternatywą dla superkomputerów
przeznaczonych do wysokowydajnych obliczeń. UŜywanie klastrów staje się bardzo
popularną metodą rozwiązywania duŜych i problemów naukowych. Rozbudowane systemy
tego typu są bardziej efektywne i niezawodne (dla np. systemów składowania danych czy
systemów militarnych) niŜ superkomputery.
Jednym z obszarów ich zastosowań jest przetwarzanie baz danych umiejscowionych na wielu
odległych komputerach. Przykładem jest modelowanie map pogody z wykorzystaniem
systemu Paragon (do obliczeń atmosferycznych) i C90 (do modelowania promieniowania
słonecznego).
Luźnie połączone sieci stacji roboczych mają następujące właściwości:
•
Globalna moc obliczeniowa jest dostępna lokalnie.
•
Zmniejszenie czasu odpowiedzi przez wykorzystanie wysokiej mocy obliczeniowej.
•
Stacje są często bezdyskowe po to by proces uruchamiania maksymalnie uprościć.
Poszczególne stacje wchodzące w skład klastra są często własnością określonego
uŜytkownika i wtedy są tak odciąŜane dodatkowymi zadaniami, aby nie zwiększyć czasu
odpowiedzi dla programów właściciela.
Znane od wielu lat komputery wieloprocesorowe SMP (ang. Symmetric MultiProcessing)
rzadko mają więcej niŜ 32 procesory, zaś w maszynach typu NUMA (ang. Non-Uniform
Memory Access) i pokrewnych, kosztownym i skomplikowanym elementem są podsystemy
łączące procesory z pamięcią). Klaster to kilka maszyn połączonych interfejsem
komunikacyjnym, które z punktu widzenia uŜytkownika (konkretnej usługi) są pojedynczym
systemem. Klastry z zasady są tańsze, (choć w przeliczeniu na sumaryczną ilość procesorów i
pamięci nieco mniej wydajne) oraz charakteryzują się wyŜszą dostępnością. Rozwiązanie
klastrowe moŜna zakwalifikować do jednej z trzech grup:
• Klastry HA (ang. High Availability) - Rozwiązania mające na celu zapewnienie ciągłej
(wysokiej) dostępności usług. Poza dublowaniem maszyn w klastrach HA wprowadza się
redundantne połączenia pomiędzy maszynami, wchodzącymi w skład klastra oraz
redundantne połączenia z pamięciami masowymi. Poszczególne węzły klastra HA
kontrolują działanie "sąsiadów" przy pomocy protokołu „bicia serca” (ang. heartbeat
protocol). Po stwierdzeniu niedostępności monitorowanej usługi, jest ona przejmowana
przez inny węzeł. Klaster HA moŜna zorganizować na kilka sposobów. MoŜe on zawierać
węzły wolne, oczekujące na przejęcie ruchu od węzłów pracujących lub wszystkie węzły
mogą udostępniać pewne usługi i wzajemnie się monitorować. W drugim przypadku
klaster moŜe dodatkowo równowaŜyć obciąŜenie. Poszczególne węzły mogą udostępniać
tę samą usługę i wzajemnie się zastępować.
•
Klastry obsługujące bazy danych - Przeznaczone do uruchamiania duŜych baz danych lub
hurtowni danych (ang. data warehouse). Podstawowym zadaniem klastra jest tu
równowaŜenie obciąŜenia związanego ze skomplikowanym przetwarzaniem duŜych ilości
danych. Aby zapewnić poprawne działanie tego typu systemów konieczne jest wsparcie
ze strony systemów bazodanowych. Wszystkie najpopularniejsze systemy zarządzania
bazami danych mają wsparcie dla wybranych rozwiązań klastrowych.
•
Klastry do obliczeń równoległych HPC (ang. High Performance Computing) równowaŜą
obciąŜenie związane z obliczeniami. Stosowane są głównie do uruchamiania aplikacji
inŜynierskich i symulacji w warunkach laboratoryjnych. Zarządzanie obciąŜeniem leŜy
zwykle w gestii samych aplikacji (PVM - ang. Parallel Virtual Machine, MPI - ang.
Message Passing Interface), zaś klaster powinien oferować wygodne mechanizmy
komunikacji i odpowiednie biblioteki oraz narzędzia do monitorowania obciąŜenia i
rozliczania uŜytkowników [6] [8] [9].
Architektura klastra sieciowego (internetowego)
Klastry internetowe moŜna zaliczyć do dwóch głównych grup: HA i bazodanowych.
Architektura klastra internetowego jest wielowarstwowa. W architekturze tej wyróŜnia się co
najmniej trzy warstwy:
-
serwerów internetowych,
-
aplikacji internetowych,
-
serwerów bazy danych.
Klaster internetowy ma dość złoŜoną architekturę. Jest ona uwarunkowana koniecznością
realizacji róŜnych funkcji oraz wielu czynników obocznych.
NajwaŜniejszym z nich jest bezpieczeństwo. Jak wiadomo serwery internetowe naraŜone są w
największym stopniu na ataki z zewnątrz. Dzięki warstwowej strukturze moŜliwe jest
umieszczenie pomiędzy poszczególnymi warstwami „zapór ogniowych” tzw. Firewall-i.
Innym waŜnym czynnikiem jest zapewne niezawodność systemu, tak aby nawet w wypadku
awarii była moŜliwa ingerencja z zewnątrz, która umoŜliwi uruchomić ponownie system.
Dzięki wykorzystaniu architektury wielowarstwowej moŜliwe jest wyeliminowanie
krytycznych punktów, których awaria mogłaby unieruchomić cały system a co za tym idzie
zablokować wszystkie usługi [1].
Systemy klastrowe (Linux)
Systemy operacyjne stosowane w rozwiązaniach klastrowych to głownie Linux i BSD. Fakt
ten rodzi tylko pytanie o przyszłość. Metodologia rozwoju, która doprowadziła Linux-a do
szczytów popularności, ma jednak pewne ograniczenia. Aby dopracować konkretny aspekt
systemu, potrzebne jest odpowiednie wsparcie ze strony programistów, zainteresowanych
rozwiązaniem tego problemu - np. przeniesienie systemu na konkretną platformę sprzętową
moŜliwe jest tylko wtedy, gdy odpowiednio duŜo osób ma stosowny sprzęt. To samo dotyczy
funkcjonalności. Trudno spodziewać się duŜego wsparcia dla funkcjonalności
charakterystycznej dla bardzo duŜych systemów. Organizacje potrzebujące wielkich
systemów z reguły stać na zakup ich wersji komercyjnych. Z tych powodów Linux
znakomicie sprawuje się na popularnym sprzęcie (x86), ale znacznie gorzej na mniej
popularnym i słabiej udokumentowanym maszynach RISC-owych (ang. Reduced Instruction
Set Computing/Computer).
Wraz ze wzrostem popularności Linux-a oprogramowaniem (Open Source) zainteresowały się
równieŜ wielkie firmy. Niektóre z nich partycypują w rozwoju Linux-a, jednak nie zawsze są
one zainteresowane zwiększaniem skalowalności darmowego oprogramowania. Z pomocą
przyjść mogą firmy Linux-owe zarabiające głównie na usługach czy wsparciu technicznym
oraz firmy produkujące sprzęt. Przyszłość oprogramowania Open Source jako platformy highend nie jest do końca jasna, choć zanosi się na to, Ŝe w przyszłości open source będzie
skutecznie konkurować z największymi systemami komputerowymi.
Linux jest sztandarowym produktem społeczności Open Source. Rozwijany od prawie
dziesięciu lat, jest chyba najbardziej przenośnym systemem operacyjnym ogólnego
zastosowania. Jako system 64-bitowy działa na platformach Alpha, IA-64, MIPS i SPARC.
Jego duŜa uniwersalność, względnie duŜa stabilność i niskie koszty utrzymania sprawiły, Ŝe
stał się najpopularniejszą platformą wśród serwerów internetowych.
Na razie Linux nadaje się przede wszystkim do budowy małych i średnich serwerów i
przewyŜszając moŜliwości Windows NT - przeznaczonego dla tego samego segmentu rynku stanowi dlań bezpośrednią konkurencję. Cechą charakterystyczną systemu Linux jest jego
otwartość - dostępne oprogramowanie pozwala działać jako serwer sieci lokalnej, serwer
internetowy, serwer aplikacji, router, stacja robocza, a nawet jako komputer biurowy (jest
trudniejszy w konfiguracji i ma znacznie mniej oprogramowania, ale jest łatwiejszy i tańszy w
utrzymaniu). Wielkie firmy produkujące oprogramowanie komercyjne przeniosły juŜ swoje
produkty na Linuksa. Dostępne są m.in. serwery baz danych (IBM DB2, Oracle 8i, Informix,
SAP DB, Adabas, Interbase), serwery aplikacji (Oracle WebDB, IBM WebSphere),
środowisko Java (Sun, IBM). Wielość dostępnych dystrybucji pozwala wybrać system o
odpowiadającej charakterystyce i konfiguracji. Coraz powszechniejsze są pakiety
umoŜliwiające tworzenie klastrów przy wykorzystaniu systemu Linux. Producenci duŜych
systemów operacyjnych typu Unix, zapewnia zgodność ich systemów z Linux-em. Wsparcie
dla Linux-a potentatów rynku informatycznego jest faktem.
3. Jakość usług - Quality of Service
W pierwszej kolejności jakość usług była definiowana dla sieci komputerowych. O sieci,
której wydajność róŜni się w zaleŜności od aplikacji Ŝądających do niej dostępu mówi się, Ŝe
ma klasę lub teŜ jakości usług - QoS. QoS jest wskaźnikiem wyróŜniającym sieć spośród
wielu innych.
QoS jest to taka zdolność dowolnych elementów sieci (np. aplikacji, hosta czy routera), która,
daje im moŜliwość zapewnienia takiego natęŜenia ruchu oraz poziomu jakości oferowanych
usług sieciowych, aby były one satysfakcjonujące dla jej końcowego uŜytkownika. MoŜna
powiedzieć, Ŝe im wyŜszy wskaźnik usług QoS, tym szybszy dostęp i mniejsze opóźnienie.
Przez przypisanie aplikacji do róŜnych poziomów QoS moŜemy zróŜnicować wydajność, jaką
będą miały nasze aplikacje, zgodnie z wymaganiami stawianymi sieci. Aby zapewnić QoS
wymagana jest współpraca na wszystkich poziomach sieci (from top-to-buttom), jak równieŜ
we wszystkich jej elementach (from end-to-end).
Przez ostatnie lata, QoS rozwinął się na polu wspomagania nowych typów aplikacji, bardzo
często równieŜ w sieciach i systemach komputerowych. Celem mechanizmów QoS jest
zapewnienie (gwarancja) określonych zasad i obiecywanych wymogów.
NajwaŜniejsze cechy, z punktu widzenia zarządzania siecią (1-5), z punktu widzenia klienta
(6-10), to [3], [4], [10], [11], [12], [13]:
1. Koszty (ang. Cost).
2. Konkurencyjna cena (ang. Competitiveness).
3. Wydajność (ang. Efficiency).
4. Małe koszty wdroŜenia (ang. Implementation costs).
5. Małe koszty uŜytkowania (ang. Usage costs).
6. Jasność i zrozumiałość (ang. Comprehensibility).
7. MoŜliwość łatwej kontroli (ang. Controllability).
8. Przewidywalność zachowania (ang. Predictability).
9. Stabilność (ang. Stability).
10. Sprawiedliwy podział zasobów (ang. Fairness).
Dokładnie, jakie atrybuty (jakości usług), powinny spełniać klastrowe systemy operacyjne
jest wciąŜ sprawą otwartą. PoniŜej podano krótką listę najbardziej poŜądanych cech: łatwość
zarządzania, otwartość, skalowalność, funkcjonalność, dostępność, moŜliwość rozbudowy i
wymiany elementów, tolerowanie awarii, spójność, jakość połączeń, niejednorodność,
wsparcie, stabilność, przezroczystość, bezpieczeństwo, synchronizacja, cena, czas reakcji, itp.
Lista ta nie wyczerpuje zapewne tematu, ale jest dobrym wstępem do pojęcia QoS w
systemach klastrowych. Przedstawione zostaną teraz, bardziej szczegółowo, najwaŜniejsze z
nich:
•
Łatwość zarządzania, administrowania (ang. Manageability) – Absolutną koniecznością
jest zdalne i intuicyjne administrowanie systemem. Jest to często kojarzone z Single
System Imane (SSI), który moŜe być zrealizowany na róŜnych poziomach, sięgając od
wysokiego poziomu ustawień specjalnych skryptów, aŜ po rzeczywisty podział stanów na
poziomie systemu operacyjnego (OS).
•
Stabilność (ang. Stability) –Stabilność jest osiągana przez wykluczenie częstych zmian.
Nic nie powinno zmuszać lub zachęcać nas do wprowadzania zmian w działającym
poprawnie systemie. Stabilność systemu jest bardzo waŜną rzeczą w chwilach duŜego
obciąŜenia systemu.
•
Rozszerzalność, moŜliwość rozbudowy (ang. Extensibility) – System operacyjny
powinien pozwalać na łatwą integrację ze specyficznymi klastrowymi rozszerzeniami.
Aby to uzyskać konieczne jest posiadanie kodu źródłowego, poniewaŜ ujawnia to
wszystkie wewnętrzne szczegóły i pozwala na modyfikacje funkcjonalności. Dobrym
przykładem takiego system klajstrowego jest MOSIX bazujący na Linux-ie.
•
Skalowalność (ang. Scalability) – Skalowanie systemu w obrębie jednej maszyny ma
oczywiście swoje ograniczenia (polegające np. na ograniczeniu liczby węzłów). Systemy
operacyjne działające na klastrze muszą być przystosowane do zmian konfiguracji "w
locie". Skalowalność moŜna rozpatrywać w kilku aspektach:
•
•
Sposób reakcji systemu na wzrost obciąŜenia. Zbyt duŜe obciąŜenie moŜe
doprowadzić do przerwania działania systemu lub jego przeciąŜenia gwałtownego spadku jego wydajności.
Trudno jest dodawać do systemu nowy sprzęt (procesory, pamięć, dyski,
urządzenia we/wy).
•
•
To samo środowisko moŜe obsługiwać małe, średnie i duŜe serwisy oraz rozwijać
się wraz ze wzrostem wymagań.
Wsparcie (ang. Support) – Wiele inteligentnych, technologicznie lepszych rozwiązań w
informatyce nie nadaje się do wykorzystania z powodu braków w: oprogramowaniu,
sterownikach lub narzędziach. Wsparcie zaleŜy głównie od liczby uŜytkowników
głównego systemu, którzy w kontekście klastrów głównie wpływają na koszt sprzętu.
Dodatkowo, wsparcie dla sprzętu do połączeń między węzłami.
•
Niejednorodność (ang. Heterogenity) – Klastry dostarczają dynamicznego sposobu
zarządzania, dzięki czemu mogą być one rozszerzane lub ograniczane na róŜnym sprzęcie,
dokładnie tak jak uŜytkownik potrzebuje lub pozwala. Dlatego teŜ zarządzanie klastrami
nie wymaga jednorodnego sprzętu. To wymaganie, takŜe powoduje, Ŝe sam system
operacyjny powinien pozwalać na zróŜnicowaną architekturę. JeŜeli taki system
operacyjny nie istnieje dla danego sprzętu, naleŜy uŜyć innego.
•
Spójność (ang. Cohesion) - W zaleŜności od rozwiązania system moŜe rzeczywiście
przypominać pojedynczą, równoległą maszynę (ze wspólną przestrzenią identyfikatorów
procesów, wspólnymi zasobami, urządzeniami itd.) lub szybką sieć maszyn mających
jedynie wspólny system plików i oprogramowanie wspomagające uruchamianie aplikacji
równoległych. UŜytkownik korzysta z klastra w łatwy i efektywny sposób bez znajomości
wewnętrznej architektury systemu. Środowisko operacyjne wydaje się znajome (poprzez
znany interfejs komunikacyjny) i wygodne do uŜytku. UŜytkownik ma pełny widok
globalnego systemu plików, procesów i sieci. Na przykład: w klastrze z pojedynczym
punktem wejścia, uŜytkownik moŜe się zalogować na dowolnym węźle. Administrator
systemu instaluje oprogramowanie na węźle dowolnego uŜytkownika, a jest ono widoczne
na przestrzeni całego klastra. W systemach rozproszonych trzeba instalować to samo
oprogramowanie dla kaŜdego węzła. Szczegóły zarządzania zasobami i kontroli
aktywności jak: przydział, zwalnianie i kopiowanie zasobów, są niewidoczne dla
procesów uŜytkownika. Pozwala to uŜytkownikowi na dostęp do zasobów systemowych
jak: pamięć, procesory i sieć, przezroczyście, niezaleŜnie czy są one dostępne lokalnie czy
zdalnie.
Dostępność (ang. Availability) - Wymienione systemy muszą charakteryzować się duŜą
dostępnością. Usługi oprogramowania pośredniczącego muszą być zawsze dostępne. W
dowolnym czasie, punkt awarii powinien być moŜliwy do naprawy bez oddziaływania na
działające aplikacje uŜytkowników. MoŜna to osiągnąć poprzez zorganizowanie punktów
kontrolnych i technologii tolerancji błędów (szybkie przechodzenie w stan spoczynku,
dublowanie i omijanie błędów).
•
•
Tolerowanie awarii (ang. Failure Tolerance) - Musi istnieć moŜliwość rozbudowy i
wymiany poszczególnych elementów systemu podczas pracy (ang. hot swap) oraz pewna
redundancja, umoŜliwiająca tolerowanie awarii. Kiedy usługi są udostępniane przy uŜyciu
zasobów systemowych na wielu węzłach, awaria któregokolwiek węzła nie powinna
wpływać na funkcjonalność systemu. Na przykład: kiedy system plików jest rozdzielony
między wiele węzłów z pewnym stopniem redundancji, gdy węzeł ulega awarii, wtedy
fragment systemu plików moŜe być przemieszczony do innego węzła w sposób
niewidoczny dla uŜytkownika końcowego.
•
Jakość połączeń i rozmieszczenie geograficzne (ang. Quality Connection) - Klaster moŜe
mieć większe lub mniejsze wymagania, co do jakości i szybkości połączeń pomiędzy
węzłami. W klastrach wymagających bardzo szybkich połączeń moŜe zaistnieć
konieczność umieszczenia wszystkich węzłów w jednym miejscu, w wyniku czego system
nie jest odporny np. na klęski Ŝywiołowe. Systemy klastrowe równie dobrze mogą być
•
budowane z węzłów znajdujących się na duŜym obszarze. W takim wypadku na pewno
szybkość ulegnie pogorszeniu, jednak wzrośnie jego niezawodność i niezaleŜność od
czynników zewnętrznych.
Czas reakcji (ang. Response Time) – Czas, w jakim system zareaguje nie jest sprawą
obojętną. Reakcja musi być ściśle określona, a jej czas z góry załoŜony i spełniony. Nie
zachowanie norm czasowych nie pociąga za sobą utraty danych, ale jeŜeli chcemy, aby
jakość usług została zachowana to czas ten ma bardzo duŜy wpływ na system i nie moŜe
zostać wydłuŜony.
4. Jakość usług w systemach czasu rzeczywistego
Systemy czasu rzeczywistego RT (ang. real-time) są definiowane jako takie systemy, w
których poprawność działania zaleŜy nie tylko od logicznego wyniku obliczeń, ale teŜ od
czasu, w jakim te wyniki są otrzymywane. Systemy RT uprawniają do wykonywania
specjalnych zadań w czasie rzeczywistym i obsługę przerwań. Te zadania musza zostać
wykonane niezaleŜnie od innych. Na przykład dla systemu RTLinux w najgorszym przypadku
czas między momentem, kiedy przerwanie sprzętowe jest wykryte przez procesor, a
momentem kiedy przerwanie programu obsługi zaczyna się wykonywać, wynosi poniŜej 15
mikrosekund (dla komputerów x86) [14], [16].
Zwykle, system czasu rzeczywistego składa się z systemu kontrolującego i systemu
kontrolowanego. DuŜy odsetek aktualnie zaimplementowanych systemów czasu
rzeczywistego jest dynamiczne w swojej naturze. Co waŜniejsze, będą musiały być
utrzymywane i rozszerzane naleŜnie z ich ewoluującą naturą i projektowanym długim czasem
Ŝycia. Z powodu tych właściwości, systemy czasu rzeczywistego muszą spełniać wskaźniki
jakości usług. Ich zapewnienie gwarantuje zachowanie ograniczeń czasowych w systemach z
krytycznym czasem wykonywania usług.
Z punktu widzenia zadań czasu rzeczywistego najwaŜniejsze są: przewidywalność, szybkość,
niezawodność, elastyczność, przetwarzanie zadań, itd. Oto one:
•
Przewidywalność – Jest chyba najwaŜniejszym wymogiem jaki musi spełniać warstwa
przesyłania wiadomości czasu rzeczywistego i implikuje determinizm w opóźnieniu
wiadomości. Mówi się o niej wtedy, gdy zadanie lub komplet zadań są aktywowane i
powinno być moŜliwe określenie czasu ich zakończenia. Musi być to jeszcze rozpatrzone
z uwzględnieniem relacji stanu systemu i zadań potrzebujących tych zasobów.
Nieprzewidywalność moŜe w efekcie powodować katastrofalne konsekwencje. Mówimy o
systemach twardych czasu rzeczywistego i systemach miękkich czasu rzeczywistego.
Zadania twardych systemów czasu rzeczywistego są bardziej trudne w realizacji niŜ
zadania systemów miękkich czasu rzeczywistego. Systemy, które obejmowałyby oba typy
równocześnie są jeszcze bardzo trudne w realizacji [15].
•
Szybkość – Nie chodzi tu o jak najszybsze wykonanie zadań, ale o poprawne ich
wykonanie w jak najkrótszym czasie. Szybkość jest więc warunkiem koniecznym, ale
niewystarczającym wykonywania zadań.
•
Niezawodność - Większość systemów czasu rzeczywistego działa z surowymi
wymaganiami niezawodności. Te zadania zwykle mają zagwarantowane wykonanie się w
nieprzekraczalnym terminie, w wyniku wcześniejszych analiz off-line i programów
rezerwujących zasoby dla tych zadań nawet, jeśli to oznacza, Ŝe te zasoby są najczęściej
bezczynne. Inaczej mówiąc, wymagane jest od zadań krytycznych, aby wszystkie
wykonywały się w nieprzekraczalnym terminie (100% gwarancji), przyjmując
wystąpienie pewnych defektów i dodatkowych obciąŜeń.
•
Elastyczność – Systemy czasu rzeczywistego muszą w łatwy sposób przystosowywać się
do nowych oczekiwań. Brak elastyczności takiego systemu jest równieŜ pewnym
ograniczeniem.
•
Rodzaje szeregowania zadań - UŜywając indywidualnego podejścia do sposobów
szeregowania zadań, moŜna przewidywać, Ŝe wykonywane zadania nie będą przekraczać
określonych dla nich limitów czasowych.
Dodatkowo duŜe znaczenie mają:
•
Funkcjonalność,
•
Tolerowanie awarii,
•
Spójność,
•
Jakość połączeń,
•
Stabilność,
•
Wydajność,
•
Skalowalność,
•
Bezpieczeństwo.
Zapewne nie są to wszystkie moŜliwe właściwości QoS jakie dotyczą systemów RT. MoŜna
powiedzieć, Ŝe są to najwaŜniejsze z nich.
5. Wnioski
Dostępne systemy klastrowe mogą uwzględniać tylko niektóre z powyŜszych właściwości
QoS, chociaŜ dostępnych jest coraz więcej klastrów uniwersalnych. Rozwiązania
poszczególnych producentów znacznie róŜnią się między sobą. Niektóre z wymienionych
właściwości zachodzą na siebie. Trzeba zaznaczyć równieŜ, jak pokazują doświadczenia, Ŝe
cele QoS mogą być wzajemnie sprzeczne. Dla przykładu, zapewnienie, określonych usług na
poziomie systemu operacyjnego, drastycznie ogranicza skalowalność. Innym przykładem jest
dostępność otwartego kodu wraz z moŜliwością do rozszerzania systemu operacyjnego na tej
bazie. Dostępność ta ma negatywny wpływ na stabilność systemu. Po pewnym czasie wiele
rodzajów systemu operacyjnego będzie rozwijane i jego róŜne rozszerzenia mogą być
wzajemnie sprzeczne, dlatego waŜną jest odpowiednia koordynacja prac. Zadaniem
projektanta sytemu jest więc, dokładne określenie potrzeb i następnie dobranie do nich
stosownego rozwiązania [2] [5].
Bibliografia:
[1] Cardellini V., Casalicchio E., Colajanni M.: A Performance Study of Distributed
Architectures for the Quality of Web Services, Proc. of Hawaii Int'l Conf. on System Sciences
(HICSS-34), Software Technology Track, Maui, Hawaii, pp. 3551-3560, Jan. 2001. IEEE
Computer Society.
[2] Cardellini V., Casalicchio E., Colajanni M.: Mechanisms for Quality of service in Web
clusters, Computer Networks, Elsevier Science, Vol. 36, No. 6, pp. 759-769, Nov. 2001.
[3] Baker M., Buyya R.: Cluster Computing at a Glance, volume 1 of High Performance
Cluster Computing, pp. 246-269, Prentice Hall PTR, May 1999.
[4] Barak A., La’adan O.: The MOSIX Multicomputer Operating System for High
Performance Cluster Computing, Journal of Future Generation Computer Systems, April
1998.
[5] Zhao W., Olshefski D., Schulzrinne H.: Inetrenet Quality of Service: an Overview,
Technical Report CUCS-003-00, Columbia Univ., Computer Since Dept., Feb. 2000.
[6] Chiola G., Ciaccio G.: Operating Systems Support for Fast Communications in a Network
of Workstations, http://www.disi.unige.it/person/ChiolaG/.
[7] Hwang K., Jin H., Chow C., Wang C., Xu Z.: Designing SSSI Clusters with Hierarchical
Checkpointing and Single I/O Space, IEEE Concurrency, Los Alamitos, USA, IEEE
Computer Society, pp. 60-69, 1999.
[8] Bernard G., Simatic M.: A Decentralized and Efficient Algorithm for Load Sharing in
Networks of Workstations, In Proc. EurOpen Spring '91 Conference, Tromso (Norway), May
1991.
[9] Geist G.: Cluster Computing: The Wave of the Future? , Parallel Scientific Computing,
First International Workshop, PARA '94, Lyngby, Denmark, June 20-23, pp. 236-246, 1994.
[10] WhitePaper: The Need for QoS, The Internet Protocol’s „best-effort” service has worked
well so far, so why do we need to change it?, http://www.stardust.com/.
[11] Steinmetz R., Wolf L., Hutchison D.: Quality of Service: Where are We? , IWQoS2001
(Proceedings of the 9th International Workshop on Quality of Service), Vol. 2092 in Lecture
Notes in Computer Science. Springer-Verlag, Heidelberg, 2001.
[12] Ferrari D., Delgrossi L.: Charging For QoS, CTR-T98-003, Piacenza, Aprile 1998.
[13] Moorsel A., Aad P.: Metrics for the Internet Age: Quality of Experience and Quality of
Bisiness, HP Labs Technical Report.
[14] Yodaiken V., Barabanow M.: RTLinux Version Two, LinuxJournal, 34, February1997.
[15] Stankovic J., Ramamrutham K.: What is Predictability for real-Time Systems, Real-Time
Systems Journal, vol. 2, pp. 247-254, December 1990.
16. Stankovic J.: Misconceptions about real time computing: A serious problem for nextgeneration systems, IEEE Computer, vol 21, no. 10, October 1988.