Адміністрування систем Linux. Пристрої iSCSI. Бездискова завантаження за технологією iSCSI на базі ОС Windows Підключення iscsi windows 10

Продовжуємо розбирати операційну систему Windows 10. Сьогодні мова піде про функції ініціатор iSCSI на комп'ютері Windows 10. iSCSI - це протокол передачі даних, який розроблений для встановлення взаємодії і управління системами зберігання даних, серверами і клієнтами. Щоб запустити ініціатор iSCSI на своєму комп'ютері, в нижньому лівому кутку екрана натисніть на кнопку Пуск. У вікні, натисніть на вкладку - Всі додатки.

У списку всіх додатків, в самому низу, натисніть на вкладку - Засоби адміністрування. У списку, натисніть на вкладку - Ініціатор iSCSI.

Далі, у спливаючому вікні натисніть на кнопку ТАК, після чого у вас відкриється вікно, де ви зможете створити швидке підключення. В поле Об'єкт введіть IP-адресу або DNS-ім'я кінцевого об'єкта, з яким потрібно встановити зв'язок і натисніть на кнопку - швидке підключення. Трохи нижче в поле повинно відобразитися ім'я об'єкта і його стан.

Можливе підключення з використанням додаткових параметрів. Якщо ви хочете повністю відключити Об'єкт, то виділіть ім'я об'єкта і натисніть на кнопку - Перервати або Припинити. Можлива робота з властивостями об'єкта і конфігурацією сеансів. Щоб налаштувати пристрої пов'язані з кінцевим об'єктом, виділіть об'єкт і натисніть на кнопку - Пристрої.

iSCSI(Internet Small Computer System Interface - Малий комп'ютерний системний інтернет інтерфейс) - це протокол, який дозволяє передавати SCSI команди по мережі. Зазвичай iSCSI реалізується для мережевих дискових масивів (Storage Area Network - SAN), щоб дозволяти серверам мати доступ до великих обсягів дискового простору. Протокол iSCSI вважає клієнтів ініціаторами, а iSCSI сервера - метою.

Сервер Ubuntu може бути налаштований як в якості iSCSI ініціатора, так і в якості цільового об'єкта (сервером). Це керівництво описує команди і опції настройки по установці iSCSI ініціатора. Це передбачає, що у вас є iSCSI пристрій у вашій мережі і ви володієте необхідними правами для підключення до нього. Інструкції по установці iSCSI пристроїв дуже сильно залежать від виробника, тому зверніться до документації виробника для налаштування вашого конкретного iSCSI пристрою.

Установка iSCSI ініціатора

Для настройки сервера Ubuntu в якості iSCSI ініціатора, встановіть пакет open-iscsi. Введіть в терміналі:

Sudo apt-get install open-iscsi

Налаштування iSCSI ініціатора

Як тільки пакет open-iscsiвстановлено, відредагуйте /etc/iscsi/iscsid.conf, змінивши наступне:

Node.startup = automatic

Ви можете визначити які цільові об'єкти вам доступні за допомогою утиліти iscsiadm. Введіть наступну команду в терміналі:

Sudo iscsiadm -m discovery -t st -p 192.168.0.10

    -m: Визначає режим, в якому працює iscsiadm.

    -t: Визначає тип пошуку.

    -p: Опція, яка визначає IP адреса цільового об'єкта.

Замініть 192.168.0.10 в прикладі на IP адреса вашого об'єкта в мережі.

Якщо цільовий об'єкт доступний, ви побачите висновок, подібний наступного:

192.168.0.10:3260,1 iqn.1992-05.com.emc: sl7b92030000520000-2

Номер iqn і Ip адреса будуть сильно залежати від вашого обладнання.

Тепер ви можете з'єднатися з iSCSI сервером і в залежності від його налаштувань вам можливо доведеться ввести дані облікового записукористувача. Підключення до iSCSI вузлу:

Sudo iscsiadm -m node --login

Переконайтеся, що новий диск визначається за допомогою dmesg:

Dmesg | grep sd [4.322384] sd 2: 0: 0: 0: Attached scsi generic sg1 type 0 [4.322797] sd 2: 0: 0: 0: 41943040 512-byte logical blocks: (21.4 GB / 20.0 GiB) [4.322843] sd 2: 0: 0: 0: Write Protect is off [4.322846] sd 2: 0: 0: 0: Mode Sense: 03 00 00 00 [4.322896] sd 2: 0: 0: 0: Cache data unavailable [4.322899] sd 2: 0: 0: 0: Assuming drive cache: write through [4.323230] sd 2: 0: 0: 0: Cache data unavailable [4.323233] sd 2: 0: 0: 0: Assuming drive cache: write through [4.325312] sda: sda1 sda2< sda5 >[4.325729] sd 2: 0: 0: 0: Cache data unavailable [4.325732] sd 2: 0: 0: 0: Assuming drive cache: write through [4.325735] sd 2: 0: 0: 0: Attached SCSI disk [2486.941805 ] sd 4: 0: 0: 3: Attached scsi generic sg3 type 0 [2486.952093] sd 4: 0: 0: 3: 1126400000 512-byte logical blocks: (576 GB / 537 GiB) [2486.954195] sd 4: 0: 0: 3: Write Protect is off [2486.954200] sd 4: 0: 0: 3: Mode Sense: 8f 00 00 08 [2486.954692] sd 4: 0: 0: 3: Write cache: disabled, read cache: enabled, doesn "t support DPO or FUA [2486.960577] sdb: sdb1 [2486.964862] sd 4: 0: 0: 3: Attached SCSI disk

У наведеному виведення sdb - це новий iSCSI диск. Пам'ятайте, що це всього лише приклад; висновок на вашому екрані може сильно відрізнятися.

Sudo fdisk / dev / sdb n p enter w

Команди вище виконуються всередині утиліти fdisk; дивіться man fdisk для додаткових деталей. також утиліта cfdiskіноді більш дружелюбна до користувачів.

Тепер форматіруем файлову систему і монтуємо її, наприклад, в / srv:

Sudo mkfs.ext4 / dev / sdb1 sudo mount / dev / sdb1 / srv

Нарешті додамо запис в / etc / fstab для монтування iSCSI пристрою в процесі завантаження:

/ Dev / sdb1 / srv ext4 defaults, auto, _netdev 0 0

Доброю ідеєю буде переконатися, що все працює як треба, перевантаживши сервер.

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

Як бачите, за замовчуванням служба не запущена. Натиснувши на «Yes» в діалоговому вікні, ми стартуємо службу iSCSI Initiator і поставимо її в режим автоматичного запуску.

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

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

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

Start-Service msiscsi
Set-Service msiscsi -StartupType automatic

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

Тепер перейдемо на SRV2 і приступимо до налаштування серверної частини. Перше, що нам треба зробити - це встановити на сервер роль iSCSI Target. Відкриваємо Server Manager, переходимо по посиланню «Add roles and features»

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

Або скористаємося командою PowerShell:

Install-WindowsFeature -Name FS-iSCSITarget-Server

підготовка диска

Тепер підготуємо фізичний диск, який буде використовуватися для зберігання віртуальних iSCSI дисків. Спеціально для цієї мети до сервера підключений новий жорсткий диск розміром 120Гб. На даний момент диск неактивний (Offline). Для його активації в Server Manager переходимо в розділ File and Storage Services -> Disks, натискаємо на диску і переводимо його в Online.

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

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

вказуємо розмір томи

і вибираємо букву диска.

Потім вибираємо для диска файлову систему, розмір сектора і вказуємо мітку тому. Тут нагадаю, що віртуальні диски iSCSI можна створювати тільки на томах NTFS, нова файлова система ReFS (Resilient File System) не підтримується.

Дивимося сумарну інформацію, і якщо все правильно, то тиснемо «Create», запускаючи створення томи.

Ті ж дії можна виконати з допомогою PowerShell. Знаходимо потрібний диск:

Get-Disk | where ($ _. OperationalStatus -eq "Offline")

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

Set-Disk -Number 1 -IsOffline $ false

ініціалізіруем:

Initialize-Disk -Number 1

Створюємо розділ:

New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D

І форматіруем його в NTFS:

Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "iSCSI Storage"

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

Наступним пунктом нашої програми йде створення віртуальних iSCSI дисків. Для цього переходимо в розділ iSCSI і натискаємо по посиланню, запускаючи черговий майстер.

Вибираємо тому, на якому буде зберігатися віртуальний диск.

Даємо диску ім'я і опис.

Вказуємо розмір віртуального диска і його тип. Вибирати можна з трьох варіантів:

Fixed size (фіксованого розміру) - створюваний диск відразу займає весь виділений обсяг. Це найбільш продуктивний, але найменш економічний варіант;
Dynamically expanding (динамічно розширюваний) - спочатку створюється диск мінімального розміру, який потім динамічно змінюється в залежності від кількості записаних на нього даних. Найкращий варіант у плані використання дискового простору;
Differencing (різницевий) - в цьому варіанті потрібно вказати розташування батьківського диска, з яким буде пов'язаний створюваний диск. Різницевий диск може бути як фіксованим, так і динамічним, в залежності від типу батька. У цього типу дисків є свої переваги, але використовувати їх для iSCSI особисто я особливого сенсу не бачу.

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

Даємо таргету ім'я і опис.

І вказуємо сервера, які можуть отримати до нього доступ.

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

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

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

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

New-IscsiVirtualDisk -Path D: \ iSCSIVirtualDisks \ iSCSI2.vhdx

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

Тепер створюємо другий iSCSI Target c ім'ям iscsi-target-2 і в якості сервера доступу вкажемо IQN SRV3:

New-IscsiServerTarget -TargetName iscsi-target-2 -InitiatorIds "IQN: iqn.1991-05.com.microsoft: srv3.contoso.com"

І перевіримо результат командою:

Get-IscsiServerTarget | fl TargetName, LunMappings

підключення

Повертаємося на SRV2, відкриваємо вікно властивостей ініціатора, переходимо на вкладку Discovery і тиснемо кнопку Discover Portal.

Вводимо ім'я або IP-адресу порталу і тиснемо ОК.

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

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

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

Підключення відбулося, і якщо відкрити оснастку управління дисками, то там з'явиться новий диск. Далі з цим диском чинимо так само, як зі звичайним жорстким диском, підключеним локально - переводимо в Online, инициализируем, створюємо на ньому розділи і форматіруем.

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

Get-IscsiTarget | fl

І підключаємося до потрібного:

Connect-IscsiTarget -NodeAddress "iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target" -IsPersistent $ true

ключ -IsPersistent $ trueзабезпечує автоматичне підключення при виключенні або перезавантаження.

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

Disconnect-IscsiTarget -NodeAddress "iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target" -Confirm: $ false

висновок

На цьому настройка завершена. Як я говорив, це найпростіший, базовий варіант настройки сховища. У 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).


