Можно ли заменить неисправный диск Btrfs в RAID-1 в режиме реального времени?

15

Я пытаюсь выбрать файловую систему и хотел бы знать, можно ли заменить неисправный диск в RAID-массиве btrfs без простоев.

  1. Предположим, я создаю новую файловую систему btrfs с помощью команды

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Теперь предположим, что один день /dev/sdcне удался. Есть две возможности: он может постепенно выходить из строя, показывая ошибки SMART - в этой ситуации я могу добавить новое устройство с помощью, btrfs device add /dev/sde /mnt; btrfs filesystem balance /mntа затем удалить старое с помощью btrfs device delete /dev/sdc /mnt.

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

    umount /mnt
    mount -o degraded /dev/sdb /mnt
    btrfs device add /dev/sdf /mnt 
    btrfs device delete missing /mnt
    

Размонтирование, очевидно, является разрушительной операцией, поэтому возможны простои - любое приложение, использующее файловую систему, получит ошибку ввода-вывода. Но такого рода «учебники» по btrfs выглядят устаревшими, учитывая, что btrfs находится в стадии разработки.

Вопрос: учитывая текущее состояние btrfs, возможно ли сделать это онлайн, т.е. без размонтирования?

Если нет, то существует ли программное решение, способное удовлетворить эту потребность?

Нет ничего невозможного
источник
1
Если один диск загорелся, вероятно, загорелась и вся остальная часть вашей системы
Путешественник, выродок
1
@JourneymanGeek Забавно, вы… :) Я просто хотел очень четко заявить, что имел в виду катастрофический, внезапный и непредсказуемый сбой - диск просто перестает работать. Это довольно редко, жесткий диск обычно выходит из строя постепенно, и с помощью эффективного мониторинга я могу заменить их до того, как это произойдет, но что, если ...
NothingsImpossible
2
В Linux 3.8 btrfs replace mountpoint old_disk new_diskбыл добавлен.
Брайан
@ Брайан Ого ... Это ответ. Я погуглил «btrfs replace», и это обнаружилось на lwn.net/Articles/524589 . Это именно то, что я искал. Пожалуйста, отправьте это как ответ, чтобы я мог принять это.
Ничего

Ответы:

11

В Linux 3.8 btrfs replace mountpoint old_disk new_diskбыл добавлен. Если вы используете последнее ядро, оно обеспечит необходимую вам функциональность.

Брайан
источник
4
Это было бы теперь btrfs replace start /dev/old /dev/new /mountpoint( начало было добавлено). Также см man btrfs-replace.
basic6
1

небольшая коррекция, текущий синтаксис:

btrfs замените запуск OLDDEV NEWDEV MOUNTPOINT

какие то фоны.

Вы можете проверить статус с

btrfs меняет статус MOUNTPOINT

который покажет вам постоянно обновляемый статус операции замены.

Volker
источник
1
Это не ответ на оригинальный вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его постом - вы всегда можете комментировать свои собственные посты, и, когда у вас будет достаточно репутации, вы сможете комментировать любые посты .
ДэвидПостилл