iSCSI

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

iSCSI является стандартизованным протоколом по RFC 3720. В настоящее время имеется множество коммерческих и некоммерческих реализаций данного протокола.

iSCSI позволяет построить систему на любой достаточно быстрой физической основе, поддерживающей протокол IP. К примеру, Gigabit Ethernet или 10G Ethernet. Использование стандартного протокола позволяет применять стандартные средства контроля и управления потоком, плюс ко всему, значительно уменьшает стоимость оборудования по сравнению с сетями Fibre Channel.

Терминология

  • Инициатор (initiator) — iSCSI-клиент;
  • Таргет (target; иногда произносится как "тарджет") — iSCSI-сервер; предоставляет доступ к своим устройствам по iSCSI;
  • Обнаружение (discovery) — процесс, в ходе которого инициатору становятся известны доступные ему таргеты.

Методы обнаружения

  • iSNS (Internet Storage Name Service);
  • SendTargets (таргеты обнаруживаются через специальный адрес обнаружения - discovery-address;
  • Использование протокола SLP (Service Location Protocol);
  • Статическое указание.

Именование в iSCSI

  • IQN (iSCSI qualified name) – имя длиной до 255 символов в следующем формате: iqn..:. Пример: iqn.1998-01.com.mycompany:myserver.
  • EUI (extended unique identifier) – представляет имя с префиксом eui, до 16 символов длиной. Имя включает 24 бита, отведенных для названия компании (IEEE) и 40 бит для уникального ID, по типу серийного номера. Пример: eui.0123456789ABCDEF.

Реализация

Инициаторы (клиенты)

  • Для GNU/Linux (есть пакет в Debian GNU/Linux) — Open-iSCSI. Присутствует в стандартной сборке Linux с версии 2.6.16;
  • Microsoft iSCSI Software Initiator Version 2.08 (для Windows 2000/XP/2003 Server);
  • Реализация target для Linux (позволяет экспортировать устройство или файл как iSCSI target);
  • Бесплатная программная реализация target для Windows Server R2.

Кроме того, существует монолитный проект на основе BSD — OpenNAS. На основе FreeBSD 7.2 сделан FreeNAS (выступает как target и initiator). Аналог FreeNAS, но построенный на основе Linux — проект Openfiler (также может выступать как target, так и initiator).

Программное обеспечение

iSCSI в Linux

  • Open-iSCSI — инициатор iSCSI для Linux;
  • iSCSI Enterprise Target — программный таргет iSCSI для Linux.

В FreeBSD инициатор iSCSI входит в состав ядра, начиная с 7.0. Процедура использования инициатора iSCSI в FreeBSD: таргет доступен в виде порта iscsi-target, перенесенного из NetBSD. 

iSCSI в FreeBSD

FreeNAS

FreeNAS представляет собой готовый NAS-сервер, поддерживающий протоколы CIFS, FTP, NFS, AFP, RSYNC, iSCSI, программный RAID (0,1,5) и полную интеграцию с web-интерфейсом. Вес на диске - менее, чем 32 Мб. Минимальный дистрибутив FreeBSD, положенный в основу FreeNAS, web-интерфейс и PHP-скрипты основываются на M0n0wall.

iSCSI в VMware ESX Server

VMware ESX Server поддерживает iSCSI для доступа к хранилищам с образами виртуальных машин.

Достоинства

  • Кластеризация серверов
  • QoS
  • Консолидация систем хранения данных
  • Резервирование данных
  • Репликация
  • Восстановление в аварийных ситуациях
  • Географическое распределение SAN
  • Безопасность

На практике

Производители iSCSI-устройств, а также эксперты в области систем хранения данных утверждают, что в iSCSI-сетях SAN следует применять сверхдлинные (jumbo) кадры. Первые сети Ethernet являлись полудуплексными разделяемыми инфраструктурами с максимальным размером кадра 1500 байт. Это гарантировало, что ни одна станция не сможет монополизировать сеть. Впрочем, большинство операционных систем записывает данные на HDD и считывают их кластерами длиной 4 Кбайт (это стандартная длина кластера в файловой системе NTFS) или более. Таким образом, при использовании стандартных кадров размером 1500 байт для выполнения большинства операций, связанных передачей iSCSI-данных, требуется пересылать множество кадров. Однако применение коротких кадров снижает эффективность работы сети, так как на передачу заголовков кадров, контрольных сумм, а также на реализацию интервалов, тратится больше времени.

Но большинство корпоративных устройств Gigabit Ethernet имеют поддержку сверхдлинных кадров, при использовании которых производительность систем iSCSI повышается на 5%, а загрузка ЦПУ сервера снижается на 3%. В случае же применения сетевых плат с устройством TOE (TCP Off-load Engine) или хост-адаптеров iSCSI, освобождающих ЦПУ от осуществления вычислений, связанных с работой протоколов TCP/IP (TCP/IP-вычислений), передача сверхдлинных кадров практически не снижает загрузку ЦПУ, но при этом повышает производительность сети.

Если серверы или дисковые массивы настроены на больший размер кадров, чем поддерживаемый коммутаторами, то iSCSI будет нормально функционировать до тех пор, пока не начнется передача кадров большей длины, чем максимальный размер кадра коммутатора. Тогда будут появляться ошибки дисковых операций ввода-вывода.

Большинство операционных систем имеют поддержку программных инициаторов iSCSI, позволяющих устанавливать любые сетевые платы Ethernet для подключения серверов к дисковому массиву iSCSI. Однако все же не следует задействовать старые гигабитовые адаптеры. Рассчитанные на рабочую станцию платы Ethernet используют 32-разрядную шину PCI с пропускной способностью примерно 1 Гбит/с. Она делится между всеми устройствами, подключенными к шине. Серверный Ethernet-адаптер работает с гораздо более быстрой шиной PCI-X или PCI-Express, а также выполняет TCP/IP-вычисления, снижая нагрузку на ЦПУ сервера при обработке трафика iSCSI. 

Сетевые платы TOE от Alacritech, Chelsio имеют процессоры, производящие TCP-сегментацию данных, а также их повторную сборку, и вычисляющие контрольные суммы. Платы TOE ускоряют обработку TCP-трафика любого назначения и работают с теми же программными инициаторами, что и другие сетевые платы Ethernet. 

Хост-адаптеры и фирмы

Хост-адаптеры iSCSI, к примеру, выпускаемые QLogic и Adaptec, освобождают ЦПУ от выполнения не только TCP/IP-вычислений, но и операций по работе более высокоуровневого протокола iSCSI. ОС идентифицирует такой хост-адаптер как дисковый контроллер, но не как сетевую плату Ethernet.

Платы TOE и хост-адптеры iSCSI сокращают нагрузку на ЦПУ сервера на 10-15%. Однако это не ускоряет дисковый ввод-вывод, несмотря на громкие обещания производителей. Также, большинство серверов среднего класса вполне обходятся мощностью ЦПУ.

Вот почему рекомендуется использовать платы TOE и хост-адаптеры iSCSI в тех серверах, ЦПУ которых слишком сильно загружены. Хотя такое случается довольно редко.

Главное преимущество хост-адаптера iSCSI состоит в том, что он обеспечивает начальную загрузку хоста из iSCSI-сети SAN. Хост-адаптеры iSCSI работают подобно дисковым контроллерам (с прерыванием INT13 BIOS): пользователь имеет возможность расположить системный диск на целевом устройстве iSCSI. Загрузки из сети SAN позволяют легко устанавливать многочисленные идентичные серверы, для этого требуется лишь создать копию загрузочного тома. Точно так же просто заменить вышедший из строя сервер.

Безопасность iSCSI

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

Устройства iSCSI, как правило, позволяют управлять доступом посредством IP-адреса. Такой метод неплохо работает в изолированной среде, но в открытой среде он не запрещает злоумышленнику задействовать неавторизованный сервер и осуществить доступ к ценной информации. Альтернативным способом является использование имени IQN (iSCSI Qualified Name) хоста-инициатора. В крупномасштабных средах это значительно упростит замену вышедших из строя серверов, ведь изменить имя IQN работающего запасного сервера гораздо легче, чем IP-адрес.

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

Однако к таким средствам прибегают достаточно редко, поскольку это требует высокой нагрузки на ЦПУ и значительной временной задержки. Единственными целевыми устройствами iSCSI с поддержкой IPsec являются системы хранения данных на базе ПО (например, WinTarget), работающего под управлением операционной системы Windows и применяющего встроенную в нее IPsec. Однако, время для шифрования трафика iSCSI-сетей SAN еще не наступило.

Поддержка операционных систем

ОС

Дата релиза

Версия

Особенности

i5/OS

2006-10

i5/OS V5R4M0

Target, Multipath

VMware ESX

2006-06

ESX 3.0, ESX 4.0, ESX 5.0

Initiator, Multipath

AIX

2002-10

AIX 5.3 TL10, AIX 6.1 TL3

Initiator, Target

Windows

2003-06

2000, XP Pro, 2003, Vista, 2008, 2008 R2, Windows7, Windows 8, Windows Server 8

Initiator, Target*, Multipath

NetWare

2003-08

NetWare 5.1, 6.5, & OES

Initiator, Target

HP-UX

2003-10

HP 11i v1, HP 11i v2, HP 11i v3

Initiator

Solaris

2002-05

Solaris 10, OpenSolaris

Initiator, Target, Multipath, iSER

Linux

2005-06

2.6.12

Initiator, Target, Multipath, iSER

OpenBSD

2009-10

4.9

Initiator

NetBSD

2002-06

4.0, 5.0

Initiator (5.0), Target (4.0)

FreeBSD

2002-08

7.0

Initiator, Target from NetBSD

OpenVMS

2002-08

8.3-1H1

Initiator, Multipath

Mac OS X

2008-07

10.4 - 10.7

N/A**

* Таргет доступен только как часть Windows Unified Data Storage Server (WUDSS) для Storage Server 2003. Таргет доступен в Storage Server 2008 (за исключением Basic edition). Таргет доступен для Windows Server 2008 R2 в качестве отдельной загрузки. Windows Server 8 имеет встроенную ISCSI версию таргета 3.3 (по крайней мере, в превью-версии).

** MacOS X не имеет ни инициаторов, ни таргетов в прямых версиях систем от производителя. Существует несколько MacOS X инициаторов и таргетов, доступных на рынке, но они представленны исключительно сторонними производителями. 

Таргеты

Большинство ISCSI-таргетов связаны с диском. До сих пор, физические устройства не оснащались родным ISCSI интерфейсом на уровне компонентов. Вместо того, устройства Parallel SCSI или Fiber Channel интерфейсы соединяются с помощью софта для ISCSI-таргетов, внешних мостов или контроллеров.

Кроме того, имеется возможность виртуализировать дисковые таргеты. Вместо представления реальных физических устройств, представляется эмуляция виртуального устройства. Однако реализации могут отличаться радикально от представленных таргетов, как это делается в виртуальной библиотеке VTL. VTL использует дисковое пространство для хранения данных, записанных с виртуальных лент. Как и в реальных физических устройствах, виртуальные таргеты представляются при помощи использования ISCSI целевой программы, внешних мостов или внутренних контроллеров.

В отрасли безопасности продуктов, некоторые производители используют RAID ISCSI в качестве таргета, с инициатором, реализованным либо посредством IP, либо посредством камеры.

#