Пусть Btrfs сделает все.
Во-первых, Btrfs имеет свой собственный встроенный код зеркалирования, который может быть умнее madm.
Конечно, если диск выходит из строя в зеркальной паре в madm raid10, вы можете заменить плохой диск и продолжить свою жизнь (хотя и после очень сложного набора команд оболочки). Проблема в том, что если ваш диск выходит из строя немного мягче: если несколько блоков просто возвращают неправильные биты вместо того, чтобы выдавать соответствующие коды ошибок для плохого блока, то при чтении данных вы случайным образом получите неверные данные. Btrfs умнее этого: он проверяет контрольные суммы каждого бита данных. Честно говоря, я не знаю, правильнее ли говорить «каждый узел BTree» или «каждый блок», но дело в том, что когда он читает некоторые данные из зеркального массива, он проверяет контрольную сумму, прежде чем вернуть ее вашему Пользовательский процесс. Если контрольная сумма не совпадает, она сначала обращается к другому зеркалу в массиве, и если это дает правильную контрольную сумму,
В Btrfs wiki специально упоминается ваш вопрос :
Если бы Btrfs полагался на устройство отображения или MD для зеркального отображения, он не смог бы разрешить ошибки контрольной суммы путем проверки зеркальной копии . Нижние уровни не знают контрольной суммы или гранулярности блоков файловой системы, и поэтому они не могут проверить возвращаемые данные.
Наконец, даже без этого существенного преимущества рабочий процесс командной строки для работы с удаленными или добавленными устройствами Btrfs очень прост. Я даже не уверен, что смог бы получить правильные команды оболочки degraded-mount-then-fix-your-filesystem, но для Btrfs это очень четко задокументировано на странице нескольких устройств :
mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt
На этом этапе, если у вас достаточно места на оставшихся дисках, вы всегда можете просто btrfs rebalance
и покончить с этим; не нужно заменять зеркало, как вам абсолютно необходимо сделать с Madm! И если вы хотите заменить его, вы можете сделать в btrfs device add
первую очередь.