Понимание транзакций ext4 / jbd2

Я пытаюсь отлаживать некоторые проблемы, с которыми я сталкиваюсь с задержкой ввода-вывода в системе с помощью ext4, но я немного в тупике, что я не понимаю его журнализацию, а также хотел бы.

В частности, мне интересно, в какой момент записываются блоки диска, как в журнал, так и «для реального». До сих пор мое предположение заключается в том, что, когда некоторые операции с метаданными, такие как, скажем, rename() , выполняются пользовательским процессом, файловая система гарантирует, что блоки диска, на которые нужно направить операцию, находятся в буферном кэше, выполните необходимые изменения в памяти на кэшированных страницах, при создании транзакции jbd2, которая записывает измененные страницы, а затем, в какой-то более поздний момент, записывает эти страницы в журнал, а затем только тогда, когда это будет сделано, и в какой-то другой произвольно более поздней точке , запишите их в собственно файловую систему. Пожалуйста, поправьте меня, если я ошибаюсь где-то здесь.

Предполагая, что я несколько верен, мне интересно, что может вызвать запись в журнал, который будет выполнен. Это когда какая-то более общая часть FS / VM ядра решит, что пришло время сбросить грязные страницы? Это, когда в журнале больше нет места для размещения для большего количества транзакций? Что произойдет, если ядро ​​должно вернуть некоторые грязные страницы из кеша буфера? Будет ли это инициировать запись в журнале и запись основной записи в принудительной последовательности?

Кроме того, что такое стандартная терминология? Когда я вижу, что транзакция называется «совершенной», что это значит, точнее?

  • tune2fs - сколько места зарезервировано на большой файловой системе ext4
  • Могу ли я узнать, является ли данный блок ext4 в таблице inode, и если да, могу ли я выбрать его из журнала без заголовка вручную?
  • В чем разница между параметрами fsck -y и -p?
  • Преобразование ext4 в btrfs: Если я случайно потеряю питание системы во время преобразования, я потеряю данные?
  • Почему разница в размере файла и его размере на диске больше 4 KiB?
  • Фрагментация и ext4
  • Предотвращение повреждения файлов
  • Функция большого файла при создании файловой системы
  • Можно ли восстановить восстановленные файлы?
  • Размер диапазона журнала файловой системы ext4
  • Как я могу изменить дату, измененную для папки, на последний измененный файл внутри?
  • Interesting Posts

    Могут ли возможности использоваться в сценариях без setcap'в двоичном языке интерпретатора?

    увеличение ширины столбца ps -o

    Конкретная учетная запись пользователя для Apache в каталоге / var / www

    Как конвертировать растровые изображения в SVG?

    Как разрешить автозаполнение шаблонов bash?

    `grep -l .. | xargs vim` генерирует предупреждение, почему?

    Как проверить файл настроек (ini) для ожидаемых значений с помощью bash?

    Как установить скорость указателя?

    Заполнение ZSH с помощью команды output

    Как получить разбивку сегментации, работающую с systemd-networkd?

    Является ли vim многопоточным?

    Ошибка Pacman: не удалось открыть файл: / etc / mtab: Нет такого файла или каталога

    Перемещение файлов и изменение прав собственности на время

    Замораживание системы при настройке alsa

    Что такое альтернатива командной строке для поиска текущего использования ЦП, не зависящего от ширины экрана?

    Linux и Unix - лучшая ОС в мире.