Serwer NAS nie wystarczy – kopie zapasowe są niezbędne

Niektórzy użytkownicy powierzają swoje dane potężnym serwerom plików, reklamowanym jako „zapewniające pełną ochronę danych”. Jednak nasz NAS może nie być tak bezpieczny, jak nam się wydaje.

W epoce cyfrowej pojawiło się nowe zjawisko: osoba kompulsywnie gromadząca dane (data hoarder). Zwykle zaczyna się niewinnie: usunęliśmy dane, które później okazały się potrzebne, więc postanowiliśmy zakupić większy dysk i kasować coraz mniej. Z czasem kolekcja się rozrasta i zwykły komputer nie wystarcza, aby pomieścić rosnącą kolekcję plików. Zaczynamy kupować zewnętrzne dyski USB. Jednak takie rozwiązanie nie jest optymalne, więc ostatecznie inwestujemy w serwer sieciowej pamięci masowej (NAS).

Rysunek 1: TrueNas Mini E to popularne urządzenie NAS. Posiada 8 GB pamięci RAM ECC (którą można rozbudować do 16 GB) i cztery kieszenie hot-swap na dyski twarde.

NAS to dedykowany serwer zoptymalizowany do przechowywania dużych ilości informacji. Serwery NAS są powszechnie dostępne jako urządzenia komercyjne, ale wielu zaawansowanych użytkowników woli budować własne, wykorzystując posiadane już części zamienne. Duże serwery NAS są skalowalne i pozwalają na zwiększenie ich pojemności poprzez dodanie dysków twardych w razie potrzeby. Co więcej, często oferują funkcje bardzo przydatne w zastosowaniach korporacyjnych, ich producenci zaś obiecują, że potrafią złagodzić najczęstsze zagrożenia dla długoterminowego przechowywania plików.

Sprzedawcy NAS często reklamują swoje systemy jako odporne na awarie i mocno akcentują ten aspekt, co powoduje, że użytkownicy traktują tego rodzaju pamięć masową niemal jako kuloodporną, kopiując wszystkie swoje dane na NAS, całkowicie pomijają etap tworzenia kopii zapasowych. Jednak w praktyce systemy pamięci masowej klasy konsumenckiej rzadko zapewniają kompletne rozwiązanie, obejmujące zarówno wysoką dostępność, jak i bezpieczeństwo kopii zapasowych. W niniejszym artykule wyjaśnimy, co może pójść nie tak – i dlaczego mimo korzystania z NAS-a musimy wykonywać kopie zapasowe, aby zapewnić bezpieczeństwo danych.

Cechy wysokiej jakości NAS-ów

Dla użytkowników domowych dostępna jest szeroka gama opcji NAS. Opcje te różnią się jakością, od niewielkich zabawek umieszczanych na biurku po systemy quasi-enterprise, które mogą przypominać sprzęt AGD (Rysunek 1).

Z wyjątkiem urządzeń z niższej półki ­NAS-y są projektowane z myślą o zapewnieniu jak największej dostępności. W tym kontekście maszyna o wysokiej dostępności to taka, która może obsługiwać swoich użytkowników w niesprzyjających warunkach. Taki serwer musi być w stanie dalej funkcjonować w przypadku awarii dysku twardego, awarii sieci energetycznej lub awarii zasilania.

Popularne poziomy RAID

