Интеграция внешнего отказоустойчивого хранилища — критически важный шаг для построения профессиональной инфраструктуры виртуализации. Это руководство предоставляет проверенную на практике пошаговую инструкцию по созданию высокопроизводительного и надежного хранилища для Proxmox VE 2026 на базе TrueNAS с использованием ZFS и протокола iSCSI. Мы детально разберем настройку всех компонентов: от оптимизации ZFS zvol на стороне TrueNAS до конфигурации Multipath I/O (MPIO) в Proxmox, что обеспечит балансировку нагрузки и автоматическое переключение при сбое канала. Вы получите готовое решение, адаптированное под актуальные версии ПО 2026 года, которое позволит вашим виртуальным машинам работать с максимальной скоростью и минимальной задержкой.
Архитектура решения: почему TrueNAS, ZFS и iSCSI для Proxmox VE 2026
Связка Proxmox VE и TrueNAS образует мощный и гибкий тандем для виртуализации. Proxmox выступает в роли гипервизора, управляющего вычислительными ресурсами и жизненным циклом виртуальных машин (ВМ) и контейнеров. TrueNAS, построенный на основе FreeBSD или Linux (Scale), выполняет роль специализированной системы хранения данных (SAN/NAS), предоставляя блочные устройства по сети. Протокол iSCSI является стандартом де-факто для такого сценария, так как он обеспечивает низкоуровневый блочный доступ с минимальными задержками, что критически важно для дисков ВМ.
ZFS — это фундамент надежности и производительности. На стороне TrueNAS ZFS управляет физическими дисками, обеспечивая целостность данных (checksum), самовосстановление, моментальные снапшоты, сжатие и дедупликацию. Виртуальные машины Proxmox работают с виртуальными дисками, которые, в свою очередь, размещаются на ZFS zvol — специальном блочном устройстве, эмулируемом поверх пула ZFS. Для полной отказоустойчивости настройка Multipath I/O (MPIO) обязательна: она позволяет подключить один iSCSI LUN (Logical Unit Number) с нескольких сетевых интерфейсов, создавая резервные пути для данных.
Сравнение LVM-Thin и ZFS на стороне Proxmox: что выбрать поверх iSCSI LUN
После того как Proxmox обнаруживает iSCSI LUN через MPIO, его необходимо добавить как хранилище. Здесь возникает ключевой выбор: использовать LVM-Thin или развернуть ZFS поверх этого блочного устройства.
| Критерий | LVM-Thin | ZFS поверх iSCSI |
|---|---|---|
| Интеграция с Proxmox | Родная, глубокая. Поддержка тонкого provisioning, снапшотов, клонирования прямо из GUI. | Полная, но с оговорками. Все функции ZFS доступны, но это «ZFS поверх ZFS». |
| Накладные расходы | Минимальные. LVM работает непосредственно с блочным устройством. | Высокие. Двойное копирование при записи (Copy-on-Write): сначала на стороне TrueNAS, затем на стороне Proxmox. Это может снизить производительность записи. |
| Снапшоты и клоны | Быстрые, пространственно-эффективные. Идеально для частого создания/удаления снапшотов ВМ. | Моментальные, но более тяжелые. Отлично подходят для долгосрочных архивных снапшотов с возможностью проверки целостности. |
| Самовосстановление данных | Отсутствует. Целостность обеспечивается только нижележащим ZFS на TrueNAS. | Присутствует. ZFS на стороне Proxmox также проверяет контрольные суммы, обеспечивая дополнительный уровень защиты. |
| Рекомендация | Для 95% сценариев виртуализации. Оптимальный баланс производительности, функциональности и простоты управления. | Только если критически необходимы функции ZFS на уровне гипервизора (например, отправка реплик на другой сервер Proxmox) и есть значительный запас по IOPS. |
Для большинства рабочих нагрузок, включая базы данных и веб-сервисы, выбор LVM-Thin является наиболее практичным и производительным решением. Подробнее о тонкой настройке ZFS для различных задач можно прочитать в нашем руководстве по оптимизации производительности TrueNAS.
Подготовка и настройка iSCSI Target на TrueNAS
Работа начинается с настройки сервера хранения. Предполагается, что TrueNAS (актуальной версии 2026 года) уже установлен, создан пул ZFS, и настроена как минимум одна выделенная сеть для трафика iSCSI (рекомендуется использовать отдельные физические интерфейсы и подсети).
- Создание ZFS zvol: В веб-интерфейсе TrueNAS перейдите в
Storage → Pools, выберите целевой пул и нажмите «Create Zvol».- Zvol name: Например,
proxmox-iscsi. - Size for this zvol: Объем хранилища для ВМ.
- Volblocksize: Ключевой параметр. Установите
16Kдля нагрузок, типичных для СУБД (много операций случайного чтения/записи небольшого размера) или64K/128Kдля файловых серверов и потокового чтения/записи. Этот размер должен быть кратен recordsize родительского датасета (обычно 128K). - Sparse (Thin Provisioning): Включите. Это позволит zvol занимать место по мере записи данных, а не сразу весь объем.
- Compression level: Выберите
lz4. Это быстрое сжатие, которое почти всегда дает выигрыш в пространстве и часто увеличивает пропускную способность (IOPS), уменьшая объем физически записываемых данных. - Sync: Оставьте
standardдля гарантии сохранности данных при отключении питания. Опциюdisabledможно использовать только для некритичных данных или если нижележащее хранилище имеет защищенный кэш (батарею/конденсатор).
- Zvol name: Например,
- Настройка iSCSI Target: Перейдите в
Sharing → Block Shares (iSCSI).- Портал (Portals): Создайте портал, указав IP-адрес и порт (по умолчанию 3260) сетевого интерфейса, выделенного для iSCSI. Для MPIO создайте несколько порталов на разных IP-адресах (например, на каждом из двух интерфейсов).
- Инициатор (Initiators): Можно ограничить доступ по IP-адресам хостов Proxmox или оставить
ALLдля любого инициатора (менее безопасно). - Устройство-экстент (Extent): Создайте устройство на основе Zvol. Выберите созданный ранее zvol (
proxmox-iscsi). Тип экстента —Device. - Ассоциация цели (Target): Создайте цель (Target), ассоциируйте с ней порталы, инициаторы и экстент. Запомните или задайте понятное имя цели (IQN), например:
iqn.2026-04.truenas.local:proxmox.
Оптимизация ZFS zvol для максимальной производительности ВМ
Производительность виртуальных дисков напрямую зависит от параметров ZFS zvol. Вот ключевые настройки и их влияние:
- recordsize / volblocksize: Размер блока данных. Для виртуальных дисков ВМ, особенно под СУБД (PostgreSQL, MySQL), где типичный размер страницы — 8K или 16K, идеально подходит
volblocksize=16K. Это минимизирует read-modify-write цикл (когда изменение одного маленького блока требует чтения и перезаписи всего большого блока в 128K). Для файловых серверов или дисков под ОС можно использовать64Kили128K. Важно согласовать этот параметр сrecordsizeродительского датасета. - sync=standard: Гарантирует, что данные, которые ОС сообщила как записанные, физически попали на носитель (или в защищенный кэш — SLOG). Без этой гарантии (
sync=disabled) при сбое питания возможна потеря данных последних секунд. Для критичных ВМ всегда используйтеstandard. Если производительность записи недостаточна, рассмотрите добавление выделенного устройства SLOG (например, маломощного NVMe SSD с конденсатором). - compression=lz4: Всегда включайте. Алгоритм lz4 настолько быстр, что время на сжатие обычно перекрывается выигрышем от уменьшения объема записываемых на диск данных, что приводит к чистому росту IOPS и пропускной способности для сжимаемых данных (логи, текст, виртуальные диски).
Проверить и изменить параметры существующего zvol можно через CLI TrueNAS (Shell):
# Просмотр свойств zvol
zfs get all poolname/proxmox-iscsi
# Изменение volblocksize (только при создании!)
# Изменение sync
zfs set sync=standard poolname/proxmox-iscsi
# Изменение compression
zfs set compression=lz4 poolname/proxmox-iscsi
Выбор правильной аппаратной конфигурации для пула ZFS не менее важен. Сравнение производительности различных типов накопителей и RAID-массивов вы найдете в нашем исследовании производительности дисковых подсистем в 2026 году.
Настройка iSCSI Initiator и Multipath I/O (MPIO) в Proxmox VE 2026
Теперь настроим клиентскую сторону в Proxmox VE. Убедитесь, что сетевые интерфейсы, подключенные к iSCSI-сети, имеют правильные IP-адреса и MTU (рекомендуется jumbo frames, 9000, если вся сеть поддерживает).
- Установка и настройка open-iscsi:
Отредактируйте файлapt update apt install open-iscsi/etc/iscsi/iscsid.conf, раскомментировав или добавив строки для повышения производительности:
Перезапустите службу:node.session.timeo.replacement_timeout = 120 node.conn[0].timeo.noop_out_interval = 30 node.conn[0].timeo.noop_out_timeout = 30systemctl restart open-iscsi. - Обнаружение target: Выполните обнаружение на IP-адресах порталов TrueNAS.
После этого target появится в списке:iscsiadm -m discovery -t st -p 192.168.10.10 # Первый портал iscsiadm -m discovery -t st -p 192.168.10.11 # Второй портал (для MPIO)iscsiadm -m node. - Установка и настройка multipath-tools:
Создайте или отредактируйте файлapt install multipath-tools/etc/multipath.conf.
Конфигурация балансировки нагрузки и отказоустойчивости в multipath.conf
Конфигурационный файл /etc/multipath.conf определяет, как система будет работать с несколькими путями к одному устройству. Приведем пример минимальной рабочей конфигурации для активной балансировки нагрузки (active/active):
defaults {
user_friendly_names yes
find_multipaths yes
}
devices {
device {
vendor "TrueNAS"
product "iSCSI Disk"
path_grouping_policy multibus
path_checker tur
features "0"
hardware_handler "0"
failback immediate
rr_weight uniform
rr_min_io 100
no_path_retry 5
}
}
multipaths {
multipath {
wwid <ВАШ_WWID_УСТРОЙСТВА> # Замените на реальный WWID из `scsi_id`
alias mpath-proxmox
}
}
Ключевые параметры:
- path_grouping_policy multibus: Устанавливает политику
group_by_serial(в новых версиях) илиmultibus, которая объединяет все пути в одну группу и использует их все одновременно для балансировки нагрузки. Альтернатива —failover(active/passive), когда работает только один путь, а остальные в горячем резерве. - rr_min_io 100: Указывает, что балансировщик
round-robinбудет отправлять 100 I/O-операций по одному пути, прежде чем переключиться на следующий. Это снижает накладные расходы на переключение. - failback immediate: Определяет, что при восстановлении вышедшего из строя пути, трафик немедленно вернется на него.
Чтобы найти WWID вашего iSCSI-устройства, выполните команду после логина к target (iscsiadm -m node --login):
/lib/udev/scsi_id -g -u -d /dev/sdX # где /dev/sdX — это обнаруженный iSCSI-диск
После настройки файла перезагрузите службы и проверьте конфигурацию:
systemctl restart multipath-tools
multipath -ll
Вы должны увидеть ваше устройство с алиасом mpath-proxmox и все активные пути (paths). Протестируйте отказоустойчивость, отключив один из сетевых кабелей: команда multipath -ll должна показать изменение статуса пути на failed, при этом доступ к устройству сохранится.
Добавление отказоустойчивого хранилища в Proxmox и создание дисков ВМ
Теперь, когда multipath-устройство готово, его можно добавить в Proxmox как сетевое хранилище.
- В веб-интерфейсе Proxmox VE перейдите в
Datacenter → Storage → Add → iSCSI. - Заполните форму:
- ID: Уникальное имя, например
truenas-iscsi. - Portal: IP-адрес одного из порталов TrueNAS (например, 192.168.10.10). Proxmox автоматически обнаружит target.
- Target: Выберите из списка обнаруженных ваш IQN.
- SCSI Controller: Оставьте по умолчанию.
- Use LUNs directly: Не отмечайте. Мы хотим использовать multipath-устройство.
- LUN: 0 (или соответствующий вашему экстенту).
- Path: Ключевой параметр. Укажите путь к multipath-устройству, например:
/dev/mapper/mpath-proxmox. - Content: Выберите «Disk image, Container template».
- Nodes: Все, если у вас кластер.
- ID: Уникальное имя, например
- Нажмите «Add». Proxmox отформатирует устройство и добавит его как хранилище.
- При добавлении диска новой ВМ выберите созданное хранилище (
truenas-iscsi). Рекомендуется выбрать форматrawдля максимальной производительности и типSCSIс контроллеромVirtIO SCSI single.
Для проверки производительности созданной связки можно запустить тест внутри ВМ с помощью fio. Например, тест случайной записи 4K блоками:
fio --name=randwrite --ioengine=libaio --iodepth=32 --rw=randwrite --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
Ожидаемые показатели IOPS и задержки будут напрямую зависеть от конфигурации вашего пула ZFS на TrueNAS (тип дисков, уровень RAID) и сетевой инфраструктуры.
Резервное копирование, обслуживание и типичные проблемы
Построенная инфраструктура требует регулярного обслуживания и интеграции в общую стратегию резервного копирования.
- Интеграция с Proxmox Backup Server (PBS): Наиболее эффективный способ резервного копирования ВМ. Установите PBS на отдельный сервер или виртуальную машину. На TrueNAS создайте отдельный датасет и предоставьте его по NFS или SMB. В PBS добавьте это сетевое хранилище, а затем настройте задачи резервного копирования для ваших ВМ в Proxmox, указав PBS как целевой backup storage.
- Мониторинг:
- TrueNAS: Регулярно проверяйте статус пула (
zpool status), SMART-атрибуты дисков, загрузку сети и CPU. - Proxmox: Следите за состоянием multipath (
multipath -ll), использованием пространства хранилища и сетевыми интерфейсами.
- TrueNAS: Регулярно проверяйте статус пула (
- Обслуживание ZFS: Запланируйте регулярные скрабы (scrub) пула для проверки целостности данных (например, раз в месяц). В TrueNAS это можно сделать через
Storage → Pools → Scrub.
Распространенные ошибки и их решение: от падения производительности до потери доступа
- «ВМ работают очень медленно, особенно при записи»
- Причина 1: Синхронная запись (
sync=standard) на медленные HDD без SLOG. Решение: добавить выделенное SLOG-устройство (например, NVMe SSD с конденсатором) или, если данные не критичны, перевести датасет вsync=disabled(не рекомендуется для production). - Причина 2: Неправильный
volblocksize(например, 128K для СУБД). Решение: создать новый zvol с правильным размером блока и мигрировать данные. - Причина 3: Сеть. Проверьте MTU (должен быть одинаковым на всех устройствах пути), наличие ошибок (
ethtool -S <интерфейс>), и не перегружена ли полоса.
- Причина 1: Синхронная запись (
- «Пропал multipath, устройство стало read-only или недоступным»
- Решение: Перезапустите службы:
systemctl restart multipath-tools open-iscsi. Проверьте физическую связность и настройки firewall (порты 3260/tcp должны быть открыты). Убедитесь, что на TrueNAS работают оба портала.
- Решение: Перезапустите службы:
- «Ошибка при создании диска ВМ: неверный формат»
- Причина: Попытка использовать файловую систему внутри ВМ, которая не поддерживает выбранный размер блока (например, некоторые старые версии Windows или настройки форматирования). Решение: При создании диска в Proxmox выберите
rawформат. Внутри ВМ при разметке учитывайте выравнивание (alignment), которое для современных систем обычно равно 1M.
- Причина: Попытка использовать файловую систему внутри ВМ, которая не поддерживает выбранный размер блока (например, некоторые старые версии Windows или настройки форматирования). Решение: При создании диска в Proxmox выберите
- «Не удается войти в iSCSI target с нового хоста»
- Причина: Ограничения на стороне TrueNAS в настройках инициатора. Решение: В TrueNAS в разделе
Sharing → Block Shares (iSCSI) → Initiatorsдобавьте IP-адрес нового хоста или разрешите доступ для всей подсети.
- Причина: Ограничения на стороне TrueNAS в настройках инициатора. Решение: В TrueNAS в разделе
Для безопасной изоляции трафика хранения от остального сетевого потока рекомендуется использовать VLAN. Настройке такой сегментированной сети на TrueNAS посвящено отдельное руководство: маршрутизация между VLAN в TrueNAS Scale 2026.
Следуя этому руководству, вы построите отказоустойчивое, высокопроизводительное хранилище для Proxmox, которое будет соответствовать требованиям даже самых ресурсоемких рабочих нагрузок. Помните, что ключ к стабильной работе — это понимание принципов работы каждого компонента (ZFS, iSCSI, MPIO) и регулярный мониторинг состояния системы.