SSD usunie trudności w komunikacji

Nie ma wątpliwości, że w dającej się przewidzieć przyszłości nośniki SSD będą siłą napędową innowacji w świecie pamięci masowych. Wciąż jednak sporo udoskonaleń wymagają komunikacja sieciowa i interfejsy dyskowe, ponieważ to one obecnie stanowią wąskie gardło w komunikacji między serwerami a macierzami.

Można pokusić się o śmiałe stwierdzenie, że jakieś 90 % użytkowników nie potrzebuje wydajności, jaką oferują choćby najwolniejsze macierze z nośnikami SSD. Co więcej, wydajność tego typu urządzeń jest mniej więcej dwukrotnie wyższa, niż wymagana obecnie przez większość użytkowników. Płynie z tego ważny wniosek. Zastosowanie nośników SSD umożliwia rozwiązanie problemów z wydajnością macierzy, więc warto zainteresować się tymi urządzeniami. Dzięki temu można zająć się wąskimi gardłami wydajności występującymi w innych obszarach.

Nowa generacja macierzy flash (zarówno czystych SSD jak i hybrydowych) z nadmiarem spełnia wymagań przedsiębiorstw. Można wręcz powiedzieć, że zmieniają one reguły gry i umożliwiają klientów ponowne zastanowienie się, w jaki sposób przydzielać zasoby pamięci masowych, jak nimi zarządzać i jak je budżetować. To dobra wiadomość, która tchnęła ponownie życie w skostniałą branżę pamięci masowych.

Zobacz również:

Macierze SSD są już jakiś czas na rynku, można więc zastanowić się, co dalej. Ta branża wciąż ma przestrzeń do innowacji. Wprawdzie nośniki SSD pchnęły wydajność macierzy SSD na nowy poziom, ale też odsłoniły wąskie gardła w innych obszarach, które wcześniej nie rzucały się w oczy.

Jak przesyłane są dane

Warto zacząć od krótkiego wyjaśnienia, jak podróżuje blok danych między serwerem a połączoną z nim pamięcią masową. W większości dzisiejszych platform ta droga wygląda następująco:

  1. serwer -> kontroler: dane wychodzą z serwera, wykorzystując jeden z protokołów (z reguły FC, FCoE lub iSCSI) i trafiają do pamięci podręcznej kontrolera;
  2. kontroler: ten komponent wykonuje różne operacje na danych (deduplikacja, kompresja, obliczanie parzystości) i przygotowuje je do przeniesienia na pamięć masową;
  3. kontroler -> pamięć masowa: dane opuszczają kontroler poprzez jeden z protokołów (FC lub SAS) i trafiają do docelowej lokalizacji – pamięci masowej;
  4. pamięć masowa: w zależności od nośnika, mogą być jeszcze wykonywane takie operacje na danych, jak szyfrowanie czy obliczanie sum kontrolnych.

Jeśli o tych czterech etapach pomyśli się jako o czterech potencjalnych wąskich gardłach, może zastanowić się, skąd dokąd nośniki SSD przesunęły problemy z wydajnością. Oczywistą sprawą jest rozwiązanie problemów w ostatnim z tych etapów – na poziomie nośników pamięci masowych. SSD zwiększyły liczbę operacji wejścia/wyjścia pojedynczego nośnika z kilkuset na sekundę do wielu tysięcy. Jednocześnie zmniejszyły opóźnienia o 5 do 10 razy w porównaniu z najlepszymi dyskami obrotowymi. Mniej oczywistą, ale chyba ważniejszą innowacją wprowadzoną przez nośniki SSD są zmiany w kontrolerze. Aby SSD były atrakcyjnym rozwiązaniem z punktu widzenia kosztów przeliczanych na cenę za 1 gigabajt, a jednocześnie, aby nie utracić ich wydajności, udoskonalenia wymagało oprogramowanie kontrolera. Chodziło o to, żeby działało szybciej i bardziej inteligentnie. Oprogramowanie kontrolera wymagało zmiany, aby:

• zredukować opóźnienia;

• obsługiwać na bieżąco mechanizmy optymalizacji, jak deduplikacja i kompresja;

• zarządzać wewnętrznymi mechanizmami wydajności SSD, np. alokacji danych (garbage collection).

W efekcie możemy zaobserwować spore udoskonalenia w oprogramowaniu kontrolerów, które umożliwiły utrzymanie tempa wzrost wydajności macierzy zgodnie z prawem Moore’a.

Tu wciąż jest wąskie gardło

Nośniki SSD uwydatniły problemy z wydajnością, jakie występują na etapie transmisji danych między serwerem a kontrolerem. Sporo rzeczy wymaga w tym obszarze poprawy. Oczywiście zwiększa się przepustowość interfejsów FC czy Ethernet, ale wciąż obsługują one te same protokoły (FC, iSCSI, CIFS oraz NFS), co 15 lat temu. Te protokoły, mimo że dobrze realizują zadania, do których zostały zaprojektowane, z pewnością ich twórcy nie uwzględnili realiów świata, w którym dziesiątki, a nawet setki serwerów są podłączone do jednej macierzy, generując tysiące operacji wejścia/wyjścia na sekundę.

Ewidentnie jest więc potrzeba opracowania nowych protokołów, które charakteryzowałyby się mniejszymi opóźnieniami i sprawdzałyby się w środowiskach o bardzo różnej wielkości, także w tych największych. Powinny być również łatwiejsze w zarządzaniu niż dzisiejsze protokoły. W świecie akademickich rozważań jest wiele świetnych pomysłów, ale przejście od pomysłu do realizacji jest bardzo powolnych procesem. Wystarczy przypomnieć sobie, ile czasu trwało zaakceptowanie FCoE, który jest jedynie wariantem protokołu FC, a nie całkiem nowym protokołem.

Ostatnim elementem układanki, który również wymaga dopracowania, jest etap przesyłania danych między kontrolerem a nośnikami danych. Obecnie większość macierzy korzysta z interfejsów SAS lub FC, aby uzyskać dostęp do nośników. Te protokoły dobrze sprawdzają się w przypadku dysków obrotowych, szczególnie po zwiększeniu ich prędkości obrotowych i poprawieniu niezawodności. Jednakże, podobnie jak z innymi przestarzały protokołami, nie są one dostosowane do specyfiki nośników SSD. W szczególności nie skalują się dobrze w dużych środowiskach i nie uwzględniają konieczności redukcji opóźnień.


TOP 200