Artykuł ten postanowiłem napisać ponieważ bardzo często w swojej pracy spotykam się z osobami, które stoją przed problemem wyboru dla siebie najlepszego rozwiązania, a niestety nie wiedzą na jakie rzeczy powinni zwrócić uwagę przy wyborze. Wbrew pozorom serwer NAS to nie jest proste rozwiązanie, jak sądzi większość osób, mamy bardzo wiele czynników, które mają wpływ na wydajną pracę serwera NAS. Ten wpis będzie swego rodzaju poradnikiem, w którym od podstaw postaram się wytłumaczyć jak działa serwer NAS oraz jak prawidłowo go skonfigurować, co za tym idzie do lektury zapraszam osoby, które chcą zakupić serwer NAS, a nie wiedzą jaki oraz tych, którzy już serwer NAS posiadają, bo może się okazać, że po przeczytaniu całości zdecydujecie się na zmianę swojej konfiguracji.
Nie ma serwera NAS bez dysków
Obecnie producenci serwerów NAS, którzy są liderami na rynku oferują swoje rozwiązania bez dysków. Wynika to z tego, że obecnie na rynku mamy wiele rodzajów dysków o różnych pojemności i wydajności, co za tym idzie często dobranie odpowiednich dysków to połowa sukcesu, dlatego warto wiedzieć jakie obecnie mamy dyski na rynku. Dyski możemy sklasyfikować na pięć podstawowych kategorii: rodzaj dysku, interfejs, pojemność, wydajność oraz typ obudowy.
Podział dysków ze względu na rodzaj:
- dyski HDD – zapis magnetyczny na rotujących talerzach, charakteryzują się niską ceną i dużą pojemnością
- dyski SSD – zapis elektrostatyczny na pamięci typu FLASH, charakteryzują się wysoką ceną i dużą wydajnością
Podział dysków ze względu na interfejs połączenia:
- SATA III 6Gbit/s (750MB/s) – dyski HDD i SSD
- SAS III 22Gbit/s (2750MB/s) – dyski HDD i SSD
- M.2 SATA 6Gbit/s (750MB/s) – dyski SSD
- M.2 NVMe 32Gbit/s (4GB/s) – dyski SSD
Zanim przejdziemy do kolejnych podziałów, chciałbym zwrócić uwagę na pierwszą pułapkę w jaką może wpaść nieświadoma osoba przy wyborze serwera NAS. Należy wiedzieć o tym, że aby interfejs mówi o tym ile jest w stanie przesłać danych, a nie o tym ile faktycznie dysk jest w stanie odczytać lub zapisać danych. Dlatego jak kupicie dysk SATA III HDD to nie macie prawa oczekiwać, że ten dysk będzie miał wydajność na poziomie 750MB/s.
Podział dysków ze względu na pojemność i obudowę:
- dyski HDD mamy w obudowach 2,5″ i 3,5″, obecnie największa pojemność to 16TB, ale już teraz producenci zapowiadają dyski o pojemności 24TB i więcej
- dyski SSD mamy w obudowie 2,5” lub M.2 w różnych rozmiarach np. 2230, 2260, 2280 itp. lub w postaci kart wpinanych bezpośrednio do magistrali PCI. Jeżeli chodzi o pojemność to obecnie największy dysk ma pojemność 30TB
Tutaj rozprawimy się z pierwszym mitem, wszyscy są przekonani, że jedną z zalet dysków HDD nad dyskami SSD jest ich większa pojemność, jak widać to nie prawda, obecnie dyski SSD są większe.
Kolejnym podziałem będzie wydajność, ale zanim do niej przejdziemy musicie wiedzieć, że w serwerach NAS wydajność zależy od zastosowania. Na potrzeby sensownego porównania zakładamy, że odczyt i zapis jest w trybie ciągłym (tryb ciągły ma zawsze lepszą wydajność od losowego).
Wydajność dysków odczyt/zapis (parametr, który determinuje prędkość przesyłu danych):
- dyski HDD 7200 RPM mają około 220MB/s
- dyski SSD SATA mają około 500MB/s
- dyski SSD NVMe mają około 3000MB/s
Wydajność dysków IOPS (parametr, który określa czas dostępu do danych):
- dyski HDD 7200 RPM mają 75-100 IOPS
- SSD SATA 400 – 120 000 IOPS
- SSD NVMe 1000 – 500 000 IOPS
Pewnie zastanawiacie się dlaczego pominąłem dyski, które mają po 10000RPM lub 15000RPM, wynika to z tego, że producenci powoli się z nich wycofują. Dyski ze zwiększoną liczbą RPM miały za zadanie mieć większą wydajność IOPS, ale zwiększenie ilości RPM w dyskach HDD nie dorówna ilości IOPS jakie oferują nam dyski SSD.
Na co jeszcze zwrócić uwagę przy wyborze dysku do serwera NAS:
- dysk musi być przeznaczony do pracy trybie 24h
- dyski powinny mieć czujnik drgań, który chroni przed błędami zapisu i odczytu w systemach, gdzie mamy więcej niż cztery dyski
- czas gwarancji jest ważny, ale sprawdzajcie jej warunki, gdyż producenci dodają zapis, że gwarancja jest uzależniona też od ilości zapisanych danych na dysku. Przykładowo dysk może mieć 3 lata gwarancji z limitem zapisu 550TB, oznacza to, że jeżeli na dysku zapiszesz więcej niż 550TB danych przed okresem końca gwarancji to i tak ją tracisz. I tutaj rozprawimy się z kolejnym mitem, wszyscy żyją w przekonaniu, że dyski HDD są bardziej trwałe niż dyski SSD, a okazuje się, że coraz częściej współczynnik zapisu danych jaki obejmuje gwarancja dysku jest większy dla dysków SSD, co za tym idzie obecnie jedyny sensowych argument, który każe nam wybrać dysk HDD jest jego cena
- przy wyborze dysków SSD pamiętajcie, że pamięć FLASH ma znaczenie, więc dwa dyski SSD o tej samej ilości pamięci FLASH, ale innego typu będą miały inną wydajność. Obecnie mamy cztery typy pamięci flasch, od lewej ta najlepsza SLC>MLC>TLC>QLC
- w dyskach SSD mamy jeszcze jedną pułapkę, nawet jeżeli będziemy mieć ten sam typ pamięci FLASH w dwóch dyskach, to w cale nie oznacza, że ich wydajność będzie taka sama. Wynika to z tego, że producenci dysków sami produkują kontrolery do dysków, które decydują o tym jak dane są zapisywane na pamięciach FLASH, więc zawsze warto sprawdzić, który producent robi to najlepiej
Na koniec tego działu warto wspomnieć o tym jak producenci NAS, często oszukują klientów wykorzystując ich niewiedzę. Dyski po włożeniu do serwera komunikują się z odpowiednim kontrolerem na płycie głównej serwera. Dla przypomnienia kontroler SATA III przetworzy 750MB/s. Idealnie byłoby, aby na każdy slot dysku SATA III był zamontowany jeden kontroler, ale często nie ma to sensu, bo jak wiemy dyski HDD SATA III wyciąga około 220MB/s więc spokojnie jeden kontroler SATA III na dysku może obsłużyć trzy dyski SATA III. Niestety są producenci, którzy idą o krok dalej. Przykładowo dostarczają serwer na 4 dyski, w specyfikacji piszą, że każda kieszeń ma pełne SATA III, a później wszystkie 4 dyski podłączają do jednego kontrolera, a jak już wiecie w takiej konfiguracji nie da się obsłużyć pełnej możliwości dysków, wtedy taki kontroler jest wąskim gardłem, dlatego jeżeli macie możliwość to weryfikujcie jak to wygląda w serwerze NAS, który chcecie kupić.
Dodatkowo musicie zwracać uwagę na CPU i magistralę płyty głównej. Może się okazać, że dysk będzie wydajny jak NVMe i ilość kontrolerów na płycie też będzie odpowiednia, CPU będzie wydajny, ale magistrala łącząca CPU i kontrolery będzie za wolna i będzie wąskim gardłem. Musicie też pamiętać, że w przypadku procesorów dla sieciowych pamięci masowych zawsze ważniejszym parametrem będzie zegar taktujący, niż ilość corów. Oczywiście im wyższy zegar tym lepiej, szczególnie jak pamięć masowa ma udostępniać swoją przestrzeń blokowo po iSCSI lub FC, tak więc CPU z dwoma corami o taktowaniu 4GHz będzie o wiele lepszym wyborem niż CPU, który ma osiem corów z zegarem 2,8GHz.
Musisz wiedzieć w jakim środowisku będzie pracował serwer NAS
Wiedza o parametrach dysków są bardzo ważne przy wyborze dysku, ale nic Ci one nie da, jeżeli nie będziesz wiedział do czego serwer NAS będzie wykorzystywany. Serwery NAS najczęściej wykorzystywane są w systemach backupu danych, monitoringu wizyjnego, hostowaniu baz danych lub maszyn wirtualnych, jako serwer plików, blokowa pamięć masowa lub prywatna chmura do synchronizowania danych. Wybierają serwer musisz wiedzieć jakie potrzeby ma dane środowisko, przykładowo backup wymaga pojemnych dysków o dużej wydajności zapisu jeżeli okno backup jak krótkie, ale nie ma znaczeni ilość IOPS, a znowu hostowanie baz danych wymaga małych pojemności, ale dużych wydajności dla IOPS. Mając taką wiedzę już wiesz, że do serwera, który ma robić za backup wystarczy dysk SATA III 16TB, a do baz danych będziesz potrzebował dysk SSD typu NVMe.
Jeden dysk to za mało, RAID to podstawa
Jak wiecie serwery NAS obsługują więcej dysków niż jeden i są tego konkretne powody, po pierwsze często pojemność jednego dysku jest za mała, po drugie awaria dysku powoduje utratę danych, gdy mam tylko jeden dysk to taka awaria równa się utracie danych, co więcej w wielu sytuacjach wydajność jednego dysku jest za mało i właśnie dla tego powstał RAID (Redundant Array of Independent Disks).
Zadania RAID (Nadmiarowa Macierz Niezależnych Dysków) w serwerach NAS:
- zabezpiecza przed awarią dysku
- zwiększa wydajność pamięci masowej
- prezentuje jako całość przestrzeń wszystkich dysków
Najbardziej popularne RAID-y:
- RAID0, awaria dysku powoduje utratę danych, widzimy 100% pojemności dysków, wymaga dwóch dysków
- RAID1, dopuszcza awarię jednego dysku, widzimy 50% pojemności dysków, wymaga dwóch dysków
- RAID10 (RAID0 miedzy dwoma RAID1), dopuszcza awarię dwóch dysków z różnych grup RAID1, widzimy 50% pojemności dysków, wymaga czterech dysków
- RAID5, dopuszcza awarię jednego dysku, tracimy pojemność jednego dysku, wymaga minimum 3 dysków
- RAID6, dopuszcza awarię dwóch dysków, tracimy pojemność dwóch dysków dysku, wymaga minimum 4 dysków
- RAID50 (RAID0 między minimum dwoma RAID5), dopuszcza awarię jednego dysku per RAID5, tracimy pojemność jednego dysku per RAID5, wymaga minimum 6 dyków
- RAID60 (RAID0 między minimum dwoma RAID6), dopuszcza awarię 2 dysków per RAID6, tracimy pojemność dwóch dysków per RAID6, wymaga minimum 8 dyków
Sumy kontrolne RAID 5, 6, 50 i 60 w przypadku awarii dysku umożliwiają jego odtworzenie poprzez wykonanie określonych operacji matematycznych. Odbudowa mocno obciąża serwer.
Wydajność popularnych RAID-ów:
- RAID0, odczyt 2 x lepszy od jednego dysku, zapis 2 x lepszy od jednego dysku
- RAID1, odczyt 2 x lepszy od jednego dysku, zapis taki sam jak w przypadku pojedynczego dysku
- RAID10 (RAID0 miedzy dwoma RAID1), odczyt 4 x lepszy od jednego dysku, zapis 2 x lepszy od jednego dysku
- RAID5, odczyt 2 x lepszy od jednego dysku, zapis taki sam jak w przypadku pojedynczego dysku
- RAID6, odczyt 2 x lepszy od jednego dysku, zapis taki sam jak w przypadku pojedynczego dysku
- RAID50 (RAID0 między dwoma RAID5), odczyt 4 x lepszy od jednego dysku, zapis 2 x lepszy od jednego dysku
- RAID60 (RAID0 między dwoma RAID6), odczyt 4 x lepszy od jednego dysku, zapis 2 x lepszy od jednego dysku
Jeżeli chodzi o RAID to też musimy wiedzieć do czego będzie wykorzystywany serwer, aby dobrze wybrać konfigurację. W przypadku serwerów na dwa dyski będzie to RAID1, w przypadku czterodyskowych i więcej będzie to najczęściej RAID5 jeżeli zależy nam na pojemności lub RAID10 jeżeli chcemy mieć lepszą wydajność. W przypadku większej ilości dysków należy pamiętać, że RAID5 i RAID6 pracują optymalnie na 8 dysków, więc jeżeli kupisz serwer na 16 zatok to lepiej będzie jak skonfigurujesz RAID50, niż RAID5 na całości. Dlaczego? Wyżej pisałem, że w razie awarii RAID musi przeliczyć sumy kontrolne, jeżeli będziesz miał RAID5 na 16 dyskach to wszystkie 16 dysków będzie brało udział w tym procesie. Jeżeli awaria dysku nastąpi w RAID50 na 16 dyskowej macierzy to w proces przeliczania będzie zaangażowane tylko 8 dysków z grupy RAID5, w której dysk uległ awarii. To spowoduje, że macierz RAID50 szybciej zsynchronizuje dane niż ta z RAID5.
RAID ma swoje zalety, ale idealny nie jest, szczególnie 5,6 i pochodne, które są podatne na zjawisko tzw. dziury zapisu (write whole). Problem polega na tym, że jeśli w czasie aktywnego zapisu na RAID nastąpi awaria systemu, istnieje duże prawdopodobieństwo, że blok parzystości nie będzie zgodny z blokami danych. W przypadku niewykrycia tego przed awarią dysku, bądź uszkodzeniem bloku może doprowadzić do niepoprawnej odbudowy danych. Należy pamiętać, że takie awarie są rzadki, ale są. Jeżeli chcemy wyeliminować ten problem to wystarczy kupić UPS, który podtrzyma zasilanie w razie awarii zasilania, lub zakupić serwer z systemem plików ZFS, który to jest odporny na tą podatność.
Serwery NAS dają nam też możliwość skonfigurowania tzw. Hot Spare, jest to dysk, który nie pracuje w grupie RAID, tzw. dysk zapasowy, który czeka na awarie dysku w RAID, jeżeli taka nastąpi to system od razu zamieni dysk uszkodzony na Hot Spare i zacznie odbudowę RAID. Hot Spare stosuje się w systemach wielodyskowych, gdzie czas reakcji ma znaczenie.
Pamiętać należy jeszcze o dwóch rzeczach, dyski muszą być przeznaczone do pracy w RAID oraz o tym, że do tej samej grupy dodajemy te same dyski. Oczywiście na forach znajdziecie wiele przykładów, gdzie w obrębie jednego RAID pracują dyski różnych producentów o różnej specyfikacji, ale jest to po prostu głupota.
Kontroler RAID programowy vs. sprzętowy
Kontroler RAID ma za zadanie obliczanie sum kontrolnych danych rozrzuconych w obrębie RAID. Obecnie na rynku w 95% serwerach NAS mamy programowy kontroler NAS. Oznacza to, że procesor serwera zajmuje się procesami obliczeniowymi powiązanymi z RAID. W przypadku kontrolera sprzętowego na płycie głównej serwera mamy dedykowany układ scalony ASCII, który zajmuje się tylko obliczeniami RAID. Dlaczego, aż tyle firm zdecydowało się na kontroler programowy? Wynika to z postępu technologicznego, obecne procesory są już tak wydajne, że bez problemu radzą sobie z tymi obliczeniami. Kiedyś gdy procesory miały kilka herców, trzeba było wspomagać się dodatkowymi układami ASCII. Oczywiście dziś też możemy znaleźć takie rozwiązania, przykładowo 3PAR firmy HP, którego cena zaczyna się od 300000PLN. Opisuje to nie po to, aby tłumaczyć Wam, z czego to wynika, a po to, żeby Was uchronić przed nieuczciwymi producentami pamięci masowych. Często zdarza się, że producenci piszą iż w rozwiązaniu za 4000PLN mają fizyczny kontroler RAID i oczywiście wskazują to jako swój plus w stosunku do konkurencji. Jeżeli kiedykolwiek ktoś Wam powie, że ma kontroler sprzętowy RAID to po prostu zażądaj zdjęcia płyty głównej, na którym markerem zostanie oznaczony układ kontrolera RAID. Nagle się okaże, że takie zdjęcia nie możesz dostać, albo je dostajesz z tym, że oznaczonym układem nie jest kontroler RAID tylko kontroler SATA dysków. Podsumowując, niech zawsze zapali się Wam czerwona lampka ostrzegawcza jak producent będzie Wam opowiadał o tym, że w rozwiązaniu poniżej 300000PLN ma dedykowany sprzętowy kontroler RAID.
Mamy skonfigurowany RAID co dalej?
Teraz już nie będzie tak łatwo, bo na tym etapie nie da się generalizować, gdyż każdy producent ma swój pomysł na to jak na poziomie logicznym będzie działać jego macierz, dlatego od teraz wytłumaczę Wam zasadę działania i prawidłowej konfiguracji na przykładzie rozwiązań firmy QNAP, która dzięki przejściu na system plików ZFS w mojej ocenie stworzyła najbardziej wydajny, funkcjonalny, a jednocześnie bezpieczny system dla serwerów NAS.
QNAP tworzy pulę pamięci na grupach RAID jakie skonfigurowaliśmy w serwerze i prezentuje ją jako całość. Co ważne pula działa na blokach o wielkości 4KiB, czyli odzwierciedla fizyczne bloki dysków twardych, a to powoduje, że jest bardzo wydajna i nie wpływa na zmniejszenie wydajności macierzy.
Do takiej puli w każdej chwili możemy dodać nową grupę RAID, która zwiększy dostępną przestrzeń oraz spowoduje, że wydajność będzie jeszcze lepsza. Wynika to z tego, że pula pamięci w QNAP QTS Hero zachowuje się jak RAID0, to znaczy, że w tym samym czasie zapisuje dane na wszystkie grupy RAID przyłączone do puli. W przykładzie poniżej widzimy, że dzięki takiemu podejściu zapis jest na poziomie 800MB/s, a odczyt na poziomie 1600MB/S. W rozwiązaniach innych producentów połączenie pojemności RAID ograniczona jest do wydajności pojedynczego RAID w tym przypadku byłoby to dwa razy wolniej. Do tego warstwa nad RAID nie odwzorowuje wielkości bloków dysków, co generuje dodatkowe obliczenia polegające na konwertowaniu bloków co obciąża serwera i wpływa na jego wydajność.
Po stworzeniu puli na QNAP Hero od razu tworzymy udziały sieciowe lub blokowe LUN dla iSCSI/FC, omijane są warstwy tzw. woluminów, które są wykorzystywane w innych rozwiązaniach. Mniej warstw logicznych powoduje dużą wydajność. W standardzie udziały sieciowe wykorzystują technologię thin provisioning, a dodatkowo może włączyć jeżeli mamy taką potrzebę deduplikację, kompresję i migawki.
Mam nadzieję, że teraz bardziej świadomie będziecie wybierać serwer NAS, bo już chyba wiecie na co zwracać uwagę ?