RAID-y można budować na wiele sposobów, w zależności od celu, któremu służą. Najpopularniejsze tradycyjne poziomy RAID to:

  • RAID 0 umieszcza dane na wszystkich dyskach w zestawie w celu zwiększenia wydajności (Rysunek 2). Całkowity rozmiar macierzy RAID to suma rozmiarów wszystkich pojedynczych dysków. Awaria jednego dysku psuje całą macierz, w praktyce jest to więc niebezpieczny poziom RAID. RAID 0 ma lepszą przepustowość odczytu i zapisu niż pojedynczy dysk twardy o tym samym rozmiarze co macierz, ponieważ obciążenie jest równomiernie rozłożone na poszczególne dyski w macierzy RAID.
  • RAID 1 tworzy kopie danych na wszystkich dyskach w macierzy (Rysunek 3). Ponieważ każdy dysk ma pełną kopię wszystkich danych, RAID 1 może działać dopóty, dopóki awarii nie ulegnie ostatni dysk z macierzy, przy czym zwykle używa się tej konfiguracji w przypadku dwóch dysków. RAID 1 to dobre rozwiązanie w kwestii zapewnienia dostępności danych, ale niezbyt opłacalne, ponieważ wymaga co najmniej dwa razy więcej dysków przy tej samej pojemności. Co więcej, jeśli dyski mają różne pojemności, wykorzystywana jest jedynie pojemność mniejszego.
  • RAID 5 jest jednym z najpopularniejszych w małych wdrożeniach. Ta forma RAID jest znana jako rozkładanie dysków z parzystością. Dane są rozłożone (jak w przypadku RAID 0), ale dodatkowy dysk zapewnia bit parzystości, dzięki czemu macierz może nadal działać w przypadku awarii jednego z dysków (Rysunek 4). RAID 6 robi prawie to samo, z wyjątkiem tego, że może nadal działać po awariach dwóch dysków twardych.
  • RAID 10 jest kombinacją RAID 0 i RAID 1. Dyski pracują w parach, przy czym każda jednostka zawiera te same dane co druga. Następnie wszystkie pary są umieszczane w macierzy RAID 0 (Rysunek 5). RAID 10 może działać tak długo, jak długo sprawny jest co najmniej jeden dysk w każdej parze.

Rysunek 2: RAID 0 dystrybuuje dane na poszczególnych dyskach macierzy. Ta konfiguracja jest dobra dla wydajności, ale utrata jednego dysku psuje całą macierz.
Rysunek 3: RAID 1 zapewnia dublowanie danych z jednego dysku na drugi. Dopóki jedne dysk jest sprawny, macierz będzie działała, ale konfiguracja ta nie jest opłacalna.
Rysunek 4: W konfiguracji RAID 5 dane są rozmieszczone równomiernie na wszystkich dyskach macierzy, wraz z niewielką ilością informacji o parzystości, w taki sposób, że serwer obsługujący macierz może nadal działać, jeśli jeden z dysków ulegnie awarii.
Rysunek 5: RAID 10 umieszcza pary RAID 1 w macierzy RAID 0. Ta konfiguracja jest bardzo odporna na awarie, ale również bardzo droga.

Serwery łagodzą awarie dysków twardych dzięki zastosowaniu nadmiarowej macierzy niezależnych dysków, czyli RAID.

Grupa RAID to po prostu zestaw dysków twardych, które są rozpoznawane przez system operacyjny jako pojedynczy dysk wirtualny. (W ramce „Popularne poziomy RAID” znajdziemy więcej informacji na temat niektórych typowych scenariuszy RAID.) W kontekście domowego serwera NAS dyski te będą najczęściej grupowane w tak zwanym poziomie RAID 5. RAID 5 dystrybuuje dane w macierzy równomiernie na każdym urządzeniu, z kilkoma dodatkowymi składnikami parzystości. Jeśli jeden z dysków ulegnie awarii, serwer będzie nadal działał w stanie zdegradowanym, utrzymując pozostałe dyski w ruchu i wykorzystując dane parzystości do odtworzenia utraconych informacji.

Serwer może przetrwać przerwy w dostawie prądu dzięki zasilaczowi bezprzerwowemu (UPS), czyli, praktycznie rzecz biorąc, akumulatorowi uruchamianemu w przypadku awarii sieci energetycznej (Rysunek 6). Nowoczesny UPS może komunikować się z serwerem przez USB lub Ethernet, aby system operacyjny wiedział, ile energii pozostało w akumulatorze, co jest przydatne w sytuacji, kiedy trzeba wymusić wyłączenie maszyny w zaplanowany sposób, jeśli awaria trwa dłużej i energia w UPS-ie jest bliska wyczerpania.

