По прошествии пяти лет работы с сетями хранения данных Fibre Channel (SAN), я был сильно озадачен появлением iSCSI: тем, что делает этот протокол и, что более важно, как он работает и как можно использовать iSCSI для решения реальных проблем пользователей. Итак, после нескольких напряженных месяцев общения со многими специалистами по этой теме, я представляю в этой статье несколько собственных взглядов на iSCSI.

Что же такое, на самом деле, iSCSI?

iSCSI посылает SCSI команды в IP пакетах. Более подробно - iSCSI создан как протокол для инициатора хранилищ (обычно сервер), с целью посылать SCSI команды исполнителю (обычно лента или диск) через IP.

Иные протоколы: FCIP - посылает блоки Fibre Channel через IP, по существу расширяя соединения Fibre Channel; на самом деле не имеет никакого отношения к SCSI. С другой стороны iFCP - обеспечивает преобразование (mapping) FCP (последовательный SCSI через Fibre Channel) в и из IP. Другими словами, он предлагает протокол маршрутизации между сетями Fibre Channel (fabric), позволяющий осуществлять соединение через IP.

Иначе говоря, iSCSI - это протокол SCSI через IP, связывающий сервер с хранилищем данных. Другие протоколы обеспечивают соединение Fibre Channel - Fibre Channel с различной степенью интеллектуальности.

Каким образом устройства iSCSI находят друг друга?

В случае обычных SCSI соединений и петель Fibre Channel, способ обнаружения устройств достаточно примитивен. Для сетей Fibre Channel (fabric) существует необходимый сервис, называемый сервер простых доменных имен (Simple Name Server), или просто - сервер доменных имен, работающий с сотнями или тысячами устройств. Но в IP, теоретически, может быть несколько миллионов устройств.

В настоящее время в мире IP используется два механизма обнаружения устройств iSCSI. Первый - SLP (service locator protocol) - протокол семейства TCP/IP, позволяющий осуществлять автоматическую настройку различных ресурсов. Этот протокол обнаружения сервисов уже существует в мире IP некоторое время. Однако недавно многие производители, включая Microsoft, стали разрабатывать новый протокол -- Internet Simple Name Server. Попросту говоря, за основу были приняты принципы сервера простых доменных имен для Fibre Channel и затем увеличены до той степени, которая позволяет справляться с размерами IP сетей, в то же время не теряя особенностей работы с хранилищами, в отличие от SLP.

Как можно использовать iSCSI?

Существует три основных способа использования iSCSI:
  1. Специализированный iSCSI сервер, обращающийся к специализированному iSCSI хранилищу.
  2. Специализированный iSCSI сервер, обращающийся к хранилищу, подсоединенному к Fibre Channel, через маршрутизатор iSCSI-to-Fibre Channel.
  3. Fibre Channel сервер, обращающийся к iSCSI хранилищу через маршрутизатор Fibre-Channel-to-iSCSI.
Безусловно, в некоторых случаях Fibre Channel хранилище обращается к другому Fibre Channel хранилищу (например, для копирования диска или внесерверного резервного копирования) и устройство хранения данных iSCSI также может обращаться к каждому из них.

Итак, что наиболее вероятно и/или практично для использования? Для ответа на этот вопрос, нужно немного отступить назад и вспомнить, что сетевое хранение данных требует гибкости, использования продуктов различным образом. Сегодня, использование iSCSI в серверах - сравнительно ново, но просто, с учетом поддержки Microsoft для Windows Server 2000 и 2003.

По этой причине, одним из способов использования iSCSI является использование iSCSI серверов, присоединенных к существующему хранилищу Fibre Channel через маршрутизатор iSCSI-to-Fibre Channel, вероятнее всего в Fibre Channel SAN. Это означает, что те же порты тех же массивов хранения могут обеспечивать сервис по хранению данных как для серверов Fibre Channel, так и для серверов iSCSI. Посему это позволяет вам получить больше преимуществ от использования хранилищ SAN и Fibre Channel, чем вы имеете, и вы можете сделать это прямой сейчас - рынок предлагает все необходимые продукты.

По моим предположениям подобные события произойдут и на рынке NAS, на самом деле они уже происходят. Поскольку NAS устройства уже подключают диски к IP-сетям, разделяя сервисы через сетевую файловую систему (NFS) и/или общий протокол доступа к файлам интернет (CIFS), то для NAS достаточно просто передавать данные на уровне блока через те же порты с помощью iSCSI, что опять позволяет вам использовать существующие решения хранения данных по-новому.

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

Кто будет использовать iSCSI?

Как эксперт, проработавший несколько лет в области Fibre Channel, я, к сожалению, должен указать миру Fibre Channel, что iSCSI может работать на скорости физического соединения (wire speed) и определенно может работать так же быстро, как и любой нормальный сервер, выполняющий задачи любого нормального приложения. Для IP сообщества необходимо отметить значительную распространенность Fibre Channel, особенно сравнивая их количество с количеством 1 Гб сетевых портов, нежели с количеством остальных сетевых портов. Сообществу Fibre Channel необходимо отметить, что, несмотря на то, что множество хранилищ и даже значительное количество мощных серверов подключены к Fibre Channel, существует некоторое количество неподключенных Unix серверов и огромное количество Intel серверов, не работающих с Fibre Channel.

