Настройка высокопроизводительного iSCSI-хранилища для Proxmox VE 2026 с TrueNAS и ZFS: полное руководство | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Настройка высокопроизводительного iSCSI-хранилища для Proxmox VE 2026 с TrueNAS и ZFS: полное руководство

04 апреля 2026 10 мин. чтения

Интеграция внешнего отказоустойчивого хранилища — критически важный шаг для построения профессиональной инфраструктуры виртуализации. Это руководство предоставляет проверенную на практике пошаговую инструкцию по созданию высокопроизводительного и надежного хранилища для 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 (рекомендуется использовать отдельные физические интерфейсы и подсети).

  1. Создание 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 можно использовать только для некритичных данных или если нижележащее хранилище имеет защищенный кэш (батарею/конденсатор).
  2. Настройка iSCSI Target: Перейдите в Sharing → Block Shares (iSCSI).
    1. Портал (Portals): Создайте портал, указав IP-адрес и порт (по умолчанию 3260) сетевого интерфейса, выделенного для iSCSI. Для MPIO создайте несколько порталов на разных IP-адресах (например, на каждом из двух интерфейсов).
    2. Инициатор (Initiators): Можно ограничить доступ по IP-адресам хостов Proxmox или оставить ALL для любого инициатора (менее безопасно).
    3. Устройство-экстент (Extent): Создайте устройство на основе Zvol. Выберите созданный ранее zvol (proxmox-iscsi). Тип экстента — Device.
    4. Ассоциация цели (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, если вся сеть поддерживает).

  1. Установка и настройка 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 = 30
    Перезапустите службу: systemctl restart open-iscsi.
  2. Обнаружение target: Выполните обнаружение на IP-адресах порталов TrueNAS.
    iscsiadm -m discovery -t st -p 192.168.10.10 # Первый портал
    iscsiadm -m discovery -t st -p 192.168.10.11 # Второй портал (для MPIO)
    После этого target появится в списке: iscsiadm -m node.
  3. Установка и настройка 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 как сетевое хранилище.

  1. В веб-интерфейсе Proxmox VE перейдите в Datacenter → Storage → Add → iSCSI.
  2. Заполните форму:
    • 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: Все, если у вас кластер.
  3. Нажмите «Add». Proxmox отформатирует устройство и добавит его как хранилище.
  4. При добавлении диска новой ВМ выберите созданное хранилище (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) и сетевой инфраструктуры.

Резервное копирование, обслуживание и типичные проблемы

Построенная инфраструктура требует регулярного обслуживания и интеграции в общую стратегию резервного копирования.

  1. Интеграция с Proxmox Backup Server (PBS): Наиболее эффективный способ резервного копирования ВМ. Установите PBS на отдельный сервер или виртуальную машину. На TrueNAS создайте отдельный датасет и предоставьте его по NFS или SMB. В PBS добавьте это сетевое хранилище, а затем настройте задачи резервного копирования для ваших ВМ в Proxmox, указав PBS как целевой backup storage.
  2. Мониторинг:
    • TrueNAS: Регулярно проверяйте статус пула (zpool status), SMART-атрибуты дисков, загрузку сети и CPU.
    • Proxmox: Следите за состоянием multipath (multipath -ll), использованием пространства хранилища и сетевыми интерфейсами.
  3. Обслуживание 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 <интерфейс>), и не перегружена ли полоса.
  • «Пропал multipath, устройство стало read-only или недоступным»
    • Решение: Перезапустите службы: systemctl restart multipath-tools open-iscsi. Проверьте физическую связность и настройки firewall (порты 3260/tcp должны быть открыты). Убедитесь, что на TrueNAS работают оба портала.
  • «Ошибка при создании диска ВМ: неверный формат»
    • Причина: Попытка использовать файловую систему внутри ВМ, которая не поддерживает выбранный размер блока (например, некоторые старые версии Windows или настройки форматирования). Решение: При создании диска в Proxmox выберите raw формат. Внутри ВМ при разметке учитывайте выравнивание (alignment), которое для современных систем обычно равно 1M.
  • «Не удается войти в iSCSI target с нового хоста»
    • Причина: Ограничения на стороне TrueNAS в настройках инициатора. Решение: В TrueNAS в разделе Sharing → Block Shares (iSCSI) → Initiators добавьте IP-адрес нового хоста или разрешите доступ для всей подсети.

Для безопасной изоляции трафика хранения от остального сетевого потока рекомендуется использовать VLAN. Настройке такой сегментированной сети на TrueNAS посвящено отдельное руководство: маршрутизация между VLAN в TrueNAS Scale 2026.

Следуя этому руководству, вы построите отказоустойчивое, высокопроизводительное хранилище для Proxmox, которое будет соответствовать требованиям даже самых ресурсоемких рабочих нагрузок. Помните, что ключ к стабильной работе — это понимание принципов работы каждого компонента (ZFS, iSCSI, MPIO) и регулярный мониторинг состояния системы.

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