Автор: Paul Cobbaut
Дата публікації: 12 березня 2015 р
Переклад: A. Панін
Дата перекладу: 30 марта 2015 р

Глава 12. Пристрої iSCSI

Після прочитання цього розділу ви навчитеся налаштовувати сервер, який є цільовим сервером iSCSI (iSCSI target), і клієнт, який є ініціатором iSCSI (iSCSI initiator).

12.1. Термінологія iSCSI

iSCSI є протоколом, який дозволяє передавати команди SCSI допомогою протоколу IP. Це означає, що ви можете використовувати локальні файли пристроїв SCSI (такі, як / dev / sdb) в умовах відсутності поданих ними дискових накопичувачів в локальному комп'ютері.

Комп'ютер, в якому встановлені фізичні пристроїдля зберігання даних, називається цільовим сервером iSCSI (iSCSI Target). Кожне окреме пристрій, що адресується iSCSI на цільовому сервері отримує індивідуальний номер LUN.

Комп'ютер-клієнт iSCSI, який взаємодіє з цільовим сервером називається ініціатором (iSCSI Initiator). Ініціатор відправляє команди SCSI по протоколу IP замість безпосередньої взаємодії з апаратним пристроєм. Ініціатор повинен з'єднуватися з цільовим сервером за допомогою мережі.

12.2. Цільовий сервер iSCSI в дистрибутиві RHEL / CentOS

В даному розділі описана методика настройки цільового сервера iSCSI в дистрибутивах RHEL6, RHEL7 і CentOS.

Налаштування слід починати з установки пакета з програмними компонентами, які виконують функції цільового сервера iSCSI.

Yum install scsi-target-utils

В даному прикладі в файлі /etc/tgt/targets.conf вказано шляхи до периферійних пристроїв, які представляють три локальних диска, Яким повинні бути привласнені номери LUN.

direct-store / dev / sdb direct-store / dev / sdc direct-store / dev / sdd incominguser paul hunter2

Перезапуск служби:

# Service tgtd start Starting SCSI target daemon: [OK]

Стандартним локальним портом цільового сервера iSCSI повинен бути порт номер 3260, причому при необхідності ви можете переконатися в цьому за допомогою утиліти netstat.

# Netstat -ntpl | grep tgt tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 1670 / tgtd tcp 0 0 ::: 3260 ::: * LISTEN 1670 / tgtd

Тепер при використанні команди tgt-admin -s ви можете отримати детальну інформацію про пристрої з трьома номерами LUN (а також про контроллер з номером LUN 0).

# Tgt-admin -s Target 1: iqn.2014-04.be.linux-training: server1.target1 System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: disk SCSI ID : IET 00010001 SCSI SN: VB9f23197b-af6cfb60 Size: 1 074 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: rdwr Backing store path: / dev / sdb Backing store flags: LUN : 2 Type: disk SCSI ID: IET 00010002 SCSI SN: VB8f554351-a1410828 Size: 1074 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: rdwr Backing store path: / dev / sdc Backing store flags: LUN: 3 Type: disk SCSI ID: IET 00010003 SCSI SN: VB1035d2f0-7ae90b49 Size: 1074 MB, Block si ze: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No Backing store type: rdwr Backing store path: / dev / sdd Backing store flags: Account information: ACL information: ALL

12.3. Ініціатор iSCSI в дистрибутиві RHEL / CentOS

В даному розділі описана методика настройки ініціатора iSCSI в дистрибутивах RHEL6, RHEL7 і CentOS.

Налаштування слід починати з установки пакета з програмними компонентами, які виконують функції ініціатора iSCSI.

# Yum install iscsi-initiator-utils

Після цього необхідно запросити у цільового сервера iSCSI список ідентифікаторів всіх цільових серверів.

# Iscsiadm -m discovery -t sendtargets -p 192.168.1.95:3260 Starting iscsid: [OK] 192.168.1.95:3260,1 iqn.2014-04.be.linux-training: centos65.target1

Ми отримали інформацію про цільове сервері з ідентифікатором iqn.2014-04.be.linux-training: centos65.target1.

Використовуємо цей ідентифікатор iqn для вказівки імені користувача і пароля (paul і hunter2 відповідно), які були раніше встановлені нами на цільовому сервері.

# Iscsiadm -m node --targetname iqn.2014-04.be.linux-tra \ ining: centos65.target1 --portal "192.168.1.95:3260" --op = update --name node. \ Session.auth. username --value = paul # iscsiadm -m node --targetname iqn.2014-04.be.linux-tra \ ining: centos65.target1 --portal "192.168.1.95:3260" --op = update --name node . \ session.auth.password --value = hunter2 # iscsiadm -m node --targetname iqn.2014-04.be.linux-tra \ ining: centos65.target1 --portal "192.168.1.95:3260" --op = update --name node. \ session.auth.authmethod --value = CHAP

У дистрибутивах RHEL і CentOS ця інформація зберігається в файлах з директорії / var / lib / iscsi / nodes /.

# Grep auth /var/lib/iscsi/nodes/iqn.2014-04.be.linux-tr \ aining \: centos65.target1 / 192.168.1.95 \, 3260 \, 1 / default node.session.auth.authmethod = CHAP node.session.auth.username = paul node.session.auth.password = hunter2 node.conn.timeo.auth_timeout = 45 #

Після перезапуску служби iscsi в нашій системі з'являться три нових пристрої.

# Fdisk -l | grep Disk Disk / dev / sda: 42.9 GB, 42949672960 bytes Disk identifier: 0x0004f229 Disk / dev / sdb: 1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sdc: 1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sdd: 1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sde: 2147 MB, 2147483648 bytes Disk identifier: 0x00000000 Disk / dev / sdf: 2147 MB, 2147483648 bytes Disk identifier: 0x00000000 Disk / dev / sdg: 2147 MB , 2147483648 bytes Disk identifier: 0x00000000 Disk / dev / mapper / VolGroup-lv_root: 41.4 GB, 41448112128 bytes Disk identifier: 0x00000000 Disk / dev / mapper / VolGroup-lv_swap: 973 MB, 973078528 bytes Disk identifier: 0x00000000 # service iscsi restart Stopping iscsi: [OK] Starting iscsi: [OK] # fdisk -l | grep Disk Disk / dev / sda: 42.9 GB, 42949672960 bytes Disk identifier: 0x0004f229 Disk / dev / sdb: 1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sdc: 1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sdd: +1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sde: 2147 MB, 2147483648 bytes Disk identifier: 0x00000000 Disk / dev / sdf: 2147 MB, 2147483648 bytes Disk identifier: 0x00000000 Disk / dev / sdg: 2147 MB , 2147483648 bytes Disk identifier: 0x00000000 Disk / dev / mapper / VolGroup-lv_root: 41.4 GB, 41448112128 bytes Disk identifier: 0x00000000 Disk / dev / mapper / VolGroup-lv_swap: 973 MB, 973078528 bytes Disk identifier: 0x00000000 Disk / dev / sdh : 1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sdi: 1073 MB, 1073741824 bytes Disk identifier: 0x00000000 Disk / dev / sdj: 1073 MB, 1073741824 bytes Disk identifier: 0x00000000

Ви можете отримати інформацію про стан служби iscsi, скориставшись наступною командою:

Service iscsi status

12.4. Цільовий сервер iSCSI в дистрибутиві Debian

Процес підготовки програмного забезпечення для цільового сервера в дистрибутивах Ubuntu і Debian полягає в установці пакету програмного забезпечення iscsitarget в обох дистрибутивах, а також у встановленні додаткового пакета програмного забезпечення iscsitarget-dkms для збірки модулів ядра ОС виключно в дистрибутиві Debian.

[Email protected]: ~ # Aptitude install iscsitarget Наступні НОВІ пакунки будуть встановлені: iscsitarget 0 пакетів оновлено, 1 встановлено нових, 0 пакетів відзначено для видалення, і 0 пакетів не оновлено. Необхідно отримати 69.4 kB архівів. Після розпакування 262 kB буде зайнято. Отримати: 1 http://ftp.belnet.be/debian/ squeeze / main iscsitarget i386 1.4.20.2-1 \ Отримано 69.4 Кб in 0С (415 Кб / с) Вибір які раніше не обраного пакета iscsitarget. (Читання бази даних ... на даний момент встановлено 36441 файлів і каталогів.) Розпаковується iscsitarget (from ... / iscsitarget_1.4.20.2-1_i386.deb) ... Обробляються тригери для man-db ... Настроюється пакет iscsitarget (1.4.20.2-1) ... iscsitarget not enabled in "/ etc / default / iscsitarget", not starting ... (warning).

При роботі з дистрибутивом Debian 6 вам також доведеться виконати команду aptitude install iscsitarget-dkms для установки програмних компонентів, призначених для збирання модулів ядра ОС. У разі дистрибутива Debian 5 аналогічна команда буде виглядати наступним чином: aptitude install iscsitarget-modules-`uname -a`. У дистрибутиві Ubuntu всі необхідні модулі ядра ОС включені до складу основного пакету програмного забезпечення.

Цільовий сервер iSCSI за замовчуванням активовано, тому нам доведеться активувати його.

[Email protected]: ~ # Cat / etc / default / iscsitarget ISCSITARGET_ENABLE = false [Email protected]: ~ # Vi / etc / default / iscsitarget [Email protected]: ~ # Cat / etc / default / iscsitarget ISCSITARGET_ENABLE = true

12.5. Використання технології iSCSI для доступу до файлів, створеним за допомогою утиліти dd

Ви можете використовувати томи LVM (/ dev / md0 / lvol0), фізичні розділи дисків (/ dev / sda), пристрої RAID (/ dev / md0), а також звичайні файлив якості джерел даних. В даному прикладі ми будемо використовувати файли, створені за допомогою утиліти dd.

Нижче показана методика створення трьох файлів невеликих розмірів (100 МБ, 200 МБ і 300 МБ).

[Email protected]: ~ # Mkdir / iscsi [Email protected]: ~ # Dd if = / dev / zero of = / iscsi / lun1.img bs = 1M count = 100 100 + 0 записів отримано 100 + 0 записів відправлено скопійовано 104857600 байт (105 MB), 0.315825 c, 332 MB / c [Email protected]: ~ # Dd if = / dev / zero of = / iscsi / lun2.img bs = 1M count = 200 200 + 0 записів отримано 200 + 0 записів відправлено скопійовано 209715200 байт (210 MB), 1.08342 c, 194 MB / c [Email protected]: ~ # Dd if = / dev / zero of = / iscsi / lun3.img bs = 1M count = 300 300 + 0 записів отримано 300 + 0 записів відправлено скопійовано 314572800 байт (315 MB), 1.36209 c, 231 MB / c

Ми повинні оголосити ці три файли джерелами даних для цільового сервера iSCSI в файлі /etc/iet/ietd.conf (в деяких випадках розташованому по шляху /etc/ietd.conf).

[Email protected]: / Etc / iet # cp ietd.conf ietd.conf.original [Email protected]: / Etc / iet #> ietd.conf [Email protected]: / Etc / iet # vi ietd.conf [Email protected]: / Etc / iet # cat ietd.conf Target iqn.2010-02.be.linux-training: storage.lun1 IncomingUser isuser hunter2 OutgoingUser Lun 0 Path = / iscsi / lun1.img, Type = fileio Alias ​​LUN1 Target iqn.2010 -02.be.linux-training: storage.lun2 IncomingUser isuser hunter2 OutgoingUser Lun 0 Path = / iscsi / lun2.img, Type = fileio Alias ​​LUN2 Target iqn.2010-02.be.linux-training: storage.lun3 IncomingUser isuser hunter2 OutgoingUser Lun 0 Path = / iscsi / lun3.img, Type = fileio Alias ​​LUN3

Нам також необхідно додати інформацію про наших пристроях в файл /etc/initiators.allow.

[Email protected]: / Etc / iet # cp initiators.allow initiators.allow.original [Email protected]: / Etc / iet #> initiators.allow [Email protected]: / Etc / iet # vi initiators.allow [Email protected]: / Etc / iet # cat initiators.allow iqn.2010-02.be.linux-training: storage.lun1 iqn.2010-02.be.linux-training: storage.lun2 iqn.2010-02.be.linux- training: storage.lun3

Саме час запустити налаштований сервер:

[Email protected]: / Etc / iet # /etc/init.d/iscsitarget start Starting iSCSI enterprise target service :. . [Email protected]: / Etc / iet #

Для перевірки коректності активації пристроїв для зберігання даних можна прочитати вміст файлів з директорії / proc / net / iet:

[Email protected]: / Etc / iet # cat / proc / net / iet / volume tid: 3 name: iqn.2010-02.be.linux-training: storage.lun3 lun: 0 state: 0 iotype: fileio iomode: wt blocks: 614400 blocksize: \ 512 path: /iscsi/lun3.img tid: 2 name: iqn.2010-02.be.linux-training: storage.lun2 lun: 0 state: 0 iotype: fileio iomode: wt blocks: 409600 blocksize: \ 512 path: /iscsi/lun2.img tid: 1 name: iqn.2010-02.be.linux-training: storage.lun1 lun: 0 state: 0 iotype: fileio iomode: wt blocks: 204800 blocksize: \ 512 path: /iscsi/lun1.img [Email protected]: / Etc / iet # cat / proc / net / iet / session tid: 3 name: iqn.2010-02.be.linux-training: storage.lun3 tid: 2 name: iqn.2010-02.be.linux- training: storage.lun2 tid: 1 name: iqn.2010-02.be.linux-training: storage.lun1

12.6. Ініціатор iSCSI в дистрибутиві Ubuntu

