ZVOL в TrueNAS: что это, как создать и настроить | Гид по блочным устройствам | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

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

23 марта 2026 6 мин. чтения #iSCSI #truenas #zfs #zvol #блочное устройство #виртуальные машины #хранение данных

Если ты работаешь с TrueNAS и хочешь использовать его не только как файловый сервер, но и как платформу для виртуальных машин или баз данных, тебе нужно разобраться с ZVOL. Давай представим, что это виртуальный жёсткий диск, созданный внутри пула ZFS, который можно подключить к любой системе как обычное блочное устройство.

Что такое ZVOL в TrueNAS: Основные концепции

ZVOL (ZFS Volume) — это блочное устройство, созданное в пуле ZFS. В отличие от обычных файловых систем (датасетов), которые работают с файлами и каталогами, ZVOL предоставляет доступ к данным на уровне блоков. Это делает его идеальным для:

  • iSCSI-таргетов для подключения удалённых дисков
  • Хранилищ для виртуальных машин (VMware, Proxmox, Hyper-V)
  • Баз данных, требующих прямого доступа к блокам
  • Создания swap-разделов или загрузочных дисков
Ключевое отличие: Датасет — это файловая система (доступ через SMB/NFS), ZVOL — это блочное устройство (доступ через iSCSI или как raw-диск).

ZVOL vs Датасеты: Когда что использовать

Критерий ZVOL Датасет
Тип доступа Блочный (блоки данных) Файловый (файлы/каталоги)
Использование Виртуальные машины, iSCSI, БД Файловые шары, резервные копии
Протоколы iSCSI, Fibre Channel SMB, NFS, AFP, FTP
Гибкость Фиксированный или thin-provisioning Динамическое использование пространства

Как создать ZVOL в TrueNAS: Пошаговое руководство

Шаг 1: Доступ к интерфейсу TrueNAS

Зайди в веб-интерфейс TrueNAS и перейди в раздел Storage → Pools. Выбери пул, в котором хочешь создать ZVOL.

Шаг 2: Создание ZVOL через GUI

Нажми кнопку "Add ZVOL" и заполни параметры:

  • ZVOL Name: Имя тома (например, vm-storage)
  • Size for this zvol: Размер (например, 100GiB)
  • Compression level: Уровень сжатия (lz4 рекомендуется)
  • ZFS Deduplication: Дедупликация (осторожно, требует много RAM)
  • Sparse (Thin Provisioning): Если нужно динамическое выделение
Внимание! Thin provisioning позволяет создать том больше доступного пространства, но может привести к исчерпанию места в пуле, если не контролировать использование.

Шаг 3: Создание через CLI (для продвинутых)

Если предпочитаешь командную строку, вот как создать ZVOL:

bash
# Создать ZVOL размером 100GB с компрессией lz4
zfs create -V 100G -o compression=lz4 pool-name/zvol-name

# Создать sparse ZVOL (thin provisioning)
zfs create -s -V 500G pool-name/sparse-zvol

# Просмотреть созданные ZVOL
zfs list -t volume

# Изменить размер существующего ZVOL
zfs set volsize=150G pool-name/zvol-name

Настройка iSCSI с ZVOL для удалённого доступа

Конфигурация iSCSI Target

После создания ZVOL, настрой его как iSCSI-таргет:

  1. Перейди в Sharing → Block Shares (iSCSI)
  2. Создай новый Target (порт 3260 по умолчанию)
  3. Добавь созданный ZVOL как Extent
  4. Настрой Access Control (CHAP при необходимости)
  5. Активируй службу iSCSI
config
# Пример конфигурации /etc/ctl.conf
portal-group pg0 {
    discovery-auth-group no-authentication
    listen 0.0.0.0:3260
}

target iqn.2023-05.truenas:vm-storage {
    auth-group no-authentication
    portal-group pg0
    lun 0 {
        extent extent0
    }
}

Подключение с клиента

На клиентской машине (Windows/Linux):

bash
# Linux: Установка и подключение
sudo apt-get install open-iscsi
sudo iscsiadm -m discovery -t st -p 192.168.1.100
sudo iscsiadm -m node -T iqn.2023-05.truenas:vm-storage -p 192.168.1.100 -l

# Просмотр подключённых дисков
lsblk
sudo fdisk -l

Использование ZVOL для виртуальных машин

Proxmox VE

Настройка ZVOL как хранилища в Proxmox:

bash
# В веб-интерфейсе Proxmox:
# Datacenter → Storage → Add → iSCSI

# Или через CLI:
pvesm add iscsi iscsi-storage --portal 192.168.1.100 \
    --target iqn.2023-05.truenas:vm-storage \
    --content images,rootdir

VMware ESXi

Добавление iSCSI Datastore:

  1. Storage → Adapters → Software iSCSI → Enabled
  2. Добавь портал TrueNAS (IP:3260)
  3. Rescan адаптеров
  4. Storage → New Datastore → VMFS
  5. Выбери обнаруженный LUN (ZVOL)

Оптимизация производительности ZVOL

Критические параметры

bash
# Оптимальные настройки для производительности
zfs set primarycache=metadata pool-name/zvol-name  # Кэшировать только метаданные
zfs set secondarycache=all pool-name/zvol-name     # Использовать L2ARC
zfs set recordsize=16K pool-name/zvol-name         # Для СУБД
zfs set recordsize=128K pool-name/zvol-name        # Для VM
zfs set sync=standard pool-name/zvol-name          # Безопасность данных
zfs set sync=disabled pool-name/zvol-name          # Макс. производительность (риск!)

# Мониторинг производительности
zpool iostat -v 1
zfs get all pool-name/zvol-name
Совет: Для рабочих нагрузок с random write (базы данных) используй SSD-кеш (SLOG) для ZIL. Это значительно ускорит синхронные записи.

Блокировка и безопасность

ZVOL поддерживает все функции безопасности ZFS:

  • Снимки (Snapshots): Моментальные копии в любой точке времени
  • Клонирование: Быстрое создание копий для тестирования
  • Репликация: Асинхронная или синхронная на другой сервер
  • Шифрование: Прозрачное шифрование данных (GELI или native ZFS)
bash
# Создание снимка ZVOL
zfs snapshot pool-name/zvol-name@backup-2023-05-15

# Клонирование снимка
zfs clone pool-name/zvol-name@backup-2023-05-15 pool-name/zvol-clone

# Репликация на удалённый сервер
zfs send pool-name/zvol-name@snapshot | ssh remote-server zfs receive remote-pool/zvol-name

# Включение шифрования при создании
zfs create -o encryption=on -o keyformat=passphrase \
    -V 100G pool-name/encrypted-zvol

Распространённые проблемы и решения

Проблема 1: ZVOL не отображается в системе

Решение: Проверь, активирована ли служба iSCSI и правильно ли настроен target. Используй команду iscsiadm -m session на клиенте для проверки подключения.

Проблема 2: Низкая производительность записи

Решение: Добавь SLOG устройство (SSD) для ZIL. Проверь настройки sync (standard для безопасности, disabled для производительности с риском).

Проблема 3: Закончилось место в пуле

Решение: Для sparse ZVOL установи квоту: zfs set refquota=200G pool-name/sparse-zvol. Регулярно мониторь использование: zfs list -o space.

Проблема 4: Не удаётся изменить размер ZVOL

Решение: Убедись, что ZVOL не подключен к системе. Отключи iSCSI сессию, измени размер через zfs set volsize=NEWSIZE, затем переподключи.

Важно! Всегда создавай снимки перед изменением размера или других критических параметров ZVOL. Это позволит быстро откатиться в случае проблем.

Лучшие практики работы с ZVOL

  • Именование: Используйте осмысленные имена (vm-db-prod, iscsi-backup)
  • Размер блоков: recordsize=16K для баз данных, 128K для VM и мультимедиа
  • Мониторинг: Настройте оповещения о заполнении пула (80%, 90%, 95%)
  • Резервное копирование: Регулярные снимки + репликация на другой сервер
  • Тестирование: Всегда тестируйте новые конфигурации в dev-среде

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

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