10

У меня RAID10, управляемый mdadm и поверх него файловая система EXT4. Тем не менее, мне нравится BTRFS и я хотел бы преобразовать файловую систему EXT4 в BTRFS, но я думал о производительности и удобстве обслуживания. Для примера с BTRFS, я не могу легко увидеть состояние, когда я удаляю / добавляю другой диск в массив, как я могу с mdadm (или, возможно, я просто не знаю, как - я искал в документах BTRFS и не мог найти это ).

Итак, по вашему опыту, какой выбор лучше:

  1. Просто конвертировать файловую систему EXT4 и позволить mdadm управлять RAID10?

  2. Чтобы избавиться от mdadm и позволить BTRFS все делать?

2 ответа2

12

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

4

BTRFS все еще является экспериментальной, и вы можете получить "интересные" функции, если что-то рухнет. Если вы действительно хотите / хотите запустить btrfs, было бы гораздо безопаснее запустить его поверх программного рейда, чем просто запустить его напрямую. Когда btrfs созревает и выходит в производство, это может быть уже не так.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .