- iSCSI ;

iSCSI  — это протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами.

iSCSI описывает:

* Транспортный протокол для SCSI, который работает поверх TCP.
* Механизм инкапсуляции SCSI-команд в IP-сети.
* Протокол для нового поколения систем хранения данных, которые будут использовать «родной» TCP/IP.

Протокол iSCSI является стандартизованным по RFC 7143. Существует множество коммерческих и некоммерческих реализаций этого протокола.

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

## Общее представление

Протокол iSCSI позволяет двум хостам согласовать соединение и после этого обмениваться командами SCSI с помощью интернет протокола (IP). Таким образом, iSCSI берет за основу широко распространенную высокопроизводительную шину локального хранилища данных и эмулирует её в большом количестве сетей, создавая сеть хранения данных (SAN). В отличие от некоторых SAN-протоколов, iSCSI не требуется выделенное кабельное соединение: он может быть развернут на уже существующей IP-инфраструктуре. В результате iSCSI часто используется как удешевленная альтернатива для волоконного канала (Fibre Channel), которому требуется собственная, отдельная инфраструктура, за исключением одного из вариантов его реализации (FCoE - Fibre Channel over Ethernet). Тем не менее, производительность ISCSI SAN может падать, если он не использует выделенную сеть или подсеть (LAN, VLAN), в связи с использованием ограниченного объема пропускной способности используемой сети на разные цели.

Несмотря на то, что iSCSI может взаимодействовать с различными типами устройств, он почти всегда используется системным администратором для того, чтобы позволять серверам (например серверам баз данных) получать доступ к дисковым томам в массивах хранения. iSCSI SAN часто используется для двух целей:

Консолидация объемов хранилищ данных

Аварийное восстановление

## Адресация

iSCSI использует TCP (обычно TCP-порты 680 и 3260) для самого протокола, с высокоуровневыми именами, используемыми для адресации объектов внутри самого протокола. Специальные имена присваиваются как iSCSI-инициаторам (initiators), так и целям (targets). iSCSI обеспечивает три формата имен:

iSCSI типизированные имена (iSCSI Qualified Name) IQN

Формат: IQN определен в RFC 7143. Содержит в себе поля:

* буквенная аббревиатура iqn
* дата (гггг-мм), когда блок присвоения имен завладел доменом
* имя домена в обратном порядке (org.example)
* необязательное ":", служащее префиксом для имени хранилища, указанного блоком присвоения имен.

Примеры из RFC
 iqn

Расширенный уникальный идентификатор (Extended Uniq Identifier) EUI

Формат: eui.{EUI-64-битный адрес} (прим. eui.02004567A425678D)

T11 администрация сетевого адреса (T11 Network Address Authority) NAA

Формат: naa.{NAA 64- или 128-битный идентификатор} (прим. naa.52004567BA64678D)

Имена формата IQN используются чаще всего, они определяются датой, поскольку у доменного имени может истечь срок или оно может быть приобретено кем-то другим.

IEEE-блок регистрации использует EUI в соответствии со стандартом EUI-64. NAA является частью OUI, который в свою очередь так же обеспечивается блоком регистрации IEEE. Формат имен NAA был добавлен в iSCSI в RFC 3980 для обеспечения совместимости с соглашением об именах, используемым в волоконных сетях и технологиях хранения Serial Attached SCSI (SAS).

Обычно участники обмена в iSCSI определяются с помощью трех или четырех полей:

1. Имя хоста или IP-адрес (прим. iscsi.example.com)
2. Номер порта
3. iSCSI-имя (в одном из 3 форматов)
4. Необязательный протокол аутентификации с косвенным согласованием.

## Примеры реализаций

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

* Для GNU/Linux (есть пакет в Debian GNU/Linux) — Open-iSCSI [1]

Присутствует в стандартной сборке Linux с версии 2.6.16.

* Microsoft iSCSI Software Initiator Version 2.08 (для Windows 2000/XP/2003 Server)
* Реализация target для Linux (позволяет экспортировать устройство или файл как iSCSI target)
* Бесплатная программная реализация target для Windows Server 2008 R2
* Бесплатная программа-клиент iSCSI Initiator для Windows XP/7/8/8.1

Также существует монолитный проект на основе BSD — OpenNAS,

На основе FreeBSD 7.2 сделан FreeNAS (может выступать как в качестве target, так и initiator).[1]

Аналог FreeNAS, но на основе Linux — проект Openfiler (также может выступать как в качестве target, так и initiator). Состояние проекта неясно, никто из разработчиков не объявил о его закрытии, но версия не обновлялась с 2008 года.[2]

Отколовшийся от FreeNAS (после покупки последнего компанией iXsystems) форк NAS4Free на FreeBSD, обновленной до версии 9.1.[3]

Также реализация хранилищ данных с использованием iSCSI выполнена в продуктах:

* Nexenta (доступна бесплатная версия Nexenta Community Edition)
* Open-E DSS.

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

Терминология iSCSI во многом основывается на терминологии, использующейся в SCSI:

* initiator — тот, кто устанавливает соединение с целью (target). Чаще всего это узел (в общем случае), осуществляет ввод/вывод на блочные устройства.
* target — экспортируемый объект. В зависимости от контекста цель (target) называют или целиком экспортирующий узел, или только экспортируемый объект. Сам объект может делиться на lun’ы.
* Портал — группа целей (targets), которые анонсируются вместе. Чаще всего один узел хранения — один портал.
* IQN — полное имя участника взаимодействия. На практике существует iqn у инициатора и у цели (target).
* endpoint — уточнённое имя ресурса, чаще всего включает в себя iqn, номер LUN’а и указание на конкретный метод доступа к нему (например, номер соединения, LUN и IP-адрес, с которого следует получать доступ к устройству).
* LUN (Logical Unit Number) — номер объекта внутри цели (target). Ближайшим аналогом является раздел диска или отдельный том.

## Преимущества

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

iSCSI развивается очень быстро. Потребность в новом стандарте ощущалась так сильно, что буквально за 14 месяцев с момента предложения по созданию iSCSI, с которым в феврале 2000 года выступила IETF, появилось достаточно много устройств, чтобы продемонстрировать возможности по их взаимодействию. В июле 2000-го был опубликован Draft 0 по iSCSI, который стал началом работ по реализации технологии. В январе 2001 года в рамках SNIA (Storage Networking Industry Association) был создан IP Storage форум, который через полгода уже насчитывал 50 членов, а в апреле этого же года был представлен продукт, который в скором времени выиграл награду «Enterprise Networking Product».