Product SiteDocumentation Site

26.4.5. BTRFS

Хранилище BTRFS похоже на хранилище типа каталог, но с ключевым отличием: сырые (raw) диски ВМ размещаются в подтомах (subvolumes), что позволяет использовать моментальные снимки и обеспечивает переносимость снимков при миграции.

Примечание

ФС BTRFS учитывает флаг O_DIRECT при открытии файлов. Поэтому ВМ не должны использовать режим кеширования none, иначе возможны ошибки контрольных сумм.
Данное хранилище настраивается аналогично хранилищу типа каталог.

Примечание

Если в качестве хранилища указывается подкаталог, а не точка монтирования BTRFS, необходимо явно задать параметр is_mountpoint, указав реальную точку монтирования.
Пример конфигурации (/etc/pve/storage.cfg):
btrfs: btrfs-storage
    path /mnt/data/btrfs-storage
    content rootdir,images
    is_mountpoint /mnt/data
    nodes pve02
    prune-backups keep-all=1
В данном примере файловая система BTRFS смонтирована в /mnt/data, а пулом данных служит её подкаталог btrfs-storage/.
Диалог создания хранилища btrfs-storage типа BTRFS для хранения образов дисков и контейнеров:
Создание хранилища BTRFS
Пример добавления хранилища BTRFS в командной строке:
# pvesm add btrfs btrfs-storage  \
    --path /mnt/data/btrfs-storage  \
    --is_mountpoint /mnt/data/ \
    --content images,rootdir

26.4.5.1. Администрирование BTRFS

В этом разделе приведены некоторые примеры работы с ФС BTRFS.
Создание файловой системы BTRFS на /dev/sdd:
# mkfs.btrfs -m single -d single -L My-Storage /dev/sdd
Параметры -m и -d задают профиль для метаданных и данных соответственно. -L задаёт метку.
Создание RAID1 на двух разделах /dev/sdb1 и /dev/sdc1:
# mkfs.btrfs -m raid1 -d raid1 -L My-Storage /dev/sdb1 /dev/sdc1
Монтирование:
# mkdir /mnt/data
# mount /dev/sdd /mnt/data
Автоматическое монтирование (в /etc/fstab):
UUID=5a556184-43b2-4212-bc21-eee3798c8322 /mnt/data btrfs defaults 0 0
Проверка монтирования:
# mount -a
Результатом выполнения команды должен быть пустой вывод без ошибок.

Примечание

Рекомендуется использовать значение UUID (выведенное командой mkfs.btrfs).
UUID можно также получить, выполнив команду:
# blkid
/dev/sdd: LABEL="My-Storage" UUID="5a556184-43b2-4212-bc21-eee3798c8322" BLOCK_SIZE="4096" TYPE="btrfs"
Создание подтома (файловая система BTRFS должна быть примонтирована):
# btrfs subvolume create /mnt/data/btrfs-storage
Создание снимка (снимок — это подтом, который имеет общие данные и метаданные с другим подтомом):
# btrfs subvolume snapshot -r /mnt/data/btrfs-storage /mnt/data/new
Будет создан доступный только для чтения «клон» подтома /mnt/data/btrfs-storage. Чтобы из снимка, доступного только для чтения, создать его версию, доступную для записи, следует просто создать его снимок без опции -r.
Просмотр использования пространства:
# btrfs subvolume list /mnt/data
ID 256 gen 17 top level 5 path btrfs-storage
ID 257 gen 14 top level 5 path new
Удаление подтома:
# btrfs subvolume delete /mnt/data/btrfs-storage
Просмотр использования пространства:
# btrfs filesystem usage /mnt/data
или:
$ btrfs filesystem df /mnt/data