> Я использую data=writeback. Данные не журналируются, но метаданные вполне себе да. И
> барьеры есть. Журнал нужен, чтобы не повредить метаданные. Потому что если вообще-то такой журнал придуман совершенно для другого - чтобы сэкономить время на fsck.
Когда этот коран писали - самой большой проблемой наследников system7 было неприемлемо выросшее время проверки диска после перезагрузки ресетом, когда емкость дисков резко скакнула с десятков до сотен гигабайт.
В результате кто-то запилил "background fsck" (чур меня, чур!) а кто-то - вот такую хрень, журнал метаданных.
> они повредятся, фс резко поплохеет и потерей пары временных файлов из
журнал на не cow-fs в принципе не гарантирует что они "не повредятся". А тем более журнал в режиме записи данных вперемешку с метаданными.
Нет, fs не "резко поплохеет", потому что ее структуры данных вообще крайне трудно необратимо испортить. Но вот тому, что писалось в момент крэша - поплохеет гарантировано, и хорошо если на васян-десктопе нет ничего более ценного чем "кэш браузера".
Если журнала нет - еще можно пытаться что-то ловить в lost+found (в надежде что повредили мы содержимое directory, а не inode с данными). Если журнал есть - ловить нечего, поскольку он вернет тебе систему в "консистентное" состояние, пооверрайтив неконисистентные метаданные - _устаревшими_. Поскольку у нас тут не коровье пастбище и файлы были перезаписаны по месту (а журнал об этом узнать не успел) - у тебя теперь вместо их содержимого веселенькая вермишель.
"зато fsck ненужен!" и "смотрите как быстро загрузились после крэша!"
Если бы кто-то, не понимая как работает журнал, не лез дергать ручки - ситуация была бы чуток повеселее - поскольку журнал обновляется вперед данных - файлы либо нулевой длины, либо с прежним содержимым, либо исчезли (если созданы в момент крэша, но в журнал попасть не успели - занятое ими место после наката журнала снова помечено как свободное), вермишель при "ordered" невозможна.
# ls -la /lost+found/
total 608
drwx------ 2 root root 16384 Sep 5 2015 .
drwxr-xr-x 22 root root 4096 Jan 8 08:08 ..
-rw------- 1 user users 190946 Dec 26 2015 #3146740
-rw-r--r-- 1 user users 33156 Sep 22 2015 #3162003
-rw------- 1 user users 318722 Jan 6 2016 #3165803
-rw-r--r-- 1 user users 52401 Apr 12 2018 #3286995
система не выключается практически никогда, и периодически виснет (d2700, да, традиционная проблема с мостом) С 2011го года, как видим, ничегошеньки фатального с нежурналируемой fs не случилось.
в /tmp/lost+found мусор удаляется, но там его не то чтобы на порядок больше - noatime+barrier=0 очень здорово уменьшают шансы повиснуть именно в момент записи метаданных.