iSCSI - протокол для организации сетевого хранилища, что такое инициатор и цели iSCSI

iSCSI: как устроен протокол для организации сетевого хранилища

Рассказываем про работу с сетевым хранилищем с помощью протокола iSCSI. Разбираемся, как устроен интерфейс, какие существуют аналоги и как построить iSCSI SAN.

Изображение записи

Рассказываем про работу с сетевым хранилищем с помощью протокола iSCSI. Разбираемся, как устроен интерфейс, какие существуют аналоги и как построить iSCSI SAN.

Что такое протокол iSCSI, интерфейс малых компьютерных систем интернета

iSCSI расшифровывается как Internet Small Computer System Interface, или интерфейс малых компьютерных систем интернета. Это транспортный протокол, обеспечивающий передачу протокола хранения данных SCSI по TCP/IP через сетевое соединение, которым обычно является Ethernet. iSCSI работает как метод организации распределенных хранилищ.

Наиболее распространенным способом использования iSCSI является TCP/IP через Ethernet. Также используется как расширение для удаленного прямого доступа к памяти (RDMA). В таком случае протокол называется iSER — iSCSI Extensions for RDMA. В его задачах — управление передачи данными непосредственно в буферы памяти компьютера SCSI, соединяющие компьютеры с устройствами хранения данных, и обратно без промежуточных копий данных и значительного вмешательства процессора.

Как устроено сетевое хранилище iSCSI

Инициатор iSCSI

Сеть хранения данных (SAN) iSCSI использует коммутацию Ethernet TCP/IP третьего уровня. Она отображает протокол SCSI для хранения данных в TCP/IP и превращает его в пакеты Ethernet. По сути, iSCSI позволяет инициатору и целевой системе договариваться и обмениваться командами SCSI, используя сети TCP/IP. Сеть хранения данных iSCSI эмулирует прямое подключение SCSI-целей через локальную сеть.

Существует три основных аппаратных компонента iSCSI SAN: 

  • инициаторы или сетевые карты хранения iSCSI — специализированные сетевые интерфейсные карты для связи iSCSI, 
  • стандартные сетевые коммутаторы Ethernet, 
  • целевые сетевые карты хранения на внешних массивах.

Настройка цели iSCSI 

Порты инициатора и цели iSCSI бывают трех видов. Первый, наиболее распространенный вариант реализации, использует программный инициатор, где вся обработка протокола осуществляется центральным процессором хоста.

Второй вариант — разделенная стековая нагрузка TCP/IP, при которой около 80% стандартной обработки пакетов TCP/IP выполняется в сетевой карте хранилища, обработка исключений выполняется стеком TCP/IP-хоста.

Третий вид — полная выгрузка стека TCP/IP, при которой вся обработка протоколов TCP/IP выполняется сетевой картой. С ростом числа процессорных ядер потребность в механизме разгрузки TCP/IP (TOE) на базе сетевой карты резко снизилась.

В среде iSCSI LUN — это пронумерованные накопители на дисках, секции жесткого диска. Инициатор обменивается с исполнителем запросами и ответами для установления связи с LUN.

Работа c iSCSI

Управление именами и адресами

Адреса хостов и портов целевого хранилища основаны на TCP/IP. Для идентификации инициаторов и целей используют специальные форматы имен iSCSI: квалифицированное имя iSCSI (IQN) или расширенный уникальный идентификатор (EUI).

Поддержка сессий и управление ими

iSCSI-сессия состоит из двух фаз: аутентификации (Login Phase) и обмена (Full Feature Phase).

Login Phase нужна для подтверждения права доступа и согласования параметров между инициатором и получателем. При успешной аутентификации получатель подтверждает доступ инициатору, иначе TCP-соединение прерывается.

После аутентификации сессия iSCSI переходит ко второй фазе. При установлении нескольких TCP-линков iSCSI требует, чтобы каждая пара «команда/ответ» проходила через одно и то же TCP-соединение. За счет чего каждая команда записи или считывания осуществляется без необходимости дополнительно отслеживать прохождение запросов по разным потокам.

В конце фазы обмена сессия закрывается командой iSCSI logout. Эта команда передает информацию о причинах завершения сессии и о том, какой ТСР-линк следует закрыть в случае возникновения ошибки.

