Бездисковая загрузка Windows. PXE — грузим всё! Осваиваем мультизагрузку по локальной сети

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

Предпосылкой к изучению данного вопроса стало наличие в сети компьютера, с вышедшем из строя дисковым накопителем. Необходимо было запустить на данном ПК «полноценную» 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 и подключением для него необходимых скриптов в процессе загрузки.

Суть такова - при запуске компьютера PXE загрузчик получает необходимые настройки через DHCP и загружает 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, указываем расположение и объем создаваемого диска, затем несколько раз нажимаем кнопку Next и создаем дисковое устройство нажатием кнопки Create.

В итоге получаем настроенный и готовый к работе iSCSI Target, имеющий следующий вид:



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

Настройка PXELINUX

PXELINUX входит в комплект программ syslinux. Поэтому идем на сайт www.syslinux.org/wiki/index.php/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 .

Арсений Чеботарев

Эта мания не обошла и меня - но на этот раз, в отличие от прошлых затей, я грузил через сеть самую что ни на есть Windows 2000 .

Первое и главное, с чем меня срочно нужно поздравить, это то, что все работает - и работает вполне прилично. Как говорится, не прошло и двух недель ковыряния в "железе" и документации. Фактически я прямо сейчас работаю на бездисковой станции, так что результат у меня прямо перед носом.

А теперь расскажу, как можно повторить всю эту историю, обходя ошибки и продвигаясь прямо к цели. Попутно разучим испанские цифры до восьми включительно:-).

Uno: выбираем железо

Первое, что вам понадобится для бездисковой загрузки, это два компьютера (и оба - с хорошими винчестерами:-)). Вы, конечно, в шоке: ведь как раз на винте вы и хотели сэкономить - но в свое время все станет ясно. Лучше всего если эти компы будут, что называется, "нулевыми", то есть без всяких установленных осей - в противном случае ничего гарантировать не могу (я пытался устанавливать на всяких зверинцах - и безрезультатно проколбасился лишних три дня).

Один комп будет выполнять роль сервера. Я использую не самый мощный компьютер, который, тем не менее, справляется с поставленной задачей: Duron 800, 128 Мб памяти, интегрированная материнская плата (KLE133, видео - Trident Blade 3D Promedia, LAN - ADMTek 983 10/100 Мбит). Этот сервер не имеет ни монитора, ни клавиатуры, ни мышки - точнее, они отваливаются сразу после загрузки. Управление производится удаленно через Windows Remote Desktop (о котором тоже будет написана статейка).

Вообще говоря, BXP-сервер не является единым целым - на нем работает, как минимум, четыре компонента: сервер DHCP, сервер TFTP, сервер аутентификации и сервер виртуальных дисков. Из всех только последний предъявляет требования к мощности компьютера, выступая в роли своего рода специфического файлового сервера. Как известно, для файловых серверов критичным является объем оперативной памяти - так что это первое, что вам придется добавить, если производительность сервера вас не устраивает. Повышению производительности клиентских машин также будет способствовать более быстрая сеть: при возможности используйте гигабитную шину. И третья возможность - это разделение сегментов сети и установка дополнительных серверов виртуальных дисков, но об этом чуть позже.

В качестве эталонной рабочей станции выступает Athlon 1700 с 1G памяти и 60 Гб винчестером, для игрищ снабженный самым распространенным GeForce 4 MX 400 с 32 Мб видеопамяти. Хочется сказать, что столько оперативной памяти вовсе не обязательно, но, поскольку загрузочный диск и swap-файл будут работать по сети, то с целью минимизации этого трафика нужно ставить 256 Мб для Windows 2000 - и никак не меньше.

Третье устройство, также задействованное в нашей схеме, это собственный маршрутизатор. Это важно, поскольку общественный использовать для загрузки не очень выгодно: загрузка операционки и программ станет заметно замедляться. Теоретически коммутатор должен гибко коммутировать часто соединяющиеся порты - так что "висящие" параллельно, но не участвующие в процессе компьютеры не должны бы оказывать влияния на пропускную способность. Однако на практике приходилось констатировать значительную выгоду по времени на выделенном коммутаторе - видимо, не вся теория доходит до практики:-).

Я использовал неброский, но надежный EUSSO Nway switch USH-5008 XL. У этого восьмипортового юнита три преимущества: питание 12 В, что заметно и положительно влияет на "залипание" сети по сравнению с распространенными семивольтовыми моделями. Второе - это автокросс на всех портах (то есть вы можете подключать как компьютеры, так и маршрутизаторы на любой порт любым кабелем - маршрутизатор сам распознает, кто куда подключен, и сделает все правильно). Третье, что, собственно, и убедило меня окончательно,- это хорошая цена этого юнита.

Отдельное внимание стоит уделить сетевой карточке на машине-клиенте. Она должна поддерживать сетевую загрузку, так называемый PXE (по аналогии со SCSI= и SQL=, PXE читается ). Этот стандарт поддерживают сейчас все карточки, в том числе и встроенные на борту материнских плат. Я использовал недорогую и надежную Realtek RTL8139(A), которая штатно поддерживается большинством операционных систем.

Итак, все было подключено и работало без проблем (в том смысле, что дым ниоткуда не шел) - пришла очередь выбора операционных систем.

Dos: выбираем операционки

Для сервера (пока) подходят только операционные системы семейства Windows, поскольку только на этой платформе работает BXP (а именно эта программа и делает бездисковую загрузку Windows возможной).

Для установки на сервер была выбрана Windows XP Professionl SP1. Для этого было три причины: во-первых, XP имеет все драйверы для указанной материнской карточки, что, в общем, многое упрощает и целый ряд телодвижений делает ненужными. Во-вторых, XP очень хорошо перезагружается (в отличие от той же Windows 2000, с которой у меня было немало случаев "сейчас, сейчас я перезагружусь - ты только жди"). Это было важно, поскольку хотелось иметь возможность перезагружать сервер удаленно - или, по крайней мере, без подключения монитора и клавиатуры.

Третье - и, собственно, самое главное - это Remote Desktop, то есть возможность удаленно подключаться и получать графический "shell" на удаленной машине. Если сервер всегда будет у вас под рукой и не составит труда поставить на него монитор - тогда, возможно, вы предпочтете поставить Windows 2000 и сэкономить таким образом мощность для более высокой производительности сервисов.

Естественно, всякие 98 или Me были отброшены без всяких раздумий, поскольку ни надежность, ни управление ресурсами, в том числе сетевыми соединениями и дисковой файловой системой, не находятся у этих систем на уровне, достаточном для решения поставленных задач.

Для эталонного клиента я выбрал Windows 2000 Professional. Собственно, было три варианта: помимо упомянутой Windows 2000, претендовали Windows XP и Windows Embedded. Первая отпала сама собой: во-первых, она потребляет в несколько раз больше ресурсов (что в масштабах целой сети умножается пропорционально количеству рабочих станций); во-вторых, ее образ в несколько раз объемней (то есть сама загрузка длится заметно дольше); и третье - я просто потерпел фиаско при запуске этой ОС, то есть при попытках загрузить образ XP система вылетала - да еще и с рядом неприятных сообщений, намекающих на скромность моих умственные способностей.

Windows XP Embedded - во всем неплохая система, я экспериментировал с ней вполне успешно, но к ее "отставке" привели следующие три причины. Во-первых, ее генерация сама по себе - процесс трудоемкий. Так что решать проблемы сетевой загрузки и одновременно конфигурировать XPE - это несколько утомительно. Во-вторых, для работы XPE требуется инсталляция на клиентской стороне дополнительных компонент и их конфигурация, что еще более отдаляет ожидаемый результат. И в-третьих, это все-таки XP - то есть даже в урезанном варианте она может потребовать больше ресурсов, чем Windows 2000 (а уж тем более если вы захотите встроить туда такие возможности, как Internet Explorer и DOT NET).

