W 2013 roku jeden z najbardziej znanych dostawców NAS – NETGEAR – rozpoczął korzystanie z systemu plików BTRFS (krótkiego dla systemu plików B-tree) w swoich urządzeniach NAS. W przeciwieństwie do tradycyjnych systemów plików używanych w NASes, BTRFS nie jest czystym systemem plików, ale hybrydowym systemem plików i RAID. Ponieważ urządzenia NETGEAR NAS są bardzo popularne wśród użytkowników domowych, potrzeba ujawnienia specyfiki przechowywania danych na BTRFS jest całkiem rozsądna. Dodatkowo, wiedząc o wszystkich szczegółach, lepiej zrozumiesz, jakie problemy mogą napotkać podczas odzyskiwania danych z uszkodzonego serwera NETGEAR NAS.
Najpierw spójrzmy na typowy układ NAS. Każde urządzenie NAS składa się z dysków fizycznych, połączonych w jakiś sposób w jednym urządzeniu. Zazwyczaj stosuje się jeden z dwóch systemów:
- 2-warstwowy schemat, w którym sterownik md Linux udostępnia system RAID i system plików jest wdrażany przez system RAID. Taki schemat jest używany w NAS-ach firmy QNAP i NETGEAR skonfigurowanych w trybie Flex-RAID.
- 3-warstwowy schemat, w którym sterownik md Linux zapewnia RAID, sterownik LVM jest odpowiedzialny za łączenie kilku macierzy RAID w pojedynczą pamięć, a system plików odpowiada za przechowywanie danych na woluminie LVM. NAS-y firmy Synology i NETGEAR w trybie X-RAID 2 wykorzystują trójwarstwowy schemat.
W schemacie 3-warstwowym LVM umożliwia rozszerzenie tablicy przez dodanie lub wymianę dysków większymi bez ponownego odtwarzania systemu plików, co eliminuje potrzebę tworzenia kopii zapasowych i odtwarzania NAS podczas rozbudowy.
Jeśli chodzi o systemy plików, każdy system plików Linux może być używany, ponieważ NAS-y zazwyczaj działają pod systemem operacyjnym Linux. Zazwyczaj jest to rodzina plików EXT (EXT3 lub EXT4); niektórzy sprzedawcy zdecydowali się na XFS, na przykład w modelach NAS firmy Buffalo.
Schematy 2-warstwowe i 3-warstwowe są dość wiarygodne i sprawdzone w czasie, jednak nie są to cechy bogate. Na przykład ani wsparcie EXT ani XFS
- migawki na poziomie systemu plików,
- kompresji danych na dowolnym poziomie,
- sprawdzanie danych i metadanych.
Podczas odzyskiwania danych z NAS pracujących w ramach jednego z tych schematów jeden odzyskuje każdą warstwę jeden po drugim; ostatnia warstwa (odzyskiwanie systemu plików) jest w pełni badana ze względu na wiek EXT i XFS i jest odzyskiwana całkiem dobrze.
System plików BTRFS ma znacznie więcej funkcji, w tym migawki, kompresję, dane i kontrolę metadanych. Jednak ważne jest, aby zrozumieć, że BTRFS to nie tylko system plików, ale hybryda systemu plików i menedżera woluminów. Na przykład możliwe jest podjęcie dwóch urządzeń i utworzenie odpowiednika RAID 0 lub RAID 1 wyłącznie przez BTRFS.
BTRFS obsługuje prawie wszystkie poziomy RAID – JBOD, RAID 1, RAID 0, RAID 5 – z różnym stopniem niezawodności. W tej chwili wszystkie implementacje poziomu RAID w BTRFS z wyjątkiem RAID 5 działają niezawodnie; dlatego właśnie nowi użytkownicy NETGEAR NAS używają BTRFS tylko w celu utworzenia JBOD, zastępując warstwę LVM. Mimo to, tolerancja błędów jest zapewniona przez dobrą starą technologię RAID 5, za którą odpowiedzialny jest sterownik md. Ponadto sterownik md obsługuje poziom RAID 6 od wielu lat, podczas gdy w BTRFS RAID 6 nie był jeszcze produkowany w 2013 r., kiedy nastąpiło przełączenie na BTRFS.
Główna różnica między BTRFS a tradycyjnymi systemami plików polega na tym, że system plików przechowuje klastry w podstawowej pamięci masowej utworzonej przez md RAID. Ściśle mówiąc, w terminologii systemu plików klaster jest nazywany blokiem, ale my wolimy trzymać się klastrów, ponieważ “blok” często jest używany w szerokim znaczeniu. Typowe systemy plików dzielą przestrzeń dyskową na sekwencyjnie numerowany zestaw klastrów. W konsekwencji wiedząc tylko o lokalizacji pierwszego klastra i rozmiaru klastra możesz uzyskać lokalizację wszystkich innych klastrów.
BTRFS dzieli przestrzeń dyskową na klastry.
Nie ma konieczności by klastry były kolejno ułożone – klastry mogą przechodzić w dowolnym porządku, niektóre klastry mogą mieć dwie kopie w dwóch różnych miejscach, niektóre obszary dysku mogą w ogóle nie mieć klastrów. Korespondencja między adresami fizycznymi a liczbami klastra jest określana przez dodatkową tabelę (ang. the chunk table). Podobnie jak wszystkie inne metadane BTRFS, chunk table jest zwykle przechowywany w dwóch kopiach.
Przy tradycyjnym schemacie odzyskiwanie różnych warstw – md, LVM, systemu plików – odbywa się niezależnie i kolejno, czyli etap odzyskiwania systemu plików jest ostatni i jest wykonywany po przywróceniu macierzy. Na tym etapie gromadzone są informacje dotyczące lokalizacji i zawartości plików. Aby obliczyć lokalizacje pochodzące z metadanych systemu plików na klastry fizyczne na macierzowej macierzy RAID, wystarczy znać lokalizację pierwszego klastra i rozmiar klastra.
Odzyskiwanie danych z BTRFS
Odzyskiwanie danych z BTRFS jest radykalnie bardziej złożone w porównaniu do tradycyjnego odzyskiwania systemu plików, ponieważ BTRFS łączy w sobie dwie warstwy adresowania. W przeciwieństwie do tradycyjnego schematu, w którym odzyskiwanie odbywa się w każdej z warstw niezależnie, w BTRFS trzeba jednocześnie wiedzieć, gdzie zawartość plików znajduje się w systemie plików i gdzie elementy systemu plików są przechowywane na dyskach fizycznych. Innymi słowy, z BTRFS, oprócz zbierania informacji o lokalizacji plików na woluminie, potrzebna jest tabela tłumaczeń adresów klastra (chunk table). Jeśli obie kopie zostaną utracone, odzyskanie danych z woluminu BTRFS jest prawie niemożliwe.
Podsumowując, poprzednie NETGEAR NAS-y (wydane przed 2013 r.) odzyskuje się w trzech niezależnych i całkiem prostych krokach; we współczesnych sieciach NAS-ach firmy NETGEAR, pierwszy krok (md RAID reconstruction) jest taki sam, podczas gdy drugi i trzeci są połączone w znacznie bardziej skomplikowaną operację między innymi tym, że ważny element istnieje tylko w dwóch kopiach, których nie można odbudować, jeśli uszkodzony.
Najważniejsze jest to, że nowoczesne centra NETGEAR NAS są bardziej złożone w przypadku odzyskiwania danych niż poprzednie modele i poważaniem ale nie powinieneś w ogóle brać ich pod uwagę. Jedyne, co można zagwarantować, to jest tworzenie kopii zapasowych. Dlatego podczas konfigurowania systemu pamięci masowych planuje się tworzenie kopii zapasowych, a nie poleganie na nowoczesnych, fantazyjnych technologiach.