TrueNAS Dataset: Создание, настройка ZFS, квоты, снапшоты | Гайд 2024 | AdminWiki

TrueNAS Dataset: Полное руководство по созданию, настройке и управлению

20 января 2026 6 мин. чтения #dataset #nas #replication #storage #truenas #zfs #квоты #снапшоты

Представь, что твоя система хранения — это большой шкаф с ящиками. TrueNAS Dataset — это умный, настраиваемый ящик в этом шкафу (пуле ZFS), где ты хранишь данные с особыми правилами: сжатие, снапшоты, квоты. Давай разберем, как создавать и управлять этими ящиками профессионально.

Что такое Dataset в TrueNAS и ZFS?

В иерархии ZFS Dataset — это файловая система или том (zvol), созданный внутри пула (zpool). Это не просто папка, а самостоятельный объект с собственными свойствами ZFS. Основные типы:

  • Файловая система (Filesystem) — для хранения файлов и папок (SMB/NFS).
  • Том (ZVOL) — блочное устройство для iSCSI или виртуальных машин.
  • Дочерний Dataset (Child) — наследует свойства родителя, но может их переопределить.
Ключевая мысль: Dataset — это основная единица управления в TrueNAS. Через него настраиваются квоты, снапшоты, репликация и права доступа.

Создание Dataset: Пошаговое руководство

Давай создадим Dataset через веб-интерфейс TrueNAS SCALE/CORE и разберем каждую настройку.

Шаг 1: Навигация и базовое создание

  1. Зайди в Datasets в боковом меню.
  2. Выбери существующий пул или родительский Dataset.
  3. Нажми Add Dataset или Create Dataset.
  4. Заполни имя (например, media или vm_storage).

Шаг 2: Критичные настройки ZFS

Вот где начинается магия. Обрати внимание на эти параметры:

config
# Пример настроек для продвинутого Dataset
Тип: Filesystem
Имя: projects
Комментарий: Git репозитории и исходный код

--- Секция настроек ---
Case Sensitivity: Sensitive (для Linux)
Синхронные записи: Standard (для общего назначения)
Компрессия: lz4 (обязательно! экономит место и ускоряет)
Размер блока (Recordsize): 128K (для медиафайлов) или 16K (для БД)
Наследование ACL: Вкл
Квота: 500G (ограничение сверху)
Резервное пространство (Reservation): 100G (гарантированное место)
Параметр Рекомендация Объяснение
Recordsize 128K для медиа, 16K для VM/БД Размер блока ZFS. Больше = лучше для последовательного чтения.
Compression lz4 (всегда!) Быстро, почти без нагрузки. Экономит место на тексте, логах.
Atime Off Не обновлять время доступа. Уменьшает нагрузку.
Quota По необходимости Жесткий лимит на Dataset. Refquota — лимит без учета снапшотов.

Практика: Создаем Dataset для разных задач

Пример 1: Dataset для резервных копий (Backups)

config
Имя: backup
Тип: Filesystem
Компрессия: gzip-9 (максимальное сжатие, скорость не критична)
Recordsize: 128K
Квота (Quota): 2T
Включить снапшоты: Да
Периодичность снапшотов: ежедневно, хранение 30 дней
ACL Type: POSIX

Пример 2: Dataset для виртуальных машин (ZVOL)

config
Имя: proxmox_vms
Тип: Volume (ZVOL)
Размер тома: 500G
Блочный размер (Volblocksize): 16K (совпадает с блоком VM)
Синхронные записи: Always (data integrity для VM)
Компрессия: lz4
Резервирование (Reservation): 500G (гарантирует место)
Внимание! Volblocksize (размер блока ZVOL) нельзя изменить после создания! Выбирай с умом: 8K-16K для БД, 64K-128K для файловых хранилищ.

Управление Dataset через CLI (продвинутый уровень)

Иногда веб-интерфейса недостаточно. Вот основные команды:

bash
# Просмотр всех Dataset в пуле tank
zfs list -r tank

# Создание Dataset с параметрами
zfs create -o compression=lz4 -o recordsize=128K tank/media

# Установка квоты
zfs set quota=500G tank/projects

# Создание снапшота
zfs snapshot tank/media@$(date +%Y%m%d_%H%M)

# Клонирование Dataset из снапшота
zfs clone tank/media@snapshot_name tank/media_restored

# Просмотр свойств
zfs get all tank/media

# Изменение recordsize (только для пустых Dataset!)
zfs set recordsize=1M tank/media

Снапшоты и репликация Dataset

Снапшоты — суперсила ZFS. Они создаются моментально и занимают место только при изменении данных.

Настройка периодических снапшотов

  1. В веб-интерфейсе иди в Data Protection → Periodic Snapshot Tasks.
  2. Выбери целевой Dataset (например, tank/media).
  3. Настрой расписание: ежечасно, ежедневно, еженедельно.
  4. Укажи время жизни: 24 часа, 7 дней, 4 недели и т.д.

Репликация Dataset на другой TrueNAS

bash
# Ручная репликация через zfs send/receive
zfs send -R tank/media@snapshot_name | \
  ssh backup_nas "zfs receive backup_tank/media"

# В веб-интерфейсе:
# Data Protection → Replication Tasks
# Источник: tank/media
# Назначение: ssh://user@backup_nas/backup_tank/media
# Расписание: ежедневно в 02:00

Вопросы и ответы (FAQ)

В чем разница между Dataset и папкой?

Dataset — это отдельная файловая система ZFS со своими свойствами (компрессия, квоты, снапшоты). Папка — просто директория внутри Dataset. Dataset можно монтировать отдельно, реплицировать и настраивать независимо.

Как перенести данные между Dataset?

Используй rsync или mv в оболочке TrueNAS. Для больших объемов лучше создать снапшот, клонировать его, а затем перенести данные, чтобы сохранить историю изменений.

Можно ли изменить размер блока (recordsize) после создания?

Технически — да, командой zfs set recordsize=.... Но изменения коснутся только новых данных. Существующие блоки останутся прежнего размера. Для равномерной производительности лучше задавать правильный recordsize при создании.

Почему занято больше места, чем показывают квоты?

Скорее всего, не учитываются снапшоты. Quota ограничивает только «живые» данные. Используй refquota для ограничения без учета снапшотов. Или регулярно чисти старые снапшоты.

Какой тип ACL выбрать: POSIX или NFSv4?

POSIX — проще, совместим с Linux. NFSv4 — богаче (наследование, deny ACE), лучше для Windows (SMB) и сложных корпоративных сред. Для домашнего использования обычно хватает POSIX.

Заключение и лучшие практики

Давай закрепим главное:

  • Создавай отдельные Dataset под разные типы данных: media, backups, VMs, appdata.
  • Всегда включай компрессию lz4 — это бесплатный выигрыш.
  • Настраивай recordsize/volblocksize под workload при создании.
  • Используй квоты (quota/refquota) чтобы один Dataset не заполнил весь пул.
  • Настрой автоматические снапшоты для важных данных.
  • Планируй иерархию (родительские/дочерние Dataset) для удобного управления.

Помни: грамотно настроенный Dataset — это фундамент надежной и производительной системы хранения. Не бойся экспериментировать в тестовой среде, используй снапшоты перед крупными изменениями, и твоя TrueNAS будет работать как швейцарские часы.

Поделиться:
Сохранить гайд? В закладки браузера