Układ pliku zapisu w dowolnym miejscu — Write Anywhere File Layout

WAFL
Deweloper(zy) NetApp
Pełne imię i nazwisko Układ pliku zapisu w dowolnym miejscu
Limity
Maks. wielkość woluminu do 100 TB (ograniczone przez zawieranie zagregowanego rozmiaru; zmienna maksymalna w zależności od platformy; ograniczona do 16 TB podczas korzystania z deduplikacji {ONTAP 8.2 obsługuje teraz deduplikację do maksymalnego rozmiaru woluminu obsługiwanego na platformie})
Maks. rozmiar pliku do 16 TB
funkcje
Daty zarejestrowania czas, cczas, mczas
Uprawnienia systemu plików Uprawnienia UNIX i listy ACL
Przezroczysta kompresja Tak (Ontap 8.0 i nowsze)
Przejrzyste szyfrowanie Tak (od Ontap 9.1; możliwe z urządzeniami innych firm, takimi jak Decru DataFort dla starszych wersji)
Deduplikacja danych Tak ( FAS Dedup : okresowe skanowanie online, oparte na blokach;)
Kopiowanie na piśmie tak
Inny
Obsługiwane systemy operacyjne ONTAP

Write Anywhere File Layout ( WAFL ) jest zastrzeżony system plików , który obsługuje duże, wysokiej wydajności RAID macierze, szybki restart bez długotrwałych kontroli spójności w razie wypadku lub awarii zasilania, oraz szybko rosnąca wielkość system plików. Został zaprojektowany przez firmę NetApp do użytku w jej urządzeniach pamięci masowej, takich jak NetApp FAS, AFF , Cloud Volumes ONTAP i ONTAP Select .

Jego autor twierdzi, że WAFL nie jest systemem plików, chociaż taki zawiera. Śledzi zmiany podobnie do systemów plików z dziennikiem jako dzienniki (znane jako NVLOG) w dedykowanej pamięci nieulotnej pamięci o dostępie swobodnym , określanej jako NVRAM lub NVMEM. WAFL zapewnia mechanizmy, które umożliwiają korzystanie z różnych systemów plików i technologii, które chcą uzyskać dostęp do bloków dyskowych .

Projekt

Struktura i-węzłów WAFL, metadane przechowywane wraz z danymi

WAFL przechowuje metadane, a także dane w plikach; metadane, takie jak i-węzły i mapy bloków wskazujące, które bloki w woluminie są przydzielone, nie są przechowywane w stałych lokalizacjach w systemie plików. Plik najwyższego poziomu w woluminie to plik i-węzłów, który zawiera i- węzły wszystkich innych plików; i-węzeł samego pliku i-węzła, zwany i-węzłem głównym, jest przechowywany w bloku o stałej lokalizacji. I-węzeł dla wystarczająco małego pliku zawiera zawartość pliku; w przeciwnym razie zawiera listę wskaźników do bloków danych pliku lub listę wskaźników do bloków pośrednich zawierającą listy wskaźników do bloków danych pliku i tak dalej, z tyloma warstwami bloków pośrednich, ile jest konieczne, tworząc drzewo bloków. Wszystkie bloki danych i metadanych w systemie plików, z wyjątkiem bloku zawierającego główny i-węzeł, są przechowywane w plikach w systemie plików. W ten sposób root i-węzeł może być użyty do zlokalizowania wszystkich bloków wszystkich plików innych niż plik i-węzła.

Pamięć główna jest wykorzystywana jako pamięć podręczna stron dla bloków z plików. Po dokonaniu zmiany w bloku pliku kopia w pamięci podręcznej strony jest aktualizowana i oznaczana jako brudna, a różnica jest rejestrowana w pamięci nieulotnej w dzienniku o nazwie NVLOG . Jeśli brudny blok w pamięci podręcznej strony ma zostać zapisany do pamięci trwałej, nie jest on ponownie zapisywany do bloku, z którego został odczytany; zamiast tego, nowy blok jest przydzielany w pamięci trwałej, zawartość bloku jest zapisywana w nowej lokalizacji, a węzeł lub blok pośredni wskazujący na dany blok jest aktualizowany w pamięci głównej. Jeśli blok zawierający i-węzeł lub blok pośredni ma zostać zapisany do pamięci trwałej, jest on również zapisywany w nowej lokalizacji, a nie nadpisywany w poprzedniej pozycji. Do tego właśnie odnosi się „Write Anywhere” w „Write Anywhere File Layout”.

Ponieważ wszystkie bloki, inne niż blok zawierający i-węzeł główny, są znajdowane przez i-węzeł główny, żadna ze zmian zapisanych w pamięci trwałej nie jest widoczna w pamięci trwałej, dopóki i-węzeł główny nie zostanie zaktualizowany. Główny i-węzeł jest aktualizowany przez proces zwany punktem spójności , w którym wszystkie brudne bloki, które nie zostały jeszcze zapisane w pamięci trwałej, są zapisywane w pamięci trwałej, a nowy główny i-węzeł jest zapisywany, wskazując na bloki w nowej wersji i-węzła plik. W tym momencie wszystkie zmiany w systemie plików są widoczne na trwałej pamięci masowej przy użyciu nowego i-węzła głównego. Wpisy NVLOG dotyczące zmian, które są teraz widoczne, są odrzucane, aby zrobić miejsce na wpisy dziennika dla kolejnych zmian. Punkty spójności są wykonywane okresowo lub gdy pamięć nieulotna jest bliska zapełnienia wpisami dziennika.

Jeśli serwer ulegnie awarii, zanim wszystkie zmiany w systemie plików zostaną uwidocznione w punkcie spójności, zmiany, które nie zostały uwidocznione, nadal znajdują się w NVLOG; po ponownym uruchomieniu serwera odtwarza wszystkie wpisy w NVLOG, ponownie dokonując zmian zapisanych w NVLOG, aby nie zostały utracone.

funkcje

Jak omówiono powyżej, WAFL nie przechowuje danych ani metadanych we wcześniej określonych lokalizacjach na dysku. Zamiast tego automatycznie umieszcza dane przy użyciu lokalizacji czasowej w celu zapisywania metadanych obok danych użytkownika w sposób zaprojektowany w celu zminimalizowania liczby operacji dyskowych wymaganych do zapisania danych w stabilnej pamięci dyskowej przy użyciu macierzy RAID z pojedynczą i podwójną parzystością.

Korzystanie z rozmieszczania danych opartego na czasowej lokalizacji odniesienia może poprawić wydajność odczytu zbiorów danych, które są odczytywane w podobny sposób, w jaki zostały zapisane (np. rekord bazy danych i powiązany z nim wpis indeksu), jednak może również powodować fragmentację z perspektywa przestrzennej lokalizacji odniesienia. W przypadku obracających się dysków twardych nie wpływa to niekorzystnie na pliki, które są zapisywane sekwencyjnie, odczytywane losowo lub są następnie odczytywane przy użyciu tego samego wzorca czasowego, ale ma to wpływ na odczyt sekwencyjny po wzorcach dostępu do danych przestrzennych zapisywania losowego, ponieważ głowica magnetyczna może znajdować się tylko w jednym położeniu w czas na odczyt danych z talerza, podczas gdy fragmentacja nie ma wpływu na dyski SSD .

Uwolnienia ONTAP od 7.3.1 obejmowały szereg technik w celu optymalizacji danych przestrzennych, takich jak układ realokacji polecenia do wykonywania zaplanowanych i ręcznej defragmentacji oraz Write po przeczytaniu opcji głośności, który wykrywa i automatycznie koryguje nieoptymalne wzorców dostępu do danych spowodowanych rozdrobnieniem przestrzennego . Uwolnienia ONTAP 8.1.1 obejmują innych technik automatycznej optymalizacji ciągłej wolnej przestrzeni w systemie plików, który również pomaga w utrzymaniu optymalnych układów danych dla większości wzorców dostępu do danych. Przed 7G polecenie wafl scan reallocate musiało być wywoływane z zaawansowanego poziomu uprawnień i nie mogło być zaplanowane. Uwalnianie ONTAP od 9,1 obejmowały szereg technik w celu wykorzystania SSD zoptymalizować takie jak Inline danych zagęszczania (9,1), wychodząc z ONTAP 9,2 FabricPool funkcji automatycznego podział na warstwy zimnych danych zwolnić przechowywania S3 i z powrotem, jeżeli wymaga SSD agregatów i Deduplikacja między wolumenami w ramach agregatu z maksymalnie 800TiB dla każdego agregatu.

Migawki

Tradycyjna kopia zapasowa danych techniką kopiowania przy zapisie na miejscu
Kopia zapasowa danych NetApp RoW Snapshot

WAFL obsługuje migawki , które są kopiami systemu plików tylko do odczytu. Migawki są tworzone przez wykonanie tych samych operacji, które są wykonywane w punkcie spójności, ale zamiast aktualizowania i-węzła głównego odpowiadającego bieżącemu stanowi systemu plików, zapisanie kopii i-węzła głównego. Ponieważ wszystkie dane i metadane w systemie plików można znaleźć w i-węźle głównym, wszystkie dane i metadane w systemie plików od momentu utworzenia migawki można znaleźć w kopii migawki i-węzła głównego. Żadne inne dane nie muszą być kopiowane, aby utworzyć migawkę.

Bloki są przydzielane, gdy są zapisywane przy użyciu mapy bloków, która śledzi, które bloki są w użyciu, a które są wolne. Wpis w mapie bloków zawiera bit wskazujący, czy blok jest używany w bieżącej wersji systemu plików oraz kilka bitów, po jednym na migawkę, wskazujących, czy blok jest używany w migawce. Dzięki temu dane w migawce nie zostaną nadpisane, dopóki migawka nie zostanie usunięta. Korzystając z mapy bloków, wszystkie nowe zapisy i przepisania są zapisywane w nowych pustych blokach, WAFL zgłasza tylko, że przepisanie bloku zakończyło się pomyślnie, ale w rzeczywistości nie ma przepisywania, to podejście nazywa się techniką przekierowania przy zapisie (ROW). ROW jest znacznie szybszy w operacjach ponownego zapisu w porównaniu z kopiowaniem przy zapisie, w którym stary blok danych, który ma zostać przepisany na miejscu i przechwycony w migawce, musi zostać najpierw skopiowany do miejsca przeznaczonego na rezerwę migawkową w celu zachowania oryginalnych danych, co generuje dodatkowe operacje kopiowania danych, gdy system ponownie zapisze ten blok.

Migawki zapewniają kopie zapasowe online, do których można szybko uzyskać dostęp za pośrednictwem specjalnych ukrytych katalogów w systemie plików, umożliwiając użytkownikom odzyskanie przypadkowo usuniętych lub zmodyfikowanych plików.

System operacyjny Data ONTAP 7G firmy NetApp obsługuje migawkę odczytu i zapisu o nazwie FlexClone . Migawki są podstawą technologii, takich jak SnapMirror , SnapVault i Tom Online Move natomiast funkcje, takie jak FlexClone , SnapLock , SnapRestore są migawka podobny technologii dźwigni na możliwości WAFL i właściwościach podobnych do manipulacji z węzłów. Począwszy od ONTAP 9.4 maksymalna liczba migawek obsługiwana dla każdego FlexVol wynosi 1024, podczas gdy dla poprzednich wersji maksymalny limit wynosił 255.

Począwszy od ONTAP 9.5 dodano funkcję udostępniania migawek, aby uruchamiać skanowanie deduplikacji w aktywnym systemie plików i migawkach, a oszczędności związane z deduplikacją stanowią ogromną liczbę migawek. Przed wersją 9.5 niededuplikowane dane zablokowane w migawce nie mogły być wykorzystane przez proces deduplikacji i działały tylko w aktywnym systemie plików.

Model plików i katalogów

Ważną cechą WAFL jest obsługa zarówno modelu plików i katalogów w stylu Uniksa dla klientów NFS , jak i modelu plików i katalogów w stylu Microsoft Windows dla klientów SMB . WAFL obsługuje również oba modele zabezpieczeń, w tym tryb, w którym różne pliki na tym samym woluminie mogą mieć przypisane różne atrybuty zabezpieczeń. Unix może używać list kontroli dostępu (ACL) lub prostej maski bitowej, podczas gdy nowszy model Windows jest oparty na listach kontroli dostępu. Te dwie cechy umożliwiają zapisanie pliku w sieciowym systemie plików typu SMB i dostęp do niego później przez NFS ze stacji roboczej Unix. Oprócz zwykłych plików, WAFL może zawierać kontenery plików zwane LUN z wymaganymi specjalnymi atrybutami, takimi jak numer seryjny LUN dla urządzeń blokowych, do których można uzyskać dostęp za pomocą protokołów SAN działających w oprogramowaniu ONTAP OS.

FlexVol

WAFL FlexVol Layout: bloki i metadane i-węzłów wraz z danymi użytkownika

Każdy wolumin elastyczny (FlexVol) to oddzielny system plików WAFL, umieszczony w agregacie i rozproszony na wszystkich dyskach w agregacie. Każdy agregat może zawierać i zwykle ma wiele woluminów FlexVol. ONTAP podczas procesu optymalizacji danych, w tym „Tetris”, który kończy się punktami spójności (patrz NVRAM ), jest zaprogramowany tak, aby równomiernie rozdzielić bloki danych w każdym woluminie FlexVol na wszystkie dyski łącznie, tak aby każdy FlexVol mógł potencjalnie wykorzystać całą dostępną wydajność wszystkich dyski danych w agregacie. Dzięki podejściu polegającemu na równomiernym rozmieszczeniu bloków danych na wszystkich dyskach danych w agregacie, ograniczanie wydajności dla FlexVol może być wykonywane dynamicznie z QoS pamięci masowej i nie wymaga dedykowanych agregatów lub grup RAID dla każdego FlexVol, aby zagwarantować wydajność i zapewnić niewykorzystaną wydajność objętość FlexVol, która tego wymaga. Każdy FlexVol można skonfigurować jako grubą lub cienką alokowaną przestrzeń, a później można go zmienić w locie w dowolnym momencie. Blokowanie dostępu do urządzeń za pomocą protokołów sieci pamięci masowej (SAN), takich jak iSCSI , Fibre Channel (FC) i Fibre Channel over Ethernet (FCoE), odbywa się z emulacją LUN podobną do techniki Loop na górze woluminu FlexVol; w ten sposób każda jednostka LUN w systemie plików WAFL pojawia się jako plik, ale ma dodatkowe właściwości wymagane dla urządzeń blokowych. Jednostki LUN można również konfigurować jako aprowizowane w trybie grubym lub cienkim i można je później zmieniać w locie. Dzięki architekturze WAFL FlexVols i jednostki LUN mogą na bieżąco zwiększać lub zmniejszać wykorzystanie skonfigurowanej przestrzeni. Jeśli FlexVol zawiera dane, przestrzeń wewnętrzna może zostać zmniejszona nie mniej niż zajęte miejsce. Mimo że rozmiar jednostki LUN wraz z danymi może zostać zmniejszony w systemie plików WAFL, ONTAP nie ma wiedzy na temat struktury bloków wyższego poziomu ze względu na architekturę SAN, więc może obciąć dane i uszkodzić system plików na tej jednostce LUN, więc host musi przeprowadzić migrację bloki zawierające dane do nowej granicy LUN, aby zapobiec utracie danych. Każdy FlexVol może mieć własne zasady QoS , FlashPool , FlasCache lub FabricPool .

