Как получить btrfs для выделения места на новом устройстве?

У меня есть файловая система btrfs, для которой вывод btrfs fi usage /mnt :

 Overall: Device size: 60.00GiB Device allocated: 40.00GiB Device unallocated: 20.00GiB Device missing: 0.00B Used: 38.03GiB Free (estimated): 10.00GiB (min: 10.00GiB) Data ratio: 2.00 Metadata ratio: 2.00 Global reserve: 22.00MiB (used: 0.00B) Data,RAID1: Size:18.99GiB, Used:18.99GiB /dev/sdb 18.99GiB /dev/sdc 18.99GiB Metadata,RAID1: Size:1.00GiB, Used:22.11MiB /dev/sdb 1.00GiB /dev/sdc 1.00GiB System,RAID1: Size:8.00MiB, Used:16.00KiB /dev/sdb 8.00MiB /dev/sdc 8.00MiB Unallocated: /dev/sdb 1.00MiB /dev/sdc 1.00MiB /dev/sdd 20.00GiB 

Как вы можете видеть, все выделенные фрагменты данных полностью заполнены. btrfs balance start /mnt не работает:

 ERROR: error during balancing '/mnt': No space left on device There may be more info in syslog - try dmesg | tail 

Это не дубликат этого вопроса , который касается заполнения блоков метаданных. Мой вопрос в том, как получить btrfs для выделения некоторых фрагментов на /dev/sdd

  • Не удается mkdir / root (btrfs)
  • Какие функции ext4 не поддерживают btrfs?
  • btrfs снимки без подвыборов?
  • Что такое btrfs generation_errs?
  • Почему btrfs позволяет создавать raid1 с несогласованными дисками?
  • Как поддержка SuSE Linux для btrfs отличается от Ubuntu и Fedora?
  • Понимание использования диска btrfs для одного объема данных
  • Графический инструмент Btrfs
  • One Solution collect form web for “Как получить btrfs для выделения места на новом устройстве?”

    Похоже, у вас есть файловая система, которая использует профиль raid1, а это значит, что вам нужно будет добавить четвертое устройство временно, чтобы BTRFS мог выделять новые куски.

    Каждый профиль имеет минимальное количество устройств, необходимых для выделения фрагмента, и если у вас не так много устройств со свободным пространством, вы не можете выделить новый кусок. Для raid1 и raid0 минимум равен 2, для raid10 – 4, а для raid5 и raid6 – 3 и 4 соответственно. Быстрый вариант, если у вас много оперативной памяти и надежный источник питания, заключается в том, чтобы временно добавить ramdisk 2-4 ГБ в файловую систему, запустить полный баланс, а затем удалить ramdisk из файловой системы. Также работает USB-накопитель, но с этим могут возникнуть проблемы с безопасностью.

    В качестве альтернативы вы можете получить эту работу без необходимости добавления другого устройства, если вы начнете балансировку с помощью -mconvert=single, -dconvert=single, -f , пусть это запустится некоторое время, а затем убьет его и повторит баланс с помощью -mconvert=raid1 -dconvert=raid1 , но это будет означать, что некоторые из ваших данных будут временно подвержены риску.

    Linux и Unix - лучшая ОС в мире.