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

Больше свободного места, чем ожидалось, при использовании btrfs RAID10?

Я только что впервые создал массив btrfs RAID10 в своем Ubuntu 14.04 с помощью команды:

mkfs.btrfs -d raid10 -m raid10 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Мои 4 жестких диска по 2 ТБ каждый. Под RAID10 я ожидал увидеть полезное пространство около 3,6 ТБ. Тем не менее, по какой-то причине я вижу, что общий полезный объем составляет 7,3 ТБ (см. /dev/sda ниже):

Filesystem      Size  Used Avail Use% Mounted on
/dev/sde1        42G  1.7G   38G   5% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            7.8G   12K  7.8G   1% /dev
tmpfs           1.6G  1.2M  1.6G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            7.9G     0  7.9G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sda        7.3T   13G  7.3T   1% /mnt/tmp

Это неожиданное поведение?

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

bofh@stronghold:~$ sudo btrfs fi show
Label: none  uuid: a3a65325-0184-46d8-bef7-7ed066c9e320
    Total devices 4 FS bytes used 29.14GiB
    devid    1 size 1.82TiB used 16.03GiB path /dev/sda
    devid    2 size 1.82TiB used 16.01GiB path /dev/sdb
    devid    3 size 1.82TiB used 16.01GiB path /dev/sdc
    devid    4 size 1.82TiB used 16.01GiB path /dev/sdd

Когда я пытаюсь указать тип RAID, который я использую, я вижу как «RAID10», так и «single».

bofh@stronghold:~$ sudo btrfs fi df /mnt/tmp
Data, RAID10: total=52.00GiB, used=48.77GiB
Data, single: total=8.00MiB, used=0.00
System, RAID10: total=16.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00
Metadata, RAID10: total=2.00GiB, used=64.12MiB
Metadata, single: total=8.00MiB, used=0.00

Еще одна довольно странная вещь заключается в том, что сканирование устройства btrfs не дает никаких результатов:

bofh@stronghold:~$ sudo btrfs device scan
Scanning for Btrfs filesystems
bofh@stronghold:~$ 

Я использую сервер Ubuntu 14.04, который я только что установил и запустил dist-upgrade.

Любые советы приветствуются!

Я вижу, что общий полезный объем составляет 7,3 ТБ

Это правильно.

Короткий ответ заключается в том, что вы видите необработанное пространство, доступное для размещения зеркальных копий, поэтому разделите его пополам, чтобы получить ожидаемые 3,6 ТБ.

Известно, что вычисление свободного места на диске сбивает с толку с помощью btrfs. В официальном FAQ по btrfs есть вопросы по почему сложно посчитать свободное место в btrfs.

Файловая система btrfs может содержать куски файлов с разными уровнями рейда. У вас могут быть некоторые файлы без зеркальных копий («single» или «raid0») и другие файлы, которые являются зеркальными («raid1»).

Прямо сейчас у вас есть это в вашей файловой системе.

Когда я пытаюсь указать тип RAID, который я использую, я вижу как «RAID10», так и «single».

Это говорит вам о том, что небольшой объем ваших данных в вашей файловой системе НЕ является зеркальным («единичным»). Чтобы исправить это, вам нужно сделать баланс btrfs. Я бы рекомендовал сделать:

btrfs balance start -dconvert = raid1, profiles = single -mconvert = raid1, profiles = single -sconvert = raid1, profiles = single --force / mnt / tmp

Это преобразует данные с одной копией в зеркальное отображение как для данных файла, так и для метаданных, а также для системных данных (d, m и s). Параметр "профили" повлияет только на данные, которые в настоящее время являются единственными копиями.