Пусть 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
.