Представь, что ты строишь виртуальную инфраструктуру на VMware vSphere, но стандартные хранилища не дают нужной производительности, гибкости или экономии. Решение — TrueNAS, мощная система хранения с ZFS. Давай разберем, как заставить их работать вместе как часы.
Архитектура интеграции TrueNAS с VMware
TrueNAS выступает в роли внешнего хранилища для VMware ESXi. Основные протоколы доступа:
- NFS (Network File System) — простота настройки, отлично подходит для шаблонов и ISO
- iSCSI (Internet Small Computer Systems Interface) — блочное хранилище, максимальная производительность для ВМ
- SMB/CIFS — для общих файлов, но не для запуска ВМ
Пошаговая настройка NFS для VMware ESXi
Шаг 1: Создание пула и набора данных в TrueNAS
Зайди в веб-интерфейс TrueNAS (обычно http://truenas-ip).
# Проверь состояние пулов через CLI (опционально)
zpool status
# Создай пул через GUI:
# Storage → Pools → ADD
# Выбери диски, RAID-Z2 для лучшей надежности
Шаг 2: Настройка NFS-шаринга
Создай набор данных (dataset) специально для VMware:
# Рекомендуемые параметры dataset:
# Compression: lz4 (экономия места + скорость)
# Record Size: 128K для NFS (оптимально для ВМ)
# ACL Type: NFSv4
# Share Type: Generic
Теперь создай NFS-шару:
- Sharing → Unix Shares (NFS) → ADD
- Path: выбери созданный dataset (например /mnt/pool/vmware)
- Authorized Networks: укажи подсеть ESXi (например 192.168.1.0/24)
- Maproot User: root
- Maproot Group: wheel
- Сохрани и запусти службу NFS
Шаг 3: Добавление хранилища в VMware ESXi
В vSphere Client или через ESXi CLI:
# Через ESXi Shell (SSH):
esxcli storage nfs add -H truenas-ip -s /mnt/pool/vmware -v vmware-nfs
# Или через GUI:
# Storage → New Datastore → Mount NFS Datastore
# Server: IP TrueNAS
# Share: /mnt/pool/vmware
# Datastore Name: truenas-nfs
Настройка iSCSI для максимальной производительности
iSCSI дает блочный доступ, что часто быстрее для ВМ с высокой IO нагрузкой.
Шаг 1: Создание ZVOL для iSCSI
ZVOL — блочное устройство в ZFS. Создай его в том же пуле:
# Рекомендуемые параметры ZVOL:
# Volume Size: с запасом (thin provisioning включи позже)
# Block Size: 16K или 32K
# Compression: lz4
# Зеркалирование на уровне пула (RAID-Z)
Шаг 2: Настройка iSCSI Target в TrueNAS
- Sharing → Block Shares (iSCSI) → Target Global Configuration
- Base Name: iqn.2005-10.org.freenas.ctl:truenas
- Portals: создай портал на IP хранилища, порт 3260
- Initiators: разреши доступ с IP ESXi хостов
- Targets: создай таргет с алиасом "vmware-iscsi"
- Extents: Device, выбери созданный ZVOL
- Associated Targets: свяжи extent с target
Шаг 3: Настройка iSCSI на стороне ESXi
# В ESXi через GUI:
# Storage → Adapters → Software iSCSI → Enabled
# Network Port Binding: выбери vmkernel порт в iSCSI сети
# Dynamic Discovery → Add Server: IP TrueNAS
# Rescan storage
# Создай новое хранилище VMFS поверх iSCSI LUN
Оптимизация производительности
| Параметр | NFS | iSCSI | Рекомендация |
|---|---|---|---|
| Record Size | 128K | 16K | Зависит от нагрузки ВМ |
| Compression | lz4 | Всегда включай, почти без накладных расходов | |
| Sync | Standard | Always | Для iSCSI обязательно, для NFS можно standard |
| MTU | 9000 (Jumbo Frames) | На всех устройствах сети хранения | |
Мониторинг и диагностика
# На TrueNAS смотри статистику ZFS:
zpool iostat -v 1
zfs get all pool/vmware
# Проверь производительность из ESXi:
esxtop
# Нажми 'd' для disk view, 'u' для adapter view
# Тест скорости через VMKernel:
esxcli storage core device list | grep iSCSI # найди устройство
esxcli storage core device stats get -d naa.xxx
Резервное копирование и снапшоты
Одна из главных фишек ZFS — моментальные снапшоты. Используй их для резервного копирования ВМ.
# Создание снапшота dataset с ВМ:
zfs snapshot pool/vmware@before-update-$(date +%Y%m%d)
# Репликация на другой TrueNAS (асинхронно):
zfs send pool/vmware@snapshot | ssh backup-truenas zfs receive backup/vmware
# Восстановление ВМ из снапшота:
zfs rollback pool/vmware@yesterday-snapshot
# Затем rescan datastore в ESXi
Частые проблемы и решения
Проблема 1: Медленная работа ВМ на NFS
Решение:
- Проверь MTU 9000 на всех устройствах
- Увеличь Record Size до 1M для больших ВМ
- Добавь больше RAM для ZFS ARC кэша
Проблема 2: ESXi не видит iSCSI LUN
Решение:
- Проверь CHAP аутентификацию (лучше отключи для тестов)
- Убедись, что initiator разрешен в TrueNAS
- Проверь firewall на TrueNAS:
service pfctl status
FAQ: Ответы на частые вопросы
Что лучше для VMware: NFS или iSCSI?
NFS проще в настройке, лучше для шаблонов и ISO. iSCSI дает немного лучшую производительность для ВМ с высокой IO нагрузкой. Для большинства homelab сценариев NFS более чем достаточно.
Нужен ли отдельный сетевой интерфейс для хранилища?
Обязательно! Хотя бы LACP агрегацию 2x1GbE или отдельный 10GbE интерфейс. Сетевой bottleneck — главная причина медленной работы ВМ на внешнем хранилище.
Как мигрировать ВМ с локального хранилища ESXi на TrueNAS?
1. Создай NFS/iSCSI хранилище. 2. В vSphere Client: ВМ → Migrate → Change storage only. 3. Выбери созданное хранилище. Или используй Storage vMotion если доступен.
Поддерживает ли TrueNAS vSphere APIs for Storage Awareness (VASA)?
TrueNAS SCALE (на базе Linux) имеет плагин для VASA Provider через TrueCommand. TrueNAS CORE (FreeBSD) не имеет нативной поддержки VASA, но основные функции снапшотов доступны через ZFS.
Итог: Ключевые преимущества связки TrueNAS + VMware
- Экономия: Цена enterprise-хранилища за homelab бюджет
- Надежность: ZFS с самовосстановлением данных
- Гибкость: Легко расширять пулы, добавлять кэши
- Резервное копирование: Моментальные снапшоты на уровне СХД
- Производительность: При правильной настройке — уровень коммерческих решений
Начни с NFS для простоты, затем экспериментируй с iSCSI. Мониторь производительность через zpool iostat и esxtop. И помни: быстрая сеть — это 70% успеха интеграции TrueNAS с VMware.