Бад btrfs не работает из-за ошибки enospc

[взято из stackoverflow, так как я понял, что это, вероятно, неправильное место]

В настоящее время я тестирую btrfs как возможную замену для своего NAS, на котором запущена ZFS. Я создал 4 устройства по 20 ГБ каждый и создал файловую систему balance -dconvert=raid5 используя параметр balance -dconvert=raid5 . Затем я начал заполнять FS, используя 5GB-файлы (сейчас у меня их 9). После создания этих файлов (используя dd из dev/zero ) я начал balance btrfs balance start . Через некоторое время он выдает error during balancing '.' - No space left on device error during balancing '.' - No space left on device . Syslog вызывает эту ошибку: btrfs: 4 enospc errors during balance .

-dusage=0 выполнение баланса с -dusage=0 завершается успешно (как и ожидалось), но balance -dusage=90 или просто balance без фильтров не работает. Почему я так много забочусь об этом? Я тестировал, что происходит, когда вы удаляете жесткий диск из тома raid5 btrfs, чтобы узнать, не происходит ли повреждение данных. После удаления жесткого диска я хотел добавить еще один и удалить сбой. Этот процесс также не удалось из-за ошибок enospc.

Дополнительная информация ниже:

(точкой монтирования для FS является /mnt/raid/ )

 linux:/mnt/raid # btrfs filesystem show Label: 'test_raid5' uuid: 8b137115-974e-4f91-a243-ec6239c34761 Total devices 4 FS bytes used 45.06GiB devid 4 size 20.00GiB used 16.03GiB path /dev/sde devid 3 size 20.00GiB used 17.00GiB path /dev/sdd devid 2 size 20.00GiB used 17.00GiB path /dev/sdc devid 1 size 20.00GiB used 16.04GiB path /dev/sdb Label: none uuid: 69c33622-1c80-4dc3-9c01-24c27def730c Total devices 1 FS bytes used 1.04GiB devid 1 size 18.92GiB used 3.04GiB path /dev/sda2 linux:/mnt/raid # btrfs filesystem df /mnt/raid/ Data, RAID5: total=48.00GiB, used=45.01GiB System, RAID1: total=32.00MiB, used=12.00KiB System: total=4.00MiB, used=0.00 Metadata, RAID1: total=1.00GiB, used=53.69MiB linux:/mnt/raid # btrfs version Btrfs v0.20-rc1+20130701 linux:/mnt/raid # uname -a Linux linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) x86_64 x86_64 x86_64 GNU/Linux linux:/mnt/raid # cat /etc/os-release NAME=openSUSE VERSION="13.1 (Bottle)" VERSION_ID="13.1" PRETTY_NAME="openSUSE 13.1 (Bottle) (x86_64)" ID=opensuse ANSI_COLOR="0;32" CPE_NAME="cpe:/o:opensuse:opensuse:13.1" BUG_REPORT_URL="https://bugs.opensuse.org" HOME_URL="https://opensuse.org/" ID_LIKE="suse" 

Я не могу поверить, что мне нужно добавить еще больше места, чтобы восстановить баланс моего объема btrfs. Есть идеи по этому поводу?

Я решил пойти по пути btrfs вместо zfs для своего «NAS». Я тестировал оба раньше, и я должен признать, что я нашел ZFS гораздо лучше документированным, меня действительно соблазнил интерфейс командной строки, поэтому для меня ZFS был «лучшим» выбором.

Но был шоу-стоппер: если у вас есть 3x 2TB HDD для ZFS в RAID-5, и вы хотите развить их на жестком диске 4x ТБ, это непросто. Если вы используете ZFS в качестве 3HDD и хотите добавить новый жесткий диск, вам нужно добавить еще 3: всего 6x2TB. И если у вас есть 6HDD и вы хотите увеличить свою FS, вам нужно добавить еще 6 и т. Д. У меня возникла проблема с тем, что в моем корпусе NAS не может храниться более 4 дисков, и я не могу позволить себе покупать еще 4 жестких диска. В этом отношении Btrfs является гораздо более гибким.

Однако, когда я начал, RAID-5/6 был очень плохо поддержан. Я сделал некоторые тесты, как вы, и я закончил развращать файловую систему. Я делал те же тесты в RAID-1 и никаких проблем! Поэтому я решил перейти на Btrfs в RAID-1, и вместо использования Ubuntu LTS я всегда использую последнюю версию Ubuntu для получения последнего пакета Kernel и btrfs-tools (я использую Ubuntu 15.04 и готов к переключению до 15.10). Я, вероятно, (после тестирования), наконец, перейду на RAID-5, как только Ubuntu 16.04 будет выпущен и, вероятно, будет придерживаться его. В последних версиях ядра я видел, что база кода для RAID-5/6 намного более зрелая.

Так к вашей проблеме. Если вы хотите попробовать Btrfs, особенно в RAID-5 или 6, придерживайтесь самых современных дистрибутивов Linux (например, Arch Linux, последние версии Ubuntu, Fedora и т. Д.). Они могут испытывать недостаток в стабильности других распределений, но для Btrfs они, вероятно, намного более стабильны.

Одна заметка о вашем «примере использования»: ваша файловая система Btrfs довольно мала по сравнению с размером файлов, которые вы вставляете. Вероятно, это действительно не отражает реальный мир. Вы должны создать большие (видео) и небольшие файлы (фотографии, документы) и попытаться заполнить свою файловую систему до 80%. Один хороший способ проверить это – разместить много файлов в вашей файловой системе, а затем запустить тесты файловой системы, а не для самого бенчмаркинга, а для стресса, который они приносят. Вы можете использовать phoronix-test-suite для этого (например, phoronix-test-suite benchmark pts/disk ).