LINUX.ORG.RU

Удаление диска из BTRFS без сохранения файлов

 


0

1

Вопрос на будущее - понять как действовать.

Есть пара дисков объединенных с помощью btrfs - metadata в DUP, data в single. На них лежат данные, которые совсем не важны: торренты, кино, сериалы и т.п. Допустим, один из дисков не надежен (на самом деле оба не надежны) и выходит из строя. Тестирую это на виртуальной машине - просто отрубаю один диск. Как продолжить пользоваться в обычном порядке оставшимся диском? Диск монтируется ro,degraded, все файлы на нём видны, даже те которые на отцепленном диске. Хотелось бы, например, получить список утраченных файлов (необязательно) и как-то их удалить совсем, но файловая система не хочет переходить в rw из-за missing device. Убрать missing device тоже никак из-за Read-only.

Наверно, нужно запустить какую-то проверку файловой системы (чексумм), чтобы знать какие файлы целы?

Пока, похоже, в таких случаях (когда не нужны данные) проще переформатировать начисто. Но получается, если объединять один маленького объема диск с большим, то в случае поломки маленького, большим пользоваться только в ReadOnly. Как тогда лучше объединить такие диски: UnionFS, LVM, ZFS?

Система (корень) на отдельной файловой системе (btrfs тоже).

★★★★

Не сильно разбираюсь в бтрфс, просто предположу. И если ты «Тестирую это на виртуальной машине» можешь попробовать.

Проверить фс в принципе можно

btrfs scrub start /mnt/test

https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices

Инструкции от сюда не помогают?

mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt
Behem0th ★★★★★
()
Последнее исправление: Behem0th (всего исправлений: 1)
Ответ на: комментарий от Behem0th

mount -o degraded /dev/sdb /mnt

монтируется если добавить ro

янв 11 15:28:14 nyx-virtualbox kernel: BTRFS warning (device sdb2): devid 1 uuid 4e5e5cf2-c7d5-473b-9640-3d338975032a is missing
янв 11 15:28:14 nyx-virtualbox kernel: BTRFS warning (device sdb2): devid 2 uuid 4ca19bae-179b-48a9-a843-1dfef056e596 is missing
янв 11 15:28:14 nyx-virtualbox kernel: BTRFS warning (device sdb2): chunk 13631488 missing 1 devices, max tolerance is 0 for writable mount
янв 11 15:28:14 nyx-virtualbox kernel: BTRFS warning (device sdb2): writable mount is not allowed due to too many missing devices

btrfs scrub start /mnt/test

btrfs scrub start -Bd /mnt/test_root
ERROR: scrubbing /mnt/test_root failed for device id 1: ret=-1, errno=30 (Read-only file system)
ERROR: scrubbing /mnt/test_root failed for device id 2: ret=-1, errno=30 (Read-only file system)
ERROR: scrubbing /mnt/test_root failed for device id 3: ret=-1, errno=30 (Read-only file system)
ERROR: scrubbing /mnt/test_root failed for device id 4: ret=-1, errno=30 (Read-only file system)

btrfs de de missing /mnt/test_root
ERROR: error removing device 'missing': Read-only file system
NyXzOr ★★★★
() автор топика

Тогда надо хотя бы RAID1 профиль для metadata. DUP профиль не гарантирует хранение второй копии на другом устройстве, а при повреждённой metadata вся фс сломается при потере диска.

feanor ★★★
()

Вот что нашёл в мане https://btrfs.readthedocs.io/en/latest/btrfs-man5.html (degraded)

Suppose the data are completely stored on sda, then missing sdb will not prevent the mount, even if 1 missing device would normally prevent (any) single profile to mount. In case some of the data chunks are stored on sdb, then the constraint of single/data is not satisfied and the filesystem cannot be mounted.

То есть, только если в момент отвала диска он не содержал данных, но был частью фс, тогда даст смонтировать.

NyXzOr ★★★★
() автор топика

Подключил btrfs с опциями ro, degraded. Скопировал на другой диск rsync с игнором ошибок IO. Похоже, если хочется какие-то данные вернуть без ещё одного диска никак.

NyXzOr ★★★★
() автор топика

Как тогда лучше объединить такие диски: UnionFS, LVM, ZFS?

Похоже, mergerfs.

NyXzOr ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.