Dobry sprzęt NAS często zawiera pamięć RAM z kodem korekcji błędów (ECC). RAM z ECC potrafi przeprowadzić weryfikację pamięci pod kątem spójności, redukując przypadkowe błędy w pamięci, które są częstsze, niż mogłoby się wydawać [1]. Błędy pamięci RAM są uważane za niebezpieczne dla przetrwania zestawu danych i dalszego działania serwera. Błędny bit w pamięci RAM może spowodować nieprawidłowe działanie systemu operacyjnego lub uszkodzenie pliku. ECC ma na celu zmniejszenie ryzyka wystąpienia takiego zdarzenia i utrzymanie działania systemu po błędzie pamięci.

Teoria głosi, że błąd jednego bitu w pamięci RAM może spowodować reakcję łańcuchową, wywołując ogromne uszkodzenia danych w systemie plików ZFS. Dlatego argumentuje się, że jedynym bezpiecznym sposobem uruchomienia serwera ZFS jest użycie pamięci RAM ECC, a jeśli tego nie zrobimy, sami prosimy się o kłopoty.

Rysunek 6: Serwery plików są często sparowane z systemem nieprzerwanego zasilania, takim jak ta jednostka CyberPower. To urządzenie zapobiegnie nieplanowemu wyłączeniu serwera, co w niektórych sytuacjach może powodować problemy, a nawet utratę danych.

ZFS nie używa sprawdzania spójności przed montowaniem i – w chwili powstawania niniejszego tekstu – nadal nie dysponuje narzędziami do naprawy systemu plików. ZFS został pomyślany jako samonaprawiający się system plików, zdolny do naprawy uszkodzonych danych w locie. Jeśli ZFS spróbuje odczytać blok danych, który został uszkodzony – np. przez usterkę dysku twardego – system plików mógłby spróbować zidentyfikować problem i naprawić go w locie na podstawie danych parzystości. Takie funkcje samoleczenia teoretycznie eliminują potrzebę stosowania narzędzi naprawczych. Projekt FreeNAS (obecnie TrueNAS) ostrzega jednak, że operacja wykorzystująca błędne dane pamięci może spowodować trwałe uszkodzenie systemu plików, a ponieważ nie ma dostępnych narzędzi do odzyskiwania danych, dane te mogą być nie do odzyskania [2].

W praktyce jednak istnieje wiele opinii na temat tego, czy ZFS jest bardziej podatny na awarie niż inne systemy plików. Matthew Ahrens, współzałożyciel projektu Sun ZFS, twierdzi, że używanie ZFS z pamięcią RAM bez ECC jest mniej więcej tak ryzykowne jak uruchamianie zwykłego systemu plików bez niego [3], argumentując, że pamięć ECC RAM nie jest konieczna, ale jest wysoce zalecana.

Problemy z macierzami RAID

Dobry NAS zapewnia doskonały czas pracy bez przestojów i z pozoru wygląda na odporny na awarie. Wydawałoby się, że na takim serwerze pliki mogą trwać w nieskończoność. Ktoś mógłby pomyśleć, że skoro NAS potrafi poradzić sobie z awarią dysku twardego (czyli z najczęstszą awarią sprzętu [4]), po co wydawać pieniądze na kolejny serwer i wykonywanie kopii zapasowej oryginalnych danych?

Problem polega na tym, że serwer plików ma ograniczone możliwości ochrony danych, zwłaszcza poza środowiskiem korporacyjnym. Wysokiej jakości sprzęt serwerowy został zaprojektowany tak, aby gwarantować dobry czas pracy bez przestojów w obliczu problemów, ale niekoniecznie integralność informacji. Istnieją scenariusze, w których NAS może nas zawieść.

