Co to jest dziennik?

8

Wyłączyłem komputer na poważnie, a przy następnym uruchomieniu na kilka sekund pojawił się komunikat recovering journal. Cztery start-upy później i nie było wiadomości - tylko za pierwszym razem. Wygląda na to, że nie ma żadnych konsekwencji ani skutków ubocznych. Dzięki temu pytaniu wiem, dlaczego tak się stało, ale nigdzie w Internecie nie wiadomo, czym jest dziennik. Nie ma z tym żadnych problemów, interesuje mnie tylko to, co to jest.

Jakub
źródło

Odpowiedzi:

5

Wiele nowoczesnych systemów plików wykorzystuje dziennik, w tym NTFS, Ext3 / 4, XFS, HFS + i inne. Dziennik pomaga w dwóch kwestiach, unikając uszkodzenia systemu plików i przyspieszając odzyskiwanie po awarii, takiej jak utrata zasilania lub awaria systemu. Istnieją dwa główne komponenty systemu plików, dane i metadane. Dane to zawartość pliku, obrazu, wideo, dokumentów, a ostatecznie to, co nadaje systemowi plików jego wartość. Metadane opisują strukturę systemu plików, w tym sposób nazywania plików, przechowywania w katalogach, uprawnienia dostępu, czasy modyfikacji plików i obszary zapisu na dysku, które są w użyciu lub mogą być przydzielane innym plikom w miarę ich wzrostu lub są tworzone. Jeśli metadane zostaną uszkodzone z powodu awarii systemu, może to prowadzić do dalszej utraty / uszkodzenia danych. Na przykład, część dysku może zostać wybrana do przydzielenia do pliku, ale jeśli nie zostanie poprawnie zapisana przed awarią, może zostać dodana do listy bloków danych pliku, ale nadal na liście wolnych bloków danych i przypisana do drugiego pliku później. Teraz są dwa pliki, które współużytkują te same bloki danych / treść.

Dziennik jest miejscem na dysku zarezerwowanym do rejestrowania zmian w systemie plików. Dokładne szczegóły tego, co jest zmieniane, zapisywane jest najpierw do dziennika znajdującego się w jednej lokalizacji na dysku, a następnie, po aktualizacji dziennika, zmiany są stosowane do odpowiednich lokalizacji na dysku, które mogą wymagać kilku zapisów. Po zakończeniu aktualizacji wpis do dziennika jest oznaczony jako ukończony. Po awarii system musi tylko sprawdzić dziennik pod kątem niekompletnych pozycji i uzupełnić je, aby naprawić system plików. Przyspiesza to odzyskiwanie i zapewnia, że ​​zmiana zostanie wprowadzona całkowicie lub wcale. Jeśli blok zostanie przypisany do rosnącego pliku, zostanie on dodany do listy bloków pliku i również oznaczony jako używany.

Ponadto w systemach plików, które obsługują dziennikowanie, najczęściej tylko dzienniki metadanych służą do zachowania struktury, ale nie same dane. Pełne przesyłanie danych jest zwykle dość drogie i wolne, ale mniej istotne niż metadane. W razie potrzeby można również włączyć dane.

Ponadto, aby to zrobić, istnieje kilka systemów plików, które obecnie nie oferują dzienników, w tym FAT32, exFAT, Ext2 i UDF. Jeśli podczas aktualizacji wystąpi awaria, należy wykonać pełne skanowanie systemu plików, aby wyśledzić wszelkie błędy lub uszkodzenia.

penguin359
źródło
8

Czy ktoś wie, co to jest dziennik?

Częścią współczesnego systemu plików jest funkcja o nazwie „kronikowanie”. Używamy „ext4” jako systemu plików. (ext3, ext2 to starsze wersje. NTFS jest odpowiednikiem Microsoft.)

System plików kronikowania to system plików, który śledzi zmiany, które nie zostały jeszcze zatwierdzone w głównej części systemu plików, rejestrując zamiary takich zmian w strukturze danych znanej jako „kronika”, która zazwyczaj jest dziennikiem cyklicznym. W przypadku awarii systemu lub awarii zasilania takie systemy plików mogą zostać przywrócone online szybciej, z mniejszym prawdopodobieństwem uszkodzenia

Źródło: Wikipedia - system plików kronikowania , cytuje: IBM - Anatomia systemów plików kronikowania systemu Linux

Zasadniczo komunikat oznacza, że ​​system sprawdził integralność tej części systemu plików. Jest to wymuszone przez system, więc ogólnie nie ma się czym martwić. Gdy występują odcięcia zasilania, dziennik może ulec uszkodzeniu i, o ile dysk twardy nie zostanie naprawdę uszkodzony, może zostać naprawiony podczas tej kontroli.

Rinzwind
źródło
1
Czy można powiedzieć, że kronikowanie służy do ochrony integralności systemu plików, ale niekoniecznie integralności plików (ich zawartości)?
Ralf
2
@Ralf: To zależy wyłącznie od tego, co jest kronikowane. JFFS2, na przykład, zapisuje dzienniki przy każdym zapisie, a zatem chroni integralność wszystkich danych. Apple HFS + zapisuje tylko metadane systemu plików, dlatego chroni tylko metadane systemu plików, ale nie dane pliku. Ext4 jest konfigurowalny: możesz kronikować wszystko, nic lub tylko metadane systemu plików. Domyślne ustawienie to kronikowanie, ale tylko metadane systemu plików. W takim przypadku chroni tylko metadane systemu plików, ale nie dane pliku. Głównym powodem tego wyboru jest to, że kronikowanie oznacza pisanie dwa razy.
Jörg W Mittag
2
Inne ekstremalne są tak zwane systemy plików dziennika strukturze , które mają tylko dziennik. Innymi słowy, zawsze dołączają się do dziennika, ale nie mają regularnego obszaru danych. W ten sposób unikają „podwójnego zapisu” systemu plików kronikowania, ale mają teraz problem polegający na tym, że system plików nigdy się nie kurczy, ponieważ nawet usunięcia są tylko dodawane do dziennika. Potrzebują więc „śmieciarki”, aby wyczyścić zbędne wpisy do dziennika i ponownie zagęścić dziennik. (Niektórzy z FS nazywają to „odkurzaniem”.)
Jörg W Mittag
1
@ JörgWMittag Dziękujemy. Myślę, że ważne jest, aby zrozumieć, że kronikowanie FS zasadniczo nie oznacza, że ​​nie można utracić danych.
Ralf
1
@Ralf: Tak, kronikowanie nie chroni przed utratą danych, a jedynie przed uszkodzeniem danych. Zapewnia tylko, że operacja albo całkowicie się powiedzie, albo w ogóle się nie wydarzy, nie gwarantuje, że operacja zawsze się powiedzie. Po drugie, kronikowanie chroni tylko to, co jest kronikowane, co w przypadku większości typowych implementacji to tylko metadane FS.
Jörg W Mittag