протокол iSCSI (Internet Small Computer System) являє собою протокол SCSI, що працює з системами зберігання даних поверх протоколу IP. За допомогою iSCSI ви зможете підключати ваші сервера до мережевих сховищ за звичайною TCP / IP мережу без використання FC. У цій статті ми розглянемо, як налаштувати iSCSI-сховище на одному Windows Server 2019 і використовувати його на інших серверах (в Windows Server 2016 і 2012 R2 все налаштовується аналогічно). Перший приклад використання iSCSI: файловому серверу необхідне додаткове місце, і ми по мережі підключаємо до нього віртуальний диск з іншого сервера-сховища по iSCSI. Інший приклад – побудова відмов кластеру, коли для декількох серверів необхідне загальне сховище.
Для використання ISCSI-диска потрібно на сервері-сховище налаштувати віртуальний диск (це звичайний vhd / vhdx файл) і опублікувати його у вигляді iSCSI таргета, до якого підключаються iSCSI ініціатори (інші сервера і пристрої).
- Налаштування iSCSI target в Windows Server
- Налаштування iSCSI Initiator в Windows Server 2019
Налаштування iSCSI target в Windows Server
Спочатку потрібно включити iSCSI target (активувати роль iSCSI цільовий сервер), зайдя в Служби файлів та зберігання -> Послуги файлів та iSCSI.
Тепер на iSCSI сервері потрібно створити віртуальний диск. Для цього необхідно зайти в Server Manager -> File and Storage Services -> iSCSI, натиснути To create an iSCSI virtual disk, start the New iSCSI Virtual Disk Wizard.
У майстра створення віртуального iSCSI диска потрібно вибрати фізичний розділ, на якому його потрібно розмістити. Далі потрібно присвоїти ім’я iSCSI диска, вказати розмір диска і його тип (Fixed Size, Dynamically expanding або Differencing), ім’я iSCSI таргета.
На кроці Access Servers потрібно вказати сервери (iSCSI ініціатори), які зможуть з’єднуватися з Вашим iSCSI таргет, вибравши один з варіантів підключення:
- IQN (Доведеться спочатку включити iSCSI initiator на сервері і скопіювати IQN);
- Ім’я DNS
- IP-адреса;
- MAC-адреса.
Нехай використовується варіант з IP-адресою.
Наступний крок в цьому майстра – це настройка протоколу аутентифікації CHAP. Його слід використовувати, якщо необхідно перевіряти справжність підключення від ініціатора. Далі він включається, вписується ім’я користувача і 12-значний пароль (або довше), потім Далі -> Далі -> Готово. Перевірте, що віртуальний диск iscsiDisk2.vhdx створився в каталозі D: iSCSIVirtualDisks.
Можна створити iSCSI диск за допомогою PowerShell. Створимо віртуальний диск розміром 200 Гб:
New-IscsiVirtualDisk -Path С:iSCSIVirtualDisksiscsiDisk2.vhdx -Size 200GB.
За замовчуванням створюється динамічний диск розміром 4,096 Кб, незалежно від того, скільки було вказано параметром Розмір. Динамічний диск буде розширюватися в міру необхідності.
Якщо потрібно використовувати диск фіксованого розміру (такі диску резервують місце на фізичному носії при створенні), то його створити тією ж командою з додатковим параметром UseFixed:
New-IscsiVirtualDisk -Path С:iSCSIVirtualDisksiscsiDisk2.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 Initiator в Windows Server 2019
Наступний крок – підключення до створеного iSCSI диску з другого сервера-ініціатора. Перейдіть в панель управління Control Panel, запустіть ініціатор iSCSI (Або виконайте команду iscsicpl.exe
).
В консолі управління службами services.msc поставте автоматичний тип запуску для служби Служба ініціатора Microsoft iSCSI, Або використовуйте команду:
Set-Service -Name MSiSCSI -StartupType Automatic
Перейдіть на вкладку Відкриття, Натисніть на кнопку Відкрийте портал і введіть ввести IP-адресу першого сервера (iSCSI-таргет). Щоб трафік ходив тільки через певний мережевий інтерфейс, потрібно натиснути кнопку Розширений, І змінити значення за замовчуванням у випадних списках: Local Adapter -> Microsoft iSCSI Initiator, Initiator IP -> 172.17.244.8.
Для підключення до iSCSI сховища необхідно відкрити порти 860 і 3260 в Windows Firewall.
Тепер перейдіть на першу вкладку Targets, на ній з’явиться нове підключення. Щоб включити його, натисніть Підключіться -> Розширений, Виберіть значення з випадаючих полів, включите галочку Увімкнути вхід CHAP, Вкажіть ім’я користувача і 12-значний пароль.
Залишилося форматувати сам iSCSI-диск, який спочатку знаходиться в стані Offline. Для цього на сервері-ініціатора необхідно в консолі Disk Управління в контекстному меню нового диска вибрати пункт Інтернет, а потім – Ініціалізуйте диск. Створіть на новому диску один або кілька розділів, надайте мітку і букву диска. Відформатуйте в файлової системі 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-диски не підтримують файлову систему ReFS.
Тепер цей віртуальний диск, підключений з іншого сервера по протоколу iSCSI можна використовувати як звичайний локально підключений диск.
Також ви можете підключити iSCSI диск на ініціатора з PowerShell. Щоб отримати IQN таргета, використовуйте командлет Get-iSCSITarget
.
Щоб підключитися до iSCSI таргет виконайте команду:
Connect-IscsiTarget –IsPersistent $False и введите IQN.
Якщо використовувалася додаткова перевірка аутентифікації CHAP, то необхідно буде це вказати, використовуючи наступну конструкцію:
Get-iScsiTarget | Connect-iScsitarget –AuthenticationType ONEWAYCHAP –ChapUserName <username> -ChapSecret <secret>
Якщо ви хочете забезпечити високу доступність і балансування навантаження для iSCSI дисків, можна використовувати кілька надлишкові мережеві компоненти (мережеві карти, комутатори) і модуль MPIO.