P. 1
ext4

ext4

|Views: 270|Likes:
Published by Gracjan Olbiński

More info:

Published by: Gracjan Olbiński on Feb 22, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/09/2015

pdf

text

original

Sprawozdanie z laboratorium Systemy Operacyjne

System Plików ext4
Gracjan Olbiński

179890
Informatyka - Wydział Podstawowych Problemów Techniki Politechnika Wrocławska

1

6. opisanie wykonanych operacji w dzienniku. Dzięki tej metodzie obsługi danych system jest w stanie w krótkim czasie powrócić do stanu spójnego po awarii. Dla lepszego zrozumienia dlaczego tak się dzieje warto przypomnieć. następca systemu ext3. Wprowadza on nowe metody zapisu danych na dysk i modyfikuje znacząco struktury danych. postawił sobie ze względu na dużą popularność systemu ext2 dwa cele: • maksymalna kompatybilność z poprzednim systemem. dzięki informacją zapisanym w dzienniku.28 uznany za stabilny. W drugim natomiast ze względu na brak informacji o zmianach w dzienniku dane nie będą tutaj brane pod uwagę po ponownym uruchomieniu systemu co nazywamy transakcją niepełną. że tak naprawdę wystarczyło doinstalować moduł kronikowania. Stephen Tweedie. w bardzo krótkim czasie będzie w stanie powrócić do stanu spójności co nazywamy transakcją pełną. • po modyfikacji danych. • unowocześnienie poprzez wprowadzenie księgowania. journaling) jest funkcją zlecającą systemowi plików przed wykonaniem zapisu danych na dysk. W pierwszym przypadku system. Dzięki tym modyfikacją osiągnięto znaczący wzrost wydajności. Nie zapewnia ona jednak całkowitego odzysku danych ponieważ z punktu widzenia systemu operacyjnego awaria może nastąpić w dwóch momentach: • po zapisaniu zmian w dzienniku. Kompatybilność ta działała w obie strony. aby partycja mogła być montowana jako ext3. a nie jawnym wyzerowaniu miejsc w których były zapisane. ale przed zapisaniem zmian metadanych. Jeśli operacja ta się powiedzie wpis zostaje usunięty z dziennika.).1 Księgowanie Księgowanie nazywane też kronikowaniem lub dziennikowaniem (ang. Dostępny jest w źródłach Linuksa od wersji 2.1 Wprowadzenie Ext4 (Fourth Extended File System) jest czwartą wersją rozszerzonego systemu plików dla systemów operacyjnych UNIX. itp. 2 Ext3 i idea księgowania Twórca systemu ext3. że kasowanie danych polega jedynie na usunięciu informacji o ich istnieniu. Powstał on z myślą o tendencji zwiększania się rozmiaru danych i możliwości szybkiego ich przetwarzania (najnowsze gry.19 natomiast dnia 5 grudnia 2008 roku wraz z wydaniem jądra 2. ale przed zapisem zmian w dzienniku. filmy Blu-ray. która powinna zaspokoić potrzeby technologiczne na następne kilka lat. stąd jest możliwość zamontowania systemu ext3 jako ext2. zmniejszenie fragmentacji plików oraz obsługę dużo więszkych plików. Nowy system był podobny do swojego poprzednika do tego stopnia.6. 2 . 2.

można tego dokonać bez reinstalowania systemu czy formatowania istniejących partycji. 2. – T_COMMIT. którego pole t_state opisuje aktualny stan transakcji i w zależności od rodzaju transakcji przyjmuje dla pełnej opis T_FINISHED oraz w przypadku niepełnej jeden z poniższych – T_RUNNING. – T_LOCKED. Pomimo dość znaczących zmian w strukturze danych i sposobie ich zapisu.jest trybem domyślnym. writeback . które jest nazywane warstwą Journaling Block Device (JBD). 2. 3. Komunikacja między ext3 a JBD odbywa się poprzez 3 główne moduły: • atomic operation handle .1 Zmiany w ext4 Kompatybilność Twórcy ext4 podobnie jak ext3 zadbali o jak najprostszy proces migracji na nowy system plików. Pozwala to zmiejszyć rozmiar zajmowany przez dane z uwagi na mnogość plików konfiguracyjnych o małym rozmiarze. które reprezentowane są przez deskryptor typu transaction_t. Ideom jego wprowadzenia jest możliwość dodania modułu kronikowania do dowolnych urządzeń blokowych. kosztem wielu operacji dyskowych co znacznie spowalnia operacje na dysku.3 Fragmentacja w systemie plików ext3 Ext3 pozwala dzielić jeden blok na części o tym samym rozmiarze dzięki czemu można w nim przechowywać nawet po kilka małych plików. – T_FLUSH. ordered .czyli transakcji. • log records .czyli rekordy dziennika opisujące pojedyńczą operację na bloku dyskowym.2.czyli zbiór operacji niskopoziomowych • transaction . Mamy dostępne 3 tryby kronikowania: 1. Jest trybem znacznie szybszym od pełnego księgowania jednak zapeniającym mniejsze bezpieczeństwo modyfikowanych danych. Procedura ta jest bezpieczna ponieważ nie narusza w żaden sposób isteniejących danych na dysku. w którym w dzienniku zapisywane są tylko metadane. ale pliki w przypadku awarii mogą zawierać niepoprawne dane.księgowane są jedynie zmiany w metadanych dzięki temu jest on trybem najszybszym.2 Księgowanie w systemie plików ext3 System plików ext3 do księgowania używa oddzielnego API. a stare pozostaną w takim stanie w jakim zostawił 3 . 3 3. Doperio nowe dane będą podlegały nowym mechanizmom. journal .polega on na księgowaniu danych oraz metadanych co minimalizuje szanse strat modyfikowanych plików.

W ext4 rozszerzono rozmiar pola adresowania bloków do 48-bitów. który w pojedyńczym rządaniu potrafi zaalokować do 128MB danych. Wie tylko czy ma zapisywać kolejny blok czy już nie. że dysk buforuje dane kiedy chce i jakie chce. Dopiero przy ich modyfikacji ulegną one nowym sposobom alokacji. W ext3 ponadto obowiązywał limit ilości podkatalogów do 32000. Dzięki temu mapowanie danych zostało ograniczone przez bardzo wolno rosnącą funkcję. Rozwiązanie takie ma pewną wadę.4 Opóźnianie alokacji pamięci W systemach plików typu ext3 czy reiser3 alokacja bloków pamięci odbywa się tak szybko jak to jest możliwe. żeby zapisać plik o wielkości 100MB potrzeba aż 25600 wywołań alokatora. który w nowym systemie plików został zniesiony. Polega to na tym. że jest w stanie zaalokować na raz aż 32768 bloków.in. przez co ogranicza się ruchy głowicy dzięki czemu zapis jest szybszy. Pełna kompatybilność zachodzi więc tutaj tylko w jedną stronę.jes system ext3.3 Extenty Pierwszą nowością w sposobie zapisu danych jest nowy sposób alokacji przestrzeni dyskowej. Problem jednak w tym. co oznacza. Opóźnione alokowanie pamięci zostało wprowadzone w systemach plików takich jak XFS. Mówi on tak naprawdę systemowi. Dla przykładu. Oznacza to jednak. W starszych systemach plików (m. Nawet dla danych trzymanych w pamięci cache system alokuje bloki bez względu na to czy zostaną one zapisane czy nie. które są fizycznie obok siebie. Większe pliki dzielone są właśnie na takie ekstenty co zmiejsza fragmentacje i zwiększa wydajność samego zapisu. że "Dane są w kolejnych n blokach". Ponadto system nie może zoptymalizować działania samego alokatora ponieważ nie wie z góry ile danych jest do zapisania.2 Rozmiary danych System plików ext3 wspierał dla bloków wielkości 4KB do 16TB maksymalnego rozmiaru partycji oraz do 2TB maksymalnego rozmiaru pojedyńczego pliku. Stąd też systemy plików z księgowaniem wymuszają zapisanie całego cache’u na dysk w stałych odstępach czasu (commit interval ). Ext4 używa nowego mechanizmu "multiblock allocator "(mballoc). "ekstentów ". 3. które opóźniają alokowanie przestrzeni dyskowej tak długo jak to jest możliwe. Dzięki pamięci cache dysk może zgromadzić większą ilość danych do zapisania w jednym miejscu. 3. mechanizmu blokowego. w ext3) do zapisu plików na dysku używa się tzw. że system po kolei alokuje wszystkie bloki wielkości 4KB na których zapisuje kolejne porcje danych. Dla systemów ext3 i ext4 wynosi on 5 sekund. że nie ma możliwści w prosty sposób powrócenia do poprzedniego systemu plików. Poprzednio rozważany plik możnaby więc zaalokować w jednym rządaniu. jeżeli edytowany plik będzie się szybko rozrastał do dużych rozmiarów jest duża szansa. 3. że ulegnie on fragmentacji z uwagi na fizyczny brak miejsca obok aktualnie alokowanego. Nowoczesne systemy używają tzw. ZFS czy Reiser4. które w istocie są ograniczeniem bloków. 4 . więc jest on w stanie obsłużyć nawet do 1EB maksymalnego rozmiaru partycji (1EB = 10243 GB).

dzięki czemu możliwe jest wykrycie błędnych wpisów co zapobiega naruszeniom spójności systemu plików w przypadku awarii.błąd działania • 16 . Kod zwracany przez fsck jest sumą następujących warunków: • 0 .pozostawiono nienaprawione błedy systemu plików • 8 . które po prostu kopiują po kolei pliki.7 Szybsze sprawdzanie poprawności danych Fsck jest bardzo powolną operacją zwłaszcza sprawdzanie i-węzłów. Przyśpiesz to operacje dyskowe nawet do 20% w porównaniu do ext3. Poprawia to szybkość działania narzędzia sprawdzania od 2 do nawet 20 razy. aby wiedzieć czy dane zostały już zmienione. Fcsk dzięki temu będzie potrafił ominąć nieużywane i-węzły i po prostu ich nie sprawdzać. Dzięki temu system ma możliwość optymalizacji alokacji pamięci co w połączeniu z systemem extentów oraz funkcją mballoc zmienjsza fragmentację plików oraz przyśpiesza ich zapis.system powinien zostać przeładowany • 4 . 4 FSCK fsck jest uniksowym narzędziem do sprawdzania spójności systemu plików uruchamianym najczęsciej przy starcie systemu.błąd biblioteki współdzielonej Opcje programu: 5 . Jeśli narzędzie wykryje jakieś błędy automatycznie próbuje je naprawić.błąd składni • 128 . 3.bez błędów • 1 . Dlatego powstało narzędzie o nazwie e4defrag które umożliwia defragmentacje pojedyńczych plików jak i całej partycji. Przyśpiesza on również operacje dyskowe ponieważ transakcja danych i metadanych generuje jedną sumę kotrolną.5 Journal checksumming Ext4 wprowadza sumy kontrolne dla wpisów dziennika. 3.6 Defragmentacja online Pomimo wprowadzania systemów mających na celu maksymalne zmiejszenie fragmentacji danych jest ona procesem nieunikinionym.poprawiono błedy systemu plików • 2 . Ext4 wprowadza na końcu każdej tablicy i-węzłów listę nieużuwanych miejsc wraz z ich sumą kontrolną. Działa on inaczej niż typowe defragmentatory. kiedy wpis do dziennika został uszkodzony.Opóźnianie polega na wstrzymaniu alokacji do czasu istnienia jej w buforze lub do czasu wysłania żadania jej zapisania. wystarczy więc je porównać. 3.

# # Use ’ v o l _ i d −−uuid ’ t o p r i n t t h e u n i v e r s a l l y u n i q u e i d e n t i f i e r for a # d e v i c e . i s o 9 6 6 0 u s e r . t h i s may be used w i t h UUID= as a more r o b u s t way t o name devices # t h a t works even i f d i s k s a r e added and removed . d i r _ i n d e x / dev / p a r t y c j a 6 . uninut_bg . łącznie ze wszystkimi wykonywanymi poleceniami specyficznymi dla poszczególnych systemów plików 5 Migracja z systemu ext3 do ext4 W celu zmiany systemu plików na wybranej partycji potrzebujemy dwóch narzędzi: • tune2fs • fsck Ponadto partycja musi być niezamontowana. Wykonujemy kolejno: t u n e 2 f s −O e x t e n t s . jedynie pokazuje co byłoby wykonane • -P jeśli opcja -A sprawdza główny system plików równolegle z pozostałymi • -R podczas sprawdzania wszystkich systemów plików z opcją -A.• -s wykonywanie operacji fsck szeregowo. które je wspierają • -N nie wykonuje operacji. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 r o o t @ r o b i n : ~# c a t / e t c / f s t a b # / e t c / f s t a b : s t a t i c f i l e system i n f o r m a t i o n . • -t określa typ sprawdzanego systemu plików • -A przechodzi przez plik /etc/fstab i próbuje sprawdzić wszystkie systemy plików w jednym przebiegu. reszta będzie sprawdzana w kolejności rosnącej. omija główny system plików • -T nie pokazuj tytułu przy starcie • -V tryb gadatliwy. Wyświetlane są szczegółowe komunikaty. See f s t a b ( 5 ) . # # < f i l e system> <mount p o i n t > <t y p e> <o p t i o n s > <dump> <pass> proc / proc proc defaults 0 0 UUID=96 c 5 c 3 a 7 −71d4−4bf9 −9a51−a 9 2 2 5 c 0 c 5 6 e c / ext3 e r r o r s=remount−r o 0 1 UUID=48 d a c 3 e e −4178−4e63 −8730−0 f b c c 8 c b 1 1 5 4 / b o o t ext3 defaults 0 2 UUID=3 e e 8 6 9 f e −c912 −4715−bd7a−5 e e c a a e f 1 b b 6 /home ext3 defaults 0 2 UUID=f f 9 4 7 3 d 2 −bfb2 −4351−982b−6d c6b3 4085 91 none swap sw 0 0 / dev / s c d 0 / media / cdrom0 udf . Priorytet sprawdzania nadaje pole w pliku /etc/fstab o nazwie fs_passno Systemy plików z wartością 0 będą pomijane. noauto 0 0 • -C wyświetla wskaźniki zakończenia/postępu dla systemu plików.

Oznacza to jednak. W celu automatyzacji odpowiedzi wystarczy dodać parametr -p. Zaletą tego rozwiązania jest możliwość bezbolesnego powrotu do poprzedniego systemu plików. Uruchamiamy je w celu przywrócenia spójności systemu plików. 5. Podczas tej operacji fsck będzie wielokrotnie pytać czy naprawić błąd.Po tej operacji należy uruchomić sprawdzanie dysku narzędziem fsck ponieważ w innym wypadku partycja nie będzie mogła być zamontowana. Tak naprawdę montowanie takie umożliwia korzystanie z nowego mechanizmu alokacji bloków oraz opcji opóźniania alokacji. Prawdopodobnie znajdzie wiele błędów sum kontrolnych co jest zrozumiałe ponieważ w celu zamontowania nowego systemu plików błędy te muszą zostać poprawione. 7 .1 Montowanie partycji jako ext4 bez zmiany jej formatu Jest możliwość montowania partycji w formacie ext3 jak ext4 bez zmiany jej faktycznego formatu. że nie wszystkie zmiany będą mogły być używane. że wszystkie dane obecne na dysku w chwili migracji ciągle będą podlegały mechanizmom odczytu ext3. f s c k −pfD / dev / p a r t y c j a Warto zauważyć w tym miejscu. W celu pełnej migracji na nowy system plików należy uruchomić defragmentację online z opcją powtórnego zapisu wszystkich plików w postaci ekstentów.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->