Jeśli dysk twardy ulegnie awarii w zestawie RAID 5 serwera NAS, cała macierz będzie działać na obniżonym poziomie. Z punktu widzenia użytkownika macierz nadal działa, ale przestała zapewniać odporność na uszkodzenia. Jeśli inny dysk ulegnie awarii przed dodaniem nowego i odbudowaniem macierzy, informacje zawarte w macierzy zostaną utracone. Wiele danych w macierzach RAID uległo utracie z powodu zaniedbania właściciela, który zbyt długo zwlekał z zakupem nowego dysku – lub z powodu długiego oczekiwania na przepracowanego administratora systemu.

Rysunek 7: Prymitywny klaster HA. System równoważenia obciążenia kieruje cały ruch do serwera plików wyznaczonego jako główny. Serwer plików oznaczony jako replika zawiera kopię zawartości węzła głównego.
Rysunek 8: Jeśli serwer podstawowy przejdzie w tryb offline, replika przejmuje funkcję serwera podstawowego.

Ale opóźniona naprawa to tylko jeden z powodów, dla których nie można stuprocentowo polegać na RAID. Wystarczy jedno wyszukiwanie w Internecie, by znaleźć niezliczone opinie dotyczące nieprzydatności RAID 5 dla nowoczesnych serwerów plików [5]. Nośniki pamięci nie są idealne i mogą generować losowe błędy odczytu. Dyski twarde są wystarczająco niezawodne w większości zastosowań [6], ale co jakiś czas generują nieodwracalny błąd odczytu (URE). URE to błędy, które mają miejsce, gdy dysk twardy próbuje uzyskać dostęp do bloku danych, ale nie udaje mu się tego zrobić. Szacuje się, że współczesne dyski mają jeden URE na każde 1014 odczytanych bitów, co oznacza, że błędy te występują stosunkowo rzadko.

Jednak im większa macierz dyskowa, tym większa szansa, że gdzieś istnieje uszkodzony sektor. Argumentem krytyków RAID 5 jest to, że rozmiary macierzy dyskowych stały się tak duże, że prawdopodobieństwo wyzwolenia URE przestaje być akceptowalne. Dzieje się tak, ponieważ im większą liczbą bitów zarządza dany RAID, tym bardziej zwiększa się prawdopodobieństwo, że przynajmniej jeden blok informacji jest problematyczny.

Jeśli RAID 5 utraci dysk z powodu awarii sprzętu, można podłączyć nowy dysk i odbudować RAID 5 z danych istniejących na pozostałych dyskach. Jeśli jednak podczas tego procesu któryś z pozostałych dysków wygeneruje URE, konsekwencje mogą być różne, od utraty danych istniejących w tym sektorze do niemożności odbudowania całego RAID (w zależności od jakości kontrolera RAID i dysków).

Doświadczenie sugeruje, że strach przed niemożnością odbudowania dużych macierzy jest nieproporcjonalny w stosunku do częstotliwości występowania tego problemu. Niemniej jednak ważne jest, aby pamiętać, że RAID 5 jest narzędziem gwarantującym czas pracy, a nie integralność plików.

Istnieją poziomy RAID o lepszej odporności na błędy niż RAID 5 (takie jak RAID 6 lub RAID 10), ale korzystanie z tych alternatywnych poziomów RAID w małym systemie jest stosunkowo drogie.

Prawie tak samo problematyczny jest fakt, że wiele kontrolerów RAID jest zastrzeżonych i nie oferuje dobrej ścieżki migracji. Jeśli korzystamy z zastrzeżonego rozwiązania i chcemy przenieść swoje dyski twarde ze starego serwera – być może dlatego, że ostatecznie przestał działać – możemy odkryć, że na komputerze docelowym nasze dane są nieczytelne.

Z drugiej strony, problemy z oprogramowaniem mogą zniszczyć nasze pliki tak samo szybko jak awaria sprzętowa, a w tym przypadku korzystanie z serwera klasy korporacyjnej niewiele nam da. Na przykład urządzenia NAS firmy QNAP zawierały lukę, która powodowała, że wielu użytkowników stało się ofiarami ransomware DeadBolt [7][8].

