Открыть сервис

iSCSI

iSCSI (Internet Small Computer System Interface) — это сетевой протокол, основанный на стеке TCP/IP, который позволяет передавать команды и данные протокола SCSI (Small Computer System Interface) по сетям Ethernet. По сути, iSCSI реализует технологию хранения данных (SAN, Storage Area Network), используя стандартную инфраструктуру IP-сетей, что позволяет подключать удалённые блочные устройства хранения (например, дисковые массивы) к серверам так, как если бы они были локальными дисками.

История и развитие

Протокол iSCSI был разработан для решения задачи создания недорогих и гибких сетей хранения данных. Традиционные SAN, построенные на протоколе Fibre Channel (FC), требовали специализированного дорогостоящего оборудования (коммутаторы, HBA-адаптеры) и сложной инфраструктуры. iSCSI, напротив, позволял использовать уже существующую Ethernet-инфраструктуру и стандартные сетевые карты.

Основные вехи развития протокола:

  • 2000 год: Первые черновики спецификации были представлены компаниями IBM и Cisco.
  • 2003 год: Протокол был ратифицирован как стандарт RFC 3720 (Internet Engineering Task Force, IETF). Это стало ключевым моментом, определившим его дальнейшее распространение.
  • 2004-2008 годы: Активное внедрение iSCSI в корпоративных ЦОДах. Появление специализированных аппаратных адаптеров (TOE-карты, iSCSI HBA) и интеграция поддержки в операционные системы (Windows, Linux, VMware).
  • 2010-е годы: Массовое распространение iSCSI в среднем и малом бизнесе, а также в облачных инфраструктурах. Протокол стал стандартом де-факто для построения недорогих SAN.
  • Настоящее время: iSCSI продолжает развиваться, появляются улучшенные реализации (например, iSER — iSCSI Extensions for RDMA), обеспечивающие более высокую производительность за счёт использования технологий прямого доступа к памяти (RDMA).

Архитектура и принцип работы

iSCSI работает по модели «клиент-сервер», где инициатор (Initiator) — это клиент (обычно сервер), а цель (Target) — это сервер хранения данных (дисковый массив или сервер с соответствующим ПО).

Основные компоненты

  • Инициатор (iSCSI Initiator): Программный или аппаратный компонент на стороне сервера, который инициирует соединение и отправляет SCSI-команды. Программный инициатор — это драйвер, который эмулирует SCSI-устройство, используя обычную сетевую карту. Аппаратный инициатор (iSCSI HBA) — это специализированная сетевая карта, выполняющая обработку протокола на аппаратном уровне, снижая нагрузку на центральный процессор.
  • Цель (iSCSI Target): Серверное приложение или специализированное устройство (например, дисковая полка), которое предоставляет блочные устройства (LUN — Logical Unit Number) для доступа по сети.
  • Сеть: Стандартная Ethernet-сеть (1 GbE, 10 GbE, 25 GbE, 40 GbE и выше). Для повышения производительности и надёжности часто используются выделенные VLAN и изолированные сети хранения.

Процесс соединения

  1. Обнаружение (Discovery): Инициатор отправляет запрос на обнаружение целей. Это может происходить через статическую конфигурацию (IP-адрес цели) или с помощью службы iSNS (Internet Storage Name Service), которая выступает в роли каталога доступных целей.
  2. Аутентификация и логин: Инициатор и цель устанавливают сессию. Для аутентификации могут использоваться CHAP (Challenge-Handshake Authentication Protocol) или более сложные схемы (например, SRP — Secure Remote Password). В рамках одной сессии может быть несколько соединений (connections) для увеличения пропускной способности (MPIO — Multipath I/O).
  3. Передача данных: После установления сессии инициатор отправляет SCSI-команды (например, READ, WRITE, INQUIRY), упакованные в iSCSI Protocol Data Units (PDUs). Эти PDU инкапсулируются в TCP-сегменты и передаются по IP-сети.
  4. Завершение сессии: После завершения работы инициатор или цель могут разорвать соединение.

Классификация и реализации

По типу инициатора

  • Программный (Software Initiator): Наиболее распространённый тип. Реализуется в виде драйвера в ОС (например, iscsiadm в Linux, Microsoft iSCSI Initiator в Windows). Не требует дополнительных аппаратных затрат, но создаёт нагрузку на CPU при обработке протокола.
  • Аппаратный (Hardware Initiator / iSCSI HBA): Специализированная сетевая карта, которая берёт на себя обработку протокола iSCSI и TCP/IP. Обеспечивает более высокую производительность и меньшую задержку, особенно при работе с большими объёмами данных. Часто используется в высоконагруженных системах.

