Обновление файловой системы 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.

Дополнительно можно отметить, подготовку для openSUSE готовых для установки пакетов с ядром Linux 3.14, в которые интегрирована поддержка Reiser4. Кроме того, для Reiser4 предложен патч с реализацией поддержки опции монтирования «discard» для информирования SSD-накопителей о не используемых в ФС блоках, что позволяет повысить производительность при работе с SSD-накопителями и увеличить срок их службы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.