
iSCSI (Internet Small Computer System) — это протокол SCSI, позволяющий получать доступ к устройствам хранения данных по протоколу IP. Используя iSCSI, вы можете подключить свой сервер к общему сетевому хранилищу через обычную сеть TCP/IP без использования Fiber Channel (FC). В этой статье мы покажем, как настроить iSCSI-цель (виртуальный диск) на сервере под управлением Windows Server 2019 и подключить этот iSCSI LUN на других серверах (в Windows Server 2016 и 2012 R2 он настраивается аналогичным образом). Первый пример использования iSCSI: файловому серверу нужно больше места для хранения, и мы подключаем виртуальный диск с другого сервера хранения по iSCSI. Другой пример — построение отказоустойчивого кластера, когда нескольким серверам нужен доступ к общему хранилищу.
Чтобы использовать iSCSI-диск, необходимо настроить виртуальный диск (это обычный файл VHD/VHDX) на сервере хранения и опубликовать его как iSCSI-цель, который Инициаторы iSCSI (другие серверы или устройства) подключаются к ним.
Настройка iSCSI-цели на Windows Server
Прежде всего, откройте диспетчер сервера и включите опцию iSCSI Target Server роль в службах файлов и хранения -> Службы файлов и iSCSI.
Install-WindowsFeature -Name FS-iSCSITarget-Server
Затем создайте виртуальный диск на сервере iSCSI. Для этого перейдите в Server Manager -> File and Storage Services -> iSCSI и нажмите Чтобы создать виртуальный диск iSCSI, запустите мастер создания нового виртуального диска iSCSI..
В мастере создания виртуального диска iSCSI выберите физический раздел для размещения файла виртуального диска. Затем присвойте имя новому iSCSI-диску, задайте его размер, тип (фиксированный размер, динамически расширяющийся или дифференцирующийся) и имя iSCSI-цели.
На шаге Серверы доступа укажите серверы (инициаторы iSCSI), которые смогут подключаться к цели iSCSI, выбрав один из следующих вариантов подключения:
- IQN (сначала необходимо включить инициатор iSCSI на сервере и скопировать его IQN);
- DNS-имя;
- IP-адрес;
- MAC-адрес.
Давайте воспользуемся IP-адрес вариант.
Следующим шагом мастера является настройка протокола аутентификации CHAP. Его необходимо использовать, если вы хотите аутентифицировать подключение инициатора. Включите его, введите имя пользователя и 12-символьный пароль (или более длинный) и нажмите Next -> Next -> Finish. Убедитесь, что iscsiDisk2.vhdx создан в папке D:\iSCSIVirtualDisks.
Вы можете создать iSCSI-диск с помощью PowerShell. Давайте создадим виртуальный диск объемом 200 ГБ:
New-IscsiVirtualDisk -Path c:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB
По умолчанию создается динамический диск размером 4 096 КБ независимо от значения, указанного в параметре Размер параметр. Динамический диск будет расти по мере необходимости.
Если вы хотите использовать диск фиксированного размера (такие диски при создании резервируют место на физическом диске), вы можете создать его с помощью той же команды с параметром UseFixed параметр:
New-IscsiVirtualDisk -Path c:\iSCSIVirtualDisks\iscsiDisk2.vhdx -Size 200GB –UseFixed
Затем присвойте имя целевому диску. На этом этапе можно разрешить доступ к ней с IP-адреса сервера инициатора:
New-IscsiServerTarget -TargetName "iscsiTarget33" -InitiatorId @("IPAddress:172.17.244.8")
При желании вместо IP-адреса можно использовать имя IQN (iSCSI Qualified Name — уникальный идентификатор iSCSI-устройства в сети):
New-IscsiServerTarget -TargetName iscsiTarget33 -InitiatorIds “IQN:1991-05.com.microsoft:win2019test.ddd.com”
Затем рекомендуется проверить результат:
Get-IscsiServerTarget | fl TargetName, LunMappings
Полное имя цели можно получить с помощью команды Get-IscsiTarget
, а затем подключить цель:
Connect-IscsiTarget -NodeAddress iqn.1991-05.com.microsoft:win2019test-iscsitarget33-target
Установка и настройка инициатора iSCSI на Windows Server
Следующим шагом будет подключение к созданному вами виртуальному iSCSI-диску со второго (инициаторского) сервера. Откройте панель управления и запустите программу инициатор iSCSI (или запустите iscsicpl.exe
).
В консоли управления службами (services.msc
) установите тип автоматического запуска для Microsoft iSCSI Initiator Service, или воспользуйтесь этой командой:
Set-Service -Name MSiSCSI -StartupType Automatic
Перейдите на страницу Открытие вкладка, нажмите Портал открытий и введите IP-адрес первого сервера (цель iSCSI). Чтобы направить трафик хранилища через определенный сетевой интерфейс, щелкните Дополнительно и измените значения по умолчанию в выпадающих списках на следующие: Local Adapter -> Microsoft iSCSI Initiator, Initiator IP -> 172.17.244.8.
Затем перейдите в раздел Цели , и вы увидите новое соединение. Чтобы включить его, нажмите Подключить -> Продвинутый, выберите нужные значения в выпадающих списках, установите флажок Включить вход по протоколу CHAP , введите имя пользователя и 12-символьный пароль.
Затем инициализируйте iSCSI-диск, который изначально находится в состоянии Offline. Для этого выберите Online, а затем Инициализация диска в контекстном меню нового диска в консоли Disk Management. Создайте на новом диске один или несколько разделов и назначьте им буквы и метки дисков. Отформатируйте тома в NTFS.
Чтобы быстро инициализировать и отформатировать новый диск, можно воспользоваться следующей командой PowerShell (см. пример в статье об управлении дисками и разделами с помощью PowerShell):
Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false
Теперь вы можете использовать виртуальный диск, подключенный по iSCSI с другого сервера, в качестве обычного локального диска.
Также можно подключить iSCSI-диск на хосте-инициаторе с помощью PowerShell. Чтобы получить целевой IQN, используйте команду Get-iSCSITarget
команду.
Чтобы подключиться к цели iSCSI, выполните эту команду:
Connect-IscsiTarget –IsPersistent $False and enter the IQN.
Если используется дополнительная аутентификация CHAP, укажите учетные данные аутентификации с помощью следующей команды:
Get-iScsiTarget | Connect-iScsitarget –AuthenticationType ONEWAYCHAP –ChapUserName <username> -ChapSecret <secret>
Если необходимо обеспечить высокую доступность и балансировку нагрузки для дисков iSCSI, можно использовать несколько резервных сетевых компонентов (сетевые адаптеры, сетевые коммутаторы) и модуль MPIO.