Интерфейс малых компьютерных систем Интернета или iSCSI ( / aɪ ˈ s k ʌ z i / eye-SKUZ-ee) — этоИнтернет-протоколадля связи между хранилищами данных. iSCSI обеспечиваеткустройствам храненияна уровне блоковпутем передачикомандSCSITCP/IP. iSCSI упрощает передачу данных поинтрасетями управление хранилищем на больших расстояниях. Его можно использовать для передачи данных полокальным сетям(LAN),глобальным сетям(WAN) илиИнтернету, а также для хранения и извлечения данных, не зависящих от местоположения.
Протокол позволяет клиентам (называемым инициаторами ) отправлять команды SCSI ( CDB ) на устройства хранения ( targets ) на удаленных серверах. Это протокол сети хранения данных (SAN), позволяющий организациям консолидировать хранилища в массивы хранения , предоставляя клиентам (таким как базы данных и веб-серверы) иллюзию локально подключенных дисков SCSI. [1] Он в основном конкурирует с Fibre Channel , но в отличие от традиционного Fibre Channel, который обычно требует выделенного кабеля, [a] iSCSI может работать на больших расстояниях с использованием существующей сетевой инфраструктуры. [2] iSCSI был впервые предложен IBM и Cisco в 1998 году и представлен в качестве проекта стандарта в марте 2000 года. [3]
По сути, iSCSI позволяет двум хостам согласовывать и затем обмениваться командами SCSI с использованием сетей Интернет-протокола (IP). Делая это, iSCSI берет популярную высокопроизводительную локальную шину хранения и эмулирует ее в широком диапазоне сетей, создавая сеть хранения данных (SAN). В отличие от некоторых протоколов SAN, iSCSI не требует выделенных кабелей; он может работать по существующей инфраструктуре IP. В результате iSCSI часто рассматривается как недорогая альтернатива Fibre Channel , который требует выделенной инфраструктуры, за исключением его формы FCoE (Fibre Channel over Ethernet). Однако производительность развертывания iSCSI SAN может быть серьезно ухудшена, если не работает в выделенной сети или подсети (LAN или VLAN ) из-за конкуренции за фиксированный объем полосы пропускания.
Хотя iSCSI может взаимодействовать с произвольными типами устройств SCSI, системные администраторы почти всегда используют его, чтобы разрешить серверам (например, серверам баз данных) получать доступ к дисковым томам на массивах хранения. iSCSI SAN часто преследуют одну из двух целей:
Инициатор функционирует как клиент iSCSI. Инициатор обычно выполняет ту же функцию для компьютера, что и адаптер шины SCSI, за исключением того, что вместо физического подключения устройств SCSI (таких как жесткие диски и ленточные чейнджеры) инициатор iSCSI отправляет команды SCSI по сети IP. Инициатор делится на два основных типа:
Программный инициатор использует код для реализации iSCSI. Обычно это происходит в резидентном драйвере устройства ядра, который использует существующую сетевую карту (NIC) и сетевой стек для эмуляции устройств SCSI для компьютера, говоря по протоколу iSCSI. Программные инициаторы доступны для большинства популярных операционных систем и являются наиболее распространенным методом развертывания iSCSI.
Аппаратный инициатор использует выделенное оборудование, как правило, в сочетании с прошивкой, работающей на этом оборудовании, для реализации iSCSI. Аппаратный инициатор снижает накладные расходы на обработку iSCSI и TCP и прерывания Ethernet , и, следовательно, может повысить производительность серверов, использующих iSCSI. Адаптер шины хоста iSCSI (чаще, HBA) реализует аппаратный инициатор. Типичный HBA упакован как комбинация контроллера сетевого интерфейса Gigabit (или 10 Gigabit) Ethernet , некоторой технологии разгрузки TCP/IP (TOE) и адаптера шины SCSI, как это выглядит для операционной системы. iSCSI HBA может включать дополнительное ПЗУ PCI , чтобы разрешить загрузку из iSCSI SAN.
iSCSI offload engine или карта iSOE предлагает альтернативу полноценному iSCSI HBA. iSOE «разгружает» операции инициатора iSCSI для этого конкретного сетевого интерфейса с хост-процессора, освобождая циклы ЦП для основных хост-приложений. iSCSI HBA или iSOE используются, когда дополнительное повышение производительности оправдывает дополнительные расходы на использование HBA для iSCSI, [4] а не на использование программного клиента iSCSI (инициатора). iSOE может быть реализован с дополнительными службами, такими как TCP offload engine (TOE), для дальнейшего снижения использования ЦП хост-сервера.
Спецификация iSCSI относится к ресурсу хранения, расположенному на сервере iSCSI (в более общем смысле, к одному из потенциально многих экземпляров узлов хранения iSCSI, работающих на этом сервере) в качестве цели .
Целью iSCSI часто является выделенный подключенный к сети жесткий диск, но это может быть и компьютер общего назначения, поскольку, как и в случае с инициаторами, программное обеспечение для реализации цели iSCSI доступно для большинства основных операционных систем.
К распространенным сценариям развертывания цели iSCSI относятся:
В центре обработки данных или корпоративной среде цель iSCSI часто находится в большом массиве хранения. Эти массивы могут быть в форме товарного оборудования с реализациями iSCSI на основе свободного программного обеспечения или в виде коммерческих продуктов, таких как StorTrends , Pure Storage , HP StorageWorks , EqualLogic , Tegile Systems , Nimble storage , IBM Storwize family , Isilon , NetApp filer , Dell EMC , Kaminario , NS-series, CX4, VNX, VNXe, VMAX, Hitachi Data Systems HNAS или Pivot3 vSTAC.
Массив хранения обычно предоставляет отдельные цели iSCSI для многочисленных клиентов. [5]
Почти все современные основные серверные операционные системы (такие как BSD , Linux , Solaris или Windows Server ) могут предоставлять функциональность цели iSCSI, либо как встроенную функцию, либо с дополнительным программным обеспечением. Некоторые специализированные операционные системы реализуют поддержку цели iSCSI.
В терминологии SCSI LU означает логическую единицу , которая указывается уникальным номером логической единицы . LUN представляет собой индивидуально адресуемое (логическое) устройство SCSI, которое является частью физического устройства SCSI (целевого устройства). В среде iSCSI LUN по сути являются пронумерованными дисками. Инициатор договаривается с целью об установлении подключения к LUN; результатом является соединение iSCSI, которое эмулирует подключение к жесткому диску SCSI. Инициаторы обрабатывают iSCSI LUN так же, как и необработанные жесткие диски SCSI или IDE; например, вместо того, чтобы монтировать удаленные каталоги, как это делается в средах NFS или CIFS , системы iSCSI форматируют и напрямую управляют файловыми системами на iSCSI LUN.
В корпоративных развертываниях LUN обычно представляют собой подмножества больших дисковых массивов RAID , часто выделяемые по одному на клиента. iSCSI не накладывает никаких правил или ограничений на совместное использование отдельных LUN несколькими компьютерами; он оставляет общий доступ к одной базовой файловой системе задачей операционной системы.
Для общего хранения данных на уже загруженном компьютере можно использовать любой тип универсального сетевого интерфейса для доступа к устройствам iSCSI. [ требуется ссылка ] Однако универсальный сетевой интерфейс потребительского уровня не может загрузить бездисковый компьютер с удаленного источника данных iSCSI. [ требуется ссылка ] Вместо этого сервер обычно загружает свою начальную операционную систему с сервера TFTP или локального загрузочного устройства, а затем использует iSCSI для хранения данных после завершения загрузки с локального устройства. [ требуется ссылка ]
Отдельный DHCP-сервер может быть настроен для помощи интерфейсам, оснащенным возможностью сетевой загрузки , чтобы иметь возможность загружаться через iSCSI. В этом случае сетевой интерфейс ищет DHCP-сервер, предлагающий загрузочный образ PXE или bootp . [6] Это используется для запуска процесса удаленной загрузки iSCSI, используя MAC-адрес загружаемого сетевого интерфейса для направления компьютера к правильному целевому объекту загрузки iSCSI [ требуется цитата ] . Затем можно использовать чисто программный подход для загрузки небольшой загрузочной программы, которая, в свою очередь, может монтировать удаленный целевой объект iSCSI, как если бы это был локальный диск SCSI, а затем запустить процесс загрузки с указанного целевого объекта iSCSI [ требуется цитата ] . Этого можно достичь с помощью существующего загрузочного ПЗУ Preboot Execution Environment (PXE), которое доступно на многих проводных адаптерах Ethernet. Загрузочный код также может быть загружен с CD/DVD, дискеты (или образа дискеты) и USB-накопителя, или он может заменить существующий загрузочный код PXE на адаптерах, которые можно перепрошить. [7] Наиболее популярным бесплатным программным обеспечением, предлагающим поддержку загрузки iSCSI, является iPXE . [8]
Большинство контроллеров Intel Ethernet для серверов поддерживают загрузку iSCSI. [9]
iSCSI использует TCP (обычно TCP-порты 860 и 3260) для самих протоколов, с именами более высокого уровня, используемыми для адресации объектов в протоколе. Специальные имена относятся как к инициаторам, так и к целям iSCSI. iSCSI предоставляет три формата имен:
eui.02004567A425678D
)naa.52004567BA64678D
)Чаще всего встречаются адреса в формате IQN. Они квалифицируются по дате (гггг-мм), поскольку доменные имена могут истечь или быть приобретены другим субъектом.
Регистрационный орган IEEE предоставляет EUI в соответствии со стандартом EUI-64. NAA является частью OUI, предоставляемой регистрационным органом IEEE. Форматы имен NAA были добавлены в iSCSI в RFC 3980 для обеспечения совместимости с соглашениями об именовании, используемыми в технологиях хранения Fibre Channel и Serial Attached SCSI (SAS).
Обычно участника iSCSI можно определить по трем или четырем полям:
Инициаторы iSCSI могут находить соответствующие ресурсы хранения, используя протокол Internet Storage Name Service (iSNS). Теоретически iSNS предоставляет iSCSI SAN ту же модель управления, что и выделенные Fibre Channel SAN. На практике администраторы могут удовлетворить многие цели развертывания для iSCSI без использования iSNS.
Инициаторы и целевые устройства iSCSI подтверждают свою идентичность друг другу с помощью CHAP , который включает механизм, предотвращающий появление паролей в открытом виде на линии. Сам по себе CHAP уязвим для атак по словарю , спуфинга и отражения . При тщательном соблюдении наилучшие практики использования CHAP в iSCSI уменьшают поверхность для этих атак и снижают риски. [11]
Кроме того, как и все протоколы на основе IP, IPsec может работать на сетевом уровне. Протокол согласования iSCSI предназначен для поддержки других схем аутентификации, хотя проблемы взаимодействия ограничивают их развертывание.
Чтобы гарантировать, что к массивам хранения подключаются только допустимые инициаторы, администраторы чаще всего запускают iSCSI только через логически изолированные сети backchannel. В этой архитектуре развертывания только порты управления массивами хранения открыты для внутренней сети общего назначения, а сам протокол iSCSI работает через выделенные сетевые сегменты или VLAN . Это смягчает проблемы аутентификации; неавторизованные пользователи физически не подготовлены для iSCSI и, таким образом, не могут взаимодействовать с массивами хранения. Однако это также создает проблему транзитивного доверия, поскольку один скомпрометированный хост с диском iSCSI может использоваться для атаки на ресурсы хранения других хостов.
Хотя iSCSI может быть логически изолирован от общей сети с использованием только VLAN, он по-прежнему ничем не отличается от любого другого сетевого оборудования и может использовать любой кабель или порт, пока есть завершенный путь сигнала между источником и целью. Всего одна ошибка в прокладке кабелей сетевым техником может поставить под угрозу барьер логического разделения, а случайное соединение может быть не обнаружено немедленно, поскольку оно не вызывает сетевых ошибок.
Чтобы еще больше отличить iSCSI от обычной сети и предотвратить ошибки при подключении кабелей при смене подключений, администраторы могут внедрить собственные стандарты цветовой кодировки и маркировки, например, использовать только желтые кабели для подключений iSCSI и только синие кабели для обычной сети, а также четко маркировать порты и коммутаторы, используемые только для iSCSI.
Хотя iSCSI можно реализовать просто как кластер портов VLAN на большом многопортовом коммутаторе, который также используется для общего сетевого использования, администратор может вместо этого использовать физически отдельные коммутаторы, выделенные только для сетей iSCSI VLAN, чтобы дополнительно исключить возможность неправильного подключения кабеля к неправильному порту, что приведет к преодолению логического барьера.
Поскольку iSCSI нацелен на консолидацию хранилища для многих серверов в единый массив хранения, развертывания iSCSI требуют стратегий для предотвращения доступа не связанных между собой инициаторов к ресурсам хранения. В качестве патологического примера, один корпоративный массив хранения может содержать данные для серверов, по-разному регулируемых Законом Сарбейнса-Оксли для корпоративного учета, HIPAA для информации о пособиях по здоровью и PCI DSS для обработки кредитных карт. Во время аудита системы хранения должны демонстрировать элементы управления, чтобы гарантировать, что сервер в одном режиме не сможет получить доступ к ресурсам хранения сервера в другом режиме.
Обычно массивы хранения iSCSI явно сопоставляют инициаторы с определенными целевыми LUN; инициатор аутентифицируется не с массивом хранения, а с определенным активом хранения, который он намерен использовать. Однако, поскольку целевые LUN для команд SCSI выражены как в протоколе согласования iSCSI, так и в базовом протоколе SCSI, необходимо позаботиться о том, чтобы контроль доступа предоставлялся последовательно.
По большей части iSCSI работает как протокол открытого текста, который не обеспечивает криптографической защиты для данных, перемещаемых во время транзакций SCSI. В результате злоумышленник, который может прослушивать трафик Ethernet iSCSI, может: [12]
Эти проблемы возникают не только с iSCSI, но и применимы к любому протоколу SAN без криптографической защиты. Протоколы безопасности на основе IP, такие как IPsec , могут обеспечить стандартную криптографическую защиту для этого трафика.
Даты в следующей таблице обозначают первое появление собственного драйвера в каждой операционной системе. Драйверы сторонних производителей для Windows и Linux были доступны еще в 2001 году, в частности, для подключения устройства IBM IP Storage 200i. [13]
Большинство целей iSCSI включают диск, хотя цели iSCSI tape и media-changer также популярны. До сих пор физические устройства не имели собственных интерфейсов iSCSI на уровне компонентов. Вместо этого устройства с интерфейсами Parallel SCSI или Fibre Channel объединяются с помощью программного обеспечения цели iSCSI, внешних мостов или контроллеров, встроенных в корпус устройства.
В качестве альтернативы можно виртуализировать дисковые и ленточные целевые объекты. Вместо представления реального физического устройства представляется эмулированное виртуальное устройство. Базовая реализация может значительно отличаться от представленной цели, как это делается с продуктами виртуальной ленточной библиотеки (VTL). VTL используют дисковое хранилище для хранения данных, записанных на виртуальные ленты. Как и в случае с реальными физическими устройствами, виртуальные цели представляются с помощью программного обеспечения цели iSCSI, внешних мостов или контроллеров, внутренних для корпуса устройства.
В отрасли продуктов безопасности некоторые производители используют iSCSI RAID в качестве целевого объекта, при этом инициатором выступает либо IP-кодер, либо камера.
Существует несколько систем, которые позволяют подключать устройства Fibre Channel, SCSI и SAS к IP-сети для использования через iSCSI. Их можно использовать для миграции со старых технологий хранения, доступа к SAN с удаленных серверов и связывания SAN через IP-сети. Шлюз iSCSI соединяет IP-серверы с Fibre Channel SAN. TCP-соединение завершается на шлюзе, который реализован на коммутаторе Fibre Channel или как автономное устройство.
Тип «iqn.» (квалифицированное имя iSCSI)