Valid HTML 4.01!

 

 

Kronikowanie.

 

 

Wstęp.

W wielu nowoczesnych systemach plików, aby zlikwidować część wad tradycyjnych systemów plików, zastosowano technikę zwaną kronikowaniem (journaling, logging). Podstawowy pomysł polega na zapamiętywaniu wszystkich zmian w systemie plików w specjalnym pliku kroniki przeznaczonym jedynie do dopisywania. Kronikę zapisuje się sekwencyjnie, dużymi porcjami na raz co zapewnia efektywne wykorzystanie dysku i dużą wydajność. W systemach plików bez kronikowania rekonstrukcja po awarii jest realizowana za pomocą programu fsck, który przegląda cały system plików, odnajduje i napawia powstałe szkody. W przypadku dużych dysków wykonanie tego programu trwa bardzo długo, ponieważ trzeba przebadac i przebudować cały dysk. W przeciwieństwie do standardowych systemów plików spójność systemów plików z kroniką można przywrócić, odtwarzajac te z operacji zapisanych w dzienniku, które nie są oznaczone jako zakończone i utrwalone na dysku. Operacjami tymi mogą byc m.in.: zapis zmian w metadanych plików i katalogów ( w przypadku tworzenia, usuwania, przenoszenia i zmiany rozmiaru plików i katalogów) oraz pełny zapis zmian danych przechowywanych w dowolnym pliku.Ale nie zawsze możliwe jest jednak przywrócenie wszystkich zmian wykonanych przez system plików z kroniką , poniewaz informacje o niektórych z nich mogą zostac zapisane w dzienniku w sposób niepełny.

 

 

Położenie pliku kroniki.

Najprościej przechowywać dziennik w zwykłym pliku wewnątrz systemu plików, który podlega rejestracji zmian (tak jest np. w ext3, który jest rozszerzeniem ext2 o funkcję kroniki). Powoduje to jednak dwa problemy związane z wydajnością operacji na tym dzienniku. Po pierwsze zapis do pliku dziennika musi odbywać się za pośrednictwem funkcji systemu operacyjnego co oznacza, że operacje zapisu do pliku dziennika muszą rywalizować z pozostałymi operacjami zapisu systemu plików i w związku z tym utrzymywanie aktualności dziennika może byc powolne. Po drugie uszkodzenie systemu plików przechowującego plik dziennika, naraża na utratę zawartości dziennika.  

Drugim miejscem przechowywania plików dziennika jest specjalny fragment systemu plików, niedostepny dla programów użytkowych. W takim przypadku operacje zapisu do obszaru dziennika mogą być realizowane z użyciem specjalnych funkcji, zwykle poddanych dodatkowej optymalizacji zwiększającej wydajność zapisu. Takie umiejscowienie dziennika redukuje również ryzyko jego utraty w wyniku uszkodzenia systemu plików, dziennik jest bowiem związany z systemem plików, ale znajduje się w specjalnie sformatowanym obszarze, nie podlegającym standardowym operacjom systemu plików. Jednakże podejście to nie eliminuje problemu rywalizacji operacji zapisu do dziennika z pozostałymi operacjami systemu plików.

Ostatnią możliwą lokalizacją dziennika jest obszar poza systemem plików, przydzielony w zarezerwowanym specjalnie do tego celu obszarze dysku. Takie podejście eliminuje zarówno problem wpływu uszkodzeń systemu plików na zawartość dziennika, jak i rywalizacji operacji zapisu (o ile system plików z kroniką i dziennik przechowywane są na osobnych napędach).

 

 

Co zapisuje się w kronice.

Systemy plików z kroniką można podzielic na dwie główne grupy: 

Kroniki metadanych mogą również ograniczać zbieranie informacji do wybranych operacji. Można nie wpisywać do nich zmian znaczników czasowych plików, zmian właściciela lub praw dostępu, a zapisywać jedynie te zmiany, które wpływają na spóność systemu plików.

Kroniki moga przechowywać albo poszczególne operacje albo wyniki tych operacji. Pierwsza forma jest przydatna np. przy kronikowaniu zmian w mapie przydziału bloków dyskowych, a ponieważ każda zmiana dotyczy tylko kilku bitów, zapis takiej operacji można umieścić w niewielkim rekordzie. Przy kronikowaniu zapisów danych lepiej jest zapisywać w kronice całą zawartość modyfikowanego bloku.

Istnieją systemy plików rozszerzane o kronikę (log-enhanced file systems), które to zachowuja tradycyjne struktury dyskowe takie jak i-węzły oraz superbloki, a kronikę stosują tylko jako uzupełnienie. W systemach plików o strukturze kroniki (log-structured file systems) kronika jest jedyną reprezentacją systemu plików na dysku, co wymaga oczywiście pełnego kronikowania zarówno danych jak i metadanych.

Są dwa typy kronik: 

Pierwsza jest mniejsza i upraszcza usuwanie skutków awarii. Druga większa i ma bardziej złożone mechanizmy usuwania skutków awarii, ale pozwala na uzyskanie większej współbieżności podczas normalnego użycia.

Kroniki w popularnych rozwiązaniach mają skończony rozmiar, co wymaga usuwania przestarzałych fragmentów kroniki, która z logicznego punktu widzena jest plikiem cyklicznym.

Aby sprostać wymaganiom wydajnościowym system plików musi zapamiętywać kronikę dużymi porcjami, łącząc ze sobą kilka mniejszych zapisów. Musimy wybrac między szybkością a niezawodnością kiedy decydujemy sie na częstotliwość i ziarnistość zapisów , gdyż niezapisane porcje są tracone przy załamaniu się systemu.

W systemach plików o strukturze kroniki jest potrzebny efekywny sposób pobierania danych z kroniki. Wymaga to zastosowania efektywnego mechanizmu indesowania, umożliwiającego odnalezienie w kronice bloków dowolnego pliku.

 

 

Zalety kronikowania

Najważniejsze zalety stosowania systemów plików z kroniką:

Większość dzienników jest alokowana z góry, posiada stały rozmiar, jest zapisywana cyklicznie oraz stosuje własne procedury odczytu i zapisu.

 

Tyle o kronikowaniu.  

 

Powrót