iSCSI — что это, как подключить блочное устройство | Глоссарий FREEHOSTING

iSCSI

Internet Small Computer Systems Interface
iSCSI — Протокол передачи SCSI-команд поверх TCP/IP. Позволяет подключать удалённые блочные устройства как локальные диски через обычную IP-сеть. Альтернатива Fibre Channel в SAN-инфраструктуре без специализированного оборудования.

Определение простыми словами

iSCSI (Internet Small Computer Systems Interface) — это протокол, который заворачивает SCSI-команды в TCP-пакеты и отправляет их по обычной IP-сети. На стороне сервера хранения работает target, на стороне клиента — initiator. Для операционной системы iSCSI-LUN выглядит как локальный блочный диск: его можно разбивать на разделы, форматировать в ext4/XFS/NTFS, использовать под виртуальные машины и базы данных. Альтернатива дорогой Fibre Channel SAN на обычном Ethernet.

Протокол использует порт 3260/TCP. Авторизация через CHAP, опционально шифрование через IPsec. В отличие от файловых протоколов NFS и SMB, которые отдают файловую систему, iSCSI отдаёт сырые блоки — клиент сам решает, как их использовать. Это критично для кластеров VMware, Hyper-V, Proxmox и для систем с собственной файловой системой типа ZFS.

Сравнение

Протокол Уровень Среда Применение
iSCSI Блочный TCP/IP, Ethernet SAN на стандартной сети
Fibre Channel Блочный FC HBA, FC switch Корпоративные SAN
NFS Файловый TCP/IP Общие файлы Linux/Unix
SMB Файловый TCP/IP Сетевые шары Windows

Кейсы использования

  • Подключение СХД к узлам гипервизора в кластере Proxmox VE или ESXi для shared storage.
  • Бэкап-таргеты Veeam, Bacula, Bareos на отдельный сторадж по iSCSI.
  • Расширение локального диска сервера за счёт удалённого LUN без замены оборудования.
  • Лабораторные стенды: один target обслуживает несколько initiator-ов, экономит место.
  • Негативный сценарий: чувствителен к качеству сети — потери пакетов и высокая latency приводят к задержкам ввода-вывода и зависшим сессиям. Под продакшен — отдельный VLAN, jumbo frames, multipath.

Технические детали

Минимальный target на Linux через targetcli и подключение initiator:

apt install targetcli-fb open-iscsi
targetcli
/> /backstores/fileio create disk1 /var/lib/iscsi/disk1.img 50G
/> /iscsi create iqn.2026-05.ru.example:storage.disk1
/> /iscsi/iqn.2026-05.ru.example:storage.disk1/tpg1/luns create /backstores/fileio/disk1
/> /iscsi/iqn.2026-05.ru.example:storage.disk1/tpg1/acls create iqn.2026-05.ru.example:client01
/> saveconfig
iscsiadm -m discovery -t st -p 10.0.0.10
iscsiadm -m node -T iqn.2026-05.ru.example:storage.disk1 -p 10.0.0.10 -l
lsblk

На стороне клиента после login появится новое блочное устройство /dev/sdX. Дальше — partprobe, mkfs, монтирование. Для отказоустойчивости включают multipath-tools и ходят к target по двум независимым сетевым путям.

Частые вопросы

Чем iSCSI отличается от NFS?

iSCSI отдаёт сырые блоки, клиент сам форматирует и обслуживает файловую систему. NFS работает на уровне файлов: сервер сам управляет ФС, клиент монтирует готовый каталог.

Можно ли использовать iSCSI без специальной сети?

Да, поверх обычного Ethernet. Но для продакшена с виртуализацией крайне желательно выделить отдельный VLAN или физическую сеть, включить jumbo frames и multipath.

Какой порт использует iSCSI?

Стандартный порт 3260/TCP для соединения initiator с target. Опционально 860/TCP для iSCSI с TLS. Для безопасной передачи поверх публичных сетей iSCSI оборачивают в IPsec или VPN.