Pull to refresh

Устанавливаем Microsoft Hyper-V Server 2008 R2 на Flash-drive

Reading time8 min
Views23K

Когда VMware выпустили бесплатную версию своего гипервизора под названием ESXi – через некоторое время на рынке появились бездисковые сервера, загружающие сам гипервизор с Flash-карты небольшого объема. Сами же файлы виртуальных машин при этом хранятся на внешних СХД. Это позволяет снизить стоимость оборудования, так как отпадает необходимость в оснащении серверов своими собственными жесткими дисками и RAID-контроллерами. Microsoft выпустили свою версию гипервизора, под названием Hyper-V, включив ее в состав ОС Windows Server 2008. Вслед за этим, был выпущен бесплатный продукт под названием Hyper-V Server 2008, представляющий из себя предельно урезанную версию Windows Server 2008 Server Core, с единственной ролью – Hyper-V. В отличие от продуктов VMware, Hyper-V не требует покупки каких-либо лицензий на отдельные «фичи» гипервизора, и может быть предпочтительнее, если в качетсве гостевых ОС будут использоваться только ОС семейства MS Windows. В версии Hyper-V Server 2008 R2 используется новый гипервизор – Hyper-V 2.0 с поддержкой его новых функций – в частности, Live Migration. Так же Hyper-V Server 2008 R2 может работать на более мощных системах (с большим количеством процессоров и объемом ОЗУ), чем предыдущая версия, и может работать в составе Failover-кластера. Тем не менее – не всем известно, что Hyper-V Server 2008 R2 тоже может загружаться с flash-накопителя, точно так же, кстати, как и Windows Server 2008 R2 и Windows 7. В этой статье я расскажу, как сделать Hyper-V Server 2008 R2 Bootable Flash Drive.

Для чего это нужно?


Как известно, чаще всего у компьютеров выходят из строя жесткие диски. Относительно недавно на рынке появились жесткие диски на базе flash-памяти. От стандартных дисков они отличаются намного большей надежностью и скоростью, так как не содержат движущихся частей. К сожалению, главным их недостатком является высокая стоимость: SSD-диски обычно стоят в разы дороже стандартных жестких дисков такого же объема.
Flash-накопители же стоят намного дешевле, и вполне могут проходить по статье «расходные материалы» вместе с бумагой и картриджами для принтеров. Кроме того, подготовить описанным в статье способом множество загрузочных флэшек намного проще и быстрее, чем клонировать жесткие диски, а потому мы получаем более масштабируемое решение: за один день можно подготовить несколько десятков серверов, которые останется потом лишь настроить (что можно также автоматизировать, например, с помощью скриптов). Помимо масштабируемости, повышается и отказоустойчивость: при выходе сервера из строя достаточно будет просто переставить флэшку в новый сервер, а не восстанавливать его из резервных копий.

Итак, что нам понадобится?


Из программного обеспечения нам понадобятся:

Из «железа»:
  • Компьютер с Windows 7, на котором и будет создаваться загрузочная флэшка
  • Сервер, соответствующий системным требованиям Microsoft Hyper-V Server 2008 R2 и способный загрузиться с USB-устройства
  • Собственно, USB-флэшка или флэш-карта (SD/MMC/etc. – если соответствующий формат карт поддерживается нашим компьютером и сервером), объемом 8 Гбайт и выше (рекомендуется – 16 Гбайт).


Шаг 1: Создаем VHD


Формат файлов VHD (Virtual Hard Disk) был разработан изначально компанией Connectix, впоследствии купленной Microsoft. Формат VHD стал использоваться для файлов виртуальных жестких дисков в продуктах Microsoft VirtualPC и Virtual Server, а затем – и Hyper-V. Формат VHD является открытым, и существует ПО других разработчиков, использующее этот формат. В ОС Windows 7 и Windows Server 2008 R2 файлы формата VHD поддерживаются на уровне ОС, и могут быть смонтированы как диск в системе. Более того, ОС может даже быть установлена и загружаться с VHD. В нашем случае мы создадим файл VHD на нашей флэшке, затем запишем туда файлы системы Hyper-V Server 2008 R2 и сделаем так, чтобы ОС могла быть загружена с этого VHD.
Итак, вставляем нашу флэшку в компьютер с Windows 7 и запускаем оснастку «Computer Management» (compmgmt.msc). Заходим в Disk Management и выбираем «Create VHD». Выбираем, где будет храниться наш файл-образ (какую-нибудь временную папку на жестком диске – можно делать и сразу на флэшку, но так будет быстрее), задаем размер – на флэшке про запас должно остаться 25% свободного пространства, в случае с 16-гигабайтовой флэшкой сделаем 12 Гбайт, и нажимаем Create. Процесс создания VHD займет некоторое время, так что можно спокойно пойти выпить чего-нибудь прохладительного или горячительного и заняться боксом по переписке на любимом форуме, как же без этого…