В першу чергу ми повинні встановити клієнтське програмне забезпечення iSCSI (зрозуміло, не на тому комп'ютері, який буде виконувати роль цільового сервера).

[Email protected]: ~ # Aptitude install open-iscsi Читання переліків пакетів ... Побудова дерева залежностей ... Читання інформації про стан ... Читання інформації про розширені станах ... Ініціалізація станів пакетів ... Наступні НОВІ пакунки будуть встановлені: open-iscsi open-iscsi-utils (a)

Після цього ми змінимо налаштування клієнтського програмного забезпечення iSCSI для його автоматичного запуску.

[Email protected]: / Etc / iscsi # cp iscsid.conf iscsid.conf.original [Email protected]: / Etc / iscsi # vi iscsid.conf [Email protected]: / Etc / iscsi # grep ^ node.startup iscsid.conf node.startup = automatic

Або ж, ви можете здійснити запуск цього клієнтського програмного забезпечення в ручному режимі.

[Email protected]: / Etc / iscsi / nodes # /etc/init.d/open-iscsi start * Starting iSCSI initiator service iscsid [OK] * Setting up iSCSI targets [OK] [Email protected]: / Etc / iscsi / nodes #

Тепер ми можемо з'єднатися з цільовим сервером і використовувати утиліту iscsiadm для отримання інформації про пристрої, до яких він надає доступ.

[Email protected]: / Etc / iscsi # iscsiadm -m discovery -t st -p 192.168.1.31

192.168.1.31:3260,1 iqn.2010-02.be.linux-training: storage.lun2

192.168.1.31:3260,1 iqn.2010-02.be.linux-training: storage.lun1

192.168.1.31:3260,1 iqn.2010-02.be.linux-training: storage.lun3

Тієї ж самої програми iscsiadm може використовуватися і для редагування файлів з директорії / etc / iscsi / nodes /.

[Email protected]: / Etc / iscsi # iscsiadm -m node --targetname "iqn.2010-02.be.linu \ x-training: storage.lun1" --portal "192.168.1.31:3260" --op = update --name no \ de.session.auth.authmethod --value = CHAP [Email protected]: / Etc / iscsi # iscsiadm -m node --targetname "iqn.2010-02.be.linu \ x-training: storage.lun1" --portal "192.168.1.31:3260" --op = update --name no \ de.session.auth.username --value = isuser [Email protected]: / Etc / iscsi # iscsiadm -m node --targetname "iqn.2010-02.be.linu \ x-training: storage.lun1" --portal "192.168.1.31:3260" --op = update --name no \ de.session.auth.password --value = hunter2

Описані вище дії слід повторити і для двох інших пристроїв.

Після цього необхідно перезапустити системну службу ініціатора для з'єднання з цільовим сервером.

[Email protected]: / Etc / iscsi / nodes # /etc/init.d/open-iscsi restart * Disconnecting iSCSI targets [OK] * Stopping iSCSI initiator service [OK] * Starting iSCSI initiator service iscsid [OK] * Setting up iSCSI targets

Використовуйте команду fdisk -i для отримання інформації про трьох нових пристроях iSCSI.

[Email protected]: / Etc / iscsi / nodes # fdisk -l 2> / dev / null | grep Disk Disk / dev / sda: 17.2 GB, 17179869184 bytes Disk identifier: 0x0001983f Disk / dev / sdb: 209 MB, 209715200 bytes Disk identifier: 0x00000000 Disk / dev / sdd: 314 MB, 314572800 bytes Disk identifier: 0x00000000 Disk / dev / sdc: 104 MB, 104857600 bytes Disk identifier: 0x00000000

Після цього на стороні цільового сервера може бути отримана інформація про активні сесіях.

[Email protected]: / Etc / iet # cat / proc / net / iet / session tid: 3 name: iqn.2010-02.be.linux-training: storage.lun3 sid: 5348024611832320 initiator: iqn.1993-08.org.debian: 01: 8983ed2d770 cid: 0 ip: 192.168.1.35 state: active hd: none dd: none tid: 2 name: iqn.2010-02.be.linux-training: storage.lun2 sid: 4785074624856576 initiator: iqn.1993-08 .org.debian: 01: 8983ed2d770 cid: 0 ip: 192.168.1.35 state: active hd: none dd: none tid: 1 name: iqn.2010-02.be.linux-training: storage.lun1 sid: 5066549618344448 initiator: iqn.1993-08.org.debian: 01: 8983ed2d770 cid: 0 ip: 192.168.1.35 state: active hd: none dd: none [Email protected]: / Etc / iet #

12.7. Використання пристроїв iSCSI

Між пристроями SCSI і iSCSI не існує принципових відмінностей після їх коректного з'єднання з системою: поверхня дискових пристроїв повинна розділятися на розділи, в цих розділах повинні створюватися файлові системи, після чого створені файлові системи повинні монтуватися.

[Email protected]: / Etc / iscsi / nodes # history | tail -13 94 fdisk / dev / sdc 95 fdisk / dev / sdd 96 fdisk / dev / sdb 97 mke2fs / dev / sdb1 98 mke2fs -j / dev / sdc1 99 mkfs.ext4 / dev / sdd1 100 mkdir / mnt / is1 101 mkdir / mnt / is2 102 mkdir / mnt / is3 103 mount / dev / sdb1 / mnt / is1 104 mount / dev / sdc1 / mnt / is2 105 mount / dev / sdd1 / mnt / is3 106 history | tail -13 [Email protected]: / Etc / iscsi / nodes # mount | grep is / dev / sdb1 on / mnt / is1 type ext2 (rw) / dev / sdc1 on / mnt / is2 type ext3 (rw) / dev / sdd1 on / mnt / is3 type ext4 (rw)

12.8. Практичне завдання: пристрої iSCSI

12.9. Коректна процедура виконання практичного завдання: пристрої iSCSI

1. Налаштуйте цільові сервери (використовуючи пристрої LVM і SCSI як джерела даних) і ініціатор, який буде з'єднуватися з обома серверами.

Дана методика може бути застосована в разі роботи з дистрибутивами Debian / Ubuntu / Mint. Для ознайомлення з нюансами, які можуть виникнути в разі роботи з дистрибутивами RHEL / CentOS, слід звернутися до розділів з теоретичної інформацією.

Домовтеся (з сидячим рядом студентом) про те, який з комп'ютерів буде виконувати функції цільового сервера, а який - ініціатора.

Дії, які повинні бути виконані на комп'ютері, що виконує роль цільового сервера:

В першу чергу за допомогою стандартних інструментів вашого дистрибутива для установки програмного забезпечення слід встановити пакет програмного забезпечення iscsitarget. Після цього ви повинні використовувати знання, отримані в ході читання попередньої глави, для настройки логічного тому (/ dev / vg / lvol0), а також глави, присвяченій технології RAID, для налаштування пристрою RAID, яке буде представлено файлом пристрою / dev / md0. Далі ви повинні виконати наступну команду для модифікації файлу конфігурації:

Vi / etc / default / iscsitarget (Встановіть значення true для параметра enable)

Додайте інформацію про ваших пристроях в файл конфігурації /etc/iet/ietf.conf:

[Email protected]: / Etc / iet # cat ietd.conf Target iqn.2010-02.be.linux-training: storage.lun1 IncomingUser isuser hunter2 OutgoingUser Lun 0 Path = / dev / vg / lvol0, Type = fileio Alias ​​LUN1 Target iqn.2010 -02.be.linux-training: storage.lun2 IncomingUser isuser hunter2 OutgoingUser Lun 0 Path = / dev / md0, Type = fileio Alias ​​LUN2

Додайте ідентифікатори обох пристроїв в файл конфігурації /etc/iet/initiators.allow:

[Email protected]: / Etc / iet # cat initiators.allow iqn.2010-02.be.linux-training: storage.lun1 iqn.2010-02.be.linux-training: storage.lun2

Дії, які повинні бути виконані на комп'ютері, який виконує роль ініціатора:

Встановіть пакет програмного забезпечення open-iscsi і запустіть відповідний демон.

Після цього використовуйте команду iscsiadm -m discovery -t st "цільової-ip" для отримання інформації про пристрої iSCSI на цільовому сервері.

Відредагуйте файли з директорії / etc / iscsi / nodes / таким чином, як було описано в розділах теоретичної частини голови. Після цього перезапустіть демон iSCSI і виконайте команду fdisk -i для отримання інформації про використовувані пристроях iSCSI.

Написання даного поста передувало збір інформації по частинах і багатогодинне куріння як російськомовних, так і англомовних ресурсів в мережі інтернет в пошуку порівняно простих способів реалізації бездисковой завантаження ПК.

Передумовою до вивчення даного питання стало наявність в мережі комп'ютера, з вийшов з ладу дисковим накопичувачем. Необхідно було запустити на даному ПК «повноцінну» 64-бітну операційну систему Windows 7 без використання Linux-сервера, обмежившись тільки наявними в локальної мережі Windows системами. Наведені в даній статті програмні продукти розповсюджуються безкоштовно і можуть працювати як на серверних, так і на призначених для користувача версіях Windows.

Розмова піде про чудову технології iSCSI, і як ми її можемо використовувати для завантаження по локальній мережі, щоб заощадити на вартості покупки нового дискового обладнання. Постараюся описати весь процес конфігурації найбільш доступною мовою як для початківців адміністраторів, так і для неосвічених користувачів.

Для розуміння того, що відбувається визначимося трохи з термінологією:

  • iSCSI (англ. Internet Small Computer System Interface) - протокол, який базується на TCP / IP і розроблений для встановлення взаємодії і управління системами зберігання даних, серверами і клієнтами;
  • iSCSI Target: (Мета iSCSI) - програма або апаратний контролер (HBA), які здійснюють емуляцію диска і виконують запити iSCSI;
  • iSCSI Initiator: (Ініціатор iSCSI) - клієнтська програма або апаратний контролер, який взаємодіє з iSCSI Target;
  • IQN: (iSCSI Qualified Name) - унікальний ідентифікатор (ім'я) iSCSI Target'a або iSCSI Initiator'а;
  • LUN: (Logical Unit Number) - адреса блочного пристрою в діапазоні 0-127;
  • DHCP (англ. Dynamic Host Configuration Protocol - протокол динамічної настройки вузла) - мережевий протокол, що дозволяє комп'ютерам автоматично отримувати IP-адресу та інші параметри, необхідні для роботи в мережі TCP / IP;
  • TFTP (англ. Trivial File Transfer Protocol - простий протокол передачі файлів) використовується головним чином для первинного завантаження бездискових робочих станцій.

Вступ

Сучасні операційні системи Windows 7, Windows Server 2008 і все, що старше, вміють підключатися безпосередньо на iSCSI target. Проблема тільки в тому, як форматувати віддалене блоковий пристрій при включенні ПК.

Згадаймо, що майже всі сучасні мережеві карти вміють завантажуватися за технологією PXE. А ось з iSCSI дружать в основному тільки дорогі серверні мережеві карти, наприклад Intel. Однак, існує як мінімум два open source проекту gPXE і iPXE дозволяє при завантаженні ПК підключатися iSCSI пристроїв. Останній, до слова, форк першого, з трохи доопрацьованій системою виведення помилок і додатковими опціями.

Є багато способів, як завантажуватися через gPXE і iPXE. У даній статті ми будемо розглядати завантаження з використанням iPXE і підключенням для нього необхідних скриптів в процесі завантаження.

Суть така - під час завантаження комп'ютера мережева карта отримує необхідні настройки через DHCP сервер і завантажує PXELINUX. Далі завантажувач PXELINUX підключає необхідний скрипт і завантажує iPXE, який, в свою чергу, виступає iSCSI ініціатором і передає управління диску. До моменту ініціалізації блочного пристрою передачу файлів по мережі забезпечує протокол TFTP.

Для чого ми завантажуємо PXELINUX?

Деякі можуть запитати - а для чого завантажувати PXELINUX? По-перше, через PXELINUX завантажувач iPXE отримує необхідний скрипт для ініціалізації потрібного iSCSI target-а. По-друге, щоб можна було побудувати зручне меню з вибором різних варіантів завантаження. По-третє, якщо в мережі існує кілька бездискових робочих станцій, то потрібно щоб кожен ПК підключався «до свого» iSCSI-диску і не мав доступу до «чужим» дискам, а значить їх потрібно як то відокремлювати один від одного, наприклад, по MAC -Адреса. Для цих цілей буде використовуватися двостадійна завантаження з використанням PXELINUX.


Але про все по порядку. Почнемо з установки і настройки в системі Windows необхідного софта для реалізації DHCP, TFTP і iSCSI Target-а. Для цього я використовував безкоштовно поширювані програмні продукти Tftpd32 і StarWind Virtual SAN. Програма Tftpd32 використовується як в ролі DHCP сервера, так і в ролі TFTP сервера, ну а StarWind Virtual SAN відповідно буде використовуватися в ролі iSCSI target-а. Завантажити дані програми можна на сайті розробників, посилання яких вказані в їх назвах. Для скачування програми StarWind Virtual SAN необхідно буде вибрати на сайті Free версію програми і пройти процес реєстрації, із зазначенням корпоративного поштової адреси. На вашу електронну адресу прийде ліцензійний ключ і посилання на скачування самої програми.

Налаштування програми Tftpd32

Дана програма досить проста і інтуїтивно зрозуміла, тому приведу просто скріншоти своїх налаштувань:


На вкладці «GLOBAL» у мене відзначені галочкою сервіси TFTP Server, Syslog Server і DHCP Server. На вкладці TFTP в поле Base Directory вказана точка, яка означатиме, що в якості кореневої директорією буде використовуватися папка, куди встановлена ​​сама програма Tftpd32. На вкладці DHCP в поле Boot File вказано назву завантаження, яку ми розглянемо далі в налаштуваннях PXELINUX. На вкладці SYSLOG настройки не потрібні.

Мета iSCSI. Налаштування програми StarWind Virtual SAN

При установці програма ніяких налаштувань не запитує, єдине може додатково запустити установку.NET Framework 4, якщо вона ще не встановлена ​​в системі. Після установки програма запускає свої служби і відразу готова до роботи. На робочому столі створюється ярлик StarWind Management Console для управління.

Відкриваємо StarWind Management Console, тиснемо кнопку Add Server і створюємо новий серверз IP-адресою 192.168.0.1. Наявний за замовчуванням сервер з IP-адресою 127.0.0.1 можна видалити.
Далі вибираємо створений нами сервер і натискаємо посилання Add Target. У вікні можемо вказати свою назву IQN мети, активувавши галочку Target Name. Зокрема я вказав iqn.2014-11.home: win7-64bit.
Далі вибираємо створений нами Target і натискаємо посилання Add Device.
У що з'явилася вікні вибираємо Hard Disk Device, далі вибираємо Virtual Disk, вказуємо розташування і обсяг створюваного диска, задаємо обсяг і параметри кешування, і створюємо накопичувач на комп'ютері натисканням кнопки Create.

У підсумку отримуємо налаштований і готовий до роботи iSCSI Target, що має такий вигляд:


При необхідності ми можемо створювати необхідну кількість iSCSI Target-ів і на кожен з них підключити необхідну кількість iSCSI дисків. А також забезпечити безпеку доступу до iSCSI Target-ам з використанням CHAP-аутентифікації клієнтів, натиснувши на посилання Add Permission.

Налаштування PXELINUX

PXELINUX входить в комплект програм syslinux. Тому йдемо на сайт www.syslinux.org/wiki/index.php/Download, натискаємо на посилання Download і завантажуємо zip архів з набором загрузчиков syslinux. Відкриваємо завантажений архівний файл і розпаковуємо файли pxelinux.0 з директорії core і menu.c32 з директорії com32 / menu. Файл pxelinux.0 є завантажувачем, який передається клієнтському ПК DHCP сервером, а файл menu.c32 відповідає за побудову завантажувального меню. Розпаковані файли розміщуємо в папку, куди встановлена ​​програма Tftpd32 (куди вказує шлях в поле Base Directory в налаштуваннях TFTP).

В папці програми Tftpd32 створюємо вкладену папку pxelinux.cfg, а в ньому створюємо файл default такого змісту:
default menu.c32
gfxmenu / erdpxe
prompt 0

MENU TITLE Boot Menu(Select the OS to boot)
MENU AUTOBOOT Windows 7 64bit in # seconds
TIMEOUT 50
TOTALTIMEOUT 3000

LABEL Windows 7 64bit
MENU DEFAULT
KERNEL IPXE.KRN
INITRD win7.ipxe

Думаю зайвому писати докладний коментар до даного файлу, Розглянемо тільки два останні рядки:
KERNEL IPXE.KRN - вказує на ядро ​​iPXE, яку потрібно завантажити.
INITRD win7.ipxe - вказує на файл скрипта з параметрами iPXE

Зазначених налаштувань PXELINUX цілком достатньо для використання дефолтной конфігурації і можна перейти до подальшої налаштування iPXE, тому що залишається частина тексту вирішив прибрати під спойлер.

Створення окремого завантажувального меню для кожного ПК

Якщо в мережі існує кілька бездискових робочих станцій, і потрібно щоб кожен ПК мав доступ тільки «до свого» iSCSI-диску і не мав доступу до «чужим» дискам, то нам потрібно буде створити кілька файлів із завантажувальним меню для кожного ПК.

При отриманні файлу конфігурації від TFTP сервера клієнт шукає підходящу для себе в наступному порядку:
pxelinux.cfg / 01-88-99-aa-bb-cc-dd
pxelinux.cfg / C0A800FE
pxelinux.cfg / C0A800F
pxelinux.cfg / C0A800
pxelinux.cfg / C0A80
pxelinux.cfg / C0A8
pxelinux.cfg / C0A
pxelinux.cfg / C0
pxelinux.cfg / С
І якщо нічого такого немає -
pxelinux.cfg / default

Тут pxelinux.cfg - сама папка з файлами конфігурації.
01-88-99-aa-bb-cc-dd - файл з назвою МАС-адреса клієнта, в нижньому регістрі, розділений тире, з префіксом 01-.

Відповідно, для кожної бездисковой робочої станції нам потрібно написати «своє» завантажувальний меню і розмістити в папці pxelinux.cfg з назвою файлу 01-mac-адресуклієнта, в нижньому регістрі. Вміст цих файлів може відрізнятися, наприклад, тільки останнім рядком INITRD win7.ipxe.

Ініціатор iSCSI. Налаштування iPXE

Отже, далі йдемо на сайт ipxe.org/download і завантажуємо iso-образ iPXE завантажувача. З завантаженого iso-образу витягуємо файл IPXE.KRN і зберігаємо його в папці програми Tftpd32.

У цій же папці створюємо файл win7.ipxe такого змісту:
#! Ipxe
dhcp net0
set keep-san 1
#login
sanboot iscsi: 192.168.0.1 :::: iqn.2014-11.home: win7-64bit

Рядок dhcp net0 даного скрипта вказує, що необхідно отримати настройки через DHCP сервер в мережі.

Рядок set keep-san 1 вказує, що підключення до iSCSI Target-у необхідно зберегти навіть якщо завантаження з даного пристрою не вдалася (цей параметр необхідний, коли потрібно встановлювати операційну систему з накопичувачів CD / DVD).

Якщо в iSCSI Target налаштована CHAP-аутентифікації клієнтів, то потрібно розкоментувати рядок #login, яка буде виводить форму для введення логіна і пароля.

Останній рядок безпосередньо підключає вказаний iSCSI Target, инициализирует віддаленим носієм і передає процес подальшого завантаження на даний пристрій. Синтаксис підключення буде таким iscsi:<Айпи iSCSI target>:::::.

Додавання додаткових пунктів в завантажувальний меню

Якщо ми хочемо додати в завантажувальний меню ще один пункт, наприклад, для завантаження ОС Windws 8.1, то створюємо в StarWind Virtual SAN новий Target із зазначенням IQN мети iqn.2014-11.home: windows8.1, додаємо в нього нове накопичувач на комп'ютері iSCSI, а потім у файлі pxelinux.cfg / default додаємо наприклад такі рядки:
LABEL Windows 8.1
KERNEL IPXE.KRN
INITRD win8.1.ipxe

Установка ОС Windows 7

Перед початком установки Windows 7 на бездисковий станцію відкриваємо його BIOS і налаштовуємо порядок опитування завантажувальних пристроїв наступним чином:
1) Hard Disk
2) Network
3) CD / DVD
4) інші пристрої

