У меня было несколько проблем с моими ext4 файловыми системами, которые, кажется, происходят из-за журналирования jbd2. Я сделал связанное сообщение здесь и перефразирую его с надеждой, что кто-то может помогать.
Для минимального примера я запускаю с пустой карты с интерфейсом USB на 8 ГБ и использую gparted для создания одного ext4 раздела. Команда, используемая gparted при создании ext4 файловой системы:
mkfs.ext4 -j -O extent -L DataTraveler8gb /dev/sde1
Я проверяю файловую систему с gparted:
e2fsck -f -y -v /dev/sde1
и я монтирую его:
sudo mount /dev/sde1 /media/test
Диск пуст, но журналирование очень активно на этом диске (/dev/sde1). Другими дисками являются ext4 SSD, отформатированные так же. Снимок iotop:
% sudo iotop -oPa
Total DISK READ: 0.00 B/s | Total DISK WRITE: 2027.21 K/s
PID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
262 be/3 root 0.00 B 56.00 K 0.00 % 0.18 % [jbd2/sda1-8]
29069 be/3 root 0.00 B 0.00 B 0.00 % 0.16 % [jbd2/sde1-8]
891 be/3 root 0.00 B 4.00 K 0.00 % 0.03 % [jbd2/sdc1-8]
Что jbd2 делает с/dev/sde1?
Если я выполняю те же шаги с большим диском на 2 ТБ, iotop указывает, что этот пустой диск постоянно пишется в jbd2 по курсу Мбит/с, как только я монтирую его.
На других дисках, которые имеют ОС и / домой, я попытался найти, изменяются ли какие-либо файлы процессами для порождения этого поведения, но не могли бы найти никого. Я также переместил многие из диска интенсивный процесс для использования tmpfs. И используемый noatime.
У меня есть другой жесткий диск не-SSD на этой машине,/dev/sdb, который является также ext4, но не был отформатирован gparted (данный мне коллегой). Это не появляется в iotop. Таким образом, я принимаю там проблему с gparted.
Любые предложения ценятся. Также любые подсказки относительно того, как изменить существующие разделы для устранения проблемы, не имея необходимость запускаться с нуля, были бы большими.
Существуют некоторые сообщения, связанные с jbd2, но они не помогли (например, здесь).
Похоже, что ext4 выполняет «быстрый формат», отправляя большую часть своей инициализации до тех пор, пока он не смонтирован (возможно, опция uninit_bg?), И я подозреваю, что jbd2 делает это после первого форматирования диска. Один из комментариев здесь предположил, что jbd2 записывает в раздел после создания в течение времени, пропорционального его размеру, и предложил 10 минут на 200 ГБ, что будет означать 50 минут на ТБ. Вчера я отформатировал диск ext4 емкостью 3 ТБ, а jbd2 целую вечность записывал, но теперь он остановился.
btrfs этого не делает, кстати, но я пока не доверяю этому для внешних накопителей - например, вам нужно свежее ядро (3.4+, я думаю), иначе ядро будет опа (и, возможно, потеряет данные), если вы извлеките диск, не отключая его в первую очередь (что, конечно, происходит, если он теряет питание).