Протокол iSCSI впервые был предложен компанией Cisco в 2001 г. В 2004 году протокол был стандартизован IETF в RFC 3720.
iSCSI создан для переноса протокола SCSI (Small Computer Systems Interface), который работал на сети Fibre Channel (FC), в сеть TCP/IP. То есть, iSCSI – это транспортный протокол SCSI для отображения блочного хранилища через сеть TCP/IP.
Методы организации сетевых распределенных хранилищ
Существует три основных метода организации сетевых распределенных хранилищ:
- FC SAN со SCSI;
- NAS;
- iSCSI.
FC SAN очень популярен из-за своей высокой производительности, высокой дальности передачи, возможности работать с данными на уровне блоков, широкого диапазона масштабирования. Недостатки FC SCSI SAN: сложность, высокая стоимость оборудования и обслуживания.
NAS позволяет подключать накопители непосредственно к существующей сети Ethernet. NAS проще и дешевле, но медленнее FC SAN. Транспорт данных в NAS работает на файловом уровне, а не блочном, как в SAN, что существенно замедляет работу таких приложений, как серверы баз данных. По мере увеличения устройств хранения в NAS начинают возникать проблемы масштабирования и управления.

Сравнение методов организации распределенного хранения: FC SAN, NAS и iSCSI SAN (источник: SNIA)
iSCSI дает возможность получать универсальный доступ к накопителям и сетям SAN через Ethernet-сеть с протоколом TCP/IP. Эта сеть может быть как выделенной, так и с работающими на ней другими приложениями. Кроме того, могут быть также добавлены маршрутизаторы и/или коммутаторы сети WAN (wide-area LAN network, не путать с WLAN), чтобы расширить IP-сеть хранения данных для глобальной сети (wide area network) для таких приложений, как удаленное резервирование данных (синхронное или асинхронное) или архивирование на ленточные библиотеки.
Для переноса файлов по IP-сети используется файловая система NFS для распределенных систем хранения. Это дает возможность общего доступа к файлам по многим системам.
В сетях WAN протокол TCP обеспечивает надежность хранения данных, позволяет регулировать перегрузку каналов сети, а также использовать возможности TCP по повторной передачи пакетов, в случае потери пакетов или их задержке на больших дальностях передачи по сети WAN.
Преимущества iSCSI
- IP-протокол и промежуточное ПО (middleware) для управления, безопасности и качества сервиса QoS (quality of service) могут быть использованы в сетях SAN.
- Компетенции и опыт пользователя в IP-сетях LAN (local-area network) могут быть применены к сетям SAN на базе IP.
- За счет использования стандартной IP-инфраструктуры, продуктов и сервисов может быть получена значительная экономия при создании сетей хранения SAN, основным недостатком которых являлась сложность проектирования, недостаточная совместимость и дороговизна развертывания, в то время как iSCSI может существенно сократить эти затраты.
- Гигабитные Ethernet коммутаторы могут повысить быстродействие SAN, уменьшить число ошибок, могут контролировать параметры потоков. Таким образом, можно обеспечить оптимальные скорости передачи через локальные сети LAN, глобальные WAN, и городские MAN (metropolitan-area networks).
- iSCSI совместим с существующей инфраструктурой Ethernet и IP WAN, а также с множеством других существующих и будущих IP-протоколов.
- Единая транспортная технология для сетей хранения, серверов и клиентов в сетях LAN, WAN, SAN.
- Возможность географического распределения систем хранения
- Возможность использовать средства управления TCP/IP сетями.
iSCSI может обеспечить хорошие параметры работы блочного хранилища при низких затратах. Этот протокол поддерживается большинством операционных систем и гипервизоров и может работать через стандартные сетевые адаптеры или через специализированные адаптеры HBA (Host Bus Adapters). Кроме того, iSCSI поддерживается большинством корпоративных СХД, где работают приложения второго уровня (Tier 2), которые требуют хорошего, но не превосходного качества работы блочных СХД, а также в СХД, которые используют много хостов одновременно.
iSCSI также популярен среди крупных облачных провайдеров, там часто используются блочные хранилища, которые работают поверх Ethernet.

Стек протоколов iSCSI
Соединения в iSCSI
Для традиционного SCSI, работающего по сети Fibre Channel, существует сервис простых доменных имен (Simple Name Server), работающий с сотнями и тысячами устройств. Однако в сетях IP, устройств может быть гораздо больше.
В IP используется два механизма обнаружения устройств iSCSI.
- SLP (service locator protocol), позволяющий осуществлять автоматическую настройку ресурсов.
- Internet Simple Name Server, где принципы Simple Name Server для Fibre Channel были расширены для IP сетей.
Сессия iSCSI
iSCSI сессия состоит из фаз:
- аутентификации (Login Phase)
- обмена (Full Feature Phase).
Фаза аутентификации используется для подтверждения права доступа и согласования параметров между iSCSI-инициатором и iSCSI- получателем. Если фаза аутентификации iSCSI завершается успешно, получатель (target) подтверждает доступ инициатору, в противном случае, TCP-соединение прерывается.
После подтверждения доступа iSCSI сессия переходит к фазе обмена. Если было установлено несколько TCP-линков, протокол iSCSI требует, чтобы каждая пара «команда/ответ» проходила через одно и то же TCP-соединение, а не так, чтобы команда проходит через одно ТСР, а ответ – через другое. Такая процедура гарантирует, что каждая отдельная команда считывания или записи будет осуществляться без необходимости дополнительно отслеживать каждый запрос на предмет его прохождения по разным потокам. Однако, в рамках одной сессии несколько транзакций могут одновременно передаваться через несколько ТСР-линков.

Сессии и соединения в iSCSI (источник: SNIA)
Когда транзакция завершается, происходит последний обмен между инициатором и получателем, который подтверждает успешность передачи. Сессия закрывается командой iSCSI logout, передаваемой в конце фазы обмена. Эта команда также передает информацию о причинах завершения сессии. Она также может содержать информацию о том, какой ТСР-линк следует закрыть в случае возникновения ошибки.
Обработка ошибок
Поскольку при передаче по IP-сети (в особенности, WAN) возможны ошибки при передаче, протокол iSCSI содержит много средств по обработке ошибок.
Как инициатор, так и получатель (target) iSCSI должны иметь буфер команд, чтобы получать подтверждения их выполнения, а также они должны иметь возможность восстановления утраченного или испорченного блока данных IP-пакета (PDU) для восстановления сеанса передачи данных.
Средства обработки ошибок и восстановление в iSCSI включают:
- На низком уровне — определение ошибки и восстановление данных на уровне сеанса связи, например, повторение передачи утраченного или поврежденного PDU.
- На среднем уровне — при повреждении TCP-линка оба узла iSCSI пытаются восстановить соединение.
- На высоком уровне – при повреждении сессии iSCSI. Если восстановление корректно отрабатывается на других уровнях, то прерывания сессии, как правило, не требуется. Но если сессию восстановить не удается, то требуется закрытие всех TCP-линков, прерывание всех задач, отмена невыполненных SCSI команд и перезапуска сессии через повторный login.
Особенности iSCSI
При создании iSCSI SAN в той же сети TCP/IP, по которой передаются данные между серверами и рабочими станциями пользователей, могут возникнуть задержки и зависания приложений. Поэтому сети СХД, в общем, должны быть логически изолированы от других систем в рамках LAN или WAN, или даже созданы в виде отдельной коммутируемой сети. Но если пользователей в сети iSCSI немного (небольшая рабочая группа, например), то этим правилом можно пренебречь.
Следует также учесть, что, в случае использования обычных сетевых адаптеров, iSCSI создает нагрузку на процессор сервера, поскольку предусматривает упаковку команд и данных SCSI в пакеты TCP/IP, а также распаковку этих пакетов. Чтобы снизить нагрузку на сервер, можно использовать плату TCP Off-load Engine (TOE) или хост-адаптер iSCSI. В отличие от обычных сетевых плат, эти устройства сами обрабатывают протокол TCP/IP-вычисления на своем процессоре.
Так Fibre Channel или iSCSI?
Подводя итог, можно провести сравнение двух наиболее популярных технологий для сетей хранения: FC или iSCSI.
Fibre Channel, благодаря высокой производительности и надежности, долгое время рассматривался как стандартная технология для корпоративных SAN. Но FC SAN довольно дороги и сложны в развертывании и управлении.
iSCSI SAN стали набирать популярность, поскольку производительность IP-сетей выросла, и стала достаточной для компаний с ограниченным бюджетом. Более того, iSCSI SAN позволяет переиспользовать традиционные сетевые компоненты Ethernet для коннективности между хостами и устройствами хранения, что значительно снижает стоимость развертывания.
Поэтому выбор между двумя этих технологиями зависит от требований компании. FC SAN дают выигрыш в производительности, задержках и IOPS, а iSCSI SAN – проще и дешевле.
Таблица 1. Сравнение FC SAN и iSCSI SAN
Fibre Channel или iSCSI |
||
Сеть |
FC SAN |
iSCSI SAN |
Стоимость |
Оптика |
Ethernet |
Полоса |
Высокая |
Ниже, чем FC |
Производительность |
Высокая |
Ниже, чем FC, но для небольших компаний достаточна |
Накопители |
SCSI и FC, производительность и надежность |
SATA и SAS, высокая емкость и низкая стоимость |