Представь, что ты строишь мощный виртуальный дата-центр у себя дома или в офисе. У тебя есть VMware ESXi для виртуализации, но нужно надёжное, масштабируемое и экономичное хранилище. Вот здесь на сцену выходит связка TrueNAS ESXi — идеальный симбиоз enterprise-виртуализации и профессиональной системы хранения. Давай разберем, как заставить их работать вместе как часы.
Зачем объединять TrueNAS и ESXi?
Использование TrueNAS в качестве хранилища для ESXi решает несколько ключевых задач:
- Централизация данных: Все виртуальные машины (ВМ) и их диски (VMDK) хранятся в одном надёжном месте.
- Продвинутые возможности ZFS: Моментальные снапшоты, дедупликация, компрессия и самовосстановление данных.
- Гибкость протоколов: Поддержка iSCSI, NFS v3/v4 и SMB, что позволяет выбрать оптимальный вариант для разных рабочих нагрузок.
- Экономия: TrueNAS Core — бесплатное решение enterprise-уровня на базе FreeBSD.
Архитектура и выбор протокола: NFS vs iSCSI
Перед настройкой нужно определиться с протоколом. Выбор зависит от типа рабочих нагрузок.
| Критерий | NFS (Network File System) | iSCSI (Block Storage) |
|---|---|---|
| Тип доступа | Файловый уровень (File-level) | Блочный уровень (Block-level) |
| Идеально для | Виртуальных машин, шаблонов, ISO-образов. Проще в управлении. | Высокопроизводительных ВМ (БД, почтовые серверы), кластеров vSphere. |
| Производительность | Хорошая, может быть ниже на очень интенсивных операциях записи. | Максимально близка к локальному диску, стабильная задержка. |
| Масштабируемость | Один датасет можно монтировать на несколько хостов ESXi (только для чтения). | Один LUN (iSCSI-таргет) должен быть подключен только к одному хосту ESXi за раз. |
Рекомендация для начала: Используй NFS для общего хранилища ISO и шаблонов, а для высоконагруженных ВМ создавай отдельные iSCSI LUN'ы.
Пошаговая настройка TrueNAS для ESXi
Предположим, у нас свежеустановленный TrueNAS Core/Scale. Давай настроим оба протокола.
Шаг 1: Подготовка сети и пула ZFS
Для лучшей производительности выдели отдельный сетевой интерфейс или VLAN для трафика хранения данных (Storage Network).
# Проверь сетевые интерфейсы на TrueNAS (из Shell)
ifconfig
# Создай пул ZFS через Web UI или командой (пример)
zpool create -o ashift=12 tank mirror /dev/ada0 /dev/ada1 mirror /dev/ada2 /dev/ada3
# Оптимальный ashift=12 для дисков с сектором 4K
Шаг 2: Настройка общего ресурса NFS для ESXi
В веб-интерфейсе TrueNAS (чаще на порту 80/443):
- Зайди в Storage → Pools, создай новый Dataset (например,
esxi_shared). - В настройках датасета включи Share Type = SMB (для совместимости, даже если используешь NFS).
- Перейди в Sharing → Unix Shares (NFS) и добавь новый ресурс.
- Укажи путь к датасету (
/mnt/tank/esxi_shared). - В настройках Mapall User и Mapall Group укажи
rootиwheel. - В Authorized Networks укажи подсеть твоего ESXi хоста (например,
192.168.10.0/24).
# Пример конфигурации NFS-экспорта в /etc/exports (генерируется автоматически)
/mnt/tank/esxi_shared -alldirs -mapall=root:wheel -network 192.168.10.0/24
Шаг 3: Настройка iSCSI-таргета (блочное хранилище)
Для создания iSCSI LUN'а:
- Зайди в Sharing → Block Shares (iSCSI).
- Во вкладке Targets нажми Add. Задай имя (например,
iqn.2024-05.truenas.esxi:vm-db01). - Во вкладке Extents создай новый экстент типа Device, указав путь к ZVOL:
zvol/tank/iscsi_vm01. Размер укажи в GiB. - Во вкладке Associated Targets свяжи созданный Target и Extent.
- В Portals убедись, что слушатель iSCSI работает на IP адресе твоей сети хранения (не на 0.0.0.0).
- В Initiators можно ограничить доступ по IQN инициатора ESXi (опционально, для безопасности).
Report Target Port Group Tags (TPGT). Не используй Do Not Report TPGT, это может привести к проблемам с подключением.
Шаг 4: Добавление хранилища в VMware ESXi
Теперь подключим наше хранилище к хосту ESXi.
Для NFS:
- В vSphere Client перейди к хосту ESXi → Configure → Storage → Datastores.
- Нажми New datastore → Тип NFS → Версия NFS 3 (или 4.1, если поддерживается).
- Укажи имя, путь к ресурсу (
/mnt/tank/esxi_shared) и IP-адрес TrueNAS.
Для iSCSI:
- В Configure → Storage Adapters выбери программный iSCSI адаптер (vmhba64) и включи его, если выключен.
- В свойствах адаптера, во вкладке Targets, добавь динамическую цель (Dynamic Discovery). Укажи IP-адрес TrueNAS (порт по умолчанию 3260).
- Адаптер автоматически обнаружит iSCSI Target. Вернись в Datastores и создай новое хранилище на обнаруженном устройстве (форматирование VMFS6).
Оптимизация производительности TrueNAS ESXi
Чтобы выжать максимум из связки, следуй этим советам:
- Выделенная сеть: Используй минимум 1 GbE, а лучше 10 GbE или SFP+ для сети хранения. Jumbo Frames (MTU 9000) могут дать прирост, но требуют сквозной настройки на всех устройствах.
- Настройки ZFS:
sync=standard(по умолчанию) — безопасно, но медленнее. Для ускорения можно поставитьsync=disabledна датасетах для ВМ, но только если есть UPS (риск потери данных при сбое питания).- Включи компрессию (
lz4) — почти бесплатный прирост скорости и экономия места. - Кэш L2ARC (SSD) добавляй только если оперативной памяти (ARC) больше 64 ГБ, иначе будешь тратить память на метаданные кэша без пользы.
- Настройки ESXi: Для iSCSI-хранилища в свойствах датастора (Advanced Options) можно попробовать изменить
Disk.DiskMaxIOSizeна4096(для 4K-секторов).
Типичные проблемы и их решение
Проблема 1: ESXi не видит NFS-шару
Решение: Проверь на TrueNAS:
# Убедись, что служба NFS запущена
service nfsd status
# Проверь экспортируемые ресурсы
showmount -e localhost
# Проверь firewall (если включен)
iptables -L -n | grep 2049
На ESXi проверь, что vmkernel-порт в той же подсети, что и Authorized Networks в TrueNAS.
Проблема 2: Низкая скорость записи по iSCSI
Решение: В 99% случаев проблема в сети. Проверь:
- Дуплексное соединение (должно быть Full Duplex).
- Отсутствие ошибок на интерфейсах (
netstat -iна TrueNAS,esxcli network nic listна ESXi). - Нагрузку на CPU TrueNAS во время записи. Если загрузка высокая, возможно, не хватает мощности для шифрования или компрессии.
Проблема 3: ВМ переходит в состояние "Не отвечает" на общем хранилище
Решение: Это может быть из-за таймаутов NFS/iSCSI. Увеличь таймауты на ESXi:
# Для NFS (через SSH на ESXi)
esxcli system settings advanced set -o /NFS/HeartbeatMaxFailures -i 10
esxcli system settings advanced set -o /NFS/HeartbeatFrequency -i 12
# Для iSCSI
esxcli system settings advanced set -o /VMFS3/HardwareAcceleratedLocking -i 0
Резервное копирование и снапшоты
Одно из главных преимуществ ZFS — моментальные снапшоты. Ты можешь создавать их на уровне TrueNAS, а затем реплицировать на другой сервер.
- Периодические снапшоты: Настрой в Tasks → Periodic Snapshot Tasks для датасета с ВМ.
- Восстановление файла ВМ (VMDK): Создай клон снапшота через Web UI TrueNAS, смонтируй его и скопируй нужный файл по SMB/NFS.
- Интеграция с vSphere: Для согласованных снапшотов на уровне гостевых ОС используй инструменты VMware (VMware Tools + vSphere Snapshots), но помни, что они создают нагрузку на хранилище.
Безопасность конфигурации TrueNAS ESXi
Не забывай о базовых принципах безопасности:
- Измени пароли по умолчанию для root на TrueNAS и для учетной записи ESXi.
- Ограничь доступ к интерфейсу управления TrueNAS только с доверенных IP.
- Для iSCSI используй CHAP-аутентификацию (настройки во вкладке Initiators и в конфигурации адаптера ESXi).
- Регулярно обновляй TrueNAS и ESXi, чтобы закрывать уязвимости.
Интеграция TrueNAS ESXi — это не просто "подключил и забыл". Это создание фундаментальной инфраструктуры. Начни с простой конфигурации NFS для нетребовательных ВМ, поэкспериментируй с настройками ZFS, а затем внедряй высокопроизводительные iSCSI LUN'ы для критичных задач. Правильно настроенная связка обеспечит тебе отказоустойчивость, производительность и спокойный сон, зная, что данные виртуальных машин в безопасности.