Jeśli tworzone są dwa woluminy FlexVol, każdy w dwóch agregatach i agregatach należących do dwóch różnych kontrolerów, administrator systemu musi wykorzystać przestrzeń z tych woluminów za pośrednictwem protokołu NAS. Następnie utworzyliby dwa udziały plików, po jednym na każdym woluminie. W takim przypadku administrator najprawdopodobniej utworzy nawet różne adresy IP; każdy będzie używany do uzyskania dostępu do dedykowanego udziału plików. Każdy wolumin będzie miał pojedynczą falę zapisu i dwa wiadra miejsca. Chociaż nawet jeśli dwa woluminy znajdują się na jednym kontrolerze i na przykład na jednym agregacie (a więc jeśli istnieje druga agregacja, nie będzie ona w tym przypadku używana) i oba woluminy będą dostępne za pośrednictwem jednego adresu IP, nadal będzie być dwa koligacje zapisu, po jednym na każdym woluminie i zawsze będą dwa oddzielne wiadra miejsca. Dlatego im więcej masz woluminów, tym więcej będziesz mieć waffinów zapisu (lepsza równoległość, a tym samym lepsze wykorzystanie procesora), ale wtedy będziesz mieć wiele woluminów (i wiele wiader na miejsce, a więc wiele udziałów plików).

Pleksy

Replikacja SyncMirror przy użyciu pleksów

Podobnie jak w przypadku RAID 1 , pleksy w systemach ONTAP mogą przechowywać dane lustrzane w dwóch miejscach, ale podczas gdy konwencjonalny RAID-1 musi istnieć w granicach jednego systemu pamięci masowej, dwa pleksy mogą być rozdzielone między dwa systemy pamięci masowej. Każdy agregat składa się z jednego lub dwóch pleksów. Konwencjonalne systemy pamięci masowej HA mają tylko jeden pleks dla każdego agregatu, podczas gdy konfiguracje lokalne SyncMirror lub MetroCluster mogą mieć dwa pleksy dla każdego agregatu. Z drugiej strony, każdy pleks zawiera podstawową przestrzeń dyskową z jednej lub więcej grup NetApp RAID lub jednostek LUN z systemów pamięci masowej innych firm (patrz FlexArray ) w jednym pleksie, podobnie jak macierz RAID 0 . Jeśli agregat składa się z dwóch pleksów, jeden pleks jest uważany za nadrzędny, a drugi za podrzędny; urządzenia podrzędne muszą składać się z dokładnie tej samej konfiguracji RAID i dysków. Na przykład, jeśli mamy agregat składający się z dwóch plexów, gdzie master plex składa się z 21 danych i 3 dysków z parzystością SAS 1,8 TB w RAID-TEC, to plex slave musi składać się z 21 danych i 3 dysków SAS 1,8 TB z parzystością w RAID -TEC. Drugi przykład, jeśli mamy agregat składający się z dwóch pleksów gdzie master plex składa się z jednego RAID 17 danych i 3 dysków SAS z parzystością 1,8 TB skonfigurowanych jako RAID-TEC a drugi RAID w master plex to RAID-DP z 2 danymi i 2 parzystość SSD 960 GB. Drugi Pleks musi mieć taką samą konfigurację: jeden RAID 17 danych i 3 dyski SAS z kontrolą parzystości 1,8 TB skonfigurowane jako RAID-TEC, a drugi RAID w podrzędnym Pleksie to RAID-DP z 2 danymi i 2 dyskami SSD z parzystością 960 GB. Konfiguracje MetroCluster wykorzystują technologię SyncMirror do synchronicznej replikacji danych. Istnieją dwie opcje SyncMirror: MetroCluster i Local SyncMirror, które wykorzystują tę samą technikę plex do synchronicznej replikacji danych między dwoma pleksami. Local SyncMirror tworzy oba pleksy w jednym kontrolerze i jest często używany jako dodatkowe zabezpieczenie, zapobiegające awariom całej półki dyskowej w systemie pamięci masowej. MetroCluster umożliwia replikację danych między dwoma systemami pamięci masowej. Każdy system pamięci masowej może składać się z jednego kontrolera lub być skonfigurowany jako para HA z dwoma kontrolerami. W jednej parze HA możliwe jest posiadanie dwóch kontrolerów w osobnych obudowach, a odległość od siebie może wynosić kilkadziesiąt metrów, podczas gdy w konfiguracji MetroCluster odległość może wynosić nawet 300 km.

Pamięć nieulotna

Nieulotna pamięć podręczna pamięci podręcznej dublowanie w MetroCluster i HA

Podobnie jak wielu konkurentów, systemy NetApp ONTAP wykorzystują pamięć jako znacznie szybszy nośnik pamięci do przyjmowania i buforowania danych z hostów oraz, co najważniejsze, do optymalizacji danych przed zapisem, co znacznie poprawia wydajność takich systemów pamięci masowej. Podczas gdy konkurenci powszechnie używają nieulotnej pamięci o dostępie swobodnym (NVRAM) do przechowywania w niej danych podczas nieoczekiwanych zdarzeń, takich jak ponowne uruchomienie, zarówno w celu buforowania zapisu, jak i optymalizacji danych, systemy NetApp ONTAP wykorzystują zwykłą pamięć o dostępie swobodnym (RAM) do optymalizacji danych i dedykowane NVRAM lub NVDIMM do rejestrowania danych początkowych w niezmienionym stanie, ponieważ pochodzą one z hostów, podobnie jak rejestrowanie transakcji w relacyjnych bazach danych . Tak więc w przypadku awarii, naturalnie, pamięć RAM zostanie automatycznie wyczyszczona po restarcie, a dane przechowywane w pamięci nieulotnej w postaci logów zwanych NVLOGs przetrwają po restarcie i zostaną wykorzystane do przywrócenia spójności. Wszelkie zmiany i optymalizacje w systemach ONTAP dokonywane tylko w pamięci RAM, co pomaga zmniejszyć rozmiar pamięci nieulotnej dla systemów ONTAP. Po optymalizacji dane z hostów ustrukturyzowane w sposób podobny do Tetrisa, zoptymalizowane i przygotowane z przejściem kilku etapów (tj. WAFL i RAID) do zapisu na dyskach bazowych w grupach RAID na agregacie, w którym dane będą przechowywane. Po optymalizacji dane będą kolejno zapisywane na dyskach w ramach transakcji punktu spójności (CP). Dane zapisywane do agregatów będą zawierać niezbędne metadane WAFL i parzystość RAID, dzięki czemu nie wystąpią żadne dodatkowe operacje odczytu z dysków z danymi, obliczania i zapisu na dyskach z parzystością, jak w przypadku tradycyjnych grup RAID-6 i RAID-4. CP najpierw tworzy migawkę systemu na agregacie, na którym będą zapisywane dane, a następnie optymalizuje i przygotowuje dane z pamięci RAM zapisywane sekwencyjnie jako pojedyncza transakcja do agregatu, jeśli się nie powiedzie, cała transakcja nie powiedzie się w przypadku nagłego restartu, co pozwala System plików WAFL zawsze ma być spójny. W przypadku pomyślnej transakcji CP nowy aktywny punkt systemu plików jest propagowany i odpowiednie NVLOGi są usuwane. Wszystkie dane będą zawsze zapisywane w nowym miejscu i nie może nastąpić przepisanie. Bloki danych usunięte przez hosty oznaczone jako wolne, aby mogły być użyte później w następnych cyklach CP, a systemowi nie zabraknie miejsca dzięki polityce WAFL zawsze zapisuj nowe dane w nowym miejscu. Tylko dzienniki NVLOG w systemach pamięci masowej HA są replikowane synchronicznie między dwoma kontrolerami w celu zapewnienia możliwości przełączania awaryjnego systemu pamięci masowej HA, co pomaga zmniejszyć ogólne koszty ochrony pamięci systemowej. W systemie pamięci masowej z dwoma kontrolerami w konfiguracji HA lub MetroCluster z jednym kontrolerem w każdej lokalizacji, każdy z dwóch kontrolerów dzieli własną pamięć nieulotną na dwie części: lokalną i swojego partnera. W konfiguracji MetroCluster z czterema węzłami każda pamięć nieulotna podzielona na kolejne części: lokalną, lokalnego partnera i zdalnego partnera.

Począwszy od systemu All-Flash FAS A800, NetApp zastąpił moduł PCI NVRAM modułami NVDIMM podłączonymi do magistrali pamięci, zwiększając wydajność.

Zobacz też

Uwagi

Linki zewnętrzne