Якщо на ПК є встановлений жорсткийдиск, то на час установки Windows його бажано відключити, щоб комп'ютер не намагався з нього завантажуватися.

Насамперед ми повинні побачити запуск завантаження через PXE. Якщо цього не відбулося то знову заходимо в BIOS і дозволяємо завантаження комп'ютера через мережевий адаптер.

Далі на екрані з'явитися завантажувальний меню PXELINUX. Якщо цього не відбулося перевіряємо, чи запущена на іншому комп'ютері програма Tftpd32, чи правильно вона налаштована і не блокує його роботу firewall-и, антивіруси або інші програми.

Після вибору необхідного пункту завантажувального меню PXELINUX ми повинні побачити запуск iPXE.
В процесі ініціалізації iPXE повинні промайнуть написи:
Registered as BIOS drive 0x80
Booting from BIOS drive 0x80
Це означає, що ПК вдало підключився до iSCSi диску.

Потім ми побачимо помилку завантаження через iSCSi диск, після чого комп'ютер перейде до опитування наступного завантажувального пристрою і запустить установка Windows 7 з приводу CD / DVD. При цьому підключення до iSCSi диску залишиться активним - за це відповідає зазначена в скрипті рядок set keep-san 1.

Для тих, у кого не запускається установка Windows з приводу CD / DVD

