Sieciowy bypass OS

Wykorzystując Ethernet 1 Gb/s i 10 Gb/s, serwery w klastrze komunikują się ze sobą bardzo szybko, pamięci masowe pracują wydajnie, a olbrzymie bloki danych są przemieszczane w bardzo krótkim czasie. Jednak trzeba rozwiązać pewne problemy ograniczające rzeczywistą przepustowość połączeń.

Wykorzystując Ethernet 1 Gb/s i 10 Gb/s, serwery w klastrze komunikują się ze sobą bardzo szybko, pamięci masowe pracują wydajnie, a olbrzymie bloki danych są przemieszczane w bardzo krótkim czasie. Jednak trzeba rozwiązać pewne problemy ograniczające rzeczywistą przepustowość połączeń.

Przyjrzyjmy się trzem czynnikom towarzyszącym transferom sieciowym, które obciążają w nadmierny sposób układ CPU zadaniami administracyjnymi i powodują, że koszty związane z obsługą operacji I/O są tak duże. Są to: konieczność buforowania danych, obsługa transportu danych oraz kontekstowe przełączanie aplikacji. Uznając wagę problemu, konsorcjum RDMA i IETF opracowały rozszerzenia standardów Ethernet i TCP/IP, które pozwalają zmniejszyć koszty obsługi operacji I/O w każdym z trzech wymienionych powyżej obszarów. Zbiór tych wszystkich specyfikacji jest znany pod nazwą iWarp.

Chociaż technologie RDMA (Remote Direct Memory Access) i Transport Offload Engines pozwalają w dużym stopniu redukować koszty związane z zarządzaniem operacjami I/O, to największe koszty wiążą się z przełączaniem kontekstowym. Badania pokazują, że przełączanie kontekstowe stanowi blisko 40% takich kosztów. Z przełączaniem kontekstowym mamy do czynienia wtedy, gdy zadanie realizowania procesu jest przenoszone z obszaru użytkownika do obszaru jądra. Spróbujmy przyjrzeć się temu problemowi bliżej.

Zmiana kontekstu

Sieciowy bypass OS

Bypass systemu operacyjnego

Mówiąc najprościej, w "obszarze użytkownika" są uruchamiane i realizowane wszystkie programy użytkownika. Programy tam się znajdujące wysyłają do systemu operacyjnego (do jego jądra) uprzywilejowane żądania (które muszą być natychmiast obsłużone), w tym żądania I/O wymieniające dane z siecią lub z pamięcią masową.

W "obszarze jądra" są realizowane przerwania sprzętowe oraz znajdują się sterowniki urządzeń. Jądro odgrywa rolę bezpiecznego interfejsu łączącego system z warstwą sprzętową komputera. Jest to interfejs, który udostępnia wielu procesom dostęp do współużytkowanych zasobów komputera (decydując o tym, który z nich ma pierwszeństwo) oraz zapewnia im bezpieczeństwo.

Przesyłanie danych między programami użytkownika i siecią czy pamięcią masową wymaga zawsze przechodzenia z obszaru użytkownika do obszaru jądra (albo w odwrotną stronę). Każde takie przejście wymaga zapamiętania danych kontekstowych o procesie użytkownika oraz załadowania danych kontekstowych jądra. Zadanie zapamiętania informacji o procesie użytkownika i ładowania informacji o procesie jądra jest określane mianem przełączania kontekstowego.

Normalnie przełączanie kontekstowe wymaga zapamiętania wielu informacji (o przestrzeni adresowej, o stosie oprogramowania, stanie rejestrów, liczniku programu itp.), a następnie załadowania innych informacji, które posłużą do obsługi nowego procesu. Wtedy (dysponując nowymi informacjami) CPU przystępuje do realizowania procesu jądra.

Technice eliminowania przejść z obszaru użytkownika do obszaru jądra i związanych z nimi przełączeniami kontekstowymi przypisano nazwę "bypassu" systemu operacyjnego. Jak widać na rysunku, wywołania systemu operacyjnego zostały wyeliminowane dzięki zmodyfikowaniu biblioteki I/O. Modyfikacja jest całkowicie przezroczysta dla aplikacji i pozwala przekazywać wszystkie instrukcje komunikacyjne bezpośrednio do adaptera I/O, bez potrzeby uciekania się do operacji przełączania kontekstowego obszar użytkowika-obszar jądra. Technika obchodzenia (bypass) określonych zadań wykonywanych przez system operacyjny zdała już egzamin i jest od lat stosowana w celu zwiększenia wydajności połączeń stosowanych w klastrach do sprzęgania ze sobą w jeden organizm serwerów.

Specyfikacja iWarp pozwala adapterowi kanałów Ethernet (zgodnemu z tą specyfikacją) zamieniać w sposób przezroczysty interfejsy sieciowe Ethernet, ponieważ adaptery kanałów Ethernet w stu procentach są zgodne z używaną obecnie infrastrukturą Ethernetu: z okablowaniem, routerami, przełącznikami i aplikacjami. iWarp definiuje też nowy interfejs, która pozwala oprogramowaniu aplikacyjnemu komunikować się bezpośrednio z adapterem kanałów Ethernet.

Aby w pełni wyeliminować koszty związane z obciążeniem CPU (z tytułu obsługiwania operacji I/O), adapter kanałów Ethernet powinien wspierać wszystkie trzy metody: RDMA, TCP offload i "bypass" systemu operacyjnego. W przeciwnym razie układ CPU będzie w nadmiernym stopniu zajęty obsługiwaniem połączeń sieciowych, zamiast zająć się obsługą podstawowych aplikacji uruchamianych na serwerze.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200