После того, как мы попили кофе – можно посмотреть на смонтировавшийся автоматически новый диск, проинициализировать его и создать на нем единственный раздел, отформатировав его в системе NTFS.

Шаг 2. Распаковываем инсталляционный образ на VHD


Теперь нам нужно распаковать инсталляционный образ Hyper-V Server на созданный диск. Нам понадобится установочный диск Hyper-V Server 2008 R2 или его ISO-образ. Конкретнее – нам нужен файл install.wim, хранящийся в папке SOURCES на установочном диске (или ISO-образе). Если у нас скачанный ISO-образ – его необходимо либо записать на DVD-ROM, либо распаковать на жесткий диск, либо же смонтировать с помощью любой подходящей программы (Alcohol 120%, Daemon Tools, UltraISO, Nero). Распаковка WIM-образа осуществляется с помощью утилиты ImageX, входящей в состав WAIK. Выполняем следующую команду (подразумевая, что ISO-образ у нас смонтирован как диск E:, а VHD – как диск F: ):
C:\Program Files\Windows AIK\tools\x86\imagex /apply E:\SOURCES\install.wim 1 F:\
Необходимо учесть, что для успешного выполнения команды консоль должна быть запущена с привилегиями администратора (Run as Administrator). Процесс этот опять же займет некоторое время, и можно еще пойти покурить/почитать любимый форум/выпить кофе/etc.


Шаг 3. Подготавливаем флэш-накопитель


Итак, мы подготовили наш VHD-образ, и теперь нам нужно скопировать его на флэш-накопитель и сделать так, чтобы с него можно было загружать ОС.

Форматируем флэш-накопитель и копируем файл VHD

Для начала, как ни странно, нам необходимо подключить наш флэш-накопитель к компьютеру, на котором мы создавали VHD. Флэшку нужно отформатировать в файловой системе NTFS (предварительно, разумеется, скопировав с нее все нужные вам файлы, если таковые имеются). Перед копированием VHD нужно размонтировать – иначе система не даст скопировать его на флэшку. Идем в консоль Computer Management, щелкаем правой кнопкой по смонтированному VHD-диску и выполняем Detach VHD. Теперь скопируем недавно созданый VHD-файл на флэшку в корневой каталог. Надеюсь, этот шаг достаточно прост и в дополнительных пояснениях не нуждается.

Создаем загрузочный сектор

Файл VHD мы скопировали, но теперь нужно сделать так, чтобы сервер мог загрузить ОС с нашей флэшки. Вначале для этого надо создать на ней загрузочный сектор. Делается это утилитой bootsect, так же входящей в состав WAIK (опять же, понадобятся административные привилегии, D: — флэшка):
C:\Program Files\Windows AIK\tools\PETools\x86\bootsect /nt60 D: /force /mbr

Создаем хранилище BCD (то есть сам загрузчик)

Теперь необходимо указать загрузчику, что загружать ОС необходимо с нашего VHD. Для этого на флэшке создается так называемое хранилище BCD (Boot Configuration Data). Делается это с помощью утилиты BCDboot, имеющейся в составе Windows 7. Предварительно нужно смонтировать в системе VHD-файл, находящийся на флэшке. Заходим в Computer Management – Storage — Disk Management и делаем Attach VHD, выбрав VHD уже с флэшки. После этого даем команду (точно так же, с привилегиями администратора, D: — флэшка, F: — примонтированный VHD):
bcdboot F:\WINDOWS /s D:
Теперь флэшка практически готова к работе. Осталось сделать только один последний штрих…


Шаг 4. Отключаем файл подкачки