Обработка ошибок

Инициатор и получатель iSCSI должны иметь буфер команд для подтверждения их выполнения. Также у них есть возможность восстановить утраченный блок данных IP-пакета (PDU) для восстановления сеанса передачи данных.

Средства обработки ошибок и восстановление в iSCSI включают:

  • выявление ошибок и восстановление данных на сеансовом уровне —  например, повторение передачи утраченного PDU,
  • при повреждении TCP-линка оба узла iSCSI пытаются восстановить соединение,
  • при повреждении сессии iSCSI протокол закрывает все TCP-линки, прерывает выполнение задач, отменяет невыполненные SCSI команд и перезапускает сессию.

Обеспечение безопасности

Главные меры безопасности iSCSI: 

  • протокол аутентификации Challenge-Handshake Authentication Protocol (CHAP) — алгоритм проверки подлинности, предусматривающий передачу не самого пароля пользователя, а косвенных сведений о нем,
  • Internet Protocol Security (IPsec) — набор протоколов, обеспечивающий защиту данных, которые передаются по межсетевому протоколу IP; проводит аутентификацию, проверку целостности и шифрование IP-пакетов.

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

iSCSI обеспечивает хорошую производительность блочного хранилища наряду с низкой стоимостью — это основное преимущество iSCSI. Он также широко поддерживается всеми основными операционными системами и гипервизорами и может работать на стандартных сетевых картах или специализированных адаптерах шины хоста (iSCSI HBA).

Почти все корпоративные массивы хранения данных осуществляют поддержку iSCSI. По этим причинам она пользуется популярностью в Tier-2 приложениях, которым требуется хорошая, но не лучшая производительность блочного хранилища, а также в системах хранения данных (СХД), совместно используемых многими хостами. Также iSCSI популярен среди гиперскейлеров и крупных поставщиков облачных услуг, когда им требуется решение для блочного хранения данных, работающее через Ethernet.

Еще одна «особенность» iSCSI — протокол немного выше конкурентов по задержке. Главный конкурент — Fibre Channel — опережает iSCSI по надежности и производительности. В то же время FC — более дорогое решение.

iSCSI vs Fibre Channel (FC)

Сети iSCSI SAN функционально похожи на Fibre Channel. Главное отличие — протокол FC использует интенсивный ручной детерминированный протокол второго уровня — все соединения должны быть определены и отображены вручную заранее. iSCSI опирается на недетерминированный автоматизированный протокол TCP/IP для обнаружения, маршрутизации и коммутации.

iSCSI vs Network-attached storage (NAS)

Трафик iSCSI может передаваться через общую сеть или выделенную сеть хранения данных. Однако iSCSI не поддерживает файловый доступ Network Attached Storage (NAS) или доступ к объектному хранилищу, поскольку они используют разные транспортные протоколы.

Как построить iSCSI SAN?

Хранилище iSCSI — экономичная альтернатива традиционной FC SAN, которой требуется выделенное оборудование, такое как специальные хост-адаптер шины и коммутатор. iSCSI SAN может быть построено на уже существующей сетевой инфраструктуре и не потребует покупки дополнительного оборудования.

СХД iSCSI основана на универсальной TCP/IP, поэтому разные фирменные сетевые устройства хранения данных в iSCSI SAN могут быть совместимы. Лучше всего использовать неблокирующий коммутатор Gigabit Ethernet корпоративного класса, поскольку устройство ниже уровнем не поддерживает соединения между несколькими портами на скорости проводной сети. Из-за этого коммутатор может отбрасывать пакеты без уведомления. 

1GbE подключения к коммутатору Ethernet для доступа к дисковым массивам уязвимы для сбоя на этом канале. Для создания нескольких подключений от инициатора iSCSI каждого сервера к дисковому массиву больше всего подойдет техника многопутевого ввода-вывода (MPIO). 

В заключение о технологии

Сравнивая две самые популярные технологии для сетей хранения — Fibre Channel и iSCSI, стоит отталкиваться от ваших задач. Если вам нужна очень низкая задержка, высокая масштабируемость и много узлов в сети, вы можете выбрать FC. Если крайне низкая задержка вам не нужна и нужно более простое и дешевое решение, подойдет iSCSI.