Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(929)972-54-56 adm@nixm.ru

ZFS

Ответить
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1290
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

ZFS

Сообщение ALEXX »

# Все датасеты (файловые системы и zvol'ы) с типом

Код: Выделить всё

zfs list -t all -o name,type,used,avail,refer,mountpoint
# Только zvol'ы (виртуальные диски ВМ)

Код: Выделить всё

zfs list -t volume -o name,volsize,used,refer,avail
# Только файловые системы

Код: Выделить всё

zfs list -t filesystem
# Состояние пула: размер, занято, свободно, процент заполнения

Код: Выделить всё

zpool list
# Детальное состояние пула (ошибки, деградация, scrub)

Код: Выделить всё

zpool status
# Все свойства конкретного датасета

Код: Выделить всё

zfs get all ssd_small/gitygg
# Тип датасета (filesystem / volume / snapshot)

Код: Выделить всё

zfs get type ssd_small/gitygg
# Размер zvol (то, что видит ВМ как диск)

Код: Выделить всё

zfs get volsize ssd_small/gitygg
# Снапшоты и сколько места они держат

Код: Выделить всё

zfs list -t snapshot -o name,used,creation ssd_small/gitygg
Что то взял у нас? Поделись полезным и с нами ! :?
Группа в Телеге https://t.me/nixmru
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1290
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

Re: ZFS

Сообщение ALEXX »

🛠️ Создание датасетов


# Создать файловую систему

Код: Выделить всё

zfs create ssd_big/newfs
# Создать zvol (виртуальный диск) размером 100 ГБ

Код: Выделить всё

zfs create -V 100G ssd_small/newvm
# Создать zvol с блочным размером 16K (для ВМ часто лучше 16K)

Код: Выделить всё

zfs create -V 100G -b 16K ssd_small/newvm
⚙️ Управление свойствами (квоты, резервы, размер)


# Квота для ФАЙЛОВОЙ СИСТЕМЫ (жёсткий лимит)

Код: Выделить всё

zfs set quota=200G ssd_big/backup-gitygg

# Refquota — лимит без учёта снапшотов и дочерних датасетов
zfs set refquota=200G ssd_big/backup-gitygg

# Резервирование места (гарантия, что место не заберут другие)
zfs set reservation=50G ssd_big/backup-gitygg

# Для ZVOL: изменить размер диска (volsize — это и есть лимит)
zfs set volsize=180G ssd_small/gitygg

# Для ZVOL: гарантировать место в пуле (защита от thin-provisioning)
zfs set refreservation=180G ssd_small/gitygg

# Убрать квоту/резерв
zfs set quota=none ssd_big/backup-gitygg
zfs set refreservation=none ssd_small/gitygg

# Узнать текущие лимиты
zfs get quota,refquota,reservation,refreservation ssd_big/backup-gitygg
📸 Снапшоты (главный источник «неожиданного» роста)

Код: Выделить всё

# Создать снапшот
zfs snapshot ssd_small/gitygg@before-update

# Создать рекурсивно (снапшот + все дочерние)
zfs snapshot -r ssd_small@daily-2026-10-20

# Список снапшотов с размером
zfs list -t snapshot -o name,used,creation

# Удалить снапшот
zfs destroy ssd_small/gitygg@before-update

# Удалить все снапшоты датасета (осторожно!)
zfs destroy -r ssd_small/gitygg@%

# Откатить датасет к снапшоту (уничтожит изменения после него)
zfs rollback ssd_small/gitygg@before-update

# Клонировать снапшот в новый датасет
zfs clone ssd_small/gitygg@before-update ssd_small/gitygg-test
🔄 Переименование и удаление

Код: Выделить всё

# Переименовать датасет
zfs rename ssd_small/oldname ssd_small/newname

# Удалить датасет (осторожно — уничтожает данные!)
zfs destroy ssd_small/gitygg

# Удалить рекурсивно (с дочерними)
zfs destroy -r ssd_small/gitygg
🏊 Обслуживание пула

Код: Выделить всё

# Запустить scrub (проверка целостности, делать регулярно)
zpool scrub ssd_small

# Посмотреть прогресс scrub
zpool status ssd_small

# Остановить scrub
zpool scrub -s ssd_small
🚨 Диагностика проблем

Код: Выделить всё

# Кто съедает место в пуле (по датасетам, включая снапшоты)
zfs list -t all -o name,used,refer -s used

# Топ датасетов по занятому месту
zfs list -t all -o name,used -s used | tail -20

# Найти самые большие снапшоты
zfs list -t snapshot -o name,used -s used | tail -20

# Проверить, не заполнен ли пул критически
zpool list -o name,size,alloc,free,cap

# Проверить наличие ошибок на дисках
zpool status -x
💎 Минимальный «дежурный» набор

Если запомнить только 10 команд, то это:

Код: Выделить всё

zpool list                                  # состояние пулов
zpool status                                # здоровье пулов
zfs list -t all -o name,type,used,avail     # все датасеты с типом
zfs get type,volsize <dataset>              # что это и какой размер
zfs get quota,refquota,reservation <dataset> # лимиты
zfs set quota=... <filesystem>              # квота для ФС
zfs set volsize=... <zvol>                  # размер для zvol
zfs list -t snapshot -o name,used           # снапшоты и их вес
zfs snapshot <dataset>@<name>               # создать снапшот
zfs destroy <dataset>@<name>                # удалить снапшот
⚠️ Опасные команды (использовать осознанно)
Команда Чем опасна
zfs destroy Уничтожает данные безвозвратно (без снапшота)
zfs set volsize=<меньше> Уменьшение zvol может повредить ФС внутри ВМ
zfs rollback Откатывает и удаляет все изменения после снапшота
zfs destroy -r Рекурсивно уничтожает всё, включая дочерние датасеты
zpool scrub -s Прерывает проверку целостности — лучше дождаться
Что то взял у нас? Поделись полезным и с нами ! :?
Группа в Телеге https://t.me/nixmru
Ответить

Вернуться в «Железный вопрос. Производительность и оптимизация»