Дополнительная просьба: по возможности инсталлируйте клиентскую часть на чистый диск. Создайте один раздел размером до 8000 Гб. Желательно даже меньше, поскольку таков будет размер образа вашего диска на сервере и, соответственно, расход места на нем - если вы примете решение сделать виртуальные диски полноценными с внесением изменений в сам образ, то количество образов будет пропорционально количеству рабочих станций.

Очень важно: проследите, чтобы имя эталонного диска было С:. Это жесткое требование BXP - в случае, если у вас на диске уже стоит какая-нибудь Windows NT5, она будет тянуть за собой мэппинг, так что следующая установка получит имя D: и так далее. Даже если вы и исподвывернетесь и, используя, к примеру, Partition Magic, перемэппите имена устройств (а это еще нужно придумать как) - то и в таком случае вы должны будете гарантировать, что старая инсталляция не получает управления.

Плохая новость заключается в том, что, как по ходу выяснилось, NT5 держит только одну копию ntldr на одном физическом диске, так что все последующие инсталляции не будут устанавливать этот компонент. Короче, я вам точно говорю: ставьте клиент на чистый винчестер в первый раздел с именем C: - и все будет работать как надо.

Также инсталлируйте на рабочую станцию все драйверы и прочие компоненты, вроде DOT NET, Media Player, Direct X и так далее: хоть это можно сделать и позже, но перед созданием загрузочного образа нелишне иметь хорошее представление о его размере. Кроме того, я наблюдал проблемы с установкой некоторых компонент на виртуальный диск: например, драйвер звуковой карточки на борту и Norton Ghost, установленные на образ, не работали - но после их установки на эталонный диск и создания нового образа все стало на свои места.

Вообще же, если вы настроены реально эксплуатировать BXP, эталонный диск для вас должен стать предметом особой заботы: придется аккуратно спланировать, что нужно обязательно туда установить, а что можно загружать и по сети (игры, например). Это важно, поскольку: размер эталонного диска ограничен - это раз, все ваши ошибки будут реплицироваться пропорционально количеству рабочих станций - это два.

Tres: загружаем и устанавливаем BXP

Собственно, этот шаг можно было проделать и самым первым. BXP - это набор серверов, в своей совокупности обеспечивающих сетевую загрузку. Загрузить программу можно с сайта Venturcom (обратите внимание, что www является обязательной частью адреса). Есть и другие возможности получения данной инсталляции - этот продукт распространяет еще несколько компаний. Главное, что вас должен интересовать файл с именем bxp25.exe размером 12,6 Мб. Если на сайте Venturcom вы не можете найти нужной страницы (этот сайт постоянно и непредвиденно изменяет топологию) - просто поищите через поиск по сайту слово download.

Этот файл содержит четыре варианта инсталляции, но нас пока что будут интересовать только два из них: инсталляция сервера и инсталляция клиента. Два других варианта - это установка самостоятельного файлового сервера и установка Embedded Tools, после основной установки вы поймете, зачем они могут быть нужны, но сейчас мы не станем их рассматривать.

Будем считать, что серверная часть BXP без проблем установлена на сервер. Но это еще не значит, что тот начал работать - на самом деле вам придется стартовать все сервисы вручную чуть позже, когда вы их сконфигурируете.

Важно! Хоть инсталляция и не настаивает на этом явно (как это делает, например, DirectX: "оба-на! перезагрузочка", хех) - тем не менее, обязательно перезагрузите компьютер, иначе ничего не станет работать.

Кроме прочего, не забудьте установить, как минимум, триальную лицензию. Это интерактивный процесс: вы отправляете письмо на Venturcom - и в ответ получаете от [email protected] файл лицензии LicenseResponse.vlf. После установки BXP у вас появится новое устройство с именем "лицензии" и красивой красной пиктограммкой в виде щита: щелкните на ней правой кнопкой, выберите Import License и укажите на полученный от Venturcom файл. Должно сработать - на "диске" лицензий появится "каталог" с данными, соответствующими вашей лицензии.

Quatro: настраиваем DHCP-сервер

В набор компонент, устанавливаемых с BXP-сервером, входит DHCP-сервер - однако я его не использовал, поскольку уже располагал установленным Turbo DHCP. Кроме того, встроенный в BXP Tellurian DHCP не умеет взаимодействовать с другими серверами DHCP в одной подсети - а это как раз был мой случай. И, наконец, Tellurian настраивается через файл конфигурации, с обязательным рестартом сервиса после внесения в него изменений,- что не столько страшно, сколько утомительно. Короче: входящий в состав BXP сервер меня не устраивал и, как показало время, оказался совсем не нужным.

Вообще, правильная настройка DHCP - это самая важная часть процесса сетевой загрузки в целом. Так что первое, чего вы должны добиться, это настроить DHCP и загрузить дискового клиента с динамической конфигурацией от этого сервера. На этом этапе в BIOS"е вашего компьютера первым пунктом должна стоять загрузка с диска - для сетевой загрузки еще не пришло время.

Вот список опций, которые установлены на моем Turbo DHCP, помимо диапазона адресов и подсети:


Опции, кроме -1 и -14, не имеют к сетевой загрузке прямого отношения; и, конечно же, все адреса должны быть заменены на специфические для вашей подсети. Next server должен указывать на ваш сервер, где установлен BXP и с которого будет загружаться образ VLDRMI13.bin. Настройка NBT-сервера для Windows обозначает настройки WINS. Если вы не уверены в том, как правильно настроить DHCP (чтобы не было конфликтов адресации между серверами и подобных накладок) - лучше обратитесь к системному администратору. Turbo DHCP совершенно бесплатно можно закачать с сайта www.weird-solutions.com.


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

При использовании сетевой загрузки в сети с высокой пропускной способностью показатели производительности схожи с использованием локального жесткого диска.

Внимание: После загрузки через iSCSI использование iSCSI для подключения других целей в процессе работы бездисковой станции не разрешается!

Процесс загрузки

Алгоритм бездисковой загрузки выглядит следующим образом:

  1. Бездисковая станция включается, загружает BIOS, осуществляет POST проверку
  2. BIOS бездисковой станции находит и загружает PXE
  3. PXE осуществляет поиск сервера DHCP, запрашивает адрес и другие параметры запуска
  4. DHCP сервер назначает адрес, параметры и адрес образ загрузки PXE-загрузчика
  5. PXE загружает PXE-загрузчик и выполняет его
  6. PXE-загрузчик подключает iSCSI-цель и загружает её как локальный жесткий диск
  7. При загрузке диска, загрузчик операционной системы передает управление драйверам для работы с iSCSI.

Настройка загрузки

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

  1. подготовить образ жесткого диска
  2. опубликовать подготовленный образ жесткого диска в сети
  3. настроить сетевую загрузку
  4. подготовить бездисковую рабочую станцию
  5. осуществить загрузку
  6. осуществить установку (если это необходимо).

Подготовка образа жесткого диска

В роли образа жесткого диска бездисковой рабочей станции может выступать любое блочное устройство - файл, логический том, раздел, диск, дисковый массив RAID. Образ жесткого диска может быть пустым, а может и содержать модифицированную копию жесткого диска реального компьютера или виртуальной машины. В случае если образ диска пустой то в обязательном порядке потребуется установка на него операционной системы.

Публикация образа жесткого диска в сети

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

Настройка сетевой загрузки

Для осуществления сетевой загрузки необходимо установить сервер передачи файлов(TFTP) и сервер динамической сетевой настройки (DHCP). После их установки необходимо их настроить на осуществление сетевой загрузки, а также подготовить предварительную среду выполнения (PXE). Для подготовки PXE рекомендуется использование gPXE и iPXE так как они имеют поддержку iSCSI.

После того как была настроена сетевая загрузка необходимо осуществить проверку её выполнения. Для этого следует проверить следующие функции:

  1. Должно осуществляться назначение IP-адресов через DHCP сервер
  2. Цель iSCSI должна быть доступна по сети
  3. Образ жесткого диска, в случае если он содержит данные, должен загружаться в виртуальной машине.

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

