Testy wydajnościowe serwera QNAP-a przeprowadziliśmy przy wykorzystaniu benchmarków ATTO Disk Benchmark, CrystalDiskMark oraz kopiując pliki z serwera i na serwer, przy użyciu Eksploratora Windows (SMB, iSCSI). Dodatkowo sprawdziliśmy wydajność urządzenia pod kątem operacji wejścia/wyjścia. Procedura kopiowania obejmowała próby przeprowadzone trzykrotnie:
- kopiowanie na serwer i pobieranie z serwera jednego pliku o wielkości 2 GB
- kopiowanie na serwer i pobieranie z serwera 1000 plików o wielkości 2 MB każdy
- kopiowanie na serwer i pobieranie z serwera 10000 plików o wielkości 2 KB każdy
Platformą sprzętową do testów wykorzystania protokołów SMB, iSCSI był serwer HP ProLiant MicroServer N36L ze skonfigurowaną macierzą RAID 0.
- System operacyjny: Windows Server 2008 R2
- Procesor AMD Athlon DualCore 1,3 GHz
- Pamięć RAM: 8 GB
- Dysk twardy: macierz RAID 0
- Sieć ethernet: 4x1 Gbps (zagregowane połączenie)
- NAS i serwer testowy zostały podłączone do przełącznika sieciowego Netgear M5300
Z racji tego, że serwer może wykorzystywać zarówno nośniki SSD, jak i nośniki talerzowe, procedurę testową przeprowadzaliśmy w kliku scenariuszach. O ile w przypadku szybkości kopiowania użyte nośniki (z uwagi na ograniczenia sieci LAN) nie powinny wykazywać znaczących różnic, o tyle wydajność IOPS i zastosowane nośniki będą miały znaczenie.
- macierz z dysków SATA (talerzowych)
- macierz z dysków SSD
- macierz z dysków SATA z SSD Cache
- macierz z dysków SATA z Qtier
W teście wykorzystaliśmy nośniki SATA 2,5" WD Red 1 TB oraz nośniki SSD Kingston, ADATA i WD Blue. Serwer podłączony został do sieci z użyciem przełącznika Netgear M5300. Interfejsy serwera testowego oraz serwera QNAP zostały skonfigurowane jako LAG (802.3ad).
Test kopiowania plików został przeprowadzony z wykorzystaniem nośników SSD. W ramach porównania przeprowadziliśmy dwa testy szybkości kopiowania dla macierzy RAID 1 i RAID 0 wykorzystujących klasyczne dyski SATA. Jednak w takim scenariuszu nie zauważyliśmy żadnych różnic jeśli chodzi o szybkość kopiowania danych. W związku z tym skupimy się tylko na testach nośników SSD w różnych konfiguracjach macierzowych. Szybkość kopiowania danych - szczególnie dużych plików stoi na bardzo wysokim i wyrównanym poziomie. We większości scenariuszy szybkość przekraczała 100 MB/s. Świetnie wygląda pobieranie mniejszych plików - 79 - 86 MB/s.
Kopiowanie dużego pliku (2 GB)
Protokół SMB [MB/s]
Upload Download | |
Pojedynczy | 112 112 |
RAID0 | 112 112 |
RAID1 | 106 112 |
RAID 5 | 112 112 |
RAID 10 | 111 112 |
JBOD | 105 109 |
iSCSI (RAID 0) | 101 113 |
Kopiowanie małych plików (1000x2 MB)
Protokół SMB [MB/s]
Upload Download | |
Pojedynczy | 49 82 |
RAID0 | 51 86 |
RAID1 | 46 61 |
RAID 5 | 46 82 |
RAID 10 | 50 79 |
JBOD | 42 82 |
iSCSI (RAID 0) | 67 60 |
Kopiowanie małych plików (10000x2 KB)
Protokół SMB [MB/s]
Upload Download | |
Pojedynczy | 0,2 0,5 |
RAID0 | 0,21 0,48 |
RAID1 | 0,2 0,48 |
RAID 5 | 0,2 0,47 |
RAID 10 | 0,22 0,5 |
JBOD | 0,2 0,43 |
iSCSI (RAID 0) | 1,15 0,63 |
Maksymalna wydajność sieciowa - odczyt z NAS i zapis na NAS
Protokół SMB [MB/s]
Maksymalna wydajność sieciowa zmierzona została z użyciem narzędzia diskspd. Test przeprowadziliśmy dla różnych konfiguracji macierzy i technologii. Wyniki są na niemal takim samym poziomie. Jedyna różnica to nieco wolniejszy zapis na pojedynczym dysku. W przypadku iSCSI "lekki spadek" zaliczyła macierz RAID 1 zbudowana z dysków SATA - 97 MB/s.
Macierz | Typ dysków | Odczyt [MB/s] | Zapis [MB/s] |
Pojedynczy | SSD | 103 | 111 |
RAID 0 | SATA | 112 | 111 |
RAID 0 | SATA + SSD Cache | 111 | 111 |
RAID 0 | SATA + Qtier | 113 | 112 |
RAID 0 | SSD | 111 | 112 |
RAID 1 | SATA | 112 | 110 |
RAID 1 | SATA + SSD Cache | 112 | 111 |
RAID 1 | SATA + Qtier | 112 | 112 |
RAID 1 | SSD | 113 | 112 |
RAID 5 | SSD | 112 | 112 |
RAID 10 | SSD | 113 | 112 |
Maksymalna wydajność sieciowa - odczyt z NAS i zapis na NAS
Protokół iSCSI [MB/s]
Macierz | Typ dysków | Odczyt [MB/s] | Zapis [MB/s] |
Pojedynczy | SSD | 113 | 112 |
RAID 0 | SATA | 112 | 112 |
RAID 0 | SATA + SSD Cache | 113 | 113 |
RAID 0 | SATA + Qtier | 113 | 112 |
RAID 0 | SSD | 112 | 112 |
RAID 1 | SATA | 104 | 97 |
RAID 1 | SATA + SSD Cache | 110 | 103 |
RAID 1 | SATA + Qtier | 112 | 112 |
RAID 1 | SSD | 112 | 110 |
RAID 5 | SSD | 112 | 103 |
RAID 10 | SSD | 112 | 112 |
IOPS - odczyt z NAS i zapis na NAS
Protokół SMB
Test pomiaru wartości IOPS dla 2 macierzy oraz dwóch protokołów przeprowadziliśmy z użyciem następujących parametrów testowych:
- czas testu: 120 sekund
- blok danych: 4 KB
- liczba wątków: 8
- wielkość pliku: 4 GB
- oddzielny test dla odczytu: 100% read
- oddzielny test dla zapisu: 100% write
Co wynika z testów? Jedna podstawowa zależność - typ nośnika/wydajność/opóźnienia IOPS. Zerknijmy na macierze RAID 0 oraz RAID 1 wykorzystujące nośniki SATA (dyski mechaniczne). Wydajność IOPS jest dość wysoka, choć przyrównując odczyt do zapisu wyraźnie widać, że ten drugi jest znacznie niższy. Zatem w mocno obciążonym środowisku które wykorzystuje serwer NAS, możemy liczyć się ze spadkiem szybkości kopiowania (oczywiście jeśli nie wykorzystamy w pełni interfejsów gigabitowych), ale także z opóźnieniami związanymi z dostępem do danych.
Jaki jest przekój opóźnień? Przy losowym odczycie z wykorzystaniem protokołu SMB dla macierzy RAID 0 i dysku SSD to 0,845 ms. Ta sama macierz złożona z klasycznych dysków - 0,994 ms. Znaczne różnice wystąpią przy losowym zapisie. I tak dla RAID 0 i dysków SSD to wartość 0,5 ms a dla dysków SATA - 1,84 ms.
Tak jak wspomnieliśmy - by poprawić wydajność warto zastosować dyski SSD. Jednak niekoniecznie wypełniając wszystkie zatoki NAS-a. Warto sprawdzić możliwości przyspieszenia pamięci podręcznej oraz Qtier. Szczególnie, że w obydwu przypadkach niewielkim kosztem możemy podnieść wydajność zapisu ponad 8-krotnie.
Macierz | Typ dysków | Odczyt [IOPS] | Zapis [IOPS] |
Pojedynczy | SSD | 16915 | 17964 |
RAID 0 | SATA | 12973 | 2173 |
RAID 0 | SATA + SSD Cache | 16483 | 18161 |
RAID 0 | SATA + Qtier | 16223 | 18391 |
RAID 0 | SSD | 16826 | 17956 |
RAID 1 | SATA | 12422 | 2226 |
RAID 1 | SATA + SSD Cache | 16034 | 17899 |
RAID 1 | SATA + Qtier | 16223 | 18391 |
RAID 1 | SSD | 16925 | 18398 |
RAID 5 | SSD | 16952 | 18396 |
RAID 10 | SSD | 17013 | 16073 |
JBOD | SSD | 16762 | 17303 |
IOPS - odczyt z NAS i zapis na NAS
Protokół iSCSI
Macierz | Typ dysków | Odczyt [IOPS] | Zapis [IOPS] |
Pojedynczy | SSD | 15386 | 20633 |
RAID 0 | SATA | 12375 | 3676 |
RAID 0 | SATA + SSD Cache | 15468 | 20182 |
RAID 0 | SATA + Qtier | 14659 | 22015 |
RAID 0 | SSD | 15291 | 20835 |
RAID 1 | SATA | 12612 | 1450 |
RAID 1 | SATA + SSD Cache | 15216 | 20869 |
RAID 1 | SATA + Qtier | 14392 | 21728 |
RAID 1 | SSD | 15388 | 20298 |
RAID 5 | SSD | 15412 | 20942 |
RAID 10 | SSD | 15442 | 18453 |
JBOD | SSD | 15349 | 17036 |
Wydajność LACP
Osobnym tematem jest wydajność serwera NAS przy wykorzystaniu dwóch interfejsów sieciowych skonfigurowanych jako "LAG" - 802.3ad. W tajkiej konfiguracji NAS wykorzystuje obydwie karty sieciowe zwiększając ogólną wydajność w przypadku kopiowania danych. Przełącznik sieciowy również posiadał odpowiednią konfigurację pozwalajacą na prawidłowe działanie LAG-a. To czego brakuje to odpowiednia liczba klientów, którzy będą w tym samym czasie pobierać i wysyłać dane. Do tego celu użyliśmy kilku komputerów podłączonych do przełącznika. Urządzenia w tym samym czasie pobierały i wysyłały dane na serwer.
Ciekawostką jest fakt, że LACP zaczyna działać już w przypadku dwóch klientów które przesyłają dane. Choć w tym przypadku zaskoczyła nas trochę niska szybkość pobierania danych przez dwóch klientów. Sumarycznie wynosiła 178,5 MB/s. Jeden z klientów kopiował dane ze średnią szybkością 71,7 MB/s, drugi blisko 107 MB/s . Z kolei wysyłanie danych na serwer odbywało się już bez żadnych anomalii - 226,7 MB/s (rozkład szybkości 109 i 102 MB/s). Pozostało podłączyć kolejny host i ponowić test. Tu już nie było żadnych niespodzianek. Sumaryczna średnia szybkość pobierania z NAS-a wyniosła 233,8 MB/s. Jednoczesne wysyłanie danych - 231,9 MB/s. Podbone wyniki uzyskiwaliśmy w przypadku podłączenia kolejnych hostów kopiujących dane. Oczywiście średnia prędkość dla poszczególnych hostów była odpowiednio niższa. Jednak sumarycznie interfejsy sieciowe NAS-a został wysycone do maksimum.
Wydajność portów 10 GbE
W związku z tym, że nie dysponowaliśmy odpowiednimi urządzeniami posiadającymi porty Thunderbold ostatni test wydajności przeprowadziliśmy tylko dla portów 10 GbE. Do tego celu wykorzystaliśmy następującą konfigurację sprzętową:
Serwer IBM x3630M4
- Windows Server 2012 R2
- 2 x CPU Intel Xeon E5-2240 (2,4 GHz)
- 64 GB pamięci RAM
- Macierz RAID 10
- 2 kontrolery Emulex OCe11102-NX z okablowaniem SFP+ Twinax DAC
- Kontrolery spięte w LAG (NIC Teaming) 802.3ad
Przełącznik sieciowy Netgear M5300
- skonfigurowany LAG dla połączenia serwera IBM
- skonfigurowany LAG dla połączenia serwera QNAP
QNAP TVS-882ST
- skonfigurowany LAG 802.3ad
- dyski SSD ADATA w macierzy RAID 0
- protokół SMB i iSCSI
W pierwszym teście sprawdziliśmy jak wygląda wydajność kopiowana danych z użyciem SMB i iSCSI. Z uwagi na brak wystarczającej liczby klientów 10 GbE pomiary zostały wykonane z użyciem tylko jednego urządzenia klienckiego jakim był serwer IBM.
Wyniki testów są bardzo dobre, choć nie osiągnęliśmy deklarowanej przez producenta wydajności na poziomie 1140 MB/s. Jednak szybkość kopiowania danych z użyciem SMB na poziomie 973 MB/s (pobieranie z NAS-a) i 935 MB/s (wysyłanie na NAS) robi wrażenie. Poniżej grafik z transferami prezentujemy test wydajności CrystalDiskMark.
Podobne wartości uzyskaliśmy wykorzystujac protokół iSCSI - pobieranie 980 MB/s, wysyłanie na NAS - 896 MB/s.
Tak jak w przypadku testów 1 GbE tak i w testach 10 GbE sprawdziliśmy wydajność sieciową serwera zarówno pod kątem szybkości kopiowania, jak i wydajności IOPS. Poniżej tabele prezentują wartości pomiarów. Łatwo zauważycć, że wykorzystanie sieci 10 GbE nie tylko pozwoliło na zwiększenie szybkości kopiowania. Wyraźnie wzrosły także wartości iOPS dla obydwu protokołów.
Macierz | Typ dysków | Odczyt [MB/s] | Zapis [MB/s] |
RAID 0 SMB | SSD | 995 | 970 |
RAID 0 iSCSI | SSD | 1042 | 980 |
Macierz | Typ dysków | Odczyt [IOPS] | Zapis [IOPS] |
RAID 0 SMB | SSD | 46143 | 35740 |
RAID 0 iSCSI | SSD | 58777 | 53370 |
Test – protokół SMB i iSCSI ATTO Disk Benchmark
pojedynczy dysk, protokół SMB i iSCSI
- RAID 0, protokół SMB i ISCSI
- RAID 1, protokół SMB i iSCSI
- RAID 5, protokół SMB i iSCSI
- RAID 10, protokół SMB i iSCSI
- JBOD, protokół SMB i iSCSI
Test – protokół SMB i iSCSI, CrystalDiskMark 3.0.2
- pojedynczy, protokół SMB i iSCSI
- RAID 0, protokół SMB i iSCSI
- RAID 1, protokół SMB i iSCSI
- RAID 5, protokół SMB i iSCSI
- RAID 10, protokół SMB i iSCSI
- JBOD, protokół SMB i iSCSI