Восстановление массива BTRFS
Linux
Файловую систему Btrfs можно восстановить, даже если один из дисков отсутствует, особенно если Btrfs настроен с резервированием (например, RAID1, RAID5, RAID10). Btrfs предназначен для обработки сбоев одного или нескольких устройств в зависимости от используемого уровня RAID.
(Рассматривается вариант когда набор дисков был перенесен в на другой сервер, но в рамках того же сервера гайд, актуален)
Пример общего подхода к попытке смонтировать файловую систему Btrfs RAID5 с 4 из 5 дисков: 1. Определите оставшиеся диски
sudo blkid | grep btrfs
2. Монтируем ФС
(если она у нас размонтирована)sudo mount -o degraded /dev/sdX /mnt
* Заменять /dev/sdX с именем устройства одного из уцелевших дисков. -o degraded Опция указывает Btrfs разрешить монтирование, даже если одно или несколько устройств отсутствуют.3. Проверяем состояние ФС
sudo btrfs filesystem show /mnt
4. Замена диска.
(после того как убедились что ФС функционирует без умершего диска)sudo btrfs replace start ID /dev/sdX /mnt
ID -id отсутствующего диска (или эта же команда используется когда мы хотим заменить один диск на другой)
/dev/sdX - Диск на который меняемПример, отсутствует диск 4:
# btrfs filesystem show /mnt
Label: 'data' uuid: f44e7433-5a36-4251-a8be-25ca275f954d
Total devices 5 FS bytes used 61.36GiB
devid 1 size 440.00GiB used 17.27GiB path /dev/sdb1
devid 2 size 440.00GiB used 17.27GiB path /dev/sdc1
devid 3 size 440.00GiB used 17.27GiB path /dev/sdd1
devid 5 size 440.00GiB used 17.27GiB path /dev/sdf1
*** Some devices missing
# btrfs replace start 4 /dev/sde1 /mnt
Мониторинг замены:
sudo btrfs replace status /mnt
Отмена замены
(если вдруг по какой то причине нужно то):
sudo btrfs replace cancel /mnt
5.Балансировка ФС
(после замены диска):
sudo btrfs balance start /mnt
* балансировка файловой системы необходима, чтобы перераспределить данные по оставшимся дискамПроверка ФСsudo btrfs filesystem show /mnt
sudo btrfs device stats /mnt
Общий подход, как оказалось достаточно прост, нам он помог восстановить данные (не критически важные) после того как умер один из дисков в массиве
PS>Если вдург по какой то неведомой причине вы подключили диск через add
btrfs device add ID /mnt вместо replace
btrfs replace start ID /dev/sdX /mnt, тоесть: не хотели расширять массив а именно хотели заменить диск или просто решили отключить один из дисков из массива, то необходимо выполнить:
sudo btrfs device remove ID /mnt
Где ID это либо ID диска который недоступен либо /dev/sdX идентификатор в системе
Важно:
- Убедитесь, что ваша файловая система имеет достаточную избыточность (например, RAID1, RAID10 или RAID5/6) для сохранения целостности данных после удаления устройства. Если файловая система не имеет избыточности, удаление устройства может привести к потере данных.
- Файловая система выполнит балансировку данных на оставшихся устройствах после удаления. В зависимости от объема данных и состояния файловой системы эта операция может занять некоторое время.
- Вам не нужно размонтировать файловую систему, чтобы удалить устройство; операция удаления предназначена для работы с активной файловой системой