Quantcast
Channel: JakiLinux » norbert_ramzes
Viewing all articles
Browse latest Browse all 6

Tune2fs – tuning systemów plików ext2, ext3 i ext4

$
0
0

Tune2fs jest jednym z wielu zaawansowanych i przydatnych narzędzi w dystrybucjach systemu Linux. Pozwala ujarzmić kilkanaście ustawień systemów plików ext2, ext3 i ext4.

Przed pracą musimy wybrać system plików, który chcemy modyfikować/sprawdzać. Można do tego użyć m.in. cfdisk, GParted lub Monitor Systemu:

wybór systemu plików przy użyciu Monitor Systemu

Musimy posiadać zainstalowany tune2fs w systemie. W Debianie będzie to paczka e2fsprogs.

Polecenie uruchamiane jest z poziomu konsoli – jeśli nie jesteś z nią zaznajomiony(a), rzuć okiem na krótki tutorial.

Przyjrzyjmy się wybranej partycji (nieco więcej informacji pokazuje dumpe2fs):

ramzes@rh1:~$ sudo tune2fs -l /dev/sda8
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: root
Last mounted on: /
Filesystem UUID: a2e7776b-0f0d-49ba-80fc-ada4d2f2eda2
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode
dir_index filetype needs_recovery extent flex_bg sparse_super
large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 983040
Block count: 3931900
Reserved block count: 39319
Free blocks: 3758856
Free inodes: 974645
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 959
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Mon Nov 29 15:43:52 2010
Last mount time: Mon Feb 14 17:49:07 2011
Last write time: Sun Mar 6 21:08:14 2011
Mount count: 3
Maximum mount count: 34
Last checked: Mon Jan 24 01:43:50 2011
Check interval: 15552000 (6 months)
Next check after: Sat Jul 23 02:43:50 2011
Lifetime writes: 2364 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 537f84a1-d96e-4c37-a20f-5b176e946e08
Journal backup: inode blocks

Wyjaśniając ważniejsze terminy:

Filesystem volume name Etykieta woluminu (nazwa dysku) – dowolna nazwa ułatwiająca nam identyfikację systemu plików
Last mounted on Ostatni punkt (katalog) montowania
Filesystem UUID Unikalny identyfikator, generowany jednorazowo podczas tworzenia systemu plików. Jego jedną z zalet, jest możliwość montowania przy jego użyciu – o czym będzie w dalszej części artykułu
Filesystem magic number Magiczna liczba, mówiąca o rodzaju systemu plików
Filesystem revision Rewizja (podwersja) systemu plików. Większa wartość oznacza nowszą podwersję.
Filesystem features Funkcjonalności/flagi. Ważniejsze z nich w kolejności alfabetycznej:
  • dir_index – włącza indeksowanie plików w katalogach – przyśpiesza wyszukiwanie w katalogach z dużą ilością plików
  • dir_nlink – flaga która włącza limit ilości twardych dowiązań (dla ext3 domyślnie 32000 a dla ext4 domyślnie 65000 – według źródeł jądra Linuksa). Ma to znaczenie, gdyż dowiązanie może linkować do nadrzędnego katalogu, co wywołuje zapętlenie.
  • extent – oznacza, że używane są extenty (dostępne od ext4). Extenty to w wolnym tłumaczeniu „bloki”, których jest dokładnie jeden na plik, w przeciwieństwie do tradycyjnych bloków – zmniejsza to fragmentację oraz przyśpiesza operacje, zwłaszcza przy dużych plikach
  • ext_attr – wykorzystywane przy SELinux
  • filetype – zapisuje w katalogu typ każdego pliku
  • flex_bg – zaawansowana flaga w ext4, która znacznie zwiększa wydajność systemu plików. Niestety, może zostać włączona tylko podczas formatowania (a nie podczas konwertowania ext3 na ext4) oraz niektóre wersje e4defrag mogą nie działać przy niej.
  • has_journal – posiada dziennik
  • huge_file – podobnie jak w „large_file”, jednak przy plikach większych niż ext3 jest w stanie obsłużyć
  • large_file – flaga ustawiana automatyczna podczas zapisu pliku większego niż 2GB
  • meta_bg – zaawansowana funkcjonalność powiększająca pojemność systemu plików – dostępne w ext3 (Linux >= 2.6.0) i ext4
  • multi mount protection (MMP) – uniemożliwia montowanie w więcej niż jednym miejscu (punkcie)
  • needs_recovery – ustawiane zawsze podczas montowania i usuwane podczas odmontowywania. Jeśli filesystem nie jest zamontowany, a posiada tę flagę, oznacza to, że nie był poprawnie zdemontowany, np. w wyniku awarii zasilania
  • resize_inode – pozwala na zmianę rozmiaru systemu plików w trakcie pracy
  • sparse_super – limit ilości kopii zapasowych superbloków – oszczędza miejsce przy dużych systemach plików. Lepiej nie włączać w starszych dystrybucjach bez obsługi ext4.
  • uninit_bg – oznacza, że nie wszystkie grupy bloków są zainicjowane oraz włącza dodatkowe sumy kontrolne. Zwiększa to wydajność, zwłaszcza podczas sprawdzania przy użyciu e2fsck (parę sekund zamiast paru godzin)

Default mount options – domyślne opcje montowania Filesystem stateStan systemu plików:

  • clean – nie znaleziono problemów
  • not clean – błąd dziennika lub jego brak
  • clean with errors oraz not clean with errors – oznacza, że są błędy (uszkodzenia) systemu plików – należy jak najszybciej odmontować (jeśli jest zamontowany), a następnie sprawdzić/naprawić za pomocą polecenia fsck

Errors behavior – Ustawienie, które mówi, co powinien zrobić system podczas znalezienia (wystąpienia) błędu:

  • continue – kontynuacja pracy – używane zwykle dla systemowych partycji, gdyż inne zachowanie w razie błędu może spowodować nieprawidłową pracę systemu – w takim przypadku należy jak najszybciej zrestartować system, aby podczas startu system plików mógł zostać sprawdzony
  • remount-ro – powoduje przejście w tryb tylko do odczytu – brak możliwości zapisu uniemożliwia dalsze uszkodzenia, jednak nadal można czytać istniejące pliki
  • panic – wywołuje panikę jądra

Filesystem OS type – typ systemu operacyjnego, który utworzył ten system plików.
Inode count – ilość inodów – po tym można ocenić, ile jest plików i katalogów w danym systemie plików.
Block count – ilość bloków.
Reserved block count – ilość zarezerwowanych bloków – wyjaśnimy to w dalszej części artykułu.
Free blocks – ilość wolnych bloków.
Block size – rozmiar bloku (klastra).
Reserved GDT blocks – zarezerwowane bloki, które umożliwiają zmianę rozmiaru systemu plików w trakcie pracy (bez konieczności odmontowania).
Blocks per group – ilość bloków na każdą grupę. Inodes per group – ilość inodów na grupę
Filesystem created – data utworzenia systemu plików.
Last mount time – data ostatniego montowania.
Last write time – data ostatniego zapisu.
Mount count – ilość montowań od ostatniego sprawdzania przez fsck.
Maximum mount count – maksymalna ilość montowań, po której system powinien sprawdzić system plików (fsck) – można porównać do przeglądu samochodu po ilości przejechanych kilometrów.
Last checked – data ostatniego sprawdzania przez fsck.
Check interval – czas, co jaki system plików zostanie sprawdzony, niezależnie od wymienionego wyżej „Mount count” i „Maximum mount count”. Next check after – data następnego sprawdzenia – na podstawie daty ostatniego oraz „Check interval” Lifetime writes(ext4) – łączna ilość zapisanych danych do danego systemu plików – przydatne zwłaszcza dla użytkowników dysków SSD, które mają ograniczoną wytrzymałość na zapis do jednego bloku – można w ten sposób ocenić zużycie i wymienić dysk zanim nastąpi awaria.
Reserved blocks uiduid użytkownika(-ów), którym służą zarezerwowane blokiReserved blocks. gid – id grupy, której służą zarezerwowane bloki.

Zmiana zarezerwowanej pojemności

Zarezerwowana pojemność to część miejsca na FS zarezerwowana wyłącznie dla jednego użytkownika, zwykle root. Pozwala to na prawidłową pracę systemu nawet przy „przepełnieniu”. Zwykle domyślna wartość to 5%. Przy pojemnych systemach plików może to stanowić problem, gdyż 5% z 1TiB to aż 51.2GiB, co może nie być pożądane, np. gdy na osobnej partycji trzymamy pliki multimedialne.

Gdy chcemy zwiększyć lub zmniejszyć procentową ilość zarezerwowanej powierzchni systemu plików (ilość zarezerwowanych bloków w procentach):

ramzes@rh1:~$ sudo tune2fs -m 6 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Ustawianie procent zarezerwowanych bloków na 6% (943778 bloków)
ramzes@rh1:~$ sudo tune2fs -m 1 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Ustawianie procent zarezerwowanych bloków na 1% (157296 bloków)

Aby całkowicie wyłączyć, wystarczy podać 0 jako parametr.

W razie potrzeby, można podać ilość zarezerwowanego miejsca w blokach (zwykle jeden blok = 4KiB):

ramzes@rh1:~$ sudo tune2fs -r 20000 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Ustawianie liczby zarezerwowanych bloków na 20000

Profilaktyczne sprawdzanie systemu plików

Fsck sprawdza montowane przy starcie systemy plików. Jeśli któryś (lub któreś) nie został(y) prawidłowo odmontowany(e) (np. w wyniku awarii zasilania), to automatycznie podlega(ją) sprawdzeniu. Również można nakazać, aby sprawdzanie było wykonywane mimo wszystko co określoną ilość montować i/lub co pewien czas.

Sprawdzanie co określoną ilość montowań:

ramzes@rh1:~$ sudo tune2fs -c 40 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Ustawianie maksymalnej liczby montowań na 40

Sprawdzanie co określoną ilość czasu (2m oznacza 2 miesiące, przedrostek d oznacza dni, a w tygodnie):

ramzes@rh1:~$ sudo tune2fs -i 2m /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Ustawianie odstępu pomiędzy sprawdzeniami na 5184000 sekund

Aby wyłączyć, należy podać 0 jako parametr. Jednak nie jest to zalecane, gdyż drobna awaria sprzętowa bądź niezauważony błąd w jądrze systemu może spowodować uszkodzenie danych.

Zmiana etykiety systemu plików

Etykieta pozwala opisać nam systemy plików, dzięki czemu trudniej się pogubić. Wiele programów pozwala podejrzeć m.in. ustawione etykiety. Najczęściej przeze mnie używane to, wyżej już wymienione cfdisk, „Monitor Systemu” oraz GParted.

ramzes@rh1:~$ sudo tune2fs -L "porn" /dev/sda1
tune2fs 1.41.12 (17-May-2010)

flattr this!


Viewing all articles
Browse latest Browse all 6

Latest Images