Введение
Стандарт сетевого хранения данных на основе протокола Интернет для соединения хранилищ данных, известный как iSCSI (/audio=ISCSI произношение. ogg//aɪ/'/s//k//ʌ//z//i/ eyeSKUZee), является стандартом сетевого хранения данных, использующим протокол Интернет для организации взаимодействия хранилищ данных. iSCSI обеспечивает доступ к устройствам хранения на уровне блоков, передавая команды SCSI по сети TCP/IP. iSCSI упрощает передачу данных внутри интрасетей и управление хранилищами на больших расстояниях. Его можно использовать для передачи данных по локальным (LAN), глобальным (WAN) сетям или через Интернет, обеспечивая хранение и извлечение данных независимо от местоположения. Протокол позволяет клиентам (инициаторам) отправлять команды SCSI (CDB) на устройства хранения (цели), расположенные на удаленных серверах. iSCSI является протоколом сети хранения данных (SAN), позволяющим организациям консолидировать хранилища в массивы, предоставляя клиентам (например, серверам баз данных и веб-серверам) иллюзию локально подключенных дисков SCSI. Он в основном конкурирует с Fibre Channel, но в отличие от традиционного Fibre Channel, который обычно требует выделенного кабельного подключения, iSCSI может работать на больших расстояниях, используя существующую сетевую инфраструктуру. Технология iSCSI была разработана компаниями IBM и Cisco в 1998 году и представлена в качестве проекта стандарта в марте 2000 года.
Internet Small Computer Systems Interface or iSCSI (/audio=ISCSI pronunciation. ogg//aɪ/'/s//k//ʌ//z//i/ eyeSKUZee) is an Internet Protocol based storage networking standard for linking data storage facilities. iSCSI provides block level access to storage devices by carrying SCSI commands over a TCP/IP network. iSCSI facilitates data transfers over intranets and to manage storage over long distances. It can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet and can enable location independent data storage and retrieval. The protocol allows clients (called initiators) to send SCSI commands (CDBs) to storage devices (targets) on remote servers. It is a storage area network (SAN) protocol, allowing organizations to consolidate storage into storage arrays while providing clients (such as database and web servers) with the illusion of locally attached SCSI disks. It mainly competes with Fibre Channel, but unlike traditional Fibre Channel which usually requires dedicated cabling, iSCSI can be run over long distances using existing network infrastructure. iSCSI was pioneered by IBM and Cisco in 1998 and submitted as a draft standard in March 2000.
Инициатор
Инициатор функционирует как клиент 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 может включать в себя дополнительную ROM PCI для загрузки с iSCSI SAN. iSCSI-движок разгрузки, или карта iSOE, является альтернативой полноценному iSCSI HBA. iSOE "разгружает" операции инициатора iSCSI для данного сетевого интерфейса с хост-процессора, освобождая циклы процессора для основных приложений хоста. iSCSI HBA или iSOE используются, когда дополнительное повышение производительности оправдывает дополнительные затраты на использование HBA для iSCSI вместо программного iSCSI-клиента (инициатора). iSOE может быть реализован с дополнительными службами, такими как TCP offload engine (TOE), для дальнейшего снижения загрузки процессора хост-сервера.
Сборник данных
В дата-центре или корпоративной среде iSCSI-цель часто располагается в большом массиве хранения данных. Эти массивы могут быть реализованы на стандартном оборудовании со свободным программным обеспечением iSCSI или представлять собой коммерческие продукты, такие как Quantastor, CloudByte, StorTrends, Pure Storage, HP StorageWorks, EqualLogic, Tegile Systems, Nimble Storage, Reduxio, семейство IBM Storwize, Isilon, NetApp filer, Dell EMC, Kaminario, NS series, CX4, VNX, VNXe, VMAX, Hitachi Data Systems HNAS или Pivot3 vSTAC. Массив хранения данных обычно предоставляет отдельные iSCSI-цели для множества клиентов.
Цель программного обеспечения
Почти все современные основные серверные операционные системы (такие как 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. Это используется для запуска процесса удаленной загрузки iSCSI, используя MAC-адрес загружаемого сетевого интерфейса для направления компьютера к правильной цели загрузки iSCSI. Затем можно использовать исключительно программный подход для загрузки небольшой загрузочной программы, которая, в свою очередь, может смонтировать удаленную цель iSCSI как локальный SCSI-диск и запустить процесс загрузки с этой цели iSCSI. Этого можно достичь, используя существующую загрузочную ПЗУ Preboot Execution Environment (PXE), которая доступна на многих проводных Ethernet-адаптерах. Загрузочный код также можно загрузить с CD/DVD, дискеты (или образа дискеты) и USB-накопителя, или он может заменить существующий код загрузки PXE на адаптерах, которые можно перепрограммировать. Наиболее популярным бесплатным программным обеспечением, обеспечивающим поддержку загрузки iSCSI, является iPXE. Большинство контроллеров Intel Ethernet для серверов поддерживают загрузку iSCSI.
iSNS
Инициаторы iSCSI могут находить подходящие ресурсы хранения, используя протокол Internet Storage Name Service (iSNS). В теории, iSNS обеспечивает iSCSI SAN той же моделью управления, что и выделенные Fibre Channel SAN. На практике, администраторы могут достичь многих целей развертывания iSCSI без использования iSNS.
Аутентификация
Инициаторы и цели iSCSI подтверждают свою подлинность друг другу с помощью CHAP, который включает механизм для предотвращения передачи паролей в открытом виде по сети. CHAP сам по себе уязвим к атакам по словарю, спуфингу и атакам отражения. При строгом соблюдении рекомендаций по использованию CHAP в iSCSI можно уменьшить область воздействия этих атак и снизить связанные с ними риски. Кроме того, как и для всех протоколов на базе IP, IPsec может работать на сетевом уровне. Протокол согласования iSCSI разработан с учетом возможности использования других схем аутентификации, однако проблемы совместимости ограничивают их внедрение.
Логическая изоляция сети
Чтобы гарантировать подключение к массивам хранения только авторизованных инициаторов, администраторы чаще всего используют iSCSI только через логически изолированные служебные сети. В данной архитектуре развертывания к внутренней сети общего назначения предъявляются только порты управления массивов хранения, а сам протокол iSCSI работает через выделенные сетевые сегменты или VLAN. Это снижает риски, связанные с аутентификацией: неавторизованные пользователи не имеют физического доступа к iSCSI и, следовательно, не могут взаимодействовать с массивами хранения. Однако это также порождает проблему транзитивного доверия, поскольку один скомпрометированный хост с подключенным iSCSI-диском может быть использован для атаки на ресурсы хранения других хостов.
Физическая изоляция сети
Хотя iSCSI может быть логически изолирован от общей сети только с помощью VLAN, он по-прежнему ничем не отличается от любого другого сетевого оборудования и может использовать любой кабель или порт, при условии наличия полноценного сигнального пути между источником и целью. Ошибки при прокладке кабелей, допущенные сетевым инженером, могут скомпрометировать барьер логической изоляции, а случайное объединение может остаться незамеченным, поскольку не вызывает сетевых ошибок. Для дальнейшего разграничения iSCSI от обычной сети и предотвращения ошибок при подключении кабелей при изменении соединений, администраторы могут внедрить собственные стандарты цветовой кодировки и маркировки, например, использовать только желтые кабели для соединений iSCSI и только синие кабели для обычной сети, а также четко маркировать порты и коммутаторы, используемые исключительно для iSCSI. Хотя iSCSI можно реализовать как кластер портов VLAN на большом многопортовом коммутаторе, который также используется для общей сети, администратор может вместо этого выбрать использование физически отдельных коммутаторов, предназначенных исключительно для VLAN iSCSI, чтобы еще больше исключить возможность подключения кабеля к неверному порту и, как следствие, нарушения логической изоляции.
Разрешение
Поскольку iSCSI нацелена на консолидацию хранилищ для множества серверов в единый массив хранения, при развертывании iSCSI необходимы стратегии для предотвращения доступа неавторизованных инициаторов к ресурсам хранения. В качестве примера рассмотрим ситуацию, когда один корпоративный массив хранения может содержать данные для серверов, регулируемых различными нормативными актами: законом Сарбейнса-Оксли для корпоративной отчетности, HIPAA для информации о медицинском страховании и PCI DSS для обработки кредитных карт. Во время аудита системы хранения должны демонстрировать средства контроля, гарантирующие, что сервер, работающий по одним правилам, не сможет получить доступ к ресурсам хранения сервера, работающего по другим правилам. Как правило, массивы хранения iSCSI явно сопоставляют инициаторы с конкретными целевыми LUN; инициатор аутентифицируется не в массиве хранения, а в конкретном ресурсе хранения, который он собирается использовать. Однако, поскольку целевые LUN для команд SCSI указываются как в протоколе согласования iSCSI, так и в базовом протоколе SCSI, необходимо обеспечить последовательное предоставление контроля доступа.
Операционные системы
Даты в следующей таблице указывают на первое появление нативных драйверов в каждой операционной системе. Третьи драйверы для Windows и Linux были доступны еще в 2001 году, специально для подключения устройства IBM IP Storage 200i.
ОС | Дата первого выпуска | Версия | Функции
---|---|---|---
IBM i | 2006 | 10 V5R4M0 (как i5/OS) | Цель, Multipath
VMware ESX | 2006 | 06 ESX 3.0, ESX 4.0, ESXi 5.x, ESXi 6.x | Инициатор, Multipath
AIX | 2002 | 10 AIX 5.3 TL10, AIX 6.1 TL3 | Инициатор, Цель
Windows | 2003 | 06 2000, XP Pro, 2003, Vista, 2008, 2008 R2, 7, 8, Server 2012, 8.1, Server 2012 R2, 10, Server 2016, 11, Server 2019 | Инициатор, Цель, Multipath
NetWare | 2003 | 08 NetWare 5.1, 6.5, & OES | Инициатор, Цель
HP UX | 2003 | 10 HP 11i v1, HP 11i v2, HP 11i v3 | Инициатор
Solaris | 2002 | 05 Solaris 10, OpenSolaris | Инициатор, Цель, Multipath, iSER
Linux | 2005 | 06 2.6.12, 3.1 | Инициатор (2.6.12), Цель (3.1), Multipath, iSER, VAAI
OpenBSD | 2009 | 10 4.9 | Инициатор
NetBSD | 2002 | 06 4.0, 5.0 | Инициатор (5.0), Цель (4.0)
FreeBSD | 2008 | 02 7.0 | Инициатор (7.0), Цель (10.0), Multipath, iSER, VAAI
OpenVMS | 2002 | 08 8.3 1H1 | Инициатор, Multipath
macOS | 2008 | 07 10.4 | N/A
Цели
Большинство iSCSI-целей используют диски, хотя iSCSI-ленты и устройства смены носителей также широко распространены. На сегодняшний день физические устройства не имеют встроенных iSCSI-интерфейсов на компонентном уровне. Вместо этого устройства с параллельными интерфейсами SCSI или Fibre Channel подключаются посредством iSCSI-целевого программного обеспечения, внешних мостов или контроллеров, встроенных в корпус устройства. В качестве альтернативы можно виртуализировать дисковые и ленточные цели. Вместо представления реального физического устройства представляется эмулированное виртуальное устройство. Базовая реализация может существенно отличаться от представленной цели, как это реализовано в продуктах виртуальных библиотек лент (VTL). VTL используют дисковое хранилище для хранения данных, записанных на виртуальные ленты. Как и в случае с реальными физическими устройствами, виртуальные цели представляются с использованием iSCSI-целевого программного обеспечения, внешних мостов или контроллеров, встроенных в корпус устройства. В индустрии средств безопасности некоторые производители используют iSCSI RAID в качестве цели, инициатором в которой выступает IP-энкодер или камера.
Конверторы и мосты
Существует несколько систем, позволяющих подключать устройства Fibre Channel, SCSI и SAS к IP-сети для использования по протоколу iSCSI. Они могут использоваться для миграции со старых технологий хранения данных, обеспечения доступа к SAN с удаленных серверов и объединения SAN по IP-сетям. Шлюз iSCSI обеспечивает связь между IP-серверами и SAN на базе Fibre Channel. TCP-соединение завершается на шлюзе, который может быть реализован на коммутаторе Fibre Channel или как отдельное устройство.