Jak dziennik intencji ZFS potwierdza zapisy NAS po utracie zasilania?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Dziennik intencji ZFS przywraca potwierdzone zapisy NAS po utracie zasilania, utrzymując trwały zapis operacji synchronicznych, które ZFS potwierdził przed ostatecznym zatwierdzeniem bloków danych przez normalną ścieżkę grupy transakcji.

Po restarcie ZFS może odtworzyć te rekordy dziennika i dokończyć przerwane operacje. Zachowuje to obietnice pamięci masowej złożone aplikacjom, ale nie odzyskuje każdego zapisu asynchronicznego ani nie naprawia niezwiązanych uszkodzeń sprzętu i systemu plików.

Jaką obietnicę składa zapis synchroniczny?

Zapis synchroniczny prosi system pamięci masowej, aby nie zgłaszał sukcesu, dopóki operacja nie będzie miała trwałego rekordu odzyskiwania. zapisy synchroniczne przechodzą przez ZIL, dzięki czemu klient może polegać na potwierdzeniu po awarii.

Bazy danych, obciążenia NFS, maszyny wirtualne i aplikacje używające fsync mogą polegać na tej gwarancji. Aktualizują swój własny stan transakcji po zgłoszeniu przez pamięć, że wymagany zapis jest bezpieczny.

Zapisy asynchroniczne podlegają innej obietnicy. Mogą pozostać w pamięci ulotnej do późniejszego zatwierdzenia grupy transakcji, więc niedawne niepotwierdzone zmiany mogą zniknąć po nagłej utracie zasilania bez naruszenia umowy o synchronicznej trwałości.

Jak współpracują ZIL i grupy transakcji?

ZFS zbiera normalne brudne dane w grupy transakcji i zapisuje je efektywnie do głównej puli. dziennik intencji rejestruje oczekujące operacje synchroniczne jako krótkotrwałą ścieżkę odzyskiwania, dopóki powiązana grupa transakcji nie zostanie bezpiecznie zatwierdzona.

Dziennik nie jest stałym miejscem przechowywania danych pliku. Gdy grupa transakcji trafia do głównego drzewa pamięci, wcześniejsze rekordy intencji nie są już potrzebne i ich miejsce może zostać ponownie wykorzystane.

To rozdzielenie pozwala ZFS zachować niską latencję trwałości dla wybranych zapisów, jednocześnie organizując główną pulę w większe, bardziej efektywne grupy transakcji.

Co się dzieje z dziennikiem intencji po utracie zasilania?

Po ponownym uruchomieniu NAS, ZFS importuje pulę i sprawdza, czy potwierdzone operacje synchroniczne nie zostały uwzględnione w ostatniej zatwierdzonej grupie transakcji. W razie potrzeby dziennik intencji jest odtwarzany podczas odzyskiwania.

Odtwarzanie ponownie wykonuje zarejestrowane operacje w nowej spójnej grupie transakcji. Proces przywraca potwierdzone zapisy bez konieczności zgadywania przez aplikacje, które potwierdzone transakcje zostały utracone.

Zakres odzyskiwania jest celowo mały, ponieważ dziennik obejmuje ostatnie operacje synchroniczne, a nie całą pulę. ZFS nadal polega na swoim zatwierdzonym drzewie copy-on-write dla szerszego stanu systemu plików.

Co się zmienia, gdy ZIL korzysta z oddzielnego urządzenia SLOG?

Każda pula ma mechanizm dziennika intencji, ale opcjonalne oddzielne urządzenie dziennika przenosi swoje trwałe rekordy z głównych vdevów danych. Niskolatencyjny SLOG może skrócić zatwierdzanie synchronizacji, gdy główna pula jest wolniejsza w utrwalaniu małych wymuszonych zapisów.

SLOG nie jest ogólną pamięcią podręczną zapisu i zazwyczaj nie jest odczytywany podczas prawidłowej pracy. Główne grupy transakcji nadal zapisują autorytatywne dane do zwykłego puli.

Szybki SLOG pomaga tylko obciążeniom, które wykonują znaczące zapisy synchroniczne. Strumieniowanie mediów, zwykłe odczyty i głównie asynchroniczne kopiowanie plików mogą nie wykazywać żadnych korzyści.