По типу цели

  • Программная (Software Target): Реализация цели в виде приложения на стандартном сервере (например, tgt в Linux, Windows iSCSI Target Server). Позволяет превратить обычный сервер в недорогое хранилище.
  • Аппаратная (Hardware Target / Storage Array): Специализированное устройство (дисковый массив), которое изначально спроектировано для работы в качестве iSCSI-цели. Обычно имеет собственные контроллеры, кэш-память и поддержку RAID.

Преимущества и недостатки

Преимущества

  • Низкая стоимость: Использует стандартное Ethernet-оборудование, что значительно дешевле Fibre Channel.
  • Простота развёртывания и управления: Не требует специальных навыков прокладки и настройки FC-сетей.
  • Гибкость и масштабируемость: Легко интегрируется в существующую IP-инфраструктуру. Можно использовать существующие коммутаторы и маршрутизаторы.
  • Поддержка на уровне ОС: Встроенная поддержка в большинстве современных операционных систем (Windows, Linux, macOS, VMware ESXi).
  • Удалённый доступ: Позволяет подключать хранилища через глобальные сети (WAN), что удобно для резервного копирования и аварийного восстановления.

Недостатки

  • Производительность: Уступает Fibre Channel по задержкам (latency) и пропускной способности при равных условиях, особенно при использовании программных инициаторов и стандартных сетевых карт. Однако современные технологии (10GbE, 25GbE, RDMA) значительно сокращают этот разрыв.
  • Нагрузка на CPU: Программные инициаторы потребляют ресурсы центрального процессора для обработки протокола.
  • Безопасность: Данные передаются по IP-сети, что требует дополнительных мер защиты (шифрование, изолированные VLAN, аутентификация CHAP).
  • Зависимость от сети: Производительность и надёжность напрямую зависят от качества Ethernet-инфраструктуры (перегрузки, потеря пакетов).

Применение

iSCSI широко используется в различных сценариях:

  • Корпоративные ЦОДы: Для организации недорогих SAN для серверов приложений, баз данных и виртуализации (VMware vSphere, Microsoft Hyper-V).
  • Малый и средний бизнес: Как альтернатива DAS (Direct Attached Storage) для централизованного хранения данных.
  • Облачные вычисления: Провайдеры облачных услуг (например, Amazon AWS с EBS, Microsoft Azure) используют iSCSI для предоставления блочных дисков виртуальным машинам.
  • Резервное копирование и аварийное восстановление: Организация удалённого копирования данных на резервные хранилища.
  • Видеонаблюдение: Хранение видеопотоков с IP-камер на централизованном дисковом массиве.

Сравнение с альтернативами

ХарактеристикаiSCSIFibre Channel (FC)NFS / CIFS
Уровень доступаБлочный (Block)Блочный (Block)Файловый (File)
СетьEthernet (IP)Fibre Channel (специализированная)Ethernet (IP)
СтоимостьНизкаяВысокаяНизкая
ПроизводительностьСредняя (зависит от сети)Высокая (низкая задержка)Средняя (зависит от протокола)
СложностьСредняяВысокаяНизкая
Типичное применениеSAN, виртуализация, бэкапВысоконагруженные СУБД, SANФайловые хранилища, домашние сети

Интересные факты

  • Название протокола — это аббревиатура, где буква «i» означает «Internet», подчёркивая его основное отличие от классического SCSI — использование IP-сетей.
  • Несмотря на то, что iSCSI часто называют «Fibre Channel для бедных», современные реализации с использованием 25GbE и RDMA могут достигать производительности, сопоставимой с Fibre Channel 16Gb.
  • Протокол iSCSI поддерживает механизм Multipath I/O (MPIO), позволяющий использовать несколько сетевых путей между инициатором и целью для увеличения пропускной способности и отказоустойчивости.

Источники

  1. RFC 3720 — Internet Small Computer Systems Interface (iSCSI). IETF, 2004.
  2. RFC 7143 — Internet Small Computer System Interface (iSCSI) Protocol (Consolidated). IETF, 2014.
  3. Том Кларк. «Хранилища данных для чайников». 2-е издание. 2015.
  4. Документация Microsoft по iSCSI Initiator и iSCSI Target Server.
  5. Документация Linux по iSCSI (iscsiadm, tgt).
  6. Материалы VMware по настройке iSCSI-хранилищ.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →