Настройка iSCSI хранилища в Windows Server 2012

Не удалось выполнить обнаружение iscsi через sendtargets код ошибки 0xefff0003 для целевого портала

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».

Запуск iSCSI Initiator

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

подтверждение на запуск сервиса iSCSI Initiator

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

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

свойства iSCSI Initiator

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

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

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

Server Manager

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

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

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

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

подключение нового диска

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

создание нового тома на диске

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

выбор диска

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

выбор размера тома

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

выбор буквы диска

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

настройки файловой системы

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

подтверждение на создание нового тома

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

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

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

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

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

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

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

выбор тома для размещения виртуального диска

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

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

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

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

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

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

указываем iSCSI Target

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

задаем имя для iSCSI Target

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

указываем сервера доступа

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

окно выбора серверов доступа

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

настройки аутентификации

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

подтверждаем создание виртуального диска

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

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

создание виртуального диска из PowerShell

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

создание iSCSI Target и подключение диска

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

Get-IscsiServerTarget | fl TargetName, LunMappings

вывод информации о iSCSI Target

Подключение

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

окно Discover свойств iSCSI Initiator

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

настройка подключения к iSCSI Target

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

расширенная настройка подключения к iSCSI Target

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

выбор iSCSI Target

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

подключение к iSCSI Target

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

оснастка Disk Management

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

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

подключение к iSCSI Target из PowerShell

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

отключение к iSCSI Target из PowerShell

Заключение

На этом настройка завершена. Как я говорил, это самый простой, базовый вариант настройки хранилища. В 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).

OpenFiler часть 3. Подключение iSCSI-таргета на KVM-хосте

После того как iSCSI SAN в роли которого выступает OpenFiler 2.3 настроен и наш iSCSI-target готов к клиентским подключениям самое время поговорить о iSCSI-initiator’ах.

Подключение iSCSI-target’a в ручную, через консоль

Сегодня, практически не найти дистрибутива в котором по умолчанию отсутствует пакет open-iscsi(или iscsi если у вас CentOS) включающий в себя все необходимое для работы с iscsi.

На всякий случай запускаем службу и добавляем ее в автозагрузку

# /etc/init. d/open-iscsi start в debian и openSUSE или #/etc/init. d/iscsi start в CentOS
#chkconfig open-iscsi on

В итоге будут созданы две поддиректории с информацией о целе(target) и хосте.
/etc/iscsi/nodes(openSUSE) или /var/lib/iscsi/nodes(CentOS) с вот таким содержимым в моем случае iqn.2006-01.com. openfiler:iscsi0. Здесь содержится описание каждого найденного таргета.

/etc/iscsi/send_targets(openSUSE) /var/lib/iscsi/send_targets/(CentOS)
содержимое 192.168.0.91,3260. Здесь содержится описание хоста.
Используя информацию в созданных выше каталогах, iscsi-демон(если он запускается при старте ОС) будет автоматически подключать цели при каждой загрузке системы.

Подключение iSCSI-таргет к KVM-хосту под управлением libvirt/virsh

Чтобы подключить iSCSI-хранилище на хосте под управлением libvirt необходимо создать xml-файл вот такого содержания:

Причем строку <uuid>f1282394-1d9e-8901-8ba2-7210c9f5c558</uuid> необходимо очистить и привести вот к такому виду <uuid></uuid>. При создании хранилища этот uuid будет сгенерирован автоматически.

После этого делаем:
#virsh pool-define /путьКфайлу/имяФайлаСОписаниемСтораджа. xml
Создаем новое хранилище на основе ранее созданного описания.

#virsh pool-autostart iSCSI-stor01
добавляем хранилище в «автозагрузку»

после этого в списке хранилищ, можно увидеть новое только, что добавленное iSCSI-хранилище
# virsh pool-list

Добавление нового iSCSI-хранилища через интерфейс virt-manager’a

Virt-manager, во всем и везде использует libvirt а libvirt в свою очередь использует общеизвестные средства, что и мы использовали в примере выше(тот же iscsiadm). В общем, как не крути но пакет open-iscsi должен быть установлен в не зависимости от того чем пользоваться virt-manager’ом или virsh.

OpenFiler часть 3. Подключение iSCSI-таргета на KVM-хосте

В интерфейсе Virt-manager’a необходимо пройти в меню Правка и там выбрать Параметры хоста.
В открывшемся окне переходим на вкладку Хранилище и в левом нижнем углу выбираем Плюсик(добавить новое хранилище).
После этого задаем произвольное Имя нового хранилища и указываем Тип хранилища. Рис №1.
Рис №1. Описание нового хранилища

OpenFiler часть 3. Подключение iSCSI-таргета на KVM-хосте

Жмем далее и указываем параметры подключения. Рис №2.
Рис №2. Указываем параметры подключения

OpenFiler часть 3. Подключение iSCSI-таргета на KVM-хосте

Жмем Завершить и если ошибок не вывалится то увидим следующую картину. Рис №3
Рис №3. Обзор нового хранилища

Все, хранилище добавлено. Теперь его можно смело указывать в качестве диска для любой ВМ!

Добавления нового iSCSI-хранилища в WEB-консоле Proxmox VE 1.8

OpenFiler часть 3. Подключение iSCSI-таргета на KVM-хосте

После этого, новый iSCSI-Target может быть указан в качестве диска для любой ВМ. Рис №5
Рис №5. Подключение нового диска(iSCSI-Target) к ВМ

Хотя в платформе виртуализации Proxmox и не используется libvirt(что очень жаль) в качестве iscsi-initiator’a задействован все тот же пакет open-iscsi.

Если при создании iSCSI-таргета, в интерфейсе OpenFiler’a все настройки были оставленны по умолчанию, то подключится к нашему таргету сможет только один клиент!

Источники:

https://windowsnotes. ru/windows-server-2012/nastrojka-iscsi-xranilishha-v-windows-server-2012/

https://ivirt-it. ru/openfiler-part-3-connect-to-kvm-host/

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: