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 и изолированные сети хранения.
Процесс соединения
- Обнаружение (Discovery): Инициатор отправляет запрос на обнаружение целей. Это может происходить через статическую конфигурацию (IP-адрес цели) или с помощью службы iSNS (Internet Storage Name Service), которая выступает в роли каталога доступных целей.
- Аутентификация и логин: Инициатор и цель устанавливают сессию. Для аутентификации могут использоваться CHAP (Challenge-Handshake Authentication Protocol) или более сложные схемы (например, SRP — Secure Remote Password). В рамках одной сессии может быть несколько соединений (connections) для увеличения пропускной способности (MPIO — Multipath I/O).
- Передача данных: После установления сессии инициатор отправляет SCSI-команды (например, READ, WRITE, INQUIRY), упакованные в iSCSI Protocol Data Units (PDUs). Эти PDU инкапсулируются в TCP-сегменты и передаются по IP-сети.
- Завершение сессии: После завершения работы инициатор или цель могут разорвать соединение.
Классификация и реализации
По типу инициатора
- Программный (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-камер на централизованном дисковом массиве.
Сравнение с альтернативами
| Характеристика | iSCSI | Fibre 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), позволяющий использовать несколько сетевых путей между инициатором и целью для увеличения пропускной способности и отказоустойчивости.
Источники
- RFC 3720 — Internet Small Computer Systems Interface (iSCSI). IETF, 2004.
- RFC 7143 — Internet Small Computer System Interface (iSCSI) Protocol (Consolidated). IETF, 2014.
- Том Кларк. «Хранилища данных для чайников». 2-е издание. 2015.
- Документация Microsoft по iSCSI Initiator и iSCSI Target Server.
- Документация Linux по iSCSI (iscsiadm, tgt).
- Материалы VMware по настройке iSCSI-хранилищ.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →