ISCSI

Материал из Википедии — свободной энциклопедии

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 27 ноября 2018; проверки требуют 7 правок.

Перейти к навигацииПерейти к поиску

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

iSCSI описывает:

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

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

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

## Содержание

* 1Общее представление
* 2Адресация
* 3Примеры реализаций
* 4Терминология
	+ 4.1Сравнение iSCSI таргетов
* 5Преимущества
* 6Примечания
* 7Ссылки
* 8Источники

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

Протокол 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). Ближайшим аналогом является раздел диска или отдельный том.

### Сравнение iSCSI таргетов

Основная статья: Сравнение iSCSI таргетов

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

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