Файловая система, разрабатываемая Oracle для Linux “по мотивам” ZFS.

Опыт построения хранилки с btrfs поверх RAID 5

Текст от первого лица авторства BuDDiE

У меня это произошло спонтанно :smile: Собрал очередную машину для бэкапов на Procase ES420-SATAII-B-0 (нравятся мне эти корпуса), поставил CentOS 5.8, воткнул десяток дисков на 1.5ТБ, создал RAID-5: mdadm --create /dev/md8 -n 10 -l 5 /dev/sd[c-l]. 6-й в моем случае избыточен, т.к. никогда не беру пачку дисков из одной партии и в подавляющем числе случаев заменить вылетевший диск смогу в течении нескольких часов.

Решил попробовать BTRFS. Подключил репозиторий Oracle, далее

yum upgrade

Установил UEK-ядро

yum install kernel-uek.x86_64

Перезагрузка.

Cобрал из исходников iptables (1.4.9-1, ибо в родном с uek ядром не работает conntrack).

Cоздал ФС

mkfs.btrfs -d single -m single -L btrfs01 /dev/md8

Cоздал подразделы

btrfs su create /mnt/btrfs01/backup_user

Все работает. Дальнейшее расширение ФС добавлением дисков:

mdadm /dev/md8 --add /dev/sdm
mdadm /dev/md8 --grow -n 11

Тюнинг /proc/sys/dev/raid/speed_limit_* для сохранения оптимальных скорости решейпинга и скорости доступа к данным

btrfs fi resize max /mnt/btrfs01

Как-то так. Т.е. массив собирается mdadm-ом - получается блочное устройство, которое форматируется в нужную ФС.

Уже не на одном массиве расширял таким образом и RAID-5 и 6. На одной из машин вообще начал с 4 дисков и дошел последовательно до 8. Проблем нет.

Единственный нюанс - при выполнении критической секции (несколько секунд) не должно быть активных операций внутри массива (типа ребилда или проверки), если они идут (или внезапно вылетит диск в соседнем массиве) - будет дедлок.

Источник (примерно страницу вниз-вверх идет обсуждение).