Работает ли самовосстановление BTRFS только с помощью программного RAID?

Афаик. существует 3 типа RAID:

  • аппаратное обеспечение - например, дорогая карта PCIE RAID / или редко встроенный RAID, который имеет выделенный ЦП, возможно, с кешем записи и программным обеспечением BBU
  • - например, ZFS, MD, BTRFS программный RAID
  • подделка - например, дешевая карта PCIE RAID / или большинство встроенных RAID-массивов, которые используют ОЗУ и ЦП на материнской плате.

Используя программный RAID BTRFS, файловая система знает о дисках и при обнаружении блока с неправильной контрольной суммой , затем он может использовать клон (RAID1 / 10) или четность (RAID5 / 6) для восстановления затронутого блока и исправления ошибки. Так что наши файлы не будут ухудшаться со временем.

Вопрос в том, работает ли тот же механизм самовосстановления с оборудованием или поддельными RAID-массивами с помощью BTRFS?

Думаю, должен быть API, который BTRFS может использовать для доступа к клону / четности затронутого блока и его исправления . Я думаю, что у встроенного RAID больше шансов получить что-то подобное, но я не знаю, существует ли такая вещь, или каждый RAID реализован по-разному, и нет стандартного API, который мог бы использовать BTRFS.

1
задан 1 August 2017 в 14:16
1 ответ

Борьба с этим вопросом имеет смысл, но я думаю, что могу ответить на него в любом случае.

BTRFS является программным RAID и управляется программным обеспечением BTRFS, встроенным в Linux. Для выполнения любого вида обслуживания массива вам необходимо использовать команды btrfs в операционной системе.

Что касается вашего оборудования, включая любой RAID-контроллер, диски являются всего лишь базовыми блочными устройствами. Ничего кроме программного обеспечения BTRFS в Linux* не будет иметь представления о том, что диски являются частью массива.

*Другие операционные системы могут реализовать BTRFS, но я бы сказал, что это маловероятно, по крайней мере, на данный момент.

Обновление: Использование BTRFS поверх существующего RAID-массива.

RAID и BTRFS в данном случае полностью разделены. Возьмём, к примеру, аппаратное зеркало:

  • BTRFS понятия не имеет, что оно на зеркале, и будет записывать данные на одно устройство (в данном примере назовём это /dev/raid). RAID-контроллер должен зеркалировать данные на обоих дисках.
  • Если устройство выйдет из строя, BTRFS просто будет читать данные, как обычно, и понятия не имеет, что диск вышел из строя. RAID-контроллер должен поддерживать /dev/raid в рабочем состоянии и считывать/записывать данные на оставшийся диск. Также RAID-контроллер должен восстанавливать массив после замены диска.

То же самое верно вне зависимости от того, как предоставляется RAID (аппаратный/"поддельный" или программный)

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

.
2
ответ дан 3 December 2019 в 20:20

Теги

Похожие вопросы