ISCSI
Наиболее детальное описание iSCSI можно найти в [4] и [5]. Использование протокола TCP/IP напрямую для блочного обмена данными между устройствами усложняется тем, что при решении этой задачи нужно объединить вместе две противоположные по своим изначальным свойствам среды. Среда SCSI по определению обеспечивает надежный и безопасный обмен информацией между устройствами хранения. TCP/IP, напротив, задуман для работы в ненадежных по своей природе сетях. Преодоление этого противоречия и составляет основную инженерную задачу, решаемую при создании iSCSI. В привычном параллельном варианте SCSI шинное подключение снимает вопросы о целостности данных и информационной безопасности. К тому же шина исключает и проблемы, связанные с установлением взаимодействия между участвующими в обмене данными устройствами. Совсем иные условия предполагает переход к сетям TCP/IP. Чтобы контролировать передачу данных по потенциально ненадежной сети, в iSCSI необходима избыточность, необходимо вместе с командами SCSI дополнительно передавать служебную информацию. Используя ее, оборудование, работающее по протоколу iSCSI, осуществляет мониторинг блочной передачи, корректность завершения операций ввода/вывода и обработку ошибок. Кроме того, возникает потребность в некоторой системе взаимодействия между устройствами посредством назначения им имен, чтобы устройства могли находить друг друга. Наконец, возникает и еще одна неожиданная задача: обеспечение безопасности.
Таким образом, технологию iSCSI можно свести к четырем базисным составляющим.
- Управление именами и адресами (iSCSI Address and Naming Conventions). В среде iSCSI, подчиняющейся стеку протоколов IP, действуют два типа устройств, которые называют инициаторами (iSCSI initiator) и целевыми устройствами (iSCSI target). В качестве первых чаще всего выступают компьютеры-серверы, а вторых — дисковые массивы или ленточные библиотеки. С точки зрения iSCSI инициатор — это клиент, а целевое устройство, обслуживающее его, — сервер. Собственно среду передачи образуют коммутаторы Gigabit Ethernet и/или маршрутизаторы IP.
Подобно обычной реализации IP, подключенное к сети устройство автономно находит партнера для обмена данными и осуществляет подключение к нему. До сих пор нечего иного, чем адресная система, для этой цели человечество еще не придумало, следовательно, нужна адресная книга, и инициатор должен иметь к ней доступ. Книга содержит список IP-адресов целей, по ней инициатор может просматривать таблицу устройств типа DNS в сети. Работа с именами определена службой имен устройств хранения iSNS (Internet Storage Name Service). По соглашению (iSCSI naming convention) допускаются имена устройств с потенциальной длиной до 255 байт, но не все это имя iSCSI полностью используется для маршрутизации. Для маршрутизации разработана схема комбинированного использования IP-адреса и номера портов. Любое устройство идентифицируется как узел (iSCSI Node) внутри сетевой единицы (Network Entity), которая доступна из сети. Несколько узлов могут быть собраны в портал (Network Portal), которому назначается IP-адрес, а внутри устройства дифференцируются по номерам портов TCP. Но при этом устройство имеет еще и свое уникальное имя. В итоге получается довольно гибкая схема, которая позволяет изменять «конфирмацию» (т.е. при перемещении меняются IP-адрес и порт TCP), но остается возможность установления связи с устройством и сохранение изменившихся адресов. Имена iSCSI сохраняют читаемую форму, но для удобства работы операторов к тому же можно присваивать «клички» (alias name option). - Управление сеансом (iSCSI Session Management). Сеанс iSCSI состоит из трех фаз. Она начинается с фазы iSCSI Login Phase, на которой специальной программой, обеспечивающей безопасность, проверяются аутентификационные параметры двух сетевых единиц и, если фаза прошла успешно, целевое устройство сообщает инициатору о своей готовности, иначе сеанс прерывается. Эта процедура в реальности может быть намного сложнее. За ней следует фаза нормального обмена транзакциями, называемая Full Feature. Завершается работа командой iSCSI.
- Обработка ошибок (iSCSI Error Handling). Для того чтобы обеспечить безошибочную передачу данных в условиях ненадежной среды, оба типа устройств — и инициатор, и целевое — имеют буфер, содержимое которого сохраняется до тех пор, пока не будет получено сообщение, подтверждающее успешное завершение транзакции.
- Обеспечение безопасности (iSCSI Security). Спецификация iSCSI допускает различные методы обеспечения безопасности.Шифрование, расположенное уровнем ниже iSCSI (такое как IPSec), будет прозрачным для верхних уровней. Сервер iSNS может использоваться в качестве репозитория для открытых ключей.