Nie ma gwarancji. System plików kroniki jest bardziej odporny i mniej podatny na korupcję, ale nie jest odporny.
Cały dziennik jest listą operacji, które zostały ostatnio wykonane w systemie plików. Kluczowe jest to, że zapis księgowy jest dokonywany przed operacjami. Większość operacji ma wiele kroków. Usunięcie pliku może na przykład pociągać za sobą usunięcie wpisu pliku ze spisu treści systemu plików, a następnie oznaczenie sektorów na dysku jako wolnych. Jeśli coś się stanie między dwoma krokami, kronikowany system plików może natychmiast powiedzieć i wykonać niezbędne czyszczenie, aby wszystko było spójne. Nie dzieje się tak w przypadku niezarejestrowanego systemu plików, który musi przeglądać całą zawartość woluminu, aby znaleźć błędy.
Chociaż dziennikowanie jest znacznie mniej podatne na korupcję niż brak księgowania, nadal może wystąpić korupcja. Na przykład, jeśli dysk twardy działa nieprawidłowo mechanicznie lub zapisy do samego dziennika nie powiodły się lub zostały przerwane.
Podstawowym założeniem kronikowania jest to, że pisanie pozycji kroniki jest zwykle znacznie szybsze niż faktyczna transakcja, którą opisuje. Tak więc okres między systemem zamawiającym zapis (dziennik) a spełnianiem go przez dysk twardy jest znacznie krótszy niż w przypadku zwykłego zapisu: węższe okno, w którym mogą się nie udać, ale nadal istnieje okno.
Dalsza lektura
Nie.
Najpopularniejszy rodzaj kronikowania, zwany kronikowaniem metadanych, chroni jedynie integralność systemu plików, a nie danych. Obejmuje to
xfs
iext3
/ lubext4
wdata=ordered
trybie domyślnym .Jeśli system plików bez kronikowania ulegnie awarii, zostanie sprawdzony przy
fsck
następnym uruchomieniu.fsck
skanuje każdy i- węzeł w systemie plików, szukając bloków oznaczonych jako używane, ale nieosiągalnych (tj. bez nazwy pliku) i zaznacza te bloki jako nieużywane. Wykonanie tego zajmuje dużo czasu.Dzięki systemowi kronikowania metadanych zamiast robić
fsck
, wie, które bloki były w trakcie zmiany, więc może oznaczyć je jako wolne bez przeszukiwania całej partycji.Istnieje mniej powszechny rodzaj kronikowania, zwany kronikowaniem danych, co
ext3
ma miejsce, jeśli zostanie zamontowany zdata=journal
opcją.Stara się chronić wszystkie dane, pisząc nie tylko listę operacji logicznych, ale także całą zawartość każdego zapisu do dziennika. Ale ponieważ zapisuje dane dwa razy, może być znacznie wolniejszy.
Jak zauważyli inni, nawet to nie stanowi gwarancji, ponieważ dysk twardy mógł powiedzieć systemowi operacyjnemu, że przechował dane, chociaż w rzeczywistości wciąż znajdował się w pamięci podręcznej dysku twardego.
Aby uzyskać więcej informacji, zapoznaj się z artykułem Wikipedia Fileing System System i sekcją Data Mode w dokumentacji ext4 .
źródło
data=journal
ma żadnego sensu?System plików nie może zagwarantować spójności swojego systemu plików w przypadku awarii zasilania, ponieważ nie wie, co zrobi sprzęt.
Jeśli dysk twardy buforuje dane do zapisu, ale informuje system operacyjny, że je zapisał i nie obsługuje odpowiednich barier zapisu, wówczas zapis poza kolejnością może wystąpić, gdy wcześniejszy zapis nie uderzył w talerz, ale późniejszy ma. Zobacz ten ServerFault odpowiedź więcej szczegółów.
Również położenie głowy na magnetycznym dysku twardym jest kontrolowane za pomocą elektromagnesów. Jeśli w trakcie zapisu nastąpi awaria zasilania, niektóre dane mogą być nadal zapisywane podczas ruchu głowic, co powoduje uszkodzenie danych w blokach, których system plików nigdy nie zamierzał zapisywać.
źródło
ZFS, który jest blisko, ale nie do końca systemem plików kronikowania, z założenia gwarantuje uszkodzenie przed awarią po awarii zasilania.
Nie ma znaczenia, czy ciągły zapis zostanie przerwany w środku, ponieważ w takim przypadku jego suma kontrolna z pewnością będzie niepoprawna, więc blok zostanie zignorowany. Ponieważ system plików kopiuje podczas zapisu, poprzednie poprawne dane (lub metadane) wciąż znajdują się na dysku i zostaną użyte zamiast tego.
źródło
Odpowiedź jest w większości przypadków nie:
źródło