Wstęp

Intelligent Storage Server (w skrócie ISS) to system klastrowy, który trudno sklasyfikować w istniejących kategoriach klastrów. Jest to system udostępniający blokową pamięć masową w postaci wirtualnych dysków. Z punktu widzenia użytkownika na komputerze-kliencie systemu dysk taki nie różni się zasadniczo niczym od lokalnego dysku podłączonego bezpośrednio. ISS pełni zatem funkcję systemów typu Storage Area Network

Główną ideą ISS jest wykorzystanie standardowych, a więc dostępnych i tanich komputerów PC jako węzłów systemu, połączonych bardzo szybką i wydajną siecią typu SAN. Do węzłów podłączone są dyski stałe za pośrednictwem typowych kontrolerów SCSI lub IDE. Może to czynić ISS rozwiązaniem o lepszym stosunku ceny do wydajności w porównaniu z systemami opartymi na FCS. Jednocześnie wykorzystanie pełnych komputerów, pracujących pod kontrolą jednego z typowych systemów operacyjnych, stwarza nowe możliwości, niedostępne dla typowego systemu Storage Area Network

Posiadanie wolnych cykli na komputerze dedykowanym do obsługi dysków pozwala na implementację różnego rodzaju mechanizmów zwiększających wydajność systemu oraz rozwiązań zapewniających jego wysoką dostępność. Przykładowo -- pamięć w węzłach ISS wykorzystywana jest jako schowek drugiego poziomu (ang. second-level cache). Schowkiem pierwszego poziomu może być schowek na odczytywane/zapisywane bloki w systemie operacyjnym (ang. buffer cache) bądź też schowek zawarty w silniku bazy danych. Mając do dyspozycji na schowek pamięć wielkości od 0,5 do 1 GB (lub nawet więcej) można znacząco podnieść wydajność systemu, gdyż schowki pierwszego poziomu działające na komputerze-kliencie z reguły są znacznie mniejsze. Dodatkowo stosowane algorytmy zwalniania pamięci w schowku ISS można dopasować do konkretnego zastosowania. Na przykład, niewątpliwie inny schemat dostępu do dysku cechuje systemy baz danych, a inny systemy przetwarzania ruchomego obrazu. Podczas prac nad ISS opracowano nowy algorytm zwalniania bloków w schowku -- algorytm MQ (ang. multi-queue), dający lepsze wyniki niż standardowe algorytmy takie jak np. LRU [9]. 

Dalsze możliwości stwarza implementacja rozproszonego schowka w połączeniu z programowym RAID. Można wtedy zaimplementować tzw. szybkie zatwierdzenie w pamięci (ang. memory fast commit). Polega to na tym, iż klient chcąc zapisać dane przesyła je do dwóch węzłów systemu (które obsługują dwie kopie danych, np. w organizacji RAID-1), gdzie zostają one umieszczone w schowku, a ich zapis na dysk odkładany jest na później (ang. write-back cache). Ponieważ dane zostają umieszczone na dwóch węzłach, awaria jednego z nich nie spowoduje utraty danych. Nadal jest to rozwiązanie bardzo wydajne, bowiem przesłanie danych nawet do dwóch węzłów siecią o przepustowości 1 GB/s jest o kilka rzędów wielkości szybsze niż czekanie na ich zapis na dysku, szczególnie w sytuacji, gdy w kolejce na obsłużenie przez dysk czekają wcześniejsze żądania.


Grzegorz Całkowski 2001-02-28