Итак, iSCSI может работать на каждого, но, возможно, наиболее большой потенциальный рынок представляют собой серверы Intel, а также высокоплотные и сверхтонкие серверы (Intel или иные). Кроме того, iSCSI иногда может быть использован для высокопроизводительных серверов, в случае удаленых офисов для обращения к центральному центру данных через SAN и в иных случаях, где пока еще рано использовать Fibre Channel, в конце концов, существует еще много неподключенных к сети серверов и хранилищ данных.

NIC, TOE и HBA: В каких случаях их нужно использовать?

В заключение, существует три подхода к подключению сервера:
  1. Стандартная интерфейсная карта (NIC) с драйвером iSCSI
  2. TOE (TCP Offload Engine - механизмы разгрузки TCP) NIC с драйвером iSCSI
  3. Адаптеры шины узла HBA (Host Bus Adapter), созданные для iSCSI традиционными производителями Fibre Channel адаптеров.
В каких случаях использовать каждый из них? Интересный вопрос. Первоначальное допущение состоит в том, что, чем большая производительность вам нужна, тем более вероятно, что вместо стандартной интерфейсной карты (NIC) вы будете использовать карту TOE или адаптер шины узла, что, конечно же, будет дороже. Существует иная точка зрения, предполагающая, что некоторые высокопроизводительные серверы имеют достаточное количество резервных циклов синхронизации (clock cycles), так почему бы не сэкономить деньги и не использовать дешевую сетевую карту.

Ключевой момент здесь состоит в том, что в отличие от Fibre Channel адаптеров, ценовые рамки iSCSI варьируются от низкой (бесплатно) до высокой производительности (акселераторы) и таким образом могут быть подобраны в соответствие с требованиями приложений. Также нагрузочная способность по выходу (fan-out или oversubscription) позволяет использовать более экономичные порты Ethernet (как быстрые, так и GE) вместо портов специализированных FC коммутаторов, что еще более снижает издержки. С картами iSCSI TOE, стоимостью 300 долларов или меньше, издержки присоединения к хосту значительно ниже, чем с FC, даже для производительности TOE.

Поскольку FC может работать на 2Gbps, использование Fibre Channel более предпочтительно для высокопроизводительных серверов (2 Гб Ethernet не существует), хотя, честно говоря, не много существует серверов, использующих такую пропускную способность, даже на Fibre Channel. Безусловно, с точки зрения хранилищ использование 2Gbps более вероятно до тех пор, пока мы не увидели 10 Гб FC или даже 10 Гб Ethernet/iSCSI портов. iSCSI открывает двери для сотен и тысяч серверов, особенно систем Intel, многие из которых могут быть менее требовательными, и огромное количество которых еще только будет приносить выгоды от использования сетевого хранения.

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

Навигация по статье

Это инструкция по подключению iSCSI диска в Windows Server 2016 . При заказе услуги в SIM-Networks вы получите сообщение, подобное приведенному ниже (учтите, что значения чисел в адресе сервера могут отличаться от примера-иллюстрации, а вместо букв X,Y или Z в сообщении будут указаны реальные значения для настройки вашего доступа):

Услуга «iSCSI Backup» активирована.

Параметры доступа:

  • Адрес сервера (iscsi-target): 185.59.101.184
  • Логин: YYY
  • Пароль: ZZZ
  • Доступ к услуге на данный момент ограничен всего одним IP-адресом — XXX.XXX.XXX.XXX

Подключение диска iSCSI

1. Зайдите в «Панель Управления -> Администрирование » и запустите Инициатор iSCSI .

2. В разделе «Свойства Обнаружение » и нажмите кнопку «Обнаружить портал ».

3. В открывшемся окне заполните поле «IP адрес» сервера iSCSI.

4. Откройте раздел дополнительных параметров подключения к серверу (нажмите кнопку «Дополнительно »). Выберите значения полей «Локальный адаптер » и «IP-адрес инициатора », как на рисунке ниже (где IP-адрес инициатора — это IP вашего локального сетевого адаптера, через который разрешено подключение к серверу iSCSI).

5. Сохраните настройки, убедитесь в получении изображения, подобного приведенному ниже:

6. В разделе «Свойства » инициатора iSCSI перейдите на вкладку «Конечные объекты », выберите появившийся объект с неактивным состоянием и нажмите кнопку «Подключить ».

7. В открывшемся окне «Подключение к конечному объекту », нажмите кнопку «Дополнительно… »

8. Заполните поля раздела, как на рисунке ниже. Параметры «Имя» и «Секрет» — это «Логин» и «Пароль» из письма, отправленного вам при активации услуги.

9. Сохраните настройки. Убедитесь, что значение поля «Состояние » обнаруженного конечного объекта – «Подключено », как на рисунке ниже. Выйдите из раздела «Свойства » Инициатора iSCSI, сохранив настройки.


Инициализация и форматирование диска iSCSI

Подключенный iSCSI диск необходимо подготовить к работе (инициализировать и отформатировать).

