![Можно ли заменить неисправный диск Btrfs в RAID-1 в режиме реального времени?](https://rvso.com/image/1388783/%D0%9C%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%BB%D0%B8%20%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BD%D0%B5%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%B8%D1%81%D0%BA%20Btrfs%20%D0%B2%20RAID-1%20%D0%B2%20%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B5%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8%3F.png)
Я пытаюсь выбрать файловую систему и хотел бы узнать, возможно ли заменить неисправный диск в 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
был добавлен. Если вы используете последнее ядро, оно предоставит вам функциональность, которую вы ищете.