В этой статье мы рассмотрим, как создать 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.

Или установить роль с помощью PowerShell:
Install-WindowsFeature -Name FS-iSCSITarget-Server
Теперь на iSCSI сервере нужно создать виртуальный диск iSCSI. Перейдите в Server Manager -> File and Storage Services -> iSCSI, нажмите New iSCSI Virtual Disk.

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

На шаге Access Servers нужно указать iSCSI инициаторы, которые смогут подключаться к данному iSCSI таргет. Выберите один из вариантов подключения:
- IQN (придется сначала включить iSCSI initiator на сервере и скопировать IQN)
- DNS Name
- IP Address
- MAC Address
Пусть используется вариант с IP-адресом.

На следующем этапе можно включить аутентификацию CHAP для доступа к iSCSI таргету. Это позволит подключаться к 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

Далее присвоим таргету имя и разрешим доступ с IP адреса сервера-инициатора:
New-IscsiServerTarget -TargetName "iscsiTarget33" -InitiatorId @("IPAddress:172.17.244.8")

Вместо IP-адреса для идентификации инициатора можно использовать IQN:
New-IscsiServerTarget -TargetName iscsiTarget33 -InitiatorIds “IQN: 1991-05.com.microsoft:win2019test.ddd.com”
(Get-InitiatorPort).NodeAddress

Вывести текущие настройки iSCSI таргета:
Get-IscsiServerTarget | fl
Вывести список iSCSI-дисков, привязанных к таргету:
Get-IscsiServerTarget | Format-List TargetName, LunMappings

Получить полное имя таргета можно с помощью командлета
Get-IscsiTarget
, а затем подключить таргет:
Connect-IscsiTarget -NodeAddress iqn.1991-05.com.microsoft:win2019test-iscsitarget33-target

Настройка iSCSI Initiator в Windows Server
Следующий шаг – подключение к созданному iSCSI диску со сервера-инициатора. Перейдите в панель управления Control Panel, запустите iSCSI initiator (или выполните команду
iscsicpl.exe
).
iscsicpl
доступна в редакциях Windows Server без графического интерфейса (Windows Server Core и Windows Hyper-V Server).
При первом запуске панели управления iSCSI initiator вам будет предложено запустить службу 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.

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

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

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

Теперь этот виртуальный диск, подключенный с другого сервера по протоколу iSCSI можно использовать как обычный локально подключенный диск.
Можно подключить диск с 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

Для быстрой инициализации и форматирования нового диска можно использовать следующий однострочный 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 добавьте таргет по второму (и последующему) пути (например по второму IP адресу сервера iSCSI) с включенной опцией Enable multi-path.
Теперь, если на вкладке Target кликнуть по кнопке Device, можно увидеть что теперь LUN доступен по двум разным путям.

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

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


может ли несколько инициаторов одновременно подключаться к одному таргету?
вообще как считаете подходит ли iscsi для использования UPD в терминальной ферме?
«Сначала нужно включить iSCSI target (активировать роль iSCSI Target Server), зайдя в File and Storage Services -> File and iSCSI Services.» — Где это искать и включать? В какой программе? Что, нужно гадать, догадываться и искать методом тыка? Откуда вы беретесь только такие «учителя» недоделанные?
брат, администрирование не твоё, не страдай
;=)) долго смеялся, админу респект
Ааахахах, харош! Да пусть лучше не страдает, не его это.
Добрый день Можете подсказать, почему из диспетчера серверов при выборе в консоли управления данного сервера диспетчера дисков получаю ошибку «Служба RPC недоступна», разрешающие правила в файерволе на сервере включены, по инструкции на сайте. сеть домен. единственно, нормально все работает когда файервол отключен совсем и на сервере и на клиенте. то есть на моем компьютере. но это вообще не вариант. Сервер WIN SRV 2016 std, клиент win 10. И да, параллельно в диспетчере устройств ловлю ошибку службы pnp и удаленного реестра. хотя он на удаленной системе работают. Буду благодарен за подсказку.
Мне пришлось добавлять инициатора из кэша. Только тогда удалённый инициатор увидел таргет.