BIOS деяких комп'ютерів, після невдалої спроби завантаження з iPXE, зупиняє процес запуску. Відповідно подальша завантаження інсталятора Windows з приводу CD / DVD не відбувається. Така поведінка було помічено, наприклад, на ноутбуках компанії Hewlett-Packard. У подібних випадках рятує завантаження з використанням gPXE. Для цього:
1) відкриваємо сторінку сайту rom-o-matic.net/gpxe/gpxe-git/gpxe.git/contrib/rom-o-matic/build.php,
2) в поле Choose an output format вибираємо пункт PXE bootstrap loader keep (.kpxe),
3) в самому нижньому полі Embedded Script вводимо три рядки нашого скрипта:
dhcp net0
set keep-san 1
sanboot iscsi: 192.168.0.1 :::: iqn.2014-11.home: win7-64bit
4) зберігаємо завантажувач gPXE в папку програми Tftpd32 і прописуємо назву файлу на сервері DHCP в поле Boot File,
5) встановлюємо ОС Windows і назад прописуємо назву файлу pxelinux.0 на сервері DHCP в поле Boot File.



В процесі установки Windows, на етапі вибору дискового пристрою ми повинні побачити підключений нами iSCSi диск. Якщо iSCSi диск в списку відсутня, значить інсталятор Windows не зміг автоматично підключити необхідні драйвера для мережевої карти. В цьому випадку викачуємо з сайту розробника необхідні драйвера мережевої карти і підключаємо їх установника Windows. Після цього iSCSi диск повинен з'явитися в списку.

