ext4 (Fourth Extended Filesystem) to dziennikowany system plików, który od lat jest domyślnym wyborem w większości dystrybucji Linuksa — od Ubuntu i Debiana po Fedorę w jej starszych wydaniach. Łączy sprawdzoną stabilność swoich poprzedników (ext2 i ext3) z lepszą wydajnością i obsługą naprawdę dużych dysków. Pojawił się w jądrze Linuksa 2.6.28 (koniec 2008 roku), więc to technologia leciwa, ale właśnie ta dojrzałość sprawia, że ufają mu produkcyjne serwery na całym świecie.
Jak to działa i do czego służy
System plików to warstwa, która zamienia surowe bloki na dysku w katalogi i pliki, z którymi pracujesz. ext4 zarządza tym za pomocą extentów — zamiast notować pozycję każdego bloku z osobna (jak robił to ext3), zapisuje całe ciągłe zakresy. Dzięki temu duże pliki zajmują mniej metadanych i są szybsze do odczytu.
Kluczowa cecha to journaling, czyli dziennik. Zanim ext4 zapisze zmiany na właściwe miejsce, notuje je w dzienniku. Jeśli w trakcie zapisu padnie zasilanie, system po starcie odtwarza dziennik i unika uszkodzenia struktury. To dlatego po nagłym wyłączeniu Linux zwykle wstaje bez dramatów. ext4 obsługuje też pliki do 16 TiB i woluminy do 1 EiB, opóźnioną alokację (delayed allocation) zmniejszającą fragmentację oraz znaczniki czasu z dokładnością do nanosekund.
Przykład z praktyki
Załóżmy, że podpinasz nowy dysk i chcesz go sformatować. Tworzysz system plików komendą mkfs.ext4 /dev/sdb1, a potem montujesz: mount /dev/sdb1 /mnt/dane. Gdy coś zacznie się dziać dziwnego, sprawdzisz spójność narzędziem fsck.ext4 -f /dev/sdb1 (na odmontowanym wolumenie!), a parametry systemu podejrzysz przez tune2fs -l /dev/sdb1 — zobaczysz tam m.in. liczbę i-węzłów oraz datę ostatniej kontroli.
Częste błędy i mity
Mit numer jeden: „journaling chroni moje dane”. Chroni strukturę systemu plików, a nie treść Twoich plików — domyślny tryb data=ordered dba o metadane, nie o każdy bajt zawartości. Dziennik to nie backup. Drugi błąd to uruchamianie fsck na zamontowanym dysku — potrafisz tak narobić więcej szkód niż pożytku, więc najpierw umount. I jeszcze jedno: ext4 nie ma wbudowanych snapshotów ani sum kontrolnych danych — jeśli tego potrzebujesz, patrz w stronę Btrfs lub ZFS.
Pojęcia powiązane
Warto skojarzyć ext4 z jego poprzednikami ext2 i ext3, z konkurencyjnymi systemami plików XFS, Btrfs i ZFS, a także z pojęciami inode, journaling, extents oraz menedżerem woluminów LVM.