Назад | Перейти на главную страницу

BTRFS: «на устройстве не осталось места», но команда btrfs говорит иначе

Я использую BTRFS для создания тома RAID0 из 2 дисков. Оба находятся на инстансе AWS EC2 с доступным пространством по 30 ГБ для каждого. Команда, которую я использовал для создания файловой системы: btrfs -d raid0 -L MYLABEL /dev/xvdf /dev/xvdg.

Теперь Ubuntu сообщает мне, что дисковое пространство заполнено, как и BTRFS:

root@host:/var/docker-apps/prometheus# btrfs balance start -dconvert=raid0 .
ERROR: error during balancing '.': No space left on device
There may be more info in syslog - try dmesg | tail
root@host:/var/docker-apps/prometheus#

Самое интересное, когда я смотрю на btrfs filesystem usage Я получаю это:

root@host:/var/docker-apps/prometheus# btrfs filesystem usage .
Overall:
    Device size:          60.00GiB
    Device allocated:     60.00GiB
    Device unallocated:   2.00MiB
    Device missing:       0.00B
    Used:                 25.26GiB
    Free (estimated):     34.22GiB    (min: 34.22GiB)
    Data ratio:           1.00
    Metadata ratio:       2.00
    Global reserve:       256.00MiB    (used: 0.00B)

Data,RAID0: Size:57.98GiB, Used:23.76GiB
   /dev/xvdf      28.99GiB
   /dev/xvdg      28.99GiB

Metadata,RAID1: Size:1.00GiB, Used:766.11MiB
   /dev/xvdf       1.00GiB
   /dev/xvdg       1.00GiB

System,RAID1: Size:8.00MiB, Used:16.00KiB
   /dev/xvdf       8.00MiB
   /dev/xvdg       8.00MiB

Unallocated:
   /dev/xvdf       1.00MiB
   /dev/xvdg       1.00MiB
root@host:/var/docker-apps/prometheus# 

Теперь для меня это звучит так: «У меня есть 60 ГБ свободного места в RAID0, и в настоящее время я использую около 25 из них (Используется: запись в верхнем блоке вместе с Free: запись в том же блоке)». Я думаю, это довольно ясно.

Но все равно: No space left on device.

Итак - я не прав? Как мне это прочитать? Почему я больше не могу создавать файлы в разделе BTRFS? Как мне прочитать этот вывод? Что тут происходит?

Прочитайте это: http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html

Похоже, вы страдаете от того, что «метаданные - это полный случай» статьи, потому что Btrfs зарезервировал 0,5 ГБ для себя, что означает, что он заполнен и, следовательно, предотвращает любые новые записи. В статье предлагается сделать на нем полную ребалансировку.

Также имейте в виду, что обычный df врет, он никогда не расскажет вам реальную статистику использования btrfs.