10. В разделе «Администрирование » откройте вкладку «Управление компьютером ».

11. Перейдите в раздел «Управление дисками ».

12. Убедитесь, что ваш диск отображается, его состояние – «Вне сети ».

13. Выберите из контекстного меню пункт «В сети ».

14. Выполните инициализацию диска.

15. Проверьте, что статус диска изменился на «В сети» , но на нём отсутствуют разделы и файловая система.

16. Из контекстного меню на не размеченном диске выберите «Создать простой том ».

17. После открытия «Мастера создания простого тома » нажмите кнопку «Далее ».

18. Укажите в соответствующем поле размер раздела, или оставьте без изменений значение «по умолчанию» (если необходимо использовать весь диск под один раздел).

19. Назначьте букву диска для нового раздела.

20. Выберите тип файловой системы и метку тома.

Сетевым накопителем поддерживается встроенная служба iSCSI (Internet Small Computer System Interface) для использования в серверных кластерах и виртуализированных средах.

На этой странице пользователи могут включать/отключать службу iSCSI, изменять порт портала iSCSI, включать/отключать службу iSNS и перечислять и управлять всеми целями iSCSI и LUN. NAS поддерживает несколько целей iSCSI и несколько LUN для одной цели. Для определенной цели можно монтировать и размонтировать iSCSI LUN. В этой главе представлены следующие разделы.

В приведенной ниже таблице представлены функции, поддерживаемые блочными LUN и файловыми LUN.

Файловый LUN (старого типа)

Полное копирование по VAAI

Поддерживается

Поддерживается

Обнуление блоков по VAAI

Поддерживается

Поддерживается

Блокировка на аппаратном уровне по VAAI

Поддерживается

Поддерживается

Тонкое конфигурирование и высвобождение пространства по VAAI

Поддерживается

Не поддерживается

Динамическое выделение емкости

Поддерживается

Поддерживается

Высвобождение пространства

Поддерживается (по VAAI или в Windows 2012/Windows 8)

Не поддерживается

Microsoft ODX

Поддерживается

Не поддерживается

Резервное копирование LUN

Поддерживается

Моментальная копия LUN

Поддерживается

1 Моментальный снимок

Учтите, что блочные LUN обычно обеспечивают более высокую производительность системы, и поэтому рекомендуется там, где это возможно, использовать блочные LUN.

Имеется два способа выделения LUN: «тонкое» конфигурирование и мгновенное выделение.

Можно создать до 256 целей iSCSI и LUN. Например, если на NAS создано 100 целей, то максимальное количество доступных для создания LUN составляет 156. Для каждой цели можно создать несколько LUN. Однако максимальное количество одновременных подключений к целям iSCSI, поддерживаемое NAS, отличается в зависимости от сетевой инфраструктуры и производительности приложения. Слишком большое количество одновременных подключений может оказать влияние на производительность NAS.

Мастер быстрой настройки iSCSI

Чтобы настроить службу цели iSCSI на сетевом накопителе, выполните следующие действия.

6. Укажите параметры проверки подлинности и нажмите кнопку "Далее". При включении параметра "Использовать авторизацию CHAP" целью iSCSI будет выполняться проверка подлинности только для инициатора, и для доступа к цели пользователям инициаторов будет выдаваться запрос на ввод указанных здесь имени пользователя и пароля. При включении параметра "Совместный CHAP" активируется режим двусторонней проверки подлинности между целью и инициатором iSCSI. Цель осуществляет проверку подлинности инициатора с использованием первого набора имени пользователя и пароля. Инициатор осуществляет проверку подлинности цели с использованием параметров, указанных в разделе "Совместный CHAP". Для имени пользователя и пароля в обоих полях имеются описанные ниже ограничения.

Создание целей iSCSI

Для создания цели iSCSI выполните следующие действия.

5. Укажите имя пользователя и пароль для параметра "Использовать авторизацию CHAP" и (или) "Совместный CHAP" и нажмите кнопку "Далее". При включении параметра "Использовать авторизацию CHAP" целью iSCSI будет выполняться проверка подлинности только для инициатора, и для доступа к цели пользователям инициаторов будет выдаваться запрос на ввод указанных здесь имени пользователя и пароля. При включении параметра "Совместный CHAP" активируется режим двусторонней проверки подлинности между целью и инициатором iSCSI. Цель осуществляет проверку подлинности инициатора с использованием первого набора имени пользователя и пароля. Инициатор осуществляет проверку подлинности цели с использованием параметров, указанных в разделе "Совместный CHAP".

Создание iSCSI LUN

Для создания LUN для цели iSCSI выполните следующие действия.

Для создания непривязанного iSCSI LUN выберите на шаге 4 параметр "Не привязывать к цели".

Будет создан непривязанный LUN, который будет отображен в списке непривязанных iSCSI LUN.

В приведенной ниже таблице представлено описание всех целей iSCSI и состояний LUN.

Позиция

Состояние

Описание

Цель iSCSI

Готово

Цель iSCSI находится в состоянии готовности, однако ни одного инициатора к ней не подключено.

Подключен

К цели iSCSI подключен инициатор.

Отключен

