Представь, что тебе нужно предоставить блочное хранилище для виртуальных машин, баз данных или контейнеров по сети. Локальные диски не подходят, а дорогие SAN-решения выходят за рамки бюджета. Решение? TrueNAS iSCSI. Это мощный, бесплатный и надежный способ превратить твой TrueNAS-сервер в полноценный iSCSI-таргет. Давай разберем, как это настроить от А до Я, как для junior-администратора.
Что такое iSCSI и зачем он нужен в TrueNAS?
iSCSI (Internet Small Computer Systems Interface) — это протокол, который позволяет передавать SCSI-команды по IP-сети. Проще говоря, он делает из сетевого ресурса «локальный диск» для клиентской системы. TrueNAS, будучи мощной ZFS-платформой, идеально подходит для роли iSCSI-сервера (таргета) благодаря:
- Стабильности ZFS: Проверка целостности данных, снапшоты, компрессия.
- Гибкости: Можно создать iSCSI диск на основе файла (zvol) или всего датасета.
- Производительности: Кэширование ARC/L2ARC, поддержка SSD-кэша (SLOG).
Подготовка TrueNAS к настройке iSCSI
Перед тем как погрузиться в настройку iSCSI на TrueNAS, убедись, что у тебя есть:
- Установленный и работающий TrueNAS (Scale или Core).
- Созданный пул ZFS с достаточным свободным местом.
- Статический IP-адрес на сервере в сети, где будут находиться клиенты.
- План по размеру и количеству LUN (Logical Unit Number — логических дисков).
Шаг 1: Создание ZVOL для iSCSI диска
В TrueNAS iSCSI-диск (LUN) чаще всего базируется на ZVOL — блочном устройстве внутри ZFS. Давай создадим его через веб-интерфейс.
- Перейди в Storage → Pool.
- Найди нужный пул, нажми «Дополнительно» (три точки) и выбери «Add Zvol».
- Заполни параметры:
- Zvol name:
iscsi_vm_disk - Size for this zvol: Укажи размер, например,
100 GiB. - Compression level:
lz4(рекомендуется). - Sparse (Thin Provisioning): Галочка, если хочешь «тонкое» выделение места.
- Zvol name:
# Альтернативно, можно создать zvol через CLI (полезно для автоматизации):
sudo zfs create -V 100G -o compression=lz4 pool01/iscsi_vm_disk
# Проверить создание:
sudo zfs list -t volume | grep iscsi
Настройка iSCSI на TrueNAS: Пошаговое руководство
Теперь перейдем к основной части — настройке iSCSI службы. Идем в Shares → Block (iSCSI).
Шаг 2: Активация и базовая конфигурация iSCSI
- Во вкладке Target Global Configuration нажми «Configure». Здесь настройки по умолчанию обычно подходят. Обрати внимание на Base Name (iqn) — это уникальный идентификатор твоего таргета.
- Перейди во вкладку Portals и создай портал (если нет). Укажи IP-адрес и порт (стандартный 3260).
- Во вкладке Initiators можно ограничить доступ по IQN инициатора (клиента), но для начала можно оставить «Allow All».
Шаг 3: Создание iSCSI Target
Target — это «дверь», через которую клиенты подключаются к твоим дискам.
- Во вкладке Targets нажми «Add».
- Задай имя (Alias), например,
truenas-iscsi-vm. - Выбери созданный ранее Portal (IP и порт).
- Группу инициаторов (Initiator Group) можно оставить «All» или создать свою.
Шаг 4: Создание Extent и ассоциация с Target
Extent — это непосредственно наш iSCSI disk, ссылающийся на ZVOL или файл.
- Перейди во вкладку Extents → «Add».
- Type: Выбери Device.
- Device: В выпадающем списке найди созданный ZVOL (
pool01/iscsi_vm_disk). - Остальные настройки (размер, блоки) можно оставить по умолчанию. Нажми «Submit».
Шаг 5: Связывание всего вместе (Target/Extent)
Финал настройки! Нужно сказать таргету, какой именно диск (extent) он должен предоставлять.
- Перейди во вкладку Associated Targets → «Add».
- Выбери созданный Target и Extent.
- LUN ID: Обычно 0 (если диск один).
- Нажми «Submit».
Подключение iSCSI диска с клиента (Linux/Windows)
Для Linux (Ubuntu/Debian)
Установи пакет open-iscsi и выполни обнаружение и подключение.
# Установка клиента
sudo apt update && sudo apt install open-iscsi
# Обнаружение таргетов на сервере TrueNAS (IP: 192.168.1.100)
sudo iscsiadm -m discovery -t st -p 192.168.1.100
# Вывод будет содержать IQN твоего таргета, например:
# 192.168.1.100:3260,1 iqn.2005-10.org.freenas.ctl:truenas-iscsi-vm
# Подключение к таргету
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:truenas-iscsi-vm -p 192.168.1.100:3260 --login
# Проверь новый блочный диск (обычно /dev/sdX)
lsblk
sudo fdisk -l
Для Windows
- Открой «Диспетчер iSCSI» (iscsicpl.exe).
- Во вкладке «Обнаружение» нажми «Обнаружить портал» и введи IP TrueNAS.
- Перейди во вкладку «Конечные объекты», найди свой таргет и нажми «Подключить».
- Далее зайди в «Управление дисками» — новый диск появится как «Не проинициализированный».
Сравнение типов Extent в TrueNAS iSCSI
| Тип Extent | Основа | Плюсы | Минусы | Использование |
|---|---|---|---|---|
| Device (ZVOL) | Блочное устройство ZFS | Макс. производительность, все фичи ZFS (снапшоты, компрессия) | Фиксированный размер (если не sparse) | Виртуальные машины, БД |
| File | Файл в ZFS датасете | Простота создания, можно легко увеличить | Немного ниже производительность | Тесты, резервные копии |
Частые вопросы (FAQ) по TrueNAS iSCSI
Как увеличить размер iSCSI диска после создания?
Если использовал ZVOL, увеличь его сначала в TrueNAS (Storage → Pool, редактирование ZVOL), а затем расширь файловую систему на клиенте. Для Windows — через «Управление дисками», для Linux — с помощью resize2fs или xfs_growfs.
Можно ли использовать один iSCSI диск с нескольких клиентов одновременно?
Нет, без кластеризованной ФС — это путь к повреждению данных. iSCSI предоставляет блочное устройство. Если два хоста запишут данные в одну область диска, они перетрут друг друга. Для общего доступа нужны протоколы уровня файлов (NFS, SMB) или кластерные файловые системы (OCFS2, GFS2).
Как настроить аутентификацию CHAP для безопасности?
В разделе Shares → Block (iSCSI) → Initiators создай новую группу инициаторов. Включи опцию «Authentication Method» — CHAP. Задай имя пользователя и секрет. Затем укажи эту группу при создании Target. Не забудь настроить такие же учетные данные на стороне клиента.
Почему низкая скорость передачи по iSCSI?
Возможные причины и решения:
- Сеть: Проверь, нет ли коллизий, используй выделенный сетевой интерфейс и Jumbo Frames (MTU 9000), если оборудование поддерживает.
- Настройки ZFS: Добавь SSD для кэша (L2ARC) и лога синхронных операций (SLOG/ZIL), если много sync write (как в БД).
- Нагрузка на диск: Мониторь IOPS и задержки пула через
zpool iostat -vl 1.
Заключение и лучшие практики
Настройка TrueNAS iSCSI — мощный навык, который открывает двери к созданию отказоустойчивого и производительного сетевого хранилища. Запомни ключевые моменты:
- Всегда начинай с плана: размер дисков, сеть, требования к безопасности.
- Используй ZVOL для серьезных нагрузок (VM, БД) и включай компрессию lz4 — она почти бесплатна по CPU.
- Настрой мониторинг свободного места, особенно при Thin Provisioning.
- Регулярно создавай снапшоты ZVOL через планировщик TrueNAS — это твоя страховка от случайного удаления или ransomware.
- Для максимальной производительности и безопасности выдели для iSCSI отдельный физический или виртуальный (VLAN) сетевой интерфейс.
Теперь у тебя есть не просто инструкция, а полная картина. Имплементируй, тестируй под нагрузкой и используй силу ZFS и iSCSI в своих проектах. Удачи!