- Общие сведения о загрузке цели iSCSI iSCSI target boot overview
- Описание функции Feature description
- Практическое применение Practical applications
- Требования к оборудованию Hardware requirements
- Требования к программному обеспечению Software requirements
- Бездисковая загрузка по технологии iSCSI на базе ОС Windows
- Введение
- Настройка программы Tftpd32
- Цель iSCSI. Настройка программы StarWind Virtual SAN
- Настройка PXELINUX
- Инициатор iSCSI. Настройка iPXE
- Установка ОС Windows 7
- Установка ОС Windows (альтернативный метод)
Общие сведения о загрузке цели iSCSI iSCSI target boot overview
Применимо к: Windows Server 2016 Applies to: Windows Server 2016
Сервер цели iSCSI в Windows Server позволяет загружать сотни компьютеров из одного образа операционной системы, хранящегося в центральном расположении. iSCSI Target Server in Windows Server can boot hundreds of computers from a single operating system image that is stored in a centralized location. Это улучшает эффективность, управляемость, доступность и безопасность. This improves efficiency, manageability, availability, and security.
Описание функции Feature description
Используя разностные виртуальные жесткие диски (VHD), можно использовать один образ операционной системы («основной образ») для загрузки до 256 компьютеров. By using differencing virtual hard disks (VHDs), you can use a single operating system image (the «master image») to boot up to 256 computers. Например, предположим, что вы развернули Windows Server с образом операционной системы размером примерно 20 ГБ, а в качестве загрузочного тома использовали два зеркальных диска. As an example, let’s assume that you deployed Windows Server with an operating system image of approximately 20 GB, and you used two mirrored disk drives to act as the boot volume. Для загрузки 256 компьютеров потребуется примерно 10 ТБ памяти — только для образа операционной системы. You would have needed approximately 10 TB of storage for only the operating system image to boot 256 computers. Но при загрузке с помощью сервера цели iSCSI используется 40 ГБ для базового образа операционной системы и 2 ГБ для разностных виртуальных жестких дисков на экземпляр сервера, что в сумме составляет 552 ГБ для образов операционной системы. With iSCSI Target Server, you will use 40 GB for the operating system base image, and 2 GB for differencing virtual hard disks per server instance, totaling 552 GB for the operating system images. Это позволяет сэкономить более 90 % памяти только для образов операционной системы. This provides a savings of over 90% on storage for the operating system images alone.
Практическое применение Practical applications
Контролируемые образы операционной системы предоставляют следующие преимущества: Using a controlled operating system image provides the following benefits:
Повышение безопасности и простоты управления. More secure and easier to manage. На некоторых предприятиях требуется для защиты данных физически блокировать хранилище в центральном расположении. Some enterprises require that data be secured by physically locking storage in a centralized location. В этом случае серверы имеют удаленный доступ к данным, включая образ операционной системы. In this scenario, servers access the data remotely, including the operating system image. При загрузке с помощью сервера цели iSCSI администраторы могут централизованно управлять загрузочными образами операционной системы и определять приложения, включаемые в главный образ. With iSCSI Target Server, administrators can centrally manage the operating system boot images, and control which applications to use for the master image.
Быстрое развертывание. Rapid deployment. Так как главный образ подготавливается с помощью средства Sysprep, при загрузке из главного образа компьютеры пропускают этап копирования файлов и установки, выполняемый в ходе установки Windows, и переходят сразу к этапу настройки. Because the master image is prepared by using Sysprep, when computers boot from the master image, they skip the file copying and installation phase that occurs during Windows Setup, and they go straight to the customization phase. В рамках внутреннего тестирования в корпорации Майкрософт 256 компьютеров были развернуты за 34 минуты. In Microsoft internal testing, 256 computers were deployed in 34 minutes.
Быстрое восстановление. Fast recovery. Поскольку образы операционной системы размещаются на компьютере, на котором выполняется целевой сервер iSCSI, при замене клиента, не требующего использования диска, новый компьютер может указывать на образ операционной системы и немедленно загружаться. Because the operating system images are hosted on the computer running iSCSI Target Server, if a disk-less client needs to be replaced, the new computer can point to the operating system image, and boot up immediately.
Различные поставщики предоставляют решение для загрузки сети хранения данных (SAN), которое может использоваться сервером цели iSCSI в Windows Server на оборудовании товара. Various vendors provide a storage area network (SAN) boot solution, which can be used by the iSCSI Target Server in Windows Server on commodity hardware.
Требования к оборудованию Hardware requirements
Сервер цели iSCSI не требует особого оборудования для функциональной проверки. iSCSI Target Server does not require special hardware for functional verification. В центрах обработки данных с крупномасштабными развертываниями проект необходимо проверять на соответствие с определенным оборудованием. In data centers with large-scale deployments, the design should be validated against specific hardware. Например, внутреннее тестирование Майкрософт показало, что для развертывания 256 компьютеров требуется хранилище на 24 дисках со скоростью 15 000 об/мин в конфигурации RAID 10. For reference, Microsoft internal testing indicated that a 256 computer deployment required 24x15k-RPM disks in a RAID 10 configuration for storage. Пропускная способность сети 10 Гигабитей является оптимальной. A network bandwidth of 10 Gigabit is optimal. Общая оценка — 60 серверов загрузки iSCSI на 1 гигабитный сетевой адаптер. A general estimate is 60 iSCSI boot servers per 1 Gigabit network adapter.
Для этого сценария не требуется специализированный сетевой адаптер, и можно использовать программный загрузчик (например, Ипксе с открытым исходным кодом загрузки). A specialized network adapter is not required for this scenario, and a software boot loader can be used (such as iPXE open source boot firmware).
Требования к программному обеспечению Software requirements
Сервер цели iSCSI можно установить как часть роли «Файловые службы и службы iSCSI» в диспетчере сервера. iSCSI Target Server can be installed as part of the File and iSCSI Services role service in Server Manager.
Загрузка сервера Nano из iSCSI (с сервера цели iSCSI под управлением Windows или из реализации цели стороннего поставщика) не поддерживается. Booting Nano Server from iSCSI (either from the Windows iSCSI Target Server, or a 3rd party target implementation) is not supported.
Бездисковая загрузка по технологии iSCSI на базе ОС Windows
Написанию данного поста предшествовало сбор информации по частям и многочасовое курение как русскоязычных, так и англоязычных ресурсов в сети интернет в поиске сравнительно простых способов реализации бездисковой загрузки ПК.
Предпосылкой к изучению данного вопроса стало наличие в сети компьютера, с вышедшем из строя дисковым накопителем. Необходимо было запустить на данном ПК «полноценную» 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.
Но обо всем по порядку. Начнем с установки и настройки в системе 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: . .
Если мы хотим добавить в загрузочное меню еще один пункт, например, для загрузки ОС 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
Ну и далее создаем файл win8.1.ipxe следующего содержания:
#!ipxe
dhcp net0
set keep-san 1
#login
sanboot iscsi:192.168.0.1. iqn.2014-11.home:windows8.1
Установка ОС Windows 7
Перед началом установки Windows 7 на бездисковую станцию открываем его BIOS и настраиваем порядок опроса загрузочных устройств следующим образом:
1) Hard Disk
2) Network
3) CD/DVD
4) остальные устройства
Если на ПК имеется установленный жесткий диск, то на время установки Windows его желательно отключить, чтобы компьютер не пытался с него загружаться.
Далее размещаем в приводе CD/DVD установочный диск Windows 7 и перезагружаем компьютер.
Первым делом мы должны увидеть запуск загрузки через 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, на этапе выбора дискового устройства мы должны увидеть подключенный нами iSCSi диск. Если iSCSi диск в списке отсутствует, значит установщик Windows не смог автоматически подключить необходимые драйвера для сетевой карты. В этом случае скачиваем с сайта разработчика необходимые драйвера сетевой карты и подключаем их установщику Windows. После этого iSCSi диск должен появиться в списке.
Иногда на этапе выбора дискового устройства можно получить сообщение о невозможности установки 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 системе Панель управления — Администрирование — Инициатор iSCSI.
Появиться окно «Свойства: Инициантор iSCSI».
Переходим на вкладку «Обнаружение» и нажимаем кнопку «Обнаружить портал. ».
В открывшемся окне вводим IP-адрес нашей цели iSCSI — 192.168.0.1 и нажимаем ОК.
Далее переходим обратно на вкладку «Конечные объекты» и увидим все цели с идентификаторами IQN.
Выбираем в списке нужную цель и нажимаем кнопку «Подключить».
Откроется еще одно окно требующий нашего подтверждения, где также нажимаем ОК.
Если в открывшемся окне оставить галочку «Добавить это подключение в список предпочитаемых конечных объектов» то указанная цель будет автоматически подключаться к системе при каждой загрузке.
Открываем оснастку «Управление компьютером» и переходим на вкладку «Управление дисками». Тут мы увидим, что в нашей системе появилось еще одно дисковое устройство. Создаем на этом диске «Основной раздел», указав размер диска чуть больше размера нашего установочного образа. Далее форматируем под файловую систему NTFS, подключаем любую букву диска и делаем раздел «активным».
Откроем необходимый образ установочного диска программой UltraISO или WinRar и распакуем содержимое образа на созданный в предыдущем пункте раздел диска. Важно, чтобы после распаковки на диске оставалось как минимум 100Мб свободного места (Для Windows 8 рекомендуется 350Мб свободного места). Если свободного места недостаточно, то расширяем выбранный раздел в оснастке «Управление дисками».
Затем скачиваем из интернета программу BOOTICE и запускаем (ссылки приводить не буду, сами сможете найти без труда).
В программе выбираем нужный нам диск из раскрывающегося списка. В моем случае HD6:
Далее нажимаем кнопку «Process MBR» и откроется следующее окно:
В данном окне выбираем последний пункт «Windows NT 5.x / 6.x MBR» и нажимаем кнопку «Install/Config».
На диске будет настроен MBR, загружающий стандартный загрузчик bootmgr из активного раздела диска.
Далее можно загружаться на бездисковом ПК с данного iSCSI-диска и сходу устанавливать ОС WIndows.
Установка Windows запуститься автоматически.
Но рассмотрим еще один момент. Если мы хотим сделать данный раздел скрытым от пользователей и недоступным для операционной системы, то запускаем командную строку от имени администратора и набираем следующие команды:
Diskpart
List disk
Sel disk x (вместо x подставляем номер нужного диска, список которых выводит предыдущая команда)
Sel part 1 (при необходимости список разделов можно посмотреть командой List part)
Remove
Set >
После этого данный раздел диска станет технологическим и скрытым. Для этого раздела уже не возможно назначит букву диска и примонтировать его к работающей системе, но устанавливается Windows с данного раздела без проблем.
Получится что то типа раздела восстановления)
Надеюсь данная статья будет вам полезна. Всем удачи!