Как известно, операционные системы семейства Microsoft Windows используют для работы так называемые файлы подкачки (они же – своп-файлы или paging files). По умолчанию они хранятся на загрузочном разделе. К сожалению, файлы подкачки характеризуются достаточно частой записью, а это может заметно снизить срок службы флэш-накопителя. Поэтому предварительно необходимо отключить использование файлов подкачки в системе. Проще всего будет это сделать, используя редактор реестра. Запускаем редактор реестра (regedit) и открываем куст реестра из системы, установленной на VHD. Выбираем HKEY_LOCAL_MACHINE, делаем File – Load Hive и выбираем файл (помним, что F: — это подмонтированный VHD) F:\Windows\system32\config\system. На запрос имени – даем какой-нибудь имя типа HVTemp. Затем идем в ветку HKLM/HVTemp/ ControlSet001\Control\Session Manager\Memory Management и удаляем параметр ExistingPageFiles.
Теперь можно со спокойной душой выгрузить куст реестра ( выбрать HKLM/HVTemp, затем File – Unload Hive), размонтировать VHD (Computer Management – Storage — Disk Management, Detach VHD), размонтировать флэшку и воткнуть ее в сервер.


Шаг 5: И наконец – загружаемся!

Ну что же… Итогом наших мытарств стала флэшка, с установленным на нее гипервизором Microsoft Hyper-V Server 2008 R2. Теперь ее можно просто вставить в сервер и загрузиться с нее. Но перед этим – нужно убедиться, что сервер соответствует требованиям для запуска Hyper-V и настроен на загрузку с USB-устройства. Требования эти следующие:
  • 64-битный процессор, совместимый с Intel x86
  • Процессор должен поддерживать аппаратные расширения виртуализации (Intel VT / AMD-V)
  • Процессор должен поддерживать предотвращение исполнения из области данных (DEP, Data Execution Prevention) на аппаратном уровне (XD-bit, NX-bit)

Прежде, чем загружать ОС с флэшки, необходимо зайти в BIOS Setup на сервере и убедиться, что:
  • Аппаратная поддержка виртуализации включена (Hardware Virtualization Support — Enabled)
  • Аппаратное DEP включено (Data Execution Prevention — Enabled)
  • В списке загрузочных устройств USB-накопитель находится на первом месте.

Теперь можно загружаться, настраивать систему, подключать LUN’ы внешней СХД (и таким образом – получить полностью бездисковый сервер) и создавать виртуальные машины.
Напоследок – небольшая рекомендация: загрузочный флэш-накопитель лучше каким-нибудь образом спрятать внутрь сервера, чтобы он не торчал из корпуса – поскольку его могут случайно задеть, сломать или выдернуть. Некоторые сервера комплектуются устройством для считывания карт памяти (Card Reader) – это может быть вообще идеальным решением: случайно выдернуть SD-карту практически невозможно, поскольку она выступает наружу разве что на один миллиметр. Подготовка SD/MMC-карты технически ничем не отличается от обычной USB-флэшки, и все шаги – те же, что и описаны выше. Кроме этого, у некоторых серверов (в частности, у HP в их blade-серверах) есть внутренние USB-разьемы. Они находятся на материнской плате внутри корпуса и позволяют подключать стандартные USB-накопители.


А теперь – то же самое, только еще проще!


А теперь внезапно я вас обрадую: все то, что я писал в статье выше – можно и не делать. Некто Paul Despe создал утилиту BootFromUSB (http://code.msdn.microsoft.com/BootHVSR2FromUSB), с помощью которой можно создавать загрузочную флэшку в пару кликов мыши. Окно утилиты выглядит достаточно просто:


Чтобы с ее помощью создать загрузочную флэшку – нужно проделать следующие шаги:
  1. Установить WAIK (где его взять – см. начало статьи)
  2. Вставить установочный диск или смонтировать в системе ISO-образ или распаковать ISO-образ Microsoft Hyper-V Server 2008 R2 (опять же, см. выше)
  3. Подключить флэш-накопитель (USB-флэшка или карта памяти)
  4. Запустить утилиту с правами администратора (Run as Administrator)
  5. Выбрать флэшку как target USB Flash Drive (Осторожно! В процессе работы она будет отформатирована!)
  6. Нажать Create Blank VHD и выбрать временную папку для VHD-файла на жестком диске вашего компьютера
  7. Указать путь к файлу Install.wim из дистрибутива Microsoft Hyper-V Server 2008 R2
  8. Нажать Start и пойти пить кофе/чай/пиво. Где-то через полчаса флэшка готова.


Заключение


Ну вот, собственно говоря, и все. Надеюсь, эта статья вам помогла. С удовольствием отвечу на вопросы в комментариях. Спасибо за внимание!

Оригинал статьи был опубликован в журнале «Системный администратор» №07/08 за 2010 год.
Tags:
Hubs:
+12
Comments68

Articles