Подключения к цели iSCSI были разорваны.

Автономно

Цель iSCSI отключена, подключения со стороны инициаторов невозможны.

Включено

LUN активирован для подключения и виден авторизованным инициаторам.

Выключено

LUN деактивирован и не виден инициаторам.

В приведенной ниже таблице описаны действия, доступные для управления целями iSCSI и LUN (кнопка "Действие").

Действие

Описание

Отключить

Отключение цели, находящейся в состоянии «Готов» или «Подключено». Учтите, что все подключения от инициаторов будут разорваны.

Активировать

Активация цели, находящейся в состоянии «Офлайн».

Изменить

Изменение настроек цели: псевдонима цели, информации CHAP и настроек контрольной суммы.

Изменение настроек LUN: выделение LUN, имя, каталог дискового тома и т. д.

Удалить

Удаление цели iSCSI. Все подключения будут разорваны.

Отключить

Отключение LUN. Все подключения будут разорваны.

Включить

Включение LUN.

Отвязать

Отмена привязки LUN к цели. Учтите, что перед отвязкой LUN его сначала следует отключить. При нажатии этой кнопки LUN будет перемещен в список непривязанных виртуальных iSCSI LUN.

Привязать

Привязка LUN к цели iSCSI. Эта функция доступна только для списка непривязанных iSCSI LUN.

Показать подключения

Просмотр состояния подключения цели iSCSI.

Переключение iSCSI LUN между целями

Для переключения iSCSI LUN между целями выполните следующие действия.

После создания целей iSCSI и LUN на NAS для подключения к цели iSCSI и LUN, а также использования дисковых томов в качестве виртуальных дисков на компьютере можно использовать инициатор iSCSI, установленный на компьютере (ПК с Windows, Mac или Linux).

Увеличение объема iSCSI LUN

NAS поддерживает функцию увеличения объема для iSCSI LUN. Для этого выполните следующие действия.

Б изнес давно уже стал информационно зависимым. Можно потерять оборудование, сотрудников, деньги и многое другое, но эти ресурсы можно восстановить (пусть и в долгосрочной перспективе). А вот потеря корпоративных данных, как правило, необратима. По утверждению аналитических агентств, если компания потеряла 80% корпоративных данных, она через 2-3 года прекратит свое существование. Поскольку безопасность бизнеса - одна из опор безопасности страны, в ЕС и США уже существуют законы, обязывающие коммерческие компании, а также государственные органы внедрять у себя средства защиты информации от катастроф. Такое состояние дел ведет к возрастанию потребности в решениях, направленных на предотвращение потерь данных. Это может произойти по причине сбоя оборудования, вирусной или хакерской атаки, человеческой ошибки, природной или техногенной катастрофы, пожара и т.п. Для защиты от этих факторов необходимо организовывать резервное хранилище данных, в большинстве случаев - удаленное.В предыдущих номерах журнала уже освещалась тема резервных систем хранения данных. Поэтому здесь мы не будем описывать общие концепции, а сразу перейдем к детальному рассмотрению одной из перспективных технологий - iSCSI. По данным аналитических компаний, продуктам, которые используют iSCSI, на сегодняшний день, принадлежит 25% рынка систем хранения данных (СХД) начального уровня, а к 2010 году iSCSI будет практически безраздельно «властвовать» в сегменте СХД малого бизнеса, занимать 50% рынка в сегменте среднего бизнеса и 20-25% - крупного.

Что такое iSCSI?

iSCSI - это сквозной (end-to-end) протокол для транспорта блоков данных по сетям IP. Этот протокол используется на серверах (в терминологии iSCSI - «инициаторах»), устройствах хранения («целях») и устройствах передачи протокола («шлюзах»). iSCSI использует обычные коммутаторы и маршрутизаторы Ether net для передачи блоков данных от сервера к хранилищу. Также он позволяет использовать существующую IP-инфраструктуру для организации сетей хранения данных (SAN) без ограничения расстояния.

iSCSI строится на двух наиболее широко используемых протоколах: SCSI - протоколе обмена блоками данных между компьютером и хранилищем и IP - сетевом транспортном протоколе, наиболее широко применяющемся сегодня в корпоративных сетях Ethernet.

На рис. 1 схематично показан набор протоколов, задействованных при использовании iSCSI. Использование стандартного набора команд SCSI упрощает совместимость с существующими операционными системами и приложениями. Использование TCP/IP обеспечивает передачу команд SCSI в глобальном масштабе.

Архитектура обычного SCSI базируется на клиент-серверной модели. «Клиент», которым может быть, например, физический сервер, или рабочая станция, инициирует запросы на считывание или запись данных с исполнителя - «сервера», в роли которого, как правило, выступает СХД. Команды, которые выдает «клиент» и обрабатывает «сервер», помещаются в блок описания команды (Command Descriptor Block, CDB).

CDB - это структура, с помощью которой приложение-клиент направляет команды устройству-серверу. «Сервер» выполняет команду, а окончание ее выполнения обозначается специальным сигналом. Инкапсуляция и надежная доставка CDB-транзакций между инициаторами и исполнителями через TCP/IP сеть и есть главная задача iSCSI, причем ее приходится осуществлять в нетрадиционной для SCSI, потенциально ненадежной среде IP-сетей.

