Single System Image

SSI – Single System Image (jednolity obraz systemu) – rodzaj klastra komputerowego, w którym użytkownik widzi węzły klastra jako jeden system. Przykładem takich systemów są m.in. OpenSSI, MOSIX, openMosix[1]. Koncepcja przeważnie kojarzona z Rozproszonym Systemem Operacyjnym[2][3][4], ale pojedynczy jednolity obraz systemu może być stosowany z bardziej przyziemnych powodów, jak na przykład zarządzanie procesami, które może być osiągnięte poprzez stosowanie dodatkowej warstwy oprogramowania, ponad obrazami konwencjonalnych systemów uruchamianych na poszczególnych węzłach.[5]Zainteresowanie SSI wynika z założenia, że tego typu klastry mogą być łatwiejsze w użytku i administrowaniu, niż bardziej wyspecjalizowane. Różne systemy SSI mogą udostępniać bardziej lub mniej złożoną formę iluzji pojedynczego systemu.

Możliwości systemów SSI edytuj

Różne systemy SSI, w zależności od ich przeznaczenia, udostępniają wybrane funkcjonalności.

Migracja Procesów edytuj

Wiele systemów SSI udostępnia mechanizmy migracji procesów[6]. Proces może zostać uruchomiony na jednym węźle i zostać przeniesiony na inny, na przykład w wyniku działania mechanizmów balansowania zasobów albo powodów związanych z ich administrowaniem, na przykład[a]. Jednocześnie z przeniesieniem procesu na inny węzeł, przykładowo IPC, mogą zostać przeniesione z nim również zasoby.

Mechanizm punktów kontrolnych procesów edytuj

Niektóre systemy SSI dopuszczają stosowanie checkpointing – mechanizmu punktów kontrolnych w uruchomionym procesie, pozwalając na zapisywanie jego aktualnego stanu z możliwością ponownego przywołania go w przyszłości[b]. Checkpointing może być rozważany jako rodzaj migracji procesu pomiędzy węzłami, poprzez wykonanie jego obrazu w ramach mechanizmu punktów kontrolnych na jednym węźle i odtworzenia jego stany na innym węźle. Alternatywnie Checkpointing może być rozważany jako migracja na dysk.

Jednolita przestrzeń procesu edytuj

Wybrane systemy SSI wprowadzają iluzję jakoby wszystkie procesy były uruchomione na jednej maszynie, dzięki czemu narzędzia zarządzania procesami (np. "ps", "kill" na systemach typu Unix) działają na wszystkich procesach w klastrze.

Jednolity system plików edytuj

Większość systemów SSI wprowadza Jednolity Systemu Plików. Może być to osiągnięte poprzez stosowanie serwerów NFS, współdzielonych pamięci masowych lub nawet replikację plików.

Zaletą jednolitego systemu plików jest to, że procesy uruchomione na dowolnym węźle posiadają dostęp do wszystkich danych bez ograniczeń. Jeśli klaster udostępnia migrację procesów, jednolity system plików umożliwia bezpośredni dostęp do plików przechowywanych w węźle, gdzie proces był uruchomiony przed migracją.

Wybrane systemy umożliwiają równoległe z jednolitym systemem plików stosowanie struktur nieujednoliconych, właściwych dla danego węzła, np. HP TruCluster udostępnia "context dependent symbolic link" (CDSL) który wskazuje na różne pliki w zależności od tego który węzeł próbuje uzyskać do nich dostęp. To może być niezbędne w przypadku zarządzania klastrami heterogenicznymi, gdzie nie wszystkie węzły posiadają tę samą konfigurację.

Jednolita przestrzeń I/O edytuj

Niektóre systemy SSI umożliwiają dostęp do urządzeń wejścia/wyjścia (np. taśmy, dyski, linie transmisyjne itp) właściwych dla danych węzłów, przez inne węzły. Mogą występować pewne ograniczenia w typie dostępu do danego urządzenia (Na przykład OpenSSI nie może węzłom montować dysków innych węzłów).

Jednolita przestrzeń IPC edytuj

