Wstęp

Rozwój technologii informatycznych nabrał w ostatnich latach znacznego tempa, którego głównym motorem jest niesłychanie szybki rozwój i popularyzacja Internetu. Wraz z rozwojem usług internetowych gwałtownie rośnie zapotrzebowanie na wydajne, niezawodne i pojemne systemy pamięci masowej. Według prognoz International Data Corporation w najbliższych trzech latach liczba danych na świecie przechowywanych w pamięciach masowych szybkiego dostępu wzrośnie ponad dziesięciokrotnie [3]. 

Sytuacja taka powoduje, iż w placówkach badawczych przedsiębiorstw informatycznych oraz w ośrodkach akademickich trwają intensywne prace nad opracowaniem nowatorskich systemów pamięci masowych, które byłyby niezawodne, wydajne i również tanie. 

Pomysłem na realizację tego rodzaju systemu jest wykorzystanie technologii systemów klastrowych, tj. rozwiązań polegających na powiązaniu grupy komputerów szybką i wydajną siecią, które mogą zapewnić nieprzerwaną pracę systemu nawet w przypadku awarii pewnych elementów systemu. Zbudowanie takiego systemu w oparciu o standardowe komputery typu PC pozwala istotnie zmniejszyć koszty. 

W systemach tego rodzaju kluczową rolę pełnią mechanizmy komunikacji sieciowej, których cechy decydują między innymi o ich wydajności i niezawodności. Podstawową rolę odgrywają tutaj odpowiednie rozwiązania sprzętowe. Nie mniejsze znaczenie ma jednak warstwa oprogramowania sieciowego pozwalającego efektywnie wykorzystać sprzęt.

Celem niniejszej pracy było opracowanie biblioteki komunikacyjnej, która zapewniłaby możliwie najwyższą wydajność, a jednocześnie stanowiła dla programisty wygodne i łatwe w użyciu narzędzie. Biblioteka ta powstała w oparciu o standard Virtual Interface Architecture, umożliwiający komunikację z pominięciem jądra systemu operacyjnego, a więc pozwalający na uniknięcie narzutów związanych z rozbudowanymi implementacjami standardowych protokołów sieciowych takich jak TCP/IP. Bibliotece nadano nazwę Advanced Cluster Library (ACL).

Rozdział 1 poświęcono wyjaśnieniu znaczenia pojęcia klastra, zwanego także wielokomputerem. Opisano w nim rodzaje mechanizmów komunikacji stosowanych w klastrach, a także wyjaśniono modne w ostatnich czasach pojęcia System Area Network (SAN) oraz Storage Area Network

Rozdział 2 zawiera szczegółowe omówienie standardu Virtual Interface Architecture. Ponadto przedstawiono w nim jedną z dostępnych implementacji VIA (Giganet cLAN). 

W rozdziale 3 opisano przykładowy klastrowy system pamięci masowej o nazwie Intelligent Storage System. System ten był tworzony początkowo przez zespół z NEC Research Institute i Uniwersytetu w Princeton, który pod nazwą Virtual Volume Vault jest rozwijany dalej przez firmę Emphora, Inc. 

Rozdział 4 stanowi szczegółowy opis koncepcji i założeń biblioteki ACL oraz rozwiązań w niej przyjętych. W rozdziale 5 opisano szereg testów porównujących wydajność ACL z surowym VIA. Przestawiono także analizę niektórych rozwiązań przyjętych w ACL. 

Rozdział 6 zawiera podsumowanie pracy. 

W dodatku A przedstawiono najistotniejsze elementy interfejsu programisty ACL, zaś w dodatku B zawarto uproszczony model obiektowy implementacji ACL. 

Dodatek C zawiera opis struktury nieblokującego stosu wykorzystanej w implementacji biblioteki.


Podziękowania

Autor pragnie podziękować Pani dr Janinie Mincer-Daszkiewicz za cierpliwość oraz cenne i wnikliwe uwagi dotyczące pracy oraz dr-owi Cezaremu Dubnickiemu za umożliwienie pobytu w NEC Research Institute, za współpracę i opiekę merytoryczną przy tworzeniu biblioteki ACL.
Warszawa, luty 2001
 

Grzegorz Całkowski 2001-02-28