Linux 6.2 будет включать улучшения для RAID5 и RAID6 в Btrfs

Ядро Linux

Ядро Linux

Недавно выяснилось, что улучшения Btrfs были предложены для включения в ядро ​​​​Linux 6.2. чтобы исправить проблему с дырой записи в реализации RAID 5/6.

Суть проблемы сводится к тому, что если при записи происходит сбой, то изначально невозможно понять, какой блок на каком из RAID-устройств был записан правильно, а на каком запись не была завершена.

Если вы попытаетесь перестроить RAID в этой ситуации, блоки, соответствующие подписанным блокам, могут быть повреждены, поскольку состояние блоков RAID не синхронизировано. Эта проблема возникает в любом массиве RAID1/5/6, где не предпринимаются специальные меры для борьбы с этим эффектом.

В реализации RAID, такой как RAID1 в btrfs, эта проблема решена используя контрольные суммы на обеих копиях, в случае несоответствия данные просто восстанавливаются из второй копии. Этот подход также работает, если какое-либо устройство начинает выдавать неверные данные, а не полностью выходит из строя.

Тем не менее, в случае RAID5/6 файловая система не хранит контрольные суммы для блоков четности - в штатной ситуации корректность блоков проверяется тем, что все они снабжены контрольной суммой, а блок четности может быть воссоздан из данных. Однако в случае частичной записи этот подход может не сработать в определенных ситуациях. В таком случае, при восстановлении массива возможно, что блоки, оставшиеся в незавершенной записи восстанавливаются неправильно.

В случае с btrfs эта проблема более актуальна, если происходящая запись меньше, чем страйп. В этом случае файловая система должна выполнять операцию чтения-изменения-записи (RMW).

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

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

Кроме того, можно отметить рекомендации по использованию RAID5/6 от разработчиков, суть которых в том, что в Btrfs может отличаться профиль хранения метаданных и данных. В этом случае для метаданных можно использовать профиль RAID1 (зеркало) или даже RAID1C3 (3 копии), а для данных — RAID5 или RAID6.

Это обеспечивает надежную защиту метаданных и отсутствие «дыры записи» с одной стороны и более эффективное использование пространства, характерное для RAID5/6, с другой. Это предотвращает повреждение метаданных, а повреждение данных можно исправить.

также Можно отметить, что для SSD на Btrfs в ядре 6.2, la асинхронное выполнение операции «отбросить» (отмечать освобожденные блоки, которые больше нельзя физически хранить) будет включено по умолчанию.

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

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


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.