Awaria zasilania

Współczesne systemy plików są umiarkowanie odporne na awarie zasilania, ale nawet potężny ZFS może ucierpieć z tego powodu [9]. UPS może pomóc, uważajmy jednak na tanie urządzenia: wiele budżetowych domowych zasilaczy UPS nie jest przygotowanych do obsługi ciągłej pracy i ulegnie zużyciu, mogąc przyczynić się do awarii NAS-a. Według ankiety przeprowadzonej w 2016 r. przez Ponemon Institute, awaria zasilacza UPS jest główną przyczyną nieplanowanych przestojów w centrach danych [10]. W praktyce oznacza to, że ochrona przed blackoutem zmniejsza ryzyko utraty danych w wyniku utraty zasilania, ale nie eliminuje zagrożenia całkowicie.

W scenariuszach korporacyjnych administratorzy zdają sobie sprawę, że próba stworzenia dobrego serwera NAS nie wystarczy, by naprawdę zagwarantować wysoką dostępność. W praktyce przedsiębiorstwa korzystają z sieci pamięci masowej (SAN) lub rozproszonych systemów plików, takich jak Ceph [11]. Narzędzia te są wdrażane w klastrach komputerowych w taki sposób, że w przypadku awarii serwera reszta klastra nadal działa.

Minimalny (i dla poważnych celów niewystarczający) klaster pamięci masowej, który można wdrożyć, został opisany na Rysunku 7. Jest to tak zwana topologia primary-replica (zwana wcześniej master-slave, ponieważ jednak w USA problem konsekwencji niewolnictwa czarnych obywateli jest wciąż drażliwą kwestią społeczną, w wielu projektach zrezygnowano z dotychczasowej terminologii). W tym modelu węzeł główny (primary) wykonuje usługi dla klientów (replica). Zawartość repliki jest okresowo synchronizowana z zawartością węzła głównego. W przypadku awarii węzła głównego mechanizm równoważenia obciążenia promuje jedną z replik do roli nowego węzła głównego (Rysunek 8).

A może w chmurze?

Systemy faktycznie gwarantujące wysoką dostępność nie są czymś, czego używa się w domu: zazwyczaj zawierają one nadmiarowe systemy równoważenia obciążenia i mogą wymagać dodania reguł protokołu Border Gateway (BGP). Nawet naiwna i prosta metoda, którą opisaliśmy powyżej, wiąże się z pomnożeniem kosztu pamięci masowej o więcej niż dwa, ponieważ wymaga serwera redundantnego i równoważenia obciążenia, co w praktyce wymaga miejsca w szafie serwerowej.

Nie dziwi więc fakt, że wielu użytkowników, zwłaszcza małych firm, zwraca się do profesjonalnych dostawców pamięci masowych, którzy oferują przechowywanie w chmurze za opłatą i dbają o ciągłą dostępność systemów pamięci masowej. Profesjonalni dostawcy pamięci masowych mogą być również bardzo opłacalni. Załóżmy na przykład, że przechowywanie danych w chmurze kosztuje nas 1500 USD w ciągu czterech lat – to mniej niż koszt dobrego NAS-a. Ponieważ NAS prawdopodobnie będzie wymagał aktualizacji około czwartego roku, opcja chmury nie jest całkowicie nieuzasadniona. Niestety, rozwiązanie to ma istotne wady: przesyłanie danych do chmury może potrwać znacznie dłużej niż przesyłanie ich na serwer lokalny, można też mieć obawy dotyczące prywatności.

Ludzie i oprogramowanie

