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, возможно ли сделать это онлайн, т.е. без размонтирования?

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

2 ответа2

11

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

1

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

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

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

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

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

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

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