Přeskočit na obsah
Tech-Blog Chatujme.cz Chatujme.cz
Počítače

Ext4 má v lednu 2028 přestat podporovat režim data=journal

Správce ext4 Theodore Ts'o označil režim data=journal za zastaralý a změna je od 8. října 2026 v hlavní větvi. Kdo disk takhle připojí, uvidí v logu varování. Podpora má podle dokumentace zmizet v lednu 2028.

· 18 zhlédnutí

Čtecí hlava pevného disku nad plotnou
Čtecí hlava pevného disku nad plotnou. Foto: Matthew Field, Wikimedia Commons (CC BY-SA 3.0)

Souborový systém ext4 se loučí s jedním ze svých tří datových režimů. Linus Torvalds 8. října 2026 sloučil do hlavní větve balík oprav ext4 se značkou ext4_for_linus-7.3-rc7. Jeho hlavní položkou je krátký commit správce ext4 Theodora Ts'o z 24. září: režim data=journal je od teď zastaralý a podpora pro něj má skončit v lednu 2028. Změna tak míří do Linuxu 7.3, který je teď ve fázi kandidátních verzí.

Zdůvodnění commit nemá. Popis žádosti o sloučení říká jen to, že se funkce označuje za zastaralou a v roce 2028 zmizí. Server Phoronix k tomu připsal, že konec přijde po vydání jádra s dlouhodobou podporou pro rok 2027. Tak to ale stojí jen v jeho textu, ne v kódu ani v dokumentaci.

Tři způsoby, jak ext4 zachází s daty

Žurnál je oddělená oblast disku, kam systém nejdřív zapíše, co se chystá změnit. Když přijde pád nebo výpadek proudu, jádro si žurnál při dalším připojení přehraje a disk vrátí do konzistentního stavu. Ext4 nabízí tři režimy, které se liší tím, co všechno do žurnálu jde. Dokumentace jádra je popisuje takhle:

  • data=writeback žurnáluje jen metadata, tedy údaje o souborech a adresářích. Data samotná se můžou na disk dostat až po metadatech, takže po pádu se v souboru může objevit starý obsah.
  • data=ordered je výchozí. Do žurnálu jdou zase jen metadata, ale jádro před jejich zápisem nejdřív uloží datové bloky, ke kterým patří. Dokumentace ho označuje za o něco pomalejší než writeback a výrazně rychlejší než journal.
  • data=journal zapisuje do žurnálu i obsah souborů. Všechno nové jde nejdřív tam a teprve potom na konečné místo. Po pádu se tak do konzistentního stavu vrátí data i metadata.

Daň za to je dvojí zápis každého bloku. Dokumentace o režimu journal píše, že je ze všech nejpomalejší. Výjimku má jedinou: když se na disk zároveň čte i zapisuje, předstihne podle ní ostatní dva. Režim navíc vypíná řadu jiných funkcí. Podle hlášky v kódu jde o odložené přidělování bloků (delayed allocation), volbu dioread_nolock, přímý vstup a výstup O_DIRECT a rychlé potvrzování fast_commit. S volbou dax, která obchází vyrovnávací paměť stránek, ho dokumentace označuje za neslučitelný.

Co se mění v kódu

Commit Theodora Ts'o mění tři řádky dokumentace a přidává jeden do souboru fs/ext4/super.c. Funkce, která při připojení kontroluje datový režim, nově vypíše varování, že volba data=journal je zastaralá a podpora skončí v lednu 2028. Stávající hláška o vypnutých funkcích se tiskne voláním printk_once, tedy jednou za běh systému. Nová používá obyčejné printk, takže se do logu jádra zapíše při každém připojení disku v tomhle režimu.

Funkčně se zatím nemění nic. Disk připojený s data=journal se dál připojí a chová se stejně. Commit mluví jen o volbě připojení. O atributu, kterým se žurnálování dat zapíná u jednotlivého souboru, neříká nic.

Koho se to týká

Výchozí je režim ordered, takže běžná instalace s ext4 nic nepozná. Varování uvidí jen ten, kdo si journal zapnul sám. Dělá se to dvojím způsobem. Buď volbou data=journal v souboru /etc/fstab nebo v příkazu mount, nebo trvale v hlavičce souborového systému. Druhou cestu nabízí nástroj tune2fs přepínačem -o journal_data, který z journal udělá výchozí volbu daného disku. Kdo chce mít jistotu, najde odpověď ve výpisu dmesg po připojení: nová hláška začíná slovy „EXT4-fs: The data=journal mount option is deprecated“.

Kdo režim používá kvůli ochraně dat, má čas zvážit přechod na ordered, nebo na jiný souborový systém. Distribuce s dlouhodobou podporou mívají jádro zamrzlé na starší verzi, takže u nich se konec režimu projeví až s přechodem na novější řadu.

Robot hodnotil záplaty proti šest let staré větvi

Tentýž balík má ještě druhou, nenápadnou změnu. Matthias Goergens v ní doplnil do souboru MAINTAINERS jméno vývojové větve ext4. Řádek dosud uváděl jen repozitář. Nástroje, které v takovém případě sáhnou po výchozí větvi, tak dostaly master, a ta podle commitu pořád ukazuje na sloučení z října 2020. Vývoj přitom běží ve větvi dev, kterou bere i linux-next.

Narazil na to robot Sashiko, který posuzuje záplaty pro jádro. Podle popisu commitu hodnotil záplaty ext4 právě proti zastaralé větvi. U opravy počítání odkazů na inody rozšířených atributů tak nahlásil kritické dvojí snížení počítadla a nedefinovanou funkci. Ani jedno ve větvi dev neplatí. Změnu potvrdil Jan Kara ze SUSE a obě úpravy prošly do jádra společně.

Zdroje

Počítače

Linux Souborové systémy ext4 jádro

← zpět na výpis