Якщо отримали повідомлення про неможливість установки Windows на обраний диск

Іноді на етапі вибору дискового пристрою можна отримати повідомлення про неможливість установки Windows на обраний диск і прохання перевірити, чи включений в BIOS контролер цього диска.

В цьому випадку в першу чергу перевірте в BIOS порядок опитування завантажувальних пристроїв. Жорсткий дискповинен знаходитися на першій позиції, навіть якщо на комп'ютері фізично не встановлено дисковий накопичувач.
Якщо проблема не зникла, то спробуйте в BIOS-е вмикати / вимикати SATA контролер, Змінювати режим його роботи IDE, ACHI, або підключити реальний диск на час установки, але установку проводити на iSCSI диск.



Після вибору дискового пристрою почнеться установка Windows 7. Далі ніяких труднощів виникнути не повинно. Після установки ми отримуємо «повноцінну» операційну систему Windows 7, що працює на iSCSI диску.

Установка ОС Windows (альтернативний метод)

Не знаю кому як, але мені особисто не представляється зручним для кожного інсталяційного образу Windows записувати DVD диск.
Мені звичніше розпакувати вміст інсталяційного дискаі запустити установку Windows з жорсткого диска. До того ж з жорсткого диска операційна система працює швидше.

Наведу приклад, з використанням стандартного завантажувача bootmgr, наявного в будь-якому установчому дистрибутиві Windows.
Даний метод підходить також для установки Windows з локальних жорстких дисків.

Якщо коротко, то створюємо на iSCSI диску невеликої «активний» розділ, копіюємо туди вміст інсталяційного диска Windows, І потім налаштовуємо MBR, для завантаження з диска установника Windows. Подробиці під спойлером.

Альтернативний метод установки ОС Windows

Отже, відкриємо на робочій Windows системіПанель управління - Адміністрування - Ініціатор iSCSI.
З'явитися вікно «Властивості: Ініціантор iSCSI».

Переходимо на вкладку «Виявлення» і натискаємо кнопку «Виявити портал ...».
У вікні вводимо IP-адресу нашої мети iSCSI - 192.168.0.1 і натискаємо ОК.
Далі переходимо назад на вкладку «Кінцеві об'єкти» і побачимо всі цілі з ідентифікаторами IQN.
Вибираємо в списку потрібну мета і натискаємо кнопку «Підключити».
Відкриється ще одне вікно вимагає нашого підтвердження, де також натискаємо ОК.
Якщо у вікні залишити галочку «Додати це підключення до списку бажаних кінцевих об'єктів» то зазначена мета буде автоматично підключатися до системи при кожному завантаженні.

Відкриваємо оснащення "Керування комп'ютером» і переходимо на вкладку "Керування дисками". Тут ми побачимо, що в нашій системі з'явилося ще одне накопичувач на комп'ютері. Створюємо на цьому диску «Основний розділ», вказавши розмір диска трохи більше розміру нашого інсталяційного образу. Далі форматіруем під файлову систему NTFS, підключаємо будь-яку букву диска і робимо розділ «активним».

Відкриємо необхідний образ інсталяційного диска програмою UltraISO або WinRar і розпакуємо вміст образу на створений у попередньому пункті розділ диска. Важливо, щоб після розпакування на диску залишалося як мінімум 100Мб вільного місця (Для Windows 8 рекомендується 350Мб вільного місця). Якщо вільного місця недостатньо, то розширюємо вибраний розділ в оснащенні "Керування дисками".

Потім завантажуємо з інтернету програму BOOTICE і запускаємо (посилання наводити не буду, самі зможете знайти без праці).
У програмі вибираємо потрібний нам диск із списку. У моєму випадку HD6:

В даному вікні вибираємо останній пункт «Windows NT 5.x / 6.x MBR» і натискаємо кнопку «Install / Config».
На диску буде налаштований MBR, що завантажує стандартний завантажувач bootmgr з активного розділу диска.

Але розглянемо ще один момент. Якщо ми хочемо зробити цей розділ прихованим від користувачів і недоступним для операційної системи, То запускаємо командний рядок від імені адміністратора і набираємо наступні команди:

Diskpart
List disk
Sel disk x (замість x підставляємо номер потрібного диска, список яких виводить попередня команда)
Sel part 1 (при необхідності список розділів можна подивитися командою List part)
Remove
Set id = 27

Після цього даний розділ диска стане технологічним і прихованим. Для цього розділу вже не можливо призначить букву диска і примонтировать його до працюючій системі, але встановлюється Windows з даного розділубез проблем.
Вийде щось типу розділу відновлення)


Сподіваюся дана стаття буде вам корисна. Всім удачі!