Назад | Перейти на главную страницу

Кеш LVM в режиме обратной записи эквивалентен внешнему журналу ext4?

Я использую файловую систему ext4 на LVM. Я рассматриваю два больших варианта ускорения: кэш LVM и внешний журнал ext4.

Похоже, что если я использую для этого один SSD, кеш LVM в режиме обратной записи - это то же самое, что и ваш журнал ext4 на внешнем устройстве ... в основном, если с ним что-то случится, вы сбрасываете в положение до журнала.

Это правильная интерпретация?

Внешний журнал - это совсем не то же самое, что устройство кэширования LVM. Кэш LVM на SSD для обратной записи не будет нестабильным, поэтому проблемы с целостностью данных не столь велики (за исключением случаев, когда это устройство (а) кэширования внезапно выйдет из строя - и это устройство кеширования может фактически быть RAID в сам через Linux MD или аналогичный).

Журнал намерений EXT4 состоит из множества небольших записей, которые выигрывают от быстрого запоминающего устройства с малой задержкой, будь то внешнее или то же устройство, на котором хранятся данные. При использовании ротационных носителей для дисков с данными это становится актуальным в очень случайных и транснациональных рабочих нагрузках.

Кэш обратной записи объединяет записи вместе, поэтому записи по большей части являются последовательными, но не делает различий между данными и метаданными, или журналом в частности. Он будет стоять перед всеми операциями записи, кэшировать все, а затем ставить в очередь записи на диск настолько последовательно, насколько это возможно во время сброса с учетом кэшированного набора данных. Команды сброса отправляются одновременно с командами барьера записи (с заданным интервалом), обеспечивая неповрежденное состояние на его поддерживающем устройстве.

Если кэш обратной записи внезапно и полностью выйдет из строя, вы потеряете некоторое время в своей файловой системе, но она все равно будет согласованной. (РЕДАКТИРОВАТЬ: это утверждение напрямую оспаривается в комментариях ниже, которые предупреждают о серьезном повреждении файловой системы.) Это может быть уменьшено с помощью устройства кэширования RAID1.

Если устройство журнала умирает, вы не сможете смонтировать файловую систему, пока не сбросите устройство журнала, используя # tune2fs -O ^has_journal /path/to/ext4device. В этом случае вам придется восстановить эту файловую систему с помощью полного сканирования fsck (что в некоторых случаях может занять ОЧЕНЬ много времени). Вы также, вероятно, увидите коррупцию, если это произойдет во время или до отключения питания.

Итак, я считаю, что правильным решением является использование кеша LVM в режиме записи с журналом ext4 на том же устройстве ... или другом устройстве с лучшей настройкой.

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

Я подожду, чтобы проголосовать за себя, на случай, если ответ получится.