На рис. 2 изображена модель уровней протокола iSCSI, которая позволяет понять порядок инкапсуляции SCSI-команд для передачи их через физический носитель.

Протокол iSCSI осуществляет контроль передачи блоков данных и обеспечивает подтверждение достоверности завершения операции ввода/вывода, что в свою очередь обеспечивается через одно или несколько TCP-соединений.

Рис. 2. Модель нижних уровней протокола iSCSI

Рис. 3 . Модель «сетевых сущностей»

іSCSI имеет четыре составляющие:

Управление именами и адресами (iSCSI Address and Naming Con-ventions);

Управление сеансом (iSCSI Ses sion Management);

обработкаошибок (iSCSI Error Handling);

Безопасность (iSCSI Security).

Управление именами и адресами

Так как iSCSI-устройства являются участниками IP-сети, они имеют индивидуальные «сетевые сущности» (Network Entity). Каждая из них может содержать один или несколько iSCSI-узлов (рис. 3).

iSCSI-узел является идентификатором SCSI-устройств, доступных через сеть. Каждый iSCSI-узел имеет уникальное имя (длиной до 255 байт), которое формируется по правилам, принятым для обозначения узлов в Интернете (например, fqn.com.ustar.storage.itdepartment.161). Такое название имеет удобную для восприятия человеком форму и может обрабатываться сервером доменных имен (DNS). Таким образом, iSCSI-имя обеспечивает корректную идентификацию iSCSI-устройства, вне зависимости от его физического местонахождения.

В то же время в процессе контроля и передачи данных между устройствами удобнее пользоваться комбинацией IP-адреса и TCP-порта, которые обеспечиваются сетевым порталом (Network Portal). iSCSI-протокол в дополнение к iSCSI-именам обеспечивает поддержку псевдонимов, которые, как правило, отображаются в системах администрирования для удобства идентификации и управления администраторами системы.

Управление сеансом

iSCSI-сессия состоит из фаз аутентификации (Login Phase) и фазы обмена (Full Feature Phase), которая завершается специальной командой.

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

В завершение транзакции инициатор передает и принимает последние данные, а исполнитель отправляет ответ, который подтверждает успешную передачу данных.

В случае необходимости закрыть сессию используется команда iSCSI logout, которая передает информацию о причинах завершения. Она также может передать информацию о том, какое соединение следует закрыть в случае возникновения ошибки соединения, чтобы закрыть проблемные TCP-связи.

Обработка ошибок

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

Чтобы обработка ошибок и восстановление после сбоев функционировали корректно, как инициатор, так и исполнитель должны иметь возможность буферизации команд до момента их подтверждения. Каждое конечное устройство должно иметь возможность выборочно восстановить утраченный или испорченный PDU в рамках транзакции для восстановления передачи данных.

Иерархия системы обработки ошибок и восстановление после сбоев в iSCSI включает:

1. На самом низком уровне - определение ошибки и восстановление данных на уровне SCSI-задачи, например, повторение передачи утраченного или поврежденного PDU.

2. На следующем уровне - в TCP-соединении, которое передает SCSI-задачу, может произойти ошибка, т.е. TCP-соединение может повредиться. В этом случае осуществляется попытка восстановить соединение.

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

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

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

Рис. 4. IP-сеть с использованием iSCSI-устройств

Практическое применение iSCSI

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

Самый простой способ реализации iSCSI SAN - использование хранилищ с поддержкой iSCSI. В качестве хранилища может выступать дисковый массив, ленточный накопитель, СD-, DVD-, PDD-, UDO-библиотека.

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

Если с хранилищами все понятно - здесь протокол iSCSI поддерживается на уровне «зашитого» микропроцессорного кода, то с серверами и рабочими станциями («хостами») возникает маленький нюанс. Чтобы хост мог подключиться к iSCSI-хранилищу, на нем должен быть установлен аппаратный или программный iSCSI-инициатор.

Имея в хосте сетевую карту Gigabit Ethernet и загрузив программный iSCSI-инициатор (драйвер), хост можно подключить к сети хранения данных SAN по IP-протоколу. Чтобы объединить функции сетевого контроллера и контроллера интерфейса хранилища, запрос на блок и сам блок данных должны быть помещены внутрь пакета TCP/IP. Эта операция возлагается на процессор(ы) самого хоста, что отбирает немало вычислительной мощности и значительно снижает производительность сервера. Для снижения вычислительных затрат на создание и обработку протокольного стека TCP/IP для передачи SCSI-команд был создан TCP/IP offload engine (TOE). TOE берет на себя всю работу по обработке стека TCP/IP и освобождает процессор хоста. Иными словами, TOE - не что иное, как аппаратная реализация стека TCP/IP на сетевом адаптере Ethernet.

Ethernet-адаптеры с TOE могут вполне служить инициаторами для iSCSI SAN. Однако для достижения наилучшей производительности хоста рекомендуется использовать iSCSI-адаптеры, в которых кроме TOE аппаратно реализован и уровень iSCSI, например QLogic iSCSI HBAs QLA4010 или Adaptec iSCSI HBAs 7211.

