SSD usunie trudności w komunikacji

Poprawianie interfejsów

Na szczęście badacze z Intela i kilku innych organizacji dostrzegli wspomniane problemy z interfejsami już kilka lat temu i pracują nad rozwiązaniami. Interfejs SAS jest określany mianem korporacyjnego, zaś SATA jako interfejs do zastosowań konsumenckich, co ma swoje logiczne uzasadnienie. Jednakże z dużym prawdopodobieństwem nową architekturą komunikacyjną będzie kolejna wersja interfejsów SATA, ogólnie nazywana SATA Express. Ten interfejs ma kilka interesujących właściwości:

• obsługuje urządzenia korzystające ze starszego interfejsu SATA 3.0 6 Gbit/s dzięki zastosowaniu standardu AHCI;

• poprzez ten sam standard obsługuje systemy pamięci masowych PCIe;

• obsługuje urządzenia PCIe poprzez standard NVMe.

Pamięci masowe PCIe

Po osiągnięciu przepustowości 6 Gbit/s przez interfejsy SATA okazało się, że dalsze zwiększanie szybkości transmisji do 12 Gbit/s będzie z kilku powodów bardzo poważnym wyzwaniem. Na szczęście są złącza szeregowe, które działają bardzo szybko: PCI Express. Koncepcja pamięci masowych PCIe zakłada, że są podłączane tak, jak urządzenia SATA, ale w rzeczywistości komunikują się bezpośrednio z szyną PCIe, zamiast korzystać z pośrednictwa protokołu SATA. Dodatkowo można używać równocześnie wielu linii PCIe, a nawet różnych wersji PCIe.

Zobacz również:

  • WD prezentuje nowe dysku SSD SN580 NVMe Gen4 SSD
  • Windows 11 również podatny na lukę SATA BIOS

Aptekarska dokładność nie jest wskazana

Tak jak z każdą nową, popularną technologią, wokół pamięci flash jest sporo szumu, który utrudnia dotarcie do wartościowych informacji. Dodatkowo na rynku funkcjonują już produkty od wielu dostawców. Możliwość wyboru to bez wątpienia zaleta, ale ma też swoje wady. Wybór oznacza bowiem analizy, dezinformację i biurokrację. W kontekście SSD typowym problemem użytkowników jest uporczywa chęć weryfikacji parametrów wydajności podawanych przez producentów. Analiza prezentacji producentów, wymiana opinii na forach, referencje czy PoC (Proof of Concept) nie pomagają biznesowi, a spowalniają wdrażanie nowych rozwiązań.

Problem polega na tym, że informatycy są podejrzliwie nastawieni do wszelkich deklaracji dotyczących wydajności, jeśli są one lepsze niż to, co obecnie wykorzystuje się w ich środowisku. W przypadku takich deklaracji podejmowane są próby wykazania ich słabości. Oczywiście zachowanie należytej staranności przy podejmowaniu decyzji jest ważne, ale z zasady negatywne nastawienie przy braku zweryfikowanych informacji nie jest receptą na sukces. Szczególnie w sytuacji gdy parametry deklarowane przez producenta znacznie przewyższają wymagania. Załóżmy, że potencjalny użytkownik jest zainteresowany macierzą SSD, której producent deklaruje 30 tys. IOPS przy opóźnieniach poniżej 2 ms. Po kilku tygodniach testów klient stwierdza, że urządzenie pracuje z szybkością 28 tys. IOPS z opóźnieniami poniżej 1,8 ms.

W efekcie zaczyna się dyskusja z producentem, omawianie wyników i metodologii testów, co może trwać kilka miesięcy. Finalnie użytkownik decyduje się jednak na zakup. Dlaczego? Okazuje się bowiem, że testowana macierz jest niemal dwukrotnie szybsza od modelu z dyskami SAS (15 tys. IOPS i opóźnienia 5-10 ms), który klient chce zastąpić. W takim scenariuszu cierpi biznes, który w okresie testów nie ma dostępu do szybszego rozwiązania.

Co to oznacza w praktyce? Nowoczesny nośnik SSD może przesyłać przez interfejs SATA około 0,6 GB danych na sekundę. Ten sam nośnik podłączony bezpośrednio do szyny PCIe może osiągnąć przepustowość 1-2 GB/s, a nawet większą, w zależności od wersji PCIe i liczby wykorzystywanych linii. Jest to więc sposób, aby przyspieszyć komunikację między kontrolerem a nośnikami danych.

Pamięci masowe NVMe

NVMe (Non-Volatile Memory Express) to specyfikacja stworzona po to, aby wycisnąć maksimum możliwości, jakie oferują nośniki SSD. Jest to kolejna generacja specyfikacji dostępu do danych (w stosunku do AHCI), która jest obsługiwana przez SATA Express. Można sądzić, że NVMe to nowa wersja AHCI, ale nie jest to poprawne stwierdzenie. Założenia jakie przyjęto przy projektowaniu NVMe to niskie opóźnienia i możliwość równoległej transmisji. Ta specyfikacja wykorzystuje bardzo długie kolejki poleceń, zaawansowane procesy przerwań i wydajne polecenia, co razem pozwala zmniejszyć opóźnienia w dostępie do nośników SSD. Przykładowo, NVMe obsługuje 64 tysiące kolejek z 64 tysiącami poleceń, podczas gdy AHCI ma tylko jedną kolejkę z maksymalnie 32 poleceniami.

Podsumowanie

W praktyce parametry osiągane przez kolejną generację macierzy z wbudowanymi interfejsami SATA Express oraz NVMe przyćmią to, co dzisiaj uważamy za niskie opóźnienia i wysoki poziom operacji wejścia/wyjścia. W 2013 r. Samsung udostępnił pierwszy nośnik SSD zgodny z NVMe. Jego parametry to 1,6 TB pojemności użytkowej, szybkość sekwencyjnego zapisu wynosząca 3 GB/s oraz 740 tys. IOPS. To sześć razy szybciej niż sekwencyjny zapis na najszybszych w tamtym czasie nośnikach SSD bez obsługi NVMe. To kolosalna różnica.

Gdy takie nośniki wejdą do powszechnego użytku, wąskie gardła znowu przesuną się w inne miejsce. Można przypuszczać, że hamulcem staną się protokoły komunikacji między serwerami a kontrolerami macierzowymi. Jednak również sprzętowe i programowe komponenty kontrolera będą wymagały uwagi.

Kolejnym rzeczą do rozważenia jest odległość. Jak będą działać duże, rozbudowywane wzwyż (scale-up) macierze, których pojemność i wydajność zwiększa się poprzez dokładanie dodatkowych półek z dyskami? Jak poradzą sobie z połączeniami PCIe? Nie wiadomo też, jak będą funkcjonować klastry (scale-out), jak poradzą sobie z przesyłanie ruchu między węzłami i opóźnieniami.


TOP 200