Обновление файловой системы Reiser4 c поддержкой различных транзакционных моделей

Эдуард Шишкин объявил о доступности патчей с реализацией файловой системы Reiser4 для ядра Linux 3.14. Новый выпуск примечателен добавлением поддержки различных транзакционных моделей, позволяющих сочетать в одной реализации ФС разных режимов обеспечения целостности, оптимальных для разных типов носителей. Обычно файловые системы поддерживают только одну, жестковкодированную транзакционную модель. Это либо только журналирование (как в ReiserFS (v3), ext4, XFS), либо только Write-Anywhere (более известная как Copy-on-Write), как в ZFS, Btrfs). Однако, журналируемые файловые системы не лучший выбор для SSD-дисков из-за двойных записей (все модифицированные блоки записываются сначала в журнал, потом на штатное место на диске). И, наоборот, CoW-файловые системы плохо работают с накопителями на основе вращающихся дисков (в этой модели модифицированные данные всегда записываются на новое место на диске, что приводит к фрагментации, к которой НЖМД особо чувствительны).

В Reiser4 удалось совместить обе техники. Теперь пользователь может задать желаемую транзакционную модель во время монтирования файловой системы. Помимо классических журналирования и CoW, Reiser4 также поддерживает и гибридную транзакционную модель, в которой часть модифицированных блоков записывается с использованием журнала на старое место на диске, а другая часть — при помощи техники Copy-on-Write на новое место на диске. Решения о перезаписи или перемещении блока принимаются исходя из попыток минимизировать фрагментацию.

Обеспечена поддержка трёх режимов обработки транзакций:

Журналирование («txmod=journal») — классическая модель, подразумевающая помещение данных о изменении в журнал перед фактической перезаписью метаданных. Рекомендуется для накопителей с вращающимися дисками в случае, если при использовании гибридного режима наблюдаются проблемы с фрагментацией; Copy-on-Write («txmod=wa») — модель, при которой изменения не приводят к перезаписи данных, вместо этого новое состояние записывается в новое место, после чего меняется указатель актуального состояния. Реализация модели Copy-on-Write в Reiser4 применима только для SSD-накопителей, так как может приводить к излишней фрагментации на НЖМД из-за отсутствие активных действий по дефрагментации для обеспечения высокой производительности; Гибридная модель («txmod=hybrid»), используется по умолчанию и рассчитана на системы с НЖМД, на которых не выполняется огромное число операций случайной перезаписи. В гибридной модели используется концепция составных контрольных точек («compound checkpoints») при которой часть изменений обрабатывается через журнал, а другая часть через технику Copy-on-Write. По сравнению с журналированием гибридная модель инициирует относительно небольшой объём операций ввода/вывода, при этом не приводит к такому существенному росту фрагментации, как в модели Copy-on-Write.

©  OpenNet