Systemy Plików z Dziennikowaniem
Krzysztof Kowalczyk
W momęcie montowania systemu plików zerowany jest tzw. ,,clean bit'', co oznacza że system plików jest w użyciu. Kiedy komputer jest wyłączany, narzędzia odmontowujące system plików czekają aż zostaną zapisane wszystkie dane będące w trakcie zapisywania oraz znajdujące sie w cache'u na dysk i dopiero odmontowują system ustawiając ,,clean bit''. Jeżeli jednak zdarzy się awaria systemu np:
- przerwa w dostawie prądu
- rozładowanie baterii w laptopie
- poważny błąd systemowy
- młodsza siostra wyciągnie wtyczkę z gniazdka
na dysku mogą pojawić się niespójności. Nie zostanie również zapisany ,,clean bit'' przez co system uruchomii program fsck by sprawdzić spójność danych na dysku. Program fsck jest również wywoływany ,,na wszelki wypadek'' (względy pielęgnacyjne) co ustaloną ilość montowań systemu plików.
Problemem jest nie tylko to, że program fsck może sobie nie poradzić z naprawą błędów logicznych na dysku, ale przede wszystkim długotrwałość procesu naprawy dysku. Na domiar złego długość naprawy dysku rośnie proporcjonalnie do jego wielkości. Jest to szczególnie ważne na dużych serwerach na których jest ważna minimalizacja czasu rozruchu systemu po awarii.
Journaling - dziennikowanie wychodzi na przeciw właśnie temu problemowi. Są pamiętane dokładne zmiany w systemie plików, które trzeba cofnąć po ewentualnej awarii komputera. Dzięki temu nie trzeba sprawdzać poprawności zapisów wszystkich inodów na dysku.
System plików z dziennikowaniem przechowuje przebieg zmian, które mają zostać wykonane na plikach na dysku w specjalnym dzienniku (journal'u, badź log'u). Jeżeli uda się zapisać do dziennika listę operacji do wykonania na dysku, system plików zapisuje zmiany na dysku. Jeżeli uda się wykonać wszystkie zmiany to lista operacji do wykonania jest usuwana z dziennika. Rekordy w dzienniku są połączone w zbiory powiązanych operacji na dysku podobnie jak operacje na bazach danych zorganizowane są w transakcje.
Wyobraźmy sobie sytuację, że nie wszystkie operacje wyszczególnione w dzienniku (z transakcji) zostaną wykonane i nastąpi awaria komputera. Wtedy na dysku będą wytępowały niespójności. System plików z dziennikowaniem radzi sobie z tym w ten sposób, że podczas montowania sprawdza czy w dzienniku nie ma transakcji będących w stadium wykonywania, czyli nie zaznaczonych jako wykonane. Jeżeli takie znajdzie po prostu je wykonuje tak by przed zamontowaniem systemu plików był on spójny.
Jest wiele systemów plików z zaimplementowanym dziennikowaniem dostępnych dla systemu Linux.
- ext3 - rozszerzenie ext2 o dziennikowanie i kilka mniej znaczących rzeczy
- XFS - podobno najlepszy z dostępnych systemów plików z dziennikowaniem
- RaiserFS - specjalnie opracowany pod Linux'a
- JFS
- ntfs
Lokalne systemy plików