Różne systemy SSI pozwalają procesom z różnych węzłów komunikować się za pomocą mechanizmów komunikacji między procesowej (inter-process communications mechanisms), tak jakby były one uruchomione na tej samej maszynie. W niektórych systemy SSI dotyczy to nawet współdzielonej pamięci (shared memory) (może być osiągnięte z Software Distributed shared memory).

W większości przypadków komunikacja między procesowa (IPC) będzie wolniejsza niż pomiędzy procesami uruchomionymi na tej samej maszynie, zwłaszcza w przypadku współdzielonej pamięci, dlatego w celu redukcji tego zjawiska, niektóre systemy SSI stosują nawet specjalne urządzenia.

Adresy IP klastra edytuj

Niektóre systemy SSI wprowadzają adresy klastra "cluster address", pojedyncze adresy widoczne poza klastrem, które mogą być wykorzystywane do komunikowania się z klastrem tak jakby był na tej samej maszynie. To może być wykorzystywane przy load balancing'u i jego odwołaniach przychodzących, które można przekierować do mniej obciążonych węzłów, lub przy redundancji, podczas przenoszenia węzła z jednej maszyny na drugą, podczas opuszczania lub przyłączania się węzła do klastra, co często jest powodem do crashu systemu.

Przykłady systemów klastrów SSI edytuj

SSI Properties of different clustering systems
Name Process migration Process checkpoint Single process space Single root Single I/O space Single IPC space Cluster IP address[i]
Amoeba[ii] Tak Tak Tak Tak ? Tak ?
AIX TCF[iii] ? ? ? Tak ? ? ?
BProc[iv] ? ? Tak ? ? ? ?
DragonFly BSD[v] ? ? ? ? ? ? ?
Genesis
Inferno
Kerrighed Tak Tak Tak Tak ? Tak ?
LinuxPMI[vi] Tak Tak Nie Tak Nie Nie ?
LOCUS[vii] ? ? Tak Tak Tak Yes[viii] ?
MOSIX Tak Tak Nie Tak Nie Nie ?
Nomad[ix] Tak ? Tak Tak ? ? ?
openMosix[x] Tak Tak Nie Tak Nie Nie ?
Open-Sharedroot[xi] Nie Nie Nie Tak Nie Nie Tak
OpenSSI Tak Nie Tak Tak Tak Tak Tak
VMScluster Nie Nie Tak Tak Tak Tak Tak
Plan 9
Plurix
Sprite[xii] Tak ? Nie Tak Tak Nie ?
TruCluster[xiii] Nie ? Nie Tak Nie Nie Tak
  1. Wiele klastrów SSI bazujących na Linux może używać Linux Virtual Server w celu implementacji pojedynczego adresu IP
  2. Rozbudowa Amoeba jest prowadzona przez Dr. Stefana Bosse na BSS Lab
  3. AIX TCF zostało udostępnione w AIX 1. W tej chwili jest nieaktywne.
  4. Bproc to Beowulf Distributed Process Space
  5. Dalszym celem DragonFly jest osiągnięcie SSI
  6. LinuxPMI jest następcą openMosix
  7. LOCUS jest aktualnie nieaktywny.
  8. LOCUS wykorzystuje named pipes do działania IPC
  9. The Nomad Project. [dostęp 2010-09-24]. [zarchiwizowane z tego adresu (2011-06-10)].
  10. openMosix był odłamem MOSIX, aktualnie nieaktywny.
  11. Open-Sharedroot jest współdzielonym drzewem klastra ATIX
  12. System operacyjny Sprite jest nieaktywny.
  13. TruCluster jest częścią systemu operacyjnego Tru64 od Hewlett-Packard

Uwagi edytuj

  1. może być konieczne przeniesienie procesów długoterminowych z węzła, który zostanie wyłączony w celu konserwacji / re-konfiguracji na inny
  2. Checkpointing jest przydatny chociażby w przypadku klastrów wykorzystywanych w obliczeniach high-performance computing, zapobiegając utracie pracy w przypadku restartu klastra czy węzła.

Przypisy edytuj