Artykuł o AMD NVMe RAID przewrotnie zaczniemy od kilku zdań dotyczących Intela. Pozwoli to pokazać, o co tyle hałasu i czym od kilku miesięcy ekscytują się entuzjaści technik komputerowych.
W czasie tegorocznej edycji targów Computex Intel zaprezentował nową platformę HEDT oraz kompatybilne z nią procesory. Jedną z jej zalet miała być możliwość tworzenia bootowalnych macierzy RAID z nośników SSD NVMe. Miała być jednak wydajniejsza od komputerów wykorzystujących płyty główne z chipsetami Z270 (sprawdź ceny płyt dostępnych na rynku). Wszystko za sprawą nowej techniki, która została nazwana VROC (ang. Virtual RAID on CPU). Jej zadaniem jest przekazywanie danych z macierzy RAID bezpośrednio do procesora z pominięciem chipsetu. Takie rozwiązanie obchodzące DMI, które na płytach głównych z chipsetem Z270 ograniczało transfer danych do 3,93 GB/s, ma sprawić, że osoby potrzebujące naprawdę wysokich prędkości sekwencyjnego przesyłania plików będą mogły połączyć w macierzy RAID0 wiele najwydajniejszych SSD NVMe bez obawy, że ich wydajność będzie w jakikolwiek sposób ograniczana przez płytę główną.
Niestety, Intel zapowiedział, że kompatybilność techniki VROC będzie ograniczona do produkowanych przez niego nośników i bliżej niesprecyzowanych wybranych modeli innych firm. Jakby tego było mało, żeby odblokować możliwość tworzenia bootowalnych macierzy RAID1, RAID5 oraz RAID10, trzeba będzie kupić specjalny klucz sprzętowy, którego ceny nie podano. W internecie krążą plotki, że może ona wynieść nawet 100 dol. Co więcej, ma on być sprzedawany przez producentów z gotowymi komputerami. Podejście Intela wzbudziło bardzo głośny sprzeciw internautów oraz dziennikarzy i blogerów zajmujących się technikami komputerowymi.
Na tych emocjach postanowiło zagrać AMD. Firma, kontynuując agresywną strategię promowania platform dla procesorów Ryzen i Threadripper (sprawdź ceny), ogłosiła, że udostępni za darmo wszystkim użytkownikom kompatybilnych płyt głównych specjalny sterownik, który pozwoli wykorzystać nośniki SSD NVMe w taki sam sposób jak w przypadku techniki VROC. Początkowo oprogramowanie zostało zapowiedziane na 25 września 2017 r., ale opóźniło się o tydzień. Rozwiązanie Intela jeszcze nie jest dostępne, więc oficjalnie nie możemy go przetestować, jednak niektórym użytkownikom udało się je uruchomić w połączeniu z nieautoryzowanymi sterownikami. Możemy za to sprawdzić, jak bootowalny RAID podłączony bezpośrednio do procesora radzi sobie w wydaniu AMD.
W tym artykule skupimy się na macierzy RAID0 złożonej z dwóch nośników NVMe Samsung 960 Pro (sprawdź w jakich są cenach). Ten model jest obecnie najszybszy, więc będziemy mogli sprawdzić, czy podłączenie SSD bezpośrednio do procesora pozwoli im wykorzystać w pełni swój potencjał nawet w macierzy. Takich testów w internecie jest sporo, ich autorzy jednak skupiają się wyłącznie na pokazaniu wydajności macierzy RAID0 złożonej z nośników SSD NVMe w czasie sekwencyjnego odczytu i zapisu danych. I o ile przekroczenie bariery 28 GB/s w trakcie odczytywania danych przez osiem samsungów 960 Pro robi ogromne wrażenie, o tyle trzeba pamiętać, że kopiowanie dużych plików to niejedyne zastosowanie komputera. W przypadku SSD ważne są także prędkości losowego odczytu i zapisu małych plików, a także opóźnienia w dostępie do danych. Po testach SSD ze złączem SATA wiemy, że w takich scenariuszach macierze RAID0 nie skalują się tak dobrze jak w przypadku sekwencyjnych operacji na plikach. Ale może tę sytuację zmieni znacznie sprawniejszy protokół NVMe?
Za platformę testową posłużyła nam nasza Battlestacja, którą przedstawiliśmy w jednym z poprzednich artykułów. Jest to bardzo wydajny komputer, wyposażony w 128 GB pamięci operacyjnej. Postanowiliśmy wykorzystać jej część jako pamięć podręczną dla pojedynczego SSD i macierzy złożonej z dwóch nośników, żeby sprawdzić, czy taka konfiguracja będzie wydajniejsza od zwykłej macierzy. W tym celu użyliśmy programu PrimoCache, o którym więcej piszemy na dalszych stronach artykułu.
Platforma testowa
Sprzęt | Dostawca | |
---|---|---|
Procesor | AMD Threadripper 1950X | www.amd.com |
Płyta główna | Asus ROG Zenith Extreme | www.asus.com |
Monitor WQHD 144 Hz G-Sync | Asus ROG Swift PG278Q | www.asus.com |
Monitor 4K 60 Hz G-Sync | Acer XB280HK | www.acer.pl |
Pamięć DDR4 | Kingston DDR4 2133 128 GB ECC | www.kingston.com |
Nośnik systemowy | Samsung 960 Pro 960 x2 | www.samsung.com |
Schładzacz procesora | www.noctua.at Corsair H110i GTX | www.corsair.com |
Zasilacz | Cooler Master MasterWatt Maker 1200 | www.coolermaster.com |
Obudowa | Cooler Master Cosmos C700P | www.coolermaster.com |
Kopia zapasowa danych | Acronis True Image 2017 | www.acronis.pl |
System operacyjny:
- Windows 10 64-bitowy.
AMD NVMe RAID0 – konfiguracja
Konfiguracja macierzy nie jest bardzo skomplikowana, ale jest kilka momentów, które mogą zaskoczyć użytkowników. Niestety, AMD nie udostępniło szczegółowej dokumentacji dotyczącej tego procesu, więc może się skończyć poszukiwaniem w internecie rozwiązania napotkanych problemów. Dlatego konfigurację macierzy AMD NVMe RAID0 opiszemy krok po kroku.
Pierwszym krokiem będzie aktualizacja BIOS-u. Ci, którzy nie korzystają z najnowszej wersji, będą musieli udać się na stronę internetową producenta płyty głównej i stamtąd pobrać uaktualnienie. Przed pobraniem pliku należy sprawdzić w opisie, czy dodaje obsługę AMD NVMe RAID na danej płycie głównej. Wszystkie kompatybilne modele powinny już otrzymać odpowiednie uaktualnienia BIOS-u, jednak mogą zdarzyć się wyjątki.
Tworzenie macierzy AMD NVMe RAID
Kiedy na płycie głównej jest już zainstalowany najnowszy BIOS, można przejść do konfiguracji macierzy. Jeśli macierz była skonfigurowana już wcześniej (np. programowa w systemach Windows), należy zabezpieczyć przechowywane w niej dane i ją rozłączyć. Następnie trzeba zrestartować komputer i udać się do BIOS-u. W zakładce Advanced powinna się pojawić nowa pozycja: RAIDXpert2 Configuration Utility. To narzędzie do zarządzania macierzami, a także fizycznymi nośnikami podłączonymi do płyty głównej.
W menu narzędzia RAIDXpert2 są trzy pozycje. Pierwsza dotyczy zarządzania kontrolerem, druga – macierzami, a trzecia – nośnikami danych. Żeby utworzyć nową macierz, należy wybrać pozycję Array Management, a następnie Create Array.
W tym miejscu można określić poziom RAID, po rozwinięciu pola Select RAID Level.
W następnym kroku przechodzimy do pozycji Select Physical Disks. W tym podmenu można wskazać rodzaj nośników (HDD, SSD lub oba). Służy do tego funkcja Select Media Type.
Następnym etapem jest wskazanie nośników, które wejdą w skład macierzy. Na ekranie powinna się wyświetlić lista wszystkich nośników podłączonych do płyty głównej. Przestawiamy wskaźnik z pozycji Off na On przy wybranych pozycjach i przechodzimy do pola Apply Changes, żeby zastosować wszystkie wprowadzone zmiany.
Resztę ustawień można pozostawić bez zmian. Żeby zakończyć proces, należy wybrać pozycję Create Array. Po tym wystarczy zapisać ustawienia BIOS-u i ponownie uruchomić komputer (zakładka Exit, pozycja Save Changes and Exit). Na tak skonfigurowanej macierzy można zainstalować system operacyjny, który będzie się uruchamiać bez problemów. Niestety, w czasie instalowania Windows 10 zdarzają się nieopisane przez AMD kroki. Powiemy o nich za chwilę.
UWAGA!
Może się zdarzyć tak, że pozycja Create Array w menu Array Management będzie nieaktywna i nie da się ustawić na niej wskaźnika. Dzieje się tak, jeśli do komputera podłączonych zostało dużo nośników. Wszystkie one będą rozpoznawane jako macierz. Jeśli będzie ich zbyt wiele, płyta główna nie pozwoli utworzyć następnej macierzy.
Usuwanie macierzy AMD NVMe RAID
W takich przypadkach konieczne będzie usunięcie niechcianych „macierzy”. Żeby to zrobić, należy w menu RAIDXpert2 Utility Configuration przejść do pozycji Array Management i wybrać pole Delete Array.
Na tym ekranie zalecamy ogromną ostrożność. Przypadkowe zaznaczenie i usunięcie aktywnej macierzy grozi utratą danych. Dlatego przed zatwierdzeniem wszelkich zmian trzeba dwa razy się upewnić, co zostało wybrane w polu Select Array. Po jego rozwinięciu pojawia się lista podłączonych nośników i aktywnych macierzy. Przy każdej z tych pozycji widnieje Normal. Jeśli na liście są pozycje, przy których widnieje Offline, oznacza to, że urządzenie zostało odłączone od płyty głównej. Takie urządzenia można bez obaw usuwać. Wystarczy wskazać niepotrzebne pozycje na liście, a następnie wybrać pole Delete Array.
Na następnym ekranie wystarczy przestawić wskaźnik na pozycję On w polu Confirm i potwierdzić polecenie usunięcia macierzy przez wybranie Yes.
Inicjowanie samodzielnie działających nośników z rozłączonych macierzy
Żeby korzystać po rozłączeniu macierzy z pojedynczych nośników, nie wystarczy, niestety, usunąć macierzy, bo po ponownym uruchomieniu komputera system operacyjny nie będzie widział pojedynczych urządzeń. Wcześniej trzeba będzie je przekonwertować na samodzielne – dopiero wtedy zostaną rozpoznane przez Windows. Można to zrobić po wybraniu pozycji Physical Disk Management w głównym menu narzędzia RAIDXpert2 po przejściu do pola Select Physical Disk Operations.
Następnym krokiem jest wskazanie pozycji Convert to Legacy Disk. Wówczas pojawi się następny ekran, zawierający listę wszystkich nośników, które pochodzą z rozłączonej macierzy, a jeszcze nie zostały zainicjowane jako samodzielnie działające.
Na tym etapie wystarczy wskazać przy wybranych urządzeniach pole On i zatwierdzić wybór za pomocą pozycji OK. Po zapisaniu ustawień BIOS-u i ponownym uruchomieniu komputera system operacyjny rozpozna nowe nośniki, jednak nadal będą one niewidoczne w oknie Eksploratora plików.
Konieczne będzie ich zainicjowanie (jako GPT) i utworzenie nowej partycji. Można to zrobić w Windowsowym narzędziu Zarządzanie dyskami, dostępnym w menu kontekstowym po kliknięciu prawym przyciskiem myszy ikony „Windows”, która uruchamia menu „Start” w Windows 10.
Instalacja Windows 10 na bootowalnej macierzy AMD NVMe RAID
Konieczność wskazywania dodatkowych sterowników w trakcie instalacji systemów Windows nie jest niczym nowym. Microsoft od czasów Windows XP bardzo uprościł ten proces, jednak AMD postanowiło nieco go utrudnić.
Przed rozpoczęciem instalowania Windows 10 trzeba pobrać odpowiednie sterowniki. Pierwszy z nich (NVMe RAID Driver and RAIDXpert2 Management Software for Windows 10 64 Bit) należy zainstalować po pierwszym uruchomieniu systemu operacyjnego. Drugi (Standalone NVMe RAID Driver for Windows 10 Installation of Windows 10 64 Bit) będzie potrzebny wcześniej, w trakcie instalowania Windows 10. Po pobraniu archiwum ZIP ze strony internetowej AMD należy je rozpakować, a pliki przenieść na pendrive'a.
Wówczas można rozpocząć instalację systemu operacyjnego. Na etapie wskazywania nośnika, na którym będzie działać Windows, trzeba dodać wcześniej pobrane sterowniki, żeby instalator rozpoznał Macierz RAID. W tym celu należy kliknąć przycisk Załaduj sterownik.
I tu sprawy nieco się komplikują. Żeby wszystko działało poprawnie, konieczne będzie dodanie trzech sterowników:
- kontrolera AMD NVMe (rcbottom.inf),
- kontrolera AMD RAID (rcraid.inf),
- konfiguratora AMD RAID (rccfg.inf).
Wszystkie znajdują się w folderze RS2x64, zapisanym wcześniej na pendrivie. Po dodaniu sterowników instalator rozpozna macierz i pozwoli zainstalować na niej system operacyjny. Po wyświetleniu pulpitu trzeba jeszcze będzie zainstalować sterownik chipsetu pobrany ze strony AMD.
UWAGA!
Jeśli do stworzenia macierzy zostały użyte nośniki NVMe, do których producent wydał sterownik (np. Samsung 960 Pro, 960 Evo, 950 Pro), nie należy go instalować. W przeciwnym razie po zrestartowaniu komputera Windows się nie uruchomi, a na monitorze pojawi się ekran błędu.
PrimoCache – konfiguracja
PrimoCache to proste w użyciu i konfiguracji narzędzie pozwalające przyspieszyć działanie SSD i HDD. W tym artykule skupimy się na funkcji, która umożliwia wykorzystanie części pamięci operacyjnej jako pamięci podręcznej dla pojedynczego nośnika i macierzy RAID0. PrimoCache pozwala także wykorzystać wolne miejsce na SSD lub pendrive'a USB 3.0 do przyspieszenia dysku twardego, jednak tych funkcji tym razem nie będziemy testować. Ciekawym rozwiązaniem w PrimoCache jest możliwość użycia jako pamięci podręcznej RAM-u niewidocznego dla systemu operacyjnego, co przyda się osobom pracującym na komputerach wyposażonych w więcej niż 3 GB pamięci, ale z zainstalowaną 32-bitową wersją Windows.
Dużą zaletą programu jest możliwość skonfigurowania pamięci podręcznej tak, żeby była odtwarzana przy każdym uruchomieniu systemu operacyjnego. Dzięki temu PrimoCache we współpracy z RAM-em może działać na tej samej zasadzie co testowane przez nas moduły pamięci Optane. Do wad z pewnością niektórzy zaliczą cenę narzędzia, bo trzeba za nie zapłacić 29,95 dol. Ci, którzy chcieliby sprawdzić PrimoCache przed zakupem, mogą skorzystać z wersji testowej, ograniczonej do 60 dni.
Konfiguracja PrimoCache jest bardzo prosta i sprowadza się do kilku kliknięć. Po zainstalowaniu i uruchomieniu programu trzeba dodać nową pamięć podręczną. W tym celu należy kliknąć pierwszy przycisk z lewej strony w górnym menu okna narzędzia.
Na drugim ekranie trzeba wybrać, który nośnik ma być przyspieszany.
Następnym etapem jest określenie, w jakich scenariuszach ma być używana pamięć podręczna. Można przyspieszać tylko odczyt lub zapis danych albo obie te operacje. W tym kroku program pozwala także wczytać ostatnio utworzoną lub wcześniej zapisaną konfigurację.
Następnym etapem jest ustalenie rozmiaru pamięci podręcznej. W tym celu należy wpisać odpowiednią wartość w polu OS Managed Memory (MM). W naszym przypadku były to 64 GB, bo nie chcieliśmy, żeby w czasie testów bufor utworzony za pomocą PrimoCache został zapchany. Bardzo ważnym parametrem, który trzeba ustalić w tym kroku, jest Block Size. Jego rozmiar nie powinien przekraczać rozmiaru klastra systemu plików wykorzystywanego przez Windows. Mały rozmiar klastra ma zapewniać większą wydajność, ale wiąże się z większym użyciem pamięci operacyjnej i procesora. Warto mieć to na uwadze i sprawdzić różne konfiguracje. W większości przypadków najlepszym rozwiązaniem będzie wybranie z rozwijanego menu wartości 4 kB lub 8 kB.
Jeżeli pamięć podręczna przechowywana w RAM-ie ma być odtwarzana podczas uruchamiania systemu operacyjnego, trzeba dodatkowo zaznaczyć pozycje Prefetch Last Cache oraz Start at Windows Boot. Kliknięcie przycisku Start kończy konfigurację PrimoCache.
AMD NVMe RAID0 – testy syntetyczne (Crystal Disk Mark)
W przeciwieństwie do innych naszych testów do zmierzenia wydajności pojedynczego nośnika, macierzy oraz ich wariantów wspomaganych przez PrimoCache użyliśmy programu Crystal Disk Mark w wersji 5.5.0. Dodano do niego profil przygotowany z myślą o SSD NVMe. Skorzystaliśmy z niego, ale sprawdziliśmy także, jak sprawują się nasze podsystemy dyskowe w czasie testów przeprowadzonych z użyciem pakietów danych różnej wielkości (od 1 GB do 32 GB) i przy różnej długości kolejki poleceń (od QD1 do QD32). Pozwoliło nam to ocenić wszystkie porównywane rozwiązania w różnych scenariuszach.
Pierwsza próba pokazuje wydajność testowanych nośników w czasie sekwencyjnego i losowego odczytu danych. W obu przypadkach spodziewaliśmy się, że osiągi macierzy będziemy mogli opisać wzorem N * wydajność najwolniejszego nośnika, gdzie N to liczba SSD w macierzy. Potwierdziły to testy, bo konfiguracja RAID0 złożona z dwóch samsungów 960 Pro jest w tych scenariuszach niemal dwa razy szybsza od pojedynczego SSD. Na wydajność jednego nośnika i macierzy nie ma wpływu rozmiar próbki danych wykorzystanej do testów, co jest zasługą kości MLC, które w przeciwieństwie do TLC nie zwalniają w trakcie odczytu dużej ilości danych. Stąd bardzo poziomy przebieg wykresów.
Inaczej sytuacja wygląda podczas losowego odczytu danych. Pojedynczy SSD i macierz RAID0 zapewniają niemal identyczną wydajność. Ciekawe jest to, że w takich testach macierz okazuje się nieco wolniejsza od pojedynczego SSD. W operacjach jednowątkowych różnice są niewielkie i oscylują w okolicy 2 MB/s, ale kiedy Crystal Disk Mark wykorzystywał wiele wątków, wahały się od 15 MB/s do ponad 30 MB/s. Nie są to jednak różnice, które użytkownik mógłby odczuć.
Niemałym zaskoczeniem była dla nas wydajność w tych samych testach pojedynczego nośnika i macierzy wspomaganych przez PrimoCache. Zdziwiła nas „nieprzewidywalność” rezultatów i duże skoki odczytywanej przez Crystal Disk Mark prędkości podczas testów sekwencyjnych. Wyniki są zdecydowanie lepsze od osiągów tradycyjnej macierzy, co oczywiście cieszy, ale PrimoCache potrafi być kapryśny i bez większych powodów może nie przyspieszać podsystemu dyskowego tak, jak byśmy chcieli. W trakcie dziesiątków testów, które przeprowadziliśmy, nie udało nam się odkryć żadnego wzoru występowania anomalii, przez co nie możemy powiedzieć, dlaczego PrimoCache zachowywał się tak dziwacznie. Z pewnością przyjrzymy się sprawie dokładniej.
Tak czy inaczej, pamięć podręczna utworzona z wykorzystaniem RAM-u okazuje się o wiele wydajniejsza od macierzy. Nawet po przyspieszeniu jednego nośnika wyniki są znacznie lepsze niż w przypadku RAID0. Na uwagę zasługuje także to, że w testach jednowątkowych pojedynczy SSD wspomagany przez PrimoCache jest wydajniejszy od przyspieszonej w ten sam sposób macierzy RAID0. Różnicę najlepiej widać na wykresie przedstawiającym prędkość jednowątkowego sekwencyjnego odczytu danych.
Sytuacja podobna do opisanej powyżej wystąpiła w testach polegających na zapisywaniu danych. Tradycyjna macierz jest niemal dwukrotnie wydajniejsza od SSD w zapisie sekwencyjnym. RAID0 podczas zapisu losowych danych z użyciem jednego wątku jest ponaddwukrotnie wydajniejszy od pojedynczego SSD, inaczej niż w trakcie odczytu. Podobnie jest po przyspieszeniu porównywanych konfiguracji za pomocą narzędzia PrimoCache: tak macierz, jak i pojedynczy SSD okazują się wydajniejsze od swoich tradycyjnych odpowiedników. Na wykresach można ponadto zauważyć taką samą zależność między testami jedno- i wielowątkowymi.
Dalsze testy miały sprawdzić, jak skaluje się wydajność testowanych podsystemów dyskowych w zależności od długości kolejki poleceń wydawanych nośnikom przez narzędzie Crystal Disk Mark.
Wyniki testów przeprowadzonych z użyciem kolejek różnej długości są już nieco bardziej jednolite. Widać to doskonale na przykładzie losowych operacji odczytu danych. W takich scenariuszach tradycyjna macierz nie ma żadnej przewagi nad pojedynczym SSD. Podobną sytuację zaobserwowaliśmy w przypadku podsystemów dyskowych wspomaganych przez PrimoCache. Są one, oczywiście, szybsze od ich tradycyjnych odpowiedników, jednak na różnice w wydajności nie ma większego wpływu to, czy przy danej długości kolejki test odbywa się na pojedynczym SSD czy na macierzy. Warto jednak podkreślić zdecydowaną przewagę nośników przyspieszanych przez PrimoCache nad ich tradycyjnymi odpowiednikami, gdy kolejki składają się z pojedynczych poleceń (QD1).
W trakcie sekwencyjnego odczytu z użyciem jednego wątku sytuacja jest już nieco inna. Pojedynczy SSD i macierz skalują się zgodnie ze wspomnianym przez nas wzorem i na ich wydajność nie ma wpływu długość kolejki poleceń wydawanych kontrolerowi. Jest inaczej, kiedy ten sam test zostaje przeprowadzony z wykorzystaniem jednego wątku. W takim scenariuszu pojedynczy SSD i macierz najlepsze wyniki osiągają od kolejki QD4 wzwyż. Jednak macierz nadal jest niemal dwukrotnie wydajniejsza od pojedynczego SSD.
Podobnie, chociaż nie identycznie, zachowują się podsystemy wspomagane przez PrimoCache. W próbach uwzględniających wiele wątków najlepsze wyniki osiągnęliśmy, gdy kolejka miała długość QD4 i większą; poniżej wartości odczytywane przez Crystal Disk Mark są zdecydowanie mniejsze.
W testach szybkości zapisu danych sytuacja była bardzo podobna. Jedyną wyraźną różnicą w stosunku do wcześniejszych prób była większa wydajność pojedynczego SSD i macierzy w losowym zapisie małej próbki przy użyciu wielu wątków.
Wszystkie testy przeprowadzone przez nas w programie Crystal Disk Mark pozwalają wyciągnąć następujące wnioski:
- macierz RAID0 jest dwukrotnie wydajniejsza od pojedynczego SSD w sekwencyjnych operacjach na danych, a podczas losowego zapisu małych porcji danych z użyciem jednego wątku różnica sięga 150%;
- pamięć podręczna dla SSD i macierzy naprawdę działa i zapewnia bardzo dobre, choć czasem nieprzewidywalne, rezultaty;
- w razie użycia narzędzia PrimoCache nie warto kupować drugiego nośnika SSD, żeby utworzyć macierz wspomaganą przez pamięć podręczną wydzieloną z RAM-u, bo różnice w wydajności mogą nie uzasadnić kosztów.
AMD NVMe RAID0 – testy syntetyczne (Iometer)
Następny zestaw testów przeprowadziliśmy za pomocą programu Iometer. Mierzyliśmy liczbę operacji wejścia-wyjścia wykonywanych w ciągu sekundy (IOPS) przy różnej długości kolejek i średni czas dostępu do danych. Przyjrzeliśmy się także dokładniej opóźnieniom w trakcie operacji na nośnikach.
W testach polegających na pomiarze liczby operacji wejścia-wyjścia wykonywanych w ciągu sekundy podczas losowego odczytu i zapisu małej próbki danych wydajność kształtuje się zdecydowanie inaczej niż na wykresach przedstawionych na poprzedniej stronie. Długość kolejki wydawanych poleceń ma już znaczący wpływ na wydajność wszystkich testowanych podsystemów dyskowych. Tradycyjne SSD, czy to działające w pojedynkę, czy połączone w macierz, najwyższą wydajność osiągają w testach przeprowadzonych z użyciem QD32, co jest typowe dla nośników opartych na pamięci NAND Flash. Niestety, utworzenie macierzy nie zapewnia wyraźnego wzrostu wydajności w porównaniu z osiągami pojedynczego nośnika.
Podobnie zachowują się podsystemy dyskowe wspomagane przez PrimoCache. W losowym odczycie małych próbek danych takie rozwiązania są wyraźnie wydajniejsze od ich tradycyjnych odpowiedników przy kolejkowaniu od QD1 do QD16. Kiedy długość kolejki poleceń wydawanych kontrolerowi sięga QD32, przyspieszane przez PrimoCache podsystemy dyskowe okazują się wolniejsze.
Wynik tego ostatniego testu nadal jest dla nas małą zagadką. Bez względu na ustawienia programu Iometer nie udało nam się przekroczyć bariery 280 000 IOPS. Problemem w tym przypadku z pewnością nie jest pamięć operacyjna, bo benchmark uruchomiony na RAM-dysku bez problemów zwracał wyniki na poziomie 500 000 IOPS. Także tej kwestii będziemy musieli przyjrzeć się dokładniej.
Bardzo ważnym parametrem półprzewodnikowej pamięci masowej są opóźnienia w czasie dostępu do danych. Im są mniejsze, tym operacje wykonywane są szybciej, czyli system operacyjny i oprogramowanie żwawiej reagują na polecenia użytkownika. Jednym z wyników podawanych przez Iometer jest średni czas dostępu. Niestety, nie odzwierciedla on najlepiej opóźnień, bo w czasie testów może się zdarzyć, że w losowych momentach i z niewyjaśnionych przyczyn operacje wykonywane na nośniku zajmą zdecydowanie więcej czasu, niż powinny.
Podczas analizowania wyników widzieliśmy takie anomalie. Zdarzało się, że opóźnienia w trakcie testów sięgały niemal 2 sekund. Nie zdarzało się to często, ale ma to wpływ na średni czas dostępu do danych.
Doskonale widać to na powyższych wykresach w przypadku kolejek o długości QD16 i QD32. Jednak po testach przeprowadzonych z wykorzystaniem kolejek od QD1 do QD16 mamy wystarczająco dużo danych, żeby się pokusić o wyciągnięcie ważnego wniosku. Macierz RAID0 w większości przypadków charakteryzuje się mniejszymi opóźnieniami. Podsystemy dyskowe wspomagane przez PrimoCache wypadły w tym teście jeszcze lepiej, ale jest to zrozumiałe, skoro za bufor służy im pamięć operacyjna.
Żeby lepiej zrozumieć opóźnienia testowanych nośników w dostępie do danych, sprawdziliśmy, jak kształtuje się w trakcie testów czas wykonania 99,9% wszystkich operacji wejścia-wyjścia. Takie ograniczenie wyników pozwoliło nam wyeliminować sytuacje, w których czas wykonania operacji był dłuższy, niż powinien, i w których zarazem anomalia była bardzo rzadka.
Interpretacja poniższych wyników jest bardzo prosta. Im bliżej lewej strony wykresu znajduje się szczyt krzywej, tym więcej operacji wejścia-wyjścia zostało wykonanych w krótkim czasie. Bardzo dobrze widać to na pierwszym wykresie w przypadku macierzy RAID0 wspomaganej przez PrimoCache. Niemal 100% operacji wejścia-wyjścia została wykonanych w czasie poniżej 50 µs, czyli najkrótszym z rejestrowanych przez Iometer.
Już na pierwszy rzut oka widać, że wraz z wydłużaniem się kolejki poleceń wydawanych kontrolerowi krzywe przesuwają się w prawą stronę. To oznacza, że wykonywanie operacji wejścia-wyjścia zabiera nośnikom coraz więcej czasu. I nie jest to nic dziwnego, bo tak powinny zachowywać się nośniki wyposażone w kości NAND Flash. Nas jednak najbardziej interesują różnice w opóźnieniach między pojedynczym nośnikiem a macierzą RAID0. Niemal we wszystkich próbach opóźnienia w czasie wykonywania operacji wejścia-wyjścia są mniejsze w przypadku macierzy. Wyjątkiem są testy przeprowadzone z użyciem kolejki o długości QD32, kiedy to pojedynczy SSD i macierz osiągają niemal identyczne wyniki. To oznacza, że nawet jeśli w testach syntetycznych w programie Crystal Disk Mark macierz i pojedynczy SSD osiągały zbliżone prędkości losowego odczytu małych próbek danych, to w faktycznych zastosowaniach w podobnym scenariuszu macierz uporałaby się z zadaniem szybciej.
W tych testach zdecydowanie lepiej wypadły nośniki wspomagane przez PrimoCache, co jednak nie zaskakuje. To zasługa pamięci podręcznej w RAM-ie, który wprowadza zdecydowanie mniejsze opóźnienia niż kości NAND Flash.
W czasie analizowania wykresów przedstawiających szybkość losowego zapisu małych próbek danych w oczy rzuca się niezwykła spójność osiągów pojedynczego SSD i macierzy RAID0 wspomaganych przez PrimoCache. Wszystkie krzywe, wyjąwszy wykres dotyczący kolejek o długości QD16, pokrywają się niemal idealnie. Podobnie było w testach pojedynczego SSD i tradycyjnej macierzy przeprowadzonych z wykorzystaniem kolejek o długości QD8 i QD32. Reszta wykresów tylko potwierdza nasze wnioski z poprzedniego akapitu.
Podsumowanie
AMD NVMe RAID to technika, która nie jest przeznaczona dla wszystkich. Z pewnością znajdzie swoich amatorów, ale dla większości z nas koszt platformy składającej się z dwóch lub więcej najwydajniejszych SSD będzie zbyt wysoki, żeby uzasadnić zakup. Sprawdzi się ona najlepiej tam, gdzie najważniejsza jest wydajność w czasie sekwencyjnych operacji na dużych plikach. Dla przeciętnych pochłaniaczy bitów ważniejsze są prędkości losowego odczytu i zapisu małych porcji danych, bo to właśnie takie operacje są najczęściej wykonywane przez systemy operacyjne i zdecydowaną większość programów.
Inaczej to wygląda z punktu widzenia kogoś, kto zawodowo zajmuje się obróbką zdjęć lub materiałów wideo. W takich zastosowaniach macierz RAID0 będzie wydajniejsza od pojedynczego SSD. Pozostanie pytanie, czy wzrost wydajności o niemal 66% w testach syntetycznych w pełni się przełoży na rzeczywiste wykorzystanie macierzy RAID0. Na nie odpowiemy w dalszych artykułach poświęconych tej technice.
Ci, dla których pojedynczy nośnik jest za wolny i którzy raczej byliby skłonni przeznaczyć niemałą kwotę na RAID0 z SSD NVMe, pewnie zaczynają kalkulować, ile będzie kosztowała przesiadka na płytę główną z chipsetem X399 (sprawdź ceny tych płyt) oraz zakup procesora Threadripper i dodatkowych nośników. Być może jednak przed udaniem się do sklepu warto będzie przetestować narzędzie PrimoCache. Jeżeli pamięć operacyjna w komputerze nie jest w pełni wykorzystywana, użycie jej części jako pamięci podręcznej dla SSD może zapewnić więcej korzyści niż macierz RAID0. Zaletami PrimoCache jest to, że działa w różnych systemach operacyjnych, nie ma ograniczeń co do liczby przyspieszanych nośników, współpracuje z każdą płytą główną i każdym procesorem. Niestety, nasze testy pokazały, że program bywa nieprzewidywalny, więc przed jego zakupem warto sprawdzić w działaniu wersję testową, by się przekonać, czy przyspieszy wykonywane na co dzień operacje.
AMD NVMe RAID oraz technika VROC Intela to z pewnością krok w dobrą stronę. W przeciwieństwie do starszych rozwiązań, dostępnych między innymi na płytach głównych z chipsetem Z270, nie są ograniczone przez maksymalną przepustowość DMI, wynoszącą 3,93 GB/s, co ogranicza wydajność macierzy RAID0 zbudowanych z najwydajniejszych SSD NVMe. Utworzenie podsystemu dyskowego o zawrotnych prędkościach sekwencyjnego odczytu i zapisu danych niewątpliwie zapewni w niektórych zastosowaniach ogromne przyspieszenie.
Pamiętajmy również, że RAID to nie tylko poziom 0, czyli striping, ale także 1, czyli mirroring, 10, czyli połączenie obu tych technik, i kilka innych. Korzystanie z RAID0 zawsze się wiąże ze zwiększeniem prawdopodobieństwa utraty danych, bo awaria jednego nośnika sprawi, że wszystkie pliki przechowywane w macierzy zostaną utracone. RAID10 jest świetnym, choć kosztownym, rozwiązaniem tego problemu, bo nie tylko pozwala korzystać z wysokich prędkości odczytu i zapisu danych, ale też automatycznie duplikuje dane i pozwala je odtworzyć w razie awarii nośnika. Także RAID1, którego zadaniem jest wyłącznie zabezpieczenie danych przed utratą, może być dla wielu ciekawym rozwiązaniem, ale w takim przypadku nie trzeba kupować nowego komputera, bo ograniczenia przepustowości DMI nie będą miały wpływu na wydajność takich macierzy.
To nie jest nasz ostatni artykuł o AMD NVMe RAID. Zaczęliśmy już prace nad następnym. Jeżeli chcielibyście, żebyśmy sprawdzili coś jeszcze, dajcie nam znać w komentarzach. Najciekawsze sugestie na pewno uwzględnimy.
Do testów dostarczył: Samsung
Cena w dniu publikacji (z VAT): ok. 1270 zł