Nawet jeśli założymy, że wybrane przez nas rozwiązanie jest odporne na awarie, nadal nie eliminuje to potrzeby posiadania odpowiedniego systemu tworzenia kopii zapasowych. Jeśli ręcznie usuniemy plik przez pomyłkę lub utracimy go z powodu błędnie działającego lub złośliwego oprogramowania, nie ma znaczenia, czy był przechowywany na zwykłym laptopie, zaawansowanym serwerze NAS, czy u dostawcy pamięci masowej w chmurze. Doświadczenie pokazuje, że ludzkie błędy znacznie częściej zmuszają użytkowników do przywracania danych z kopii zapasowych niż awarie sprzętu. Niektórzy dostawcy pamięci masowej wiedzą o tym i prowadzą historyczny rejestr każdego przesłanego do nich pliku, dzięki czemu możemy odzyskać starą wersję pliku, jeśli odkryjemy, że przesłaliśmy jego uszkodzoną wersję lub przypadkowo usunęliśmy coś ważnego.

Podsumowanie

System wysokiej dostępności został zaprojektowany tak, aby służył swoim użytkownikom, dane były dostępne zaś bez względu na awarie. Efektem ubocznym konfiguracji o wysokiej dostępności jest to, że informacje, które zostałyby utracone w wyniku awarii w systemie bez nadmiarowości, mogą przetrwać, jeśli korzystamy z klastra pamięci masowej lub nawet wysokiej klasy domowego serwera NAS.

Z drugiej strony, wysokiej klasy systemy pamięci masowej mają ograniczone możliwości ochrony naszych danych. Jak pokazaliśmy, rozwiązania zaprojektowane w celu utrzymania działania systemu pamięci masowej w obliczu przeciwności mogą nie zagwarantować integralności danych. W końcu ich podstawową troską jest zachowanie ciągłości działania usługi, a nie ochrona przechowywanych w nim informacji.

Z tego powodu wskazane jest utrzymywanie odpowiedniej kopii zapasowej danych, nawet jeśli przechowujemy je na serwerze NAS, który wygląda na niewrażliwy na typowe zagrożenia związane z integralnością danych. Wysokiej jakości przechowywanie zmniejsza prawdopodobieństwo utraty danych, ale go całkowicie nie eliminuje. 

Źródła:

[1] Schroeder B., Pinheiro E. i Weber W. „DRAM Errors in the Wild: A Large-Scale Field Study”. w: Proceedings of SIGMETRICS ’09, (SIGMETRICS, 2009): www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf

[2] Joshua Paetzel, Kompletny przewodnik po projektowaniu sprzętu FreeNAS, część I: Cel i najlepsze praktyki, 3 lutego 2015 r., https://web.archive.org/web/20151122065016/http:// www.freenas.org/whats-new/2015/02/a-complete-guide-to-freenas-hardware-design-part-i-purpose-and-best-practices.html

[3] ZFS i ECC RAM: https://arstechnica.com/civis/viewtopic.php?f=2&t=1235679&p=26303271#p26303271

[4] Częste awarie sprzętu: https://blog.storagecraft.com/hardware-failure

[5] Nienaprawialne błędy w RAID 5: http://raidtips.com/raid5-ure.aspx

[6] Statystyki napędów Backblaze za I kwartał 2021 r.: https://www.backblaze.com/blog/backblaze-hard-drive-stats-q1-2021/

[7] Luka w zabezpieczeniach QTS i QuTS hero: https://www.qnap.com/en/security-advisory/qsa-21-57

[8] DeadBolt: https://www.qnap.com/en/security-advisory/QSA-22-02

[9] ZFS i awarie zasilania: https://www.klennet.com/notes/2021-04-26-zfs-and-power-failures.aspx

[10] Koszt awarii centrum danych: https://www.ponemon.org/research/ponemon-library/security/2016-cost-of-data-center-outages.html

[11] Ceph: https://ceph.io/en/

Tagi:

Podziel się postem :)

Najnowsze:

Oprogramowanie

Zmiany w Gmailu. Wyszukiwarka staje się “inteligentniejsza”

Google wprowadza zmiany w swoich usługach, w tym w wyszukiwarce działającej w Gmailu. W praktyce chodzi o rozszerzenie zmian z zapowiedzi, która pojawiła się już w lipcu tego roku. Gmail będzie teraz sprawniej szukać wiadomości zależnie od poprzednich działań użytkownika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *