Баланс BTRFS завершен, но все же отображает данные, хранящиеся в режиме «одного»

У меня есть три диска (8TB, 4TB, 3TB). Первоначально я создал раздел btrfs на диске 8TB и скопировал все мои данные. Я добавил диски 4TB и 3TB, используя btrfs device add, а затем выполнил преобразование баланса:

btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt 

Теперь баланс сделан, но он по-прежнему показывает некоторые данные в режиме «один» и «DUP» на исходном диске. Вот результат btrfs fi usage /mnt/btrfs :

 Overall: Device size: 13.37TiB Device allocated: 4.62TiB Device unallocated: 8.75TiB Device missing: 0.00B Used: 4.60TiB Free (estimated): 4.98TiB (min: 4.38TiB) Data ratio: 1.76 Metadata ratio: 2.00 Global reserve: 512.00MiB (used: 0.00B) Data,single: Size:645.00GiB, Used:645.00GiB /dev/mapper/8TB 645.00GiB Data,RAID1: Size:1.98TiB, Used:1.98TiB /dev/mapper/3TB 551.00GiB /dev/mapper/4TB 1.44TiB /dev/mapper/8TB 1.98TiB Metadata,RAID1: Size:8.00GiB, Used:3.84GiB /dev/mapper/4TB 8.00GiB /dev/mapper/8TB 8.00GiB Metadata,DUP: Size:7.00GiB, Used:6.41GiB /dev/mapper/8TB 14.00GiB System,DUP: Size:8.00MiB, Used:400.00KiB /dev/mapper/8TB 16.00MiB Unallocated: /dev/mapper/3TB 2.19TiB /dev/mapper/4TB 2.19TiB /dev/mapper/Seagate_Archive_8TB-btrfs 4.37TiB 

Вопросов:

  1. Есть ли данные, которые не хранятся на нескольких дисках? Другими словами, есть ли какие-либо данные, которые будут потеряны, если один диск не удался? Если да, то как я могу заставить эти затяжные «одиночные» сохраненные данные в RAID1?
  2. Предполагая, что хранилища данных «single» и «DUP» не нужны, теперь, когда все было преобразовано в рейд, есть ли способ очистить их?

Изменить: вот некоторая системная информация:

 uname -a Linux 4.8.0-0.bpo.2-amd64 #1 SMP Debian 4.8.11-1~bpo8+1 (2016-12-14) x86_64 GNU/Linux btrfs --version btrfs-progs v4.9 

Я также должен упомянуть, что этот компьютер был перезапущен во время баланса, и когда он вернулся, я не смог получить громкость btrfs вообще (он просто зависает). Я пробовал с несколькими различными параметрами монтирования (skip-param, recovery), и единственный, который работал бы, заключался в том, чтобы монтировать его только для чтения (используя -o ro ). После многих разочарований я загрузил wth Antergos live USB, на котором были самые новые ядра и btrfs progs, и он монтировался без проблем. Я приостановил операцию баланса, которая была автоматически запущена, а затем загружена обратно в Debian, и она смонтирована без проблем, поэтому я снова возобновил баланс.

  • MDADM перечисляет одно и то же устройство дважды
  • Восстановить данные из рейда 1, когда оба диска неисправны
  • Почему прошивка uEFI не может получить доступ к файлу RAID 1 / boot / efi?
  • При загрузке автоматически создавайте массив mdadm, который использует другой массив mdadm
  • Использование Btrfs для устранения поврежденных архивов
  • замена жестких дисков RAID до отказа (3 года!)
  • Каков предел размера диска для mdadm?
  • Разбивка EFI-машины с двумя дисками SSD в зеркале
  • One Solution collect form web for “Баланс BTRFS завершен, но все же отображает данные, хранящиеся в режиме «одного»”

    С помощью пользователя на btrfs irc я смог ответить на вопрос (1). Кажется, это не связано с перезагрузкой и неудачной попыткой монтирования (все еще не уверен, что это было). Вместо этого, похоже, 645 ГБ данных, хранящихся как «одиночные», были данными, которые были добавлены к тому btrfs после того, как было начато преобразование raid1. Поэтому, кажется хорошей практикой проверять вывод использования btrfs fi usage прежде чем считать, что все ваши данные хранятся как raid1 после преобразования. Кроме того, «мягкий» фильтр позволит вам перебалансировать данные, которые не сохраняются в соответствии с целевым профилем, поэтому, например, я запускал:

     btrfs balance start --bg -mconvert=raid1,soft /mnt/btrfs btrfs balance start --bg -dconvert=raid1,soft /mnt/btrfs 

    (следуя предложению пользователя на форуме btrfs irc, чтобы сначала выполнить баланс по метаданным, а затем по данным), и это находится в процессе преобразования оставшихся данных в raid1.

    Кроме того, чтобы ответить на вопрос (2), ответ заключается в том, что в файловой системе raid1 можно получить некоторые «одиночные» куски, но они должны иметь 0 использования. Если это произойдет, вы можете очистить их, запустив

     btrfs balance start -dusage=0 -musage=0 /mnt/btrfs 

    (см. часто задаваемые вопросы btrfs )

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