Настройка и подключение iSCSI-хранилища в Windows Server

В этой статье мы рассмотрим, как создать iSCSI хранилище на базе виртуальных дисков на хосте Windows Server 2025 и подключить его по сети на других хостах (в Windows Server 2022/2019/2016 все настраивается аналогично).

Сетевой протокол iSCSI (Internet Small Computer System) используется для организации доступа к удаленной системе хранения через IP сеть. Протокол iSCSI позволяет подключать удаленные хранилища через обычную TCP/IP сеть без использования Fibre Channel и дополнительного оборудования (контроллеров). Основные компоненты iSCSI:

  • iSCSI Target Server — серверный компонент протокола iSCSI, предоставляющий клиентам доступ к блочным устройствам хранения (в Windows это виртуальные VHDX диски)
  • iSCSI Initiator — клиентская часть протокола, которая устанавливает соединение с таргетом и позволяет организовать доступ к удаленному диски так, как будто он подключен локально
  • IQN (iSCSI Qualified Name) — уникальный идентификатор iSCSI устройства (есть как у таргета, так и инициатора)

Настройка iSCSI target в Windows Server

Хост с Windows Server может выступать в качестве iSCSI таргета, который публикует виртуальные диски и предоставляет к ним доступ другим сервера (iSCSI инициаторам

На хосте Windows Server, который будет предоставлять доступ к своему хранилищу нужно включить iSCSI target (роль iSCSI Target Server). Включить ее можно через Server Manager -> File and Storage Services -> File and iSCSI Services.

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

Или установить роль с помощью PowerShell:

Install-WindowsFeature -Name FS-iSCSITarget-Server

В целях улучшения производительности iSCSI хранилищ на сервере для трафика хранения желательно выделить отдельный сетевой адаптер или группу адаптеров (NIC teaming).

Теперь на iSCSI сервере нужно создать виртуальный диск iSCSI. Перейдите в Server Manager -> File and Storage Services -> iSCSI, нажмите New iSCSI Virtual Disk.

создать iSCSI virtual disk в windows server

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

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

  • Fixed Size – диск фиксированного размера, который при создании сразу занимает все выделенное для него место. Это формат диска обеспечивает лучшую производительность и подходит для продуктивных систем с высокой дисковой активностью и повышенными требованиями к IOPS
  • Dynamically expanding – такой диск занимает изначально немного место и расширяется по мере записи в него. Такой тип диска позволяет сэкономить место на хранилище, но уступает в скорости фиксированным дискам из за необходимости постоянного расширения
  • Differencingдифференциальный (или разностный диск), который основывается на некотором родительском диске и содержит изменения относительного родительского (используется крайне редко, обычно в сценариях виртуализации с базовым образом/VDI).

iscsi диск фиксированного размера

На шаге Access Servers нужно указать iSCSI инициаторы, которые смогут подключаться к данному iSCSI таргет. Выберите один из вариантов подключения:

  • IQN (придется сначала включить iSCSI initiator на сервере и скопировать IQN)
  • DNS Name
  • IP Address
  • MAC Address

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

НАстройка access серверов для iscsi target

На следующем этапе можно включить аутентификацию CHAP для доступа к iSCSI таргету. Это позволит подключаться к iSCSI таргету только после выполнения аутентификации (нужно указать имя и пароль для подключения).

настройка chap аутентфикации для iscsi

Проверьте, что виртуальный диск iscsiDisk2.vhdx создался в каталоге D:\iSCSIVirtualDisks (папка по умолчанию).

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

New-IscsiVirtualDisk -Path D:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB

По умолчанию создается динамический диск размером 4,096 Кб, независимо от того, сколько было указано параметром Size.

Чтобы создать диск фиксированного размер, добавьте UseFixed:

New-IscsiVirtualDisk -Path D:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB –UseFixed

vhdx - виртуальные iscsi диски

Далее присвоим таргету имя и разрешим доступ с IP адреса сервера-инициатора:

New-IscsiServerTarget -TargetName "iscsiTarget33" -InitiatorId @("IPAddress:172.17.244.8")

New-IscsiServerTarget

Вместо IP-адреса для идентификации инициатора можно использовать IQN:

New-IscsiServerTarget -TargetName iscsiTarget33 -InitiatorIds “IQN: 1991-05.com.microsoft:win2019test.ddd.com”

Для получения IQN на инициаторе используйте команду:

(Get-InitiatorPort).NodeAddress

Get-InitiatorPort получить IQN

Вывести текущие настройки iSCSI таргета:

Get-IscsiServerTarget | fl

Вывести список iSCSI-дисков, привязанных к таргету:

Get-IscsiServerTarget | Format-List TargetName, LunMappings

Get-IscsiServerTarget

Получить полное имя таргета можно с помощью командлета
Get-IscsiTarget , а затем подключить таргет:

Connect-IscsiTarget -NodeAddress iqn.1991-05.com.microsoft:win2019test-iscsitarget33-target

powershell подключить iscsi диск Connect-IscsiTarget

Настройка iSCSI Initiator в Windows Server

Следующий шаг – подключение к созданному iSCSI диску со сервера-инициатора. Перейдите в панель управления Control Panel, запустите iSCSI initiator (или выполните команду iscsicpl.exe ).

Графическая консоль iscsicpl доступна в редакциях Windows Server без графического интерфейса (Windows Server Core и Windows Hyper-V Server).

запустить iscsi сервер

При первом запуске панели управления iSCSI initiator вам будет предложено запустить службу Microsoft iSCSI Initiator Service и настроить для нее автоматический запуск.

службу Microsoft iSCSI Initiator Service

Перейдите на вкладку Discovery, нажмите на кнопку Discover Portal и введите ввести IP-адрес сервера iSCSI-таргет. По умолчанию iSCSI использует все доступные IP-адреса для доступа к таргету. Чтобы iSCSI трафик ходил только через определённый сетевой интерфейс (выше мы уже писали, что для iSCSI трафика лучше выделить отдельную NIC), нужно нажать кнопку Advanced, и изменить значения по умолчанию в выпадающих списках: Local Adapter –> Microsoft iSCSI Initiator, Initiator IP –> 172.17.244.8.

подключение iscsi диска через графический интерфейс

Для подключения к iSCSI хранилищу необходимо открыть TCP порты 860 и 3260 в Windows Firewall.

Теперь переключитесь на первую вкладку Targets, где появится новое подключение. Чтобы включить его, нажмите Connect -> Advanced, выберите значения из выпадающих полей, включите галочку Enable CHAP log on, укажите имя пользователя и пароль (который был задан на таргете). Проверьте, что включена опции Add the connection to the list of Favorite Targets (обеспечит автоматическое подключение к iSCSI таргету после перезагрузки хоста).

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

Если между iSCSI-инициатором (клиентом) и iSCSI-таргетом (устройством хранения) доступно несколько сетевых путей, нужно включить опцию Enable multi-path. Это позволит обеспечить отказоустойчивость и балансировку нагрузки с помощью функции MPIO (Multipath I/O) (рассмотрено ниже).

Статус подключения должен изменится на Connected.

iscsi-target connected

Осталось инициализировать сам iSCSI-диск, который сначала находится в состоянии Offline. Для этого на сервере-инициаторе необходимо в консоли Disk Management (diskmgmt.msc) в контекстном меню нового диска выбрать пункт Online, а затем – Initialize Disk. Создайте на новом диске один или несколько разделов, присвойте метку и букву диска. Отформатируйте в файловой системе NTFS.

инициализация диска

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

Такие виртуальные iSCSI диски можно использовать в Windows Server для создания виртуального RAM диска в оперативной памяти.

Можно подключить диск с iSCSI таргета на инициаторе через PowerShell.

Запустите службу Microsoft iSCSI Initiator Service

Start-Service -Name MSiSCSI

Set-Service -Name MSiSCSI -StartupType Automatic

Добавьте iSCSI таргет:

New-IscsiTargetPortal -TargetPortalAddress "192.168.15.10"

Вывести список доступных iSCSI таргетов:

Get-IscsiTarget

Подключите нужный таргет (используя NodeAddress) и введите данные для CHAP аутентфикации (если используется):

Connect-IscsiTarget -NodeAddress iqn.1991-05.com.microsoft:s-fs01-wsfs-q1-target -AuthenticationType ONEWAYCHAP -ChapUsername "user" -ChapSecret "Passw0rd1" -IsPersistent $true -IsMultipathEnabled $true

Connect-IscsiTarget IsPersistent

Для быстрой инициализации и форматирования нового диска можно использовать следующий однострочный PowerShell (см. пример в статье об управления дисками и разделами из PowerShell):

Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false

Включаем MPIO для iSCSI в Windows Server

Если вы хотите обеспечить высокую доступность и балансировку нагрузки для iSCSI дисков, можно использовать несколько избыточные сетевые компоненты (сетевые карты, коммутаторы) и модуль MPIO. Например, на системе хранения и инициаторе есть несколько сетевых адаптеров, которые можно использовать в качестве отдельных путей подключения к устройству хранения. Это позволит увеличить надежность за счет наличия нескольких путей, а также распределить нагрузку между путями.

Для этого в Windows Server должен быть установлен компонент Multipath I/0 (MPIO):

Enable-WindowsOptionalFeature -Online -FeatureName MultiPathIO

Откройте консоль управления MPIO:

mpiocpl.exe

Перейдите на вкладку Discover Multi-Paths, включите опцию Add support for iSCSI devices и нажмите Add.

Включить поддержку mpio для iscsi

Перезагрузите сервер.

После включения MPIO добавьте таргет по второму (и последующему) пути (например по второму IP адресу сервера iSCSI) с включенной опцией Enable multi-path.

Теперь, если на вкладке Target кликнуть по кнопке Device, можно увидеть что теперь LUN доступен по двум разным путям.

iscsi несколько путей к дискам

Если нажать кнопку MPIO, здесь можно настроить политику выбора путей. Для Load balance policy доступы такие опции:

  • Round Robin — все возможные пути используются по очереди, для балансировки нагрузки (по умолчанию)
  • Fail over only — используется только один активный путь, остальные находятся в режиме ожидания
  • Round Robin with Subset — позволяет указать несколько основных путей (как в Round Robin), а также несколько дополнительных
  • Least Queue Depth — использовать путь с наименьшей глубиной очереди I/O
  • Weighted Paths — для каждого пути назначается вес (приоритет). Используется доступный путь с наименьшим весом
  • Least Blocks — выбирается путь, по которому было передано наименьшее количество блоков данных (равномерное распределение нагрузки)

mpio политика балансировки

Вы можете выбрать нужную вам политику выбора путей и балансировки.

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


Предыдущая статья Следующая статья


Комментариев: 7 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)