Эти адаптеры имеют специальные чипы iSCSI и TCP/IP, что позволяет достигать высоких скоростей обработки пакетов iSCSI и максимальной разгрузки процессора хоста.

Главными достоинствами использования хранилищ с поддержкой iSCSI является простота настройки системы и отсутствие возможности программных сбоев. ПО, обслуживающее iSCSI, зашито в чип и не может быть повреждено вследствие вирусных или хакерских атак. Недостаток данного способа состоит в том, что большинство компаний уже вложили инвестиции в приобретение SCSI-хранилищ и внедрение iSCSI-сетей хранения данных кажется им неоправданной тратой денег.

Второй способ внедрения iSCSI позволяет обойти этот «подводный камень». В этом случае возле традиционного хранилища появляется так называемый iSCSI-мост, который собственно и инкапсулирует SCSI-блоки в пакеты Ethernet (рис. 5).

Рис. 5. Подключение SCSI в IP-сеть при помощи iSCSI-моста

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

Третьим вариантом построения iSCSI-решения является применение серверов хранилищ iSCSI. Подобные продукты есть в арсенале Hitachi, Fal-conStor и других игроков ИТ-рынка. Суть варианта состоит в том, что на основе стандартного сервера с операционной системой Windows Server либо Unix создается специальный сервер хранения, включенный в IP-сеть и обеспечивающий подключенным к этой же сети хостам доступ к дисковым массивам и ленточным устройствам (рис. 6).

Рис. 6. Построение сети хранения данных с помощью серверов хранилищ iSCSI

Устройства хранения могут подключаться к серверу по различным протоколам - SCSI, FC или iSCSI. Также может быть задействована локальная дисковая емкость сервера хранения.

Для доступа к ресурсам сервера хранения по iSCSI хосты должны быть подключены к IP-сети и на них должен быть установлен iSCSI-инициатор, преобразующий запросы операционной системы к ресурсам хранения в iSCSI-пакеты.Предоставляя доступ к устройствам хранения в сетях IP, сервер хранилища обеспечивает полный набор соответствующих услуг, в числе которых:

Синхронное и асинхронное зеркалирование;

Репликация на файловом и блочном уровнях;

Функция «моментальных снимков» (snapshots);

Дублирование серверов и т.д.

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

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

В заключение хочется отметить преимущества iSCSI перед другими технологиями организации удаленных хранилищ данных (например, FC, SCSI и т.д.). Во-первых, это высокая доступность бизнес-приложений. Множественные пути передачи IP-пакетов между серверами и хранилищами обеспечивают постоянное соединение, даже если один из компонентов сети выходит из строя. Во-вторых, защищенность данных - при низких стартовых вложениях можно создать резервное хранилище на значительном удалении от основной системы. К тому же iSCSI позволяет наращивать объем СХД или вычислительной мощности серверов без остановки приложений.

Еще одним важным моментом является возможность централизованного управления ресурсами за счет сведения разрозненных дисков и дисковых массивов в сети Ethernet в единый дисковый пул. С использованием iSCSI можно организовать резервное копирование как на локальные, так и на территориально удаленные СХД или зеркалирование на уровне тома.

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

Internet Small Computer System Interface (iSCSI) - это протокол передачи данных, предназначенный для обмена данными между серверами и системами хранения данных (Storage Area Network, SAN). iSCSI представляет из себя комбинацию протокола SCSI и стека протоколов TCP/IP и предназначен для передачи блоков данных через сети Ethernet. Управляющие команды SCSI передаются внутри IP-пакетов, а протокол TCP обеспечивает управление потоком и надежность передачи данных.

При использовании iSCSI данные между сервером и системой хранения передаются блоками, в необработанном виде. Это позволяет использовать SAN практически так же, как если бы они были подключены к серверу напрямую, а не по сети. Хост-система может создавать на SAN логические разделы, форматировать их и использовать как обычные локальные жесткие диски. В этом заключается основное отличие SAN от сетевых хранилищ (Network Area Storage, NAS), которые работают на уровне файловой системы и используют протоколы передачи файлов, такие как SMB или CIFS.

Технология iSCSI была разработана как более дешевая альтернатива Fibre Channel (FC). Системы на базе iSCSI поддерживают стандартные протоколы и могут быть построены на базе любой существующей сетевой инфраструктуры, поддерживающей протокол IP. Для работы iSCSI может использовать самые обычные сетевые устройства (коммутаторы, маршрутизаторы, сетевые адаптеры и т.п), тогда как для FC требуются специальные HBA-адаптеры, оптические кабеля и прочее дорогостоящее оборудование.

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

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

iSCSI Target - серверный компонент, слушающий клиентские запросы и обеспечивающий установку соединения между клиентом и сервером iSCSI. Кроме того, таргет связан с виртуальными дисками iSCSI, и после установки соединения все виртуальные диски, связанные с этим таргетом, становятся доступны через инициатор. В качестве iSCSI Target может выступать как специализированная СХД, так и обычный Windows сервер с установленной ролью iSCSI Target.

Виртуальные диски iSCSI - используются для разбиения дискового пространства на логические разделы (Logical Unit Number, LUN). В Windows Server 2012 iSCSI LUN представляют из себя обычные виртуальные диски формата VHD\VHDX. Кстати, в Windows Server 2012 для iSCSI поддерживался только формат VHD, что ставило ограничение в 2ТБ на максимальный размер LUN. В Windows Server 2012 R2 используется формат VHDX, что позволяет создавать LUN-ы размером до 64ТБ.

А теперь остановимся и уточним некоторые моменты:

На каждом iSCSI сервере может быть один или несколько iSCSI Target;
Каждый iSCSI Target может быть подключен к одному или нескольким виртуальным дискам;
Каждый iSCSI Target может обслуживать одно или несколько подключений от iSCSI Initiator;
В свою очередь, каждый iSCSI Initiator может подключаться к одному или нескольким iSCSI Target и, следовательно, к одному или нескольким виртуальным дискам.

Кроме того, в Windows Server 2012 поддерживается loopback-конфигурация, в которой и Target и Initiator могут находиться на одном и том же сервере.

В операционных системах Microsoft поддержка iSCSI появилась довольно давно. Первая версия Microsoft iSCSI Initiator устанавливалась в качестве отдельного компонента в Windows 2000, Windows XP SP2 и Windows Server 2003 SP1, а начиная с Windows Server 2008 и Vista iSCSI Initiator был встроен в операционную систему.

Что касается iSCSI Target, то изначально он входил в специальную версию серверной ОС Windows Data Storage Server 2003, которая была предназначена для построения систем хранения и поставлялась только в предустановленом виде. Однако с 2011 года компонент Microsoft iSCSI Software Target 3.3 стал доступен для загрузки и установки на Windows Server 2008R2, а в Windows Server 2012 он полностью интегрирован в систему и устанавливается в качестве роли сервера.

На этом закончим теоретическую часть и приступим к практике. Для настройки возьмем самый простой вариант, в качестве подопытных используем два сервера с установленной Windows Server 2012 R2: SRV2 для роли iSCSI Target и SRV3 для iSCSI Initiator.

Запуск службы iSCSI Initiator

Для начала проверим состояние службы инициатора на SRV3. Для этого открываем Server Manager и в меню «Tools» выбираем пункт «iSCSI Initiator».

Как видите, по умолчанию служба не запущена. Нажав на «Yes» в диалоговом окне, мы стартуем службу iSCSI Initiator и поставим ее в режим автоматического запуска.

Затем в окне свойств переходим на вкладку «Configuration» и запоминаем значение IQN, оно пригодится нам при настройке сервера.

IQN (iSCSI qualified name) - это уникальный идентификатор, назначаемый для каждого iSCSI Target и Initiator. IQN формируется из даты (месяц и год) регистрации домена, официального имени домена, написанного в обратном порядке и любого произвольного имени, например имени сервера. Получается примерно так: iqn:1991-05.com.microsoft:srv3.contoso.com

Стартовать сервис iSCSI Initiator и установить режим его запуска можно и из консоли PowerShell, следующими командами:

Start-Service msiscsi
Set-Service msiscsi -StartupType automatic

Установка роли iSCSI Target Server

Теперь перейдем на SRV2 и приступим к настройке серверной части. Первое, что нам надо сделать - это установить на сервер роль iSCSI Target. Открываем Server Manager, переходим по ссылке «Add roles and features»

И выбираем роль «iSCSI Target Server», которая находится в разделе File and Storage Services\File and iSCSI Services.

Либо воспользуемся командой PowerShell:

Install-WindowsFeature -Name FS-iSCSITarget-Server

Подготовка диска

Теперь подготовим физический диск, который будет использоваться для хранения виртуальных iSCSI дисков. Специально для этой цели к серверу подключен новый жесткий диск размером 120Гб. На данный момент диск неактивен (Offline). Для его активации в Server Manager переходим в раздел File and Storage Services -> Disks, кликаем на диске и переводим его в Online.

Теперь на этом диске надо создать новый раздел (или том), для чего в контекстном меню выбираем пункт New Volume.

Выбираем физический диск, на котором будет создаваться том

указываем размер тома

и выбираем букву диска.

Затем выбираем для диска файловую систему, размер сектора и указываем метку тома. Здесь напомню, что виртуальные диски iSCSI можно создавать только на томах NTFS, новая файловая система ReFS (Resilient File System) не поддерживается.

Смотрим суммарную информацию, и если все правильно, то жмем «Create», запуская создание тома.

Те же действия можно проделать с помощью PowerShell. Находим нужный диск:

Get-Disk | where {$_.OperationalStatus -eq ″Offline″}

Переводим его в online:

Set-Disk -Number 1 -IsOffline $false

Инициализируем:

Initialize-Disk -Number 1

Создаем раздел:

New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D

И форматируем его в NTFS:

Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel ″iSCSI Storage″

Создание виртуальных дисков iSCSI

Следующим пунктом нашей программы идет создание виртуальных iSCSI дисков. Для этого переходим в раздел iSCSI и кликаем по ссылке, запуская очередной мастер.

Выбираем том, на котором будет храниться виртуальный диск.

Даем диску имя и описание.

Указываем размер виртуального диска и его тип. Выбирать можно из трех вариантов:

Fixed size (фиксированного размера) - создаваемый диск сразу занимает весь выделенный объем. Это наиболее производительный, но наименее экономичный вариант;
Dynamically expanding (динамически расширяемый) - изначально создается диск минимального размера, который затем динамически изменяется в зависимости от количества записанных на него данных. Наилучший вариант в плане использования дискового пространства;
Differencing (разностный) - в этом варианте нужно указать расположение родительского диска, с которым будет связан создаваемый диск. Разностный диск может быть как фиксированным, так и динамическим, в зависимости от типа родителя. У этого типа дисков есть свои преимущества, но использовать их для iSCSI лично я особого смысла не вижу.

Теперь нужно указать iSCSI Target, к которому будет подключен данный диск. Поскольку на сервере не создано ни одного таргета, выбираем «New iSCSI target».

Даем таргету имя и описание.

И указываем сервера, которые могут получить к нему доступ.

При выборе серверов можно воспользоваться двумя способами. Если инициатор находится на Windows Server 2012 или Windows 8, то можно просто нажать «Browse» и выбрать нужный сервер из списка. Для более старых систем надо вручную ввести идентификатор сервера. В качестве идентификатора можно указать IQN инициатора, DNS имя или IP-адрес сервера, либо MAC-адрес сетевого адаптера.

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

Проверяем правильность настроек и запускаем создание диска.

Попробуем сделать все то же с помощью PowerShell. Создадим еще один виртуальный iSCSI диск на 20ГБ командой:

New-IscsiVirtualDisk -Path D:\iSCSIVirtualDisks\iSCSI2.vhdx

Обратите внимание, что по умолчанию создается динамический диск, для создания VHD фиксированного размера надо воспользоваться ключом -UseFixed .

Теперь создаем второй iSCSI Target c именем iscsi-target-2 и в качестве сервера доступа укажем IQN SRV3:

New-IscsiServerTarget -TargetName iscsi-target-2 -InitiatorIds ″IQN:iqn.1991-05.com.microsoft:srv3.contoso.com″

И проверим результат командой:

Get-IscsiServerTarget | fl TargetName, LunMappings

Подключение

Возвращаемся на SRV2, открываем окно свойств инициатора, переходим на вкладку Discovery и жмем кнопку Discover Portal.

Вводим имя или IP-адрес портала и жмем ОК.

По умолчанию iSCSI использует все доступные IP-адреса, и если вы хотите, чтобы трафик iSCSI шел только через определенный сетевой интерфейс, то надо перейти в расширенные настройки и в поле «Connect using» указать нужный IP.

Теперь переходим на вкладку Targets, где должны отобразиться все доступные для подключения iSCSI Target. Выбираем нужный таргет и жмем «Connect».

Не забудьте отметить чекбокс «Add this connection to the list of Favorite Targets», который обеспечивает автоматическое подключение к таргету при выключении или перезагрузке машины.

Подключение состоялось, и если открыть оснастку управления дисками, то там появится новый диск. Дальше с этим диском поступаем так же, как с обычным жестким диском, подключенным локально - переводим в Online, инициализируем, создаем на нем разделы и форматируем.

То же самое можно выполнить с помощью PowerShell. Выводим список доступных таргетов:

Get-IscsiTarget | fl

И подключаемся к нужному:

Connect-IscsiTarget -NodeAddress ″iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target″ -IsPersistent $true

Ключ -IsPersistent $true обеспечивает автоматическое подключение при выключении или перезагрузке.

Ну и для отключения можно воспользоваться командой Disconnect-IscsiTarge, вот так:

Disconnect-IscsiTarget -NodeAddress ″iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target″ -Confirm:$false

Заключение

На этом настройка завершена. Как я говорил, это самый простой, базовый вариант настройки хранилища. В iSCSI имеется еще много интересных возможностей. Например, можно использовать службу имен iSCSI (iSNS) для простоты управления, многопутевой ввод-вывод (MPIO) для обеспечения отказоустойчивости, а для безопасности настроить аутентификацию по протоколу CHAP и шифрование трафика с помощью IPSec. О некоторых из этих фич я планирую написать в следующих статьях.

И в заключение важные моменты, которые надо учесть при организации системы хранения iSCSI:

Развертывать iSCSI желательно в быстрой сети, не ниже Gigabit Ethernet;
Сетевой трафик iSCSI рекомендуется отделить от остального трафика и вынести в отдельную сеть, например с помощью VLAN или физического разделения на подсети;
Для обеспечения высокой доступности на сетевом уровне необходимо использовать технологию MPIO, либо сеансы с несколькими подключениями (MCS). Объединение сетевых адаптеров (NIC Teaming) для подключения к устройствам хранения iSCSI не поддерживается;
При использовании технологии Storage Spaces можно хранить виртуальные диски iSCSI на Storage Spaces, но нельзя использовать LUN-ы iSCSI для создания Storage Spaces;
Для хранения виртуальных дисков iSCSI нельзя использовать общие кластерные тома CSV (Cluster Shared Volume).