Подготовка бездисковой рабочей станции

Для того чтобы бездисковая рабочая станция могла осуществить загрузку по сети ей необходимо загрузить BIOS и PXE Rom.

Подготовка BIOS

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

Прежде всего необходимо обеспечить загрузку PXE Rom, выстроить порядок устройств таким образом чтобы PXE-rom загружался первым, за тем необходимо отключить поддержку IOMMU если таковая имеется.

Настройка PXE Rom

PXE - предварительнаяю среда выполнения, надстройка над BIOS загружаемая после POST проверки системы. PXE Rom - двоичный код прошивки, её образ. Прежде чем использовать PXE Rom необходимо правильно его подобрать в соответствии с исользуемой сетевой картой.

PXE Rom может быть установлен на загрузочный диск либо прошит в BootRom (специальная микросхема) сетевой карты.

В роли загрузочного диска могут выступать дискета, компакт-диск, жесткий диск, флешка. Важной особенностью использования загрузочного диска PXE состоит в том что он не позволяет использовать диск для иных целей. Чтобы не использовать загрузочный диск лучше всего подходит использование BootRom сетевой карты.

Для того чтобы использовать bootrom, необходимо подобрать совместимую микросхему и осуществить на неё запись прошивки с помощью специального программатора. Програматоры - это очень дорогие устройства, чтобы прошить микросхему можо обратится в сервисные центры.

После того как вы подобрали и прошили микросхему, перед установкой её на сетевую плату рекомендется уложить в кроватку (место куда устанавливается микросхема) часть тонкого изолированного провода с целью упрощения последующего извлечения.

На фото изображена микросхема Boot Rom с установленной частью провода на сетевой карте D-Link DGE-528T.

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

В случае если этого не происходит возможно микросхема BootRom не корректно прошилась либо она не походит.

Осуществление загрузки

  1. Настроить на сервере загрузку сначала с пустого образа а потом с образа установочного диска либо через сценарий либо через меню.
  2. Загрузить бездисковую станцию с пустого раздела. Загрузки как таковой не произойдет, но в памяти сохранится адрес iSCSI-цели.
  3. Загрузка с образа установочного диска позволит осуществить установку в iSCSI-цель.

Установка операционной системы

Установка в iSCSI-цель немного отличается от установки на обычный диск и требует поддержки программой установки.

Технология PXE опирается на стандартные протоколы, в том числе TCP/IP и Dynamic Host Configuration Protocol.

Много лет назад для того, чтобы сконфигурировать пользовательский компьютер или устранить на нем возникшую неисправность, кому-то из специалистов ИТ-службы или корпоративной службы HelpDesk приходилось брать установочные диски для программных продуктов, а также диски со средствами диагностики и драйверами, и идти к этому проблемному ПК.

С созданием корпоративных сетей было найдено и решение этой задачи. В середине 90-х годов Intel, наряду с множеством других производителей аппаратного и программного обеспечения, начала поддерживать спецификации, созданные на основе открытых стандартов и получившие название Wired for Management (WfM).

Эти спецификации, направленные на снижение общей стоимости владения, позволяли системным администраторам по сети обращаться к ПК для проведения мониторинга, обновления и конфигурирования, используя стандартизованное коммуникационное программное обеспечение и приложения удаленного управления. Потребовалась стандартизация аппаратного обеспечения (в том числе микросхем, BIOS, памяти, источников питания и сетевых плат) в пользовательских ПК. Спецификация WfM поддерживает широкий спектр сетевых технологий для ПК, в том числе Desktop Management Interface, удаленный запуск (также называемый запуском по локальной сети или сервисной загрузкой) и Preboot Execution Environment (PXE).

PXE возвращает нас к тому времени, когда не все компьютеры имели внутренние жесткие диски. Как правило, PXE предусматривает загрузку компьютера из микропрограммы, то есть из памяти, доступной только на чтение, или из микросхемы ROM, а не с магнитного носителя. Загрузка из микропрограммы позволяет избавиться от проблем, связанных с использованием электромеханического устройства (физического диска), что увеличивает надежность, избавляет от ошибок чтения диска и ускоряет процесс загрузки. Кроме того, PXE может использоваться для загрузки компьютера по сети.

Несмотря на то что WfM была вытеснена более новыми стандартами на управление, такими как Intel Active Management Technology, возможности, которые поддерживала PXE, сетевые администраторы по-прежнему считают весьма полезными.

Технология PXE предназначена для автоматизированного дистанционного управления пользовательскими ПК и рабочими станциями. Она опирается на стандартные для отрасли Internet-протоколы, в том числе TCP/IP и Dynamic Host Configuration Protocol (DHCP). Компьютеры, поддерживающие PXE, как правило, имеют сетевую плату, которая остается активной и подключенной к локальной сети даже тогда, когда питание самого ПК выключено. Эта плата просматривает трафик локальной сети в поисках специальной последовательности данных - уникального для ПК адреса контроля доступа к носителю, повторенного шесть раз. Когда сетевая плата получает этот «волшебный пакет», она включает ПК. Для того чтобы это произошло, поддержка запуска по локальной сети должна быть активирована в BIOS данного ПК. Запуск по локальной сети в некоторых очень старых ПК может не поддерживаться, поскольку он требует электрического соединения между сетевой и системной платами - обязательное аппаратное требование, которое не может быть выполнено одним только обновлением BIOS. Однако большинство корпоративных ПК отвечает этому требованию к аппаратному обеспечению.

Как только включается локальный ПК, сетевая плата активизируется и выполняется конфигурация. Для того чтобы можно было использовать PXE, необходима соответствующая инфраструктура сервера. Когда загружается клиент PXE, происходит следующее. Во-первых, клиент получает IP-адрес от сервера DHCP. К сожалению, PXE требует наличия некоторых функций, которые могут работать не на всех серверах DHCP, поэтому большая часть программного обеспечения, которая поддерживает PXE, также включает в себя сервис-посредник DHCP. Этот сервис-посредник не предоставляет IP-адреса напрямую, но позволяет работать DHCP.

После подключения к серверу DHCP, система определяет местонахождение сервера загрузки PXE, который посылает ему необходимые файлы. Сервер DHCP предоставляет имя загрузочного файла, а ПК затем загружает его с сервера Trivial File Transfer Protocol (TFTP).

Как только PXE активирован (то есть всегда, когда ПК загружается), на экране появляется сообщение, предлагающее пользователю выбрать: загрузить PXE или продолжить нормальную последовательность загрузки с локального жесткого диска или оптического носителя. PXE предлагает список опций загрузки, в состав которого могут входить разнообразные инструментальные средства поддержки и диагностики, выполняющие такие операции, как сканирование в поисках вирусов, проверка целостности жестких дисков, инвентаризация установленного программного обеспечения, обновление драйверов или даже установка совершенно новой операционной системы на ПК. Все это может делаться удаленно и в основном в автоматическом режиме, практически не требуя выполнения каких-то действий вручную.

Технология PXE предусматривает загрузку компьютера из микропрограммы, то есть из памяти, доступной только для чтения, или из микросхемы ROM, а не с магнитного носителя. Это ускоряет процесс загрузки, увеличивает его надежность и позволяет осуществлять ее по сети.

  1. Сетевая плата прослушивает трафик локальной сети на предмет наличия определенных последовательностей данных
  2. Сетевая плата фиксирует в передаваемых данных «магический пакет» и подает питание на ПК через разъем питания на системной плате
  3. Клиент PXE запрашивает IP-адрес у DHCP или прокси-сервера
  4. DHCP передает имя загрузочного файла
  5. PXE запрашивает файл с сервера загрузки
  6. Клиент PXE загружает файл с сервера TFTP. Клиент PXE выполняет загрузку с полученного файла



Top