
Я пытаюсь выбрать файловую систему и хотел бы узнать, возможно ли заменить неисправный диск в RAID-массиве BTRFS без простоя.
Предположим, я создаю новую файловую систему btrfs с помощью команды
mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
Теперь предположим, что один день
/dev/sdc
выходит из строя. Есть две возможности: он может выходить из строя постепенно, показывая ошибки SMART - в этой ситуации я могу добавить новое устройство с помощью ,btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
а затем удалить старое с помощьюbtrfs device delete /dev/sdc /mnt
.Но если он внезапно выйдет из строя и станет нечитаемым... Поиск в Интернете показывает, что в этой ситуации мне сначала нужно размонтировать файловую систему, смонтировать ее в режиме пониженной функциональности, добавить новое устройство, а затем удалить отсутствующее устройство.
umount /mnt mount -o degraded /dev/sdb /mnt btrfs device add /dev/sdf /mnt btrfs device delete missing /mnt
Размонтирование, очевидно, является разрушительной операцией, поэтому возникнет простой - любое приложение, использующее файловую систему, получит ошибку ввода-вывода. Но такого рода "руководства" по btrfs выглядят устаревшими, учитывая, что btrfs находится в стадии интенсивной разработки.
Вопрос: учитывая текущее состояние btrfs, возможно ли это сделать онлайн, т.е. без размонтирования?
Если нет, то существует ли программное решение, которое может удовлетворить эту потребность?
решение1
В Linux 3.8 btrfs replace mountpoint old_disk new_disk
был добавлен. Если вы используете последнее ядро, оно предоставит вам функциональность, которую вы ищете.