Dlaczego ochrona przed utratą zasilania i latencja są ważniejsze niż pojemność?

Urządzenie dziennika intencji musi zachować potwierdzone rekordy, gdy system traci zasilanie. ochrona przed utratą zasilania zachowuje zapisy SLOG, które w przeciwnym razie pozostałyby tylko w ulotnej pamięci podręcznej urządzenia.

Utrzymująca się latencja przy małych zapisach i zachowanie funkcji flush są ważniejsze niż duża deklarowana pojemność. Aktywny dziennik zazwyczaj obejmuje krótki okres oczekujących operacji synchronicznych, a nie służy jako duża, długoterminowa warstwa danych.

Wolne lub nieuczciwe urządzenie może spowolnić zapisy synchroniczne lub podważyć obietnicę trwałości. Testy wydajnościowe konsumenckich dysków SSD nie dowodzą bezpiecznego wymuszonego zapisu podczas awarii.

Czego nie może odzyskać dziennik intencji?

Dziennik intencji nie może odtworzyć zapisów asynchronicznych, które nigdy nie były obiecane jako trwałe, cofnąć celowego nadpisania ani zastąpić niezależnej kopii zapasowej po uszkodzeniu każdej wersji online.

Nie może też naprawić uszkodzonej pamięci RAM, błędów firmware kontrolera, nieuczciwych flushy dysku, uszkodzonych członków poola przekraczających redundancję ani uszkodzeń aplikacji już zatwierdzonych jako nowy ważny stan.

UPS, poprawne uporządkowanie zapisów, sumy kontrolne, migawki, redundancja i kopie zapasowe rozwiązują inne granice awarii. ZIL konkretnie zachowuje potwierdzone synchroniczne intencje podczas przerwy.

Komponent Główna rola Co się dzieje po utracie zasilania
Grupa transakcji Zatwierdza autorytatywne drzewo ZFS Ostatnia ważna zatwierdzona grupa pozostaje montowalna
ZIL Rejestruje ostatnie synchroniczne intencje Oczekujące potwierdzone operacje mogą być odtworzone
Oddzielny SLOG Zapewnia urządzenie dziennika trwałego o niższym opóźnieniu Dostarcza rekordy intencji, jeśli wymagane jest odtworzenie
Kopia zapasowa Przechowuje niezależną wersję odzyskiwania Odzyskuje awarie poza zakresem dziennika intencji

Najczęściej zadawane pytania

Czy SLOG to to samo co ZIL?

Nie. ZIL to mechanizm dziennika intencji ZFS. SLOG to opcjonalne, oddzielne urządzenie używane do przechowywania tych rekordów intencji zamiast umieszczania ich w głównym poolu.

Czy SLOG przyspiesza każdy zapis NAS?

Nie. Dotyczy głównie zapisów synchronicznych, których opóźnienie jest ograniczone przez trwałe zatwierdzenia w dzienniku. Zapisy asynchroniczne i obciążenia odczytu mogą się nie poprawić.

Czy ZIL jest odczytywany podczas normalnej pracy?

Zazwyczaj nie jest używany jako źródło odczytów plików. Jest odtwarzany po przerwaniu, gdy potwierdzone operacje synchroniczne nie zostały uwzględnione w ostatniej zatwierdzonej grupie transakcji.

Czy ZFS potrzebuje dziennika intencji, aby pozostać spójnym systemem plików?

Grupy transakcji ZFS copy-on-write zachowują spójne, zatwierdzone drzewo. Dziennik intencji dodaje odzyskiwanie potwierdzonych operacji synchronicznych, które miały miejsce po tym zatwierdzonym punkcie.

Ostateczne wnioski

Dziennik intencji ZFS nie przyspiesza każdego rodzaju odzyskiwania. Jego precyzyjnym zadaniem jest zachowanie i odtworzenie potwierdzonych operacji synchronicznych, które jeszcze nie dotarły do głównej grupy transakcji. Niskolatencyjny, chroniony przed utratą zasilania SLOG może przyspieszyć te zatwierdzenia, podczas gdy kopie zapasowe, redundancja, sumy kontrolne, migawki i UPS nadal chronią przed różnymi rodzajami awarii.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.