Настройка iSCSI Target/Initiator для блочного хранилища

Если ваша база данных или кластерная файловая система тормозит из-за накладных расходов NFS, а Fibre Channel не вписывается в бюджет, iSCSI станет решением. Мы настраиваем iSCSI Target и Initiator под ключ — от простого LUN до отказоустойчивого multipath с CHAP и jumbo frames. Наша команда экспертов обеспечивает совместимость с VMware, Hyper-V и СУБД, а также последующую поддержку, чтобы вы получили надёжное блочное хранилище без срыва сроков.
Часто задаваемые вопросы

iSCSI — протокол, передающий SCSI-команды по TCP/IP, превращает Ethernet в канал блочного доступа. Типичная боль: файловая СУБД тормозит на NFS-шаре, потому что блокировки и FSYNC задерживаются. iSCSI даёт RAW-диск с минимальной латентностью — приложения видят его как локальный SCSI. Мы настраиваем Target и Initiator под ключ: от простого LUN до отказоустойчивого multipath с CHAP и jumbo frames. Сертифицированные инженеры с опытом 10+ лет гарантируют совместимость с VMware, Hyper-V, кластерными ФС, базами данных. Экономия на инфраструктуре: iSCSI на существующей сети Ethernet обходится в 3-5 раз дешевле Fibre Channel, а при оптимизации даёт до 200 000 IOPS. За 150+ проектов мы накопили лучшие практики для любых сценариев.

Почему iSCSI, а не NFS?

NFS работает на уровне файлов, добавляет накладные расходы и блокировки. iSCSI передаёт блочные команды SCSI поверх TCP/IP, предоставляя клиенту RAW-диск. Это критично для баз данных (PostgreSQL, MySQL), кластерных ФС (GFS2, OCFS2) и виртуализации (KVM, Hyper-V). Согласно RFC 7143, iSCSI обеспечивает блочный доступ с минимальной задержкой. В тестах fio iSCSI на SSD-массивах показывает в 2-3 раза выше IOPS на случайной записи, чем NFS при той же сети.

Какие типичные проблемы решает iSCSI?

Первая — высокая латентность при работе с базами данных через NFS. Вторая — необходимость прямого доступа к блокам для кластерных ФС (GFS2, OCFS2) или СУБД с собственным менеджментом кэша. Третья — бюджетные ограничения: Fibre Channel дорог, а iSCSI работает поверх существующей Ethernet-инфраструктуры. Четвёртая — миграция с физических серверов на виртуализацию: iSCSI позволяет подключать блочные тома к гостевой ОС без дополнительного software.

Как настроить target на Linux с помощью targetcli

Устанавливаем targetcli: apt install targetcli-fb. Создаём блочные хранилища и target:

/> backstores/block create name=lun-db dev=/dev/sdb
/> backstores/block create name=lun-app dev=/dev/sdc
/> iscsi/ create iqn.2024-01.com.example:storage01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/luns create /backstores/block/lun-db
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/luns create /backstores/block/lun-app
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls create iqn.2024-01.com.example:dbserver01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls create iqn.2024-01.com.example:appserver01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/portals delete ip_address=0.0.0.0 ip_port=3260
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/portals create 192.168.20.10 3260
/> saveconfig

Выделите iSCSI на отдельный VLAN — трафик хранилища не конкурирует с application-трафиком. Автозапуск: systemctl enable --now rtslib-fb-targetctl. Для повторяемых развёртываний мы используем Ansible — конфигурация версионируется в Git и воспроизводится за минуты.

Как защитить iSCSI с помощью CHAP?

Без CHAP любой initiator с нужным IQN получает доступ. Настраиваем взаимную аутентификацию:

/> iscsi/iqn.2024-01.com.example:storage01/tpg1 set attribute authentication=1
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls/iqn.2024-01.com.example:dbserver01/ set auth userid=dbserver01
/> iscsi/iqn.2024-01.com.example:storage01/tpg1/acls/iqn.2024-01.com.example:dbserver01/ set auth password=сложный-пароль-16+символов
/> saveconfig

Пароль должен быть не менее 16 символов — это блокирует подбор.

Как настроить initiator

На клиентском сервере:

apt install open-iscsi
# задаём IQN в /etc/iscsi/initiatorname.iscsi:
InitiatorName=iqn.2024-01.com.example:dbserver01
# CHAP в /etc/iscsi/iscsid.conf:
node.session.auth.authmethod = CHAP
node.session.auth.username = dbserver01
node.session.auth.password = сложный-пароль-16+символов
# обнаружение и подключение:
iscsiadm -m discovery -t sendtargets -p 192.168.20.10:3260
iscsiadm -m node -T iqn.2024-01.com.example:storage01 -p 192.168.20.10:3260 --login
# автоподключение:
iscsiadm -m node -T iqn.2024-01.com.example:storage01 -p 192.168.20.10:3260 --op update -n node.startup -v automatic
systemctl enable iscsid open-iscsi

После подключения проверяем сессию: iscsiadm -m session -P3 и видим новый диск в lsblk.

Как настроить multipath для отказоустойчивости

Если target доступен по двум сетевым интерфейсам, настраиваем multipath для автоматического переключения:

apt install multipath-tools
# /etc/multipath.conf:
defaults {
    user_friendly_names yes
    path_grouping_policy failover
    failback immediate
    no_path_retry 5
}
blacklist {
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
}
multipaths {
    multipath {
        wwid 360000000000000001
        alias db-storage
    }
}
systemctl enable --now multipathd
multipath -ll

После настройки работаем с /dev/mapper/db-storage — при отказе одного пути multipath переключает на другой с временем failover менее 1 секунды.

Как оптимизировать производительность iSCSI

Для раскрытия потенциала SSD-массивов настраиваем jumbo frames (MTU 9000) на storage VLAN. Параметры сессии увеличивают глубину очереди:

ip link set eth1 mtu 9000
# в /etc/iscsi/iscsid.conf:
node.session.cmds_max = 1024
node.session.queue_depth = 128
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 5

Эти настройки увеличивают пропускную способность до 40% на больших блоках. При правильной конфигурации iSCSI даёт задержки < 1 мс, что сравнимо с Fibre Channel. Дополнительно можно применить iSCSI Direct Connect для изолированных сред.

Типичные ошибки при настройке iSCSI

  • Использование MTU 1500 без jumbo frames на storage VLAN — падение IOPS на 20-30%.
  • Отсутствие CHAP — риск несанкционированного доступа.
  • Один сетевой путь без multipath — единая точка отказа.
  • Слишком короткие пароли CHAP (< 16 символов) — легко подбираются.
  • Неправильная конфигурация дисков на target (write-back vs write-through) — для критичных данных только write-through.
Сравнение iSCSI NFS Fibre Channel
Уровень доступа блочный файловый блочный
Типичная задержка < 1 мс 1-5 мс < 0.5 мс
Стоимость низкая низкая высокая
Поддержка кластерных ФС да нет да

Когда стоит выбрать iSCSI вместо Fibre Channel?

Fibre Channel даёт минимальную задержку и изоляцию, но требует дорогого оборудования. iSCSI на 10GbE с правильной настройкой приближается по характеристикам, но обходится в 3-5 раз дешевле. Если в инфраструктуре уже есть Ethernet-коммутаторы с поддержкой jumbo frames и энергонезависимых очередей, iSCSI — экономичное решение. Для сред с критичной латентностью (< 0.5 мс) по-прежнему лучше Fibre Channel, но для большинства задач хватит iSCSI.

Что входит в настройку iSCSI

Этап Результат
Аудит текущей сети и нагрузок Отчёт с рекомендациями по VLAN, MTU, сетевым интерфейсам
Проектирование схемы LUN и ACL Карта доступов по IQN и CHAP
Реализация target+initiator Работающее хранилище с multipath (при необходимости)
Интеграция с вашим кластером Настройка Pacemaker/Corosync для автоматического переключения target
Тестирование производительности Нагрузочное тестирование (fio) с замерами IOPS и латентности
Документация и обучение Runbook по обслуживанию, описание аварийных процедур

Ориентировочные сроки: от 1 дня (базовая конфигурация) до 4 дней (с кластером). Стоимость рассчитывается после аудита. Свяжитесь с нами — оценим вашу инфраструктуру и предложим оптимальную конфигурацию. Гарантируем: все настройки покрыты документацией, конфигурации воспроизводимы через Ansible (по запросу). Закажите аудит iSCSI-инфраструктуры — получите детальный план миграции и расчёт производительности.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142