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


    Когда 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 год.
    Share post

    Comments 68

      +2
      Когда VMware выпустили бесплатную версию своего гипервизора под названием ESXi – через некоторое время на рынке появились бездисковые сервера, загружающие сам гипервизор с Flash-карты небольшого объема.

      Boot from SAN в этом плане выглядит еще интереснее.

      Кстати, Windows Server 2008 прекрасно умеет грузиться и работать с использованием Software iSCSI Initiator'а. Очень хорошо и бюджетненько выходит.
        0
        Именно 2008, или все же 2008 R2?
          +1
          Оба, и ставиться, и грузиться. Даже 2003 умел грузиться.
            0
            Ну дайте ссылку на почитать, чтоли )
            • UFO just landed and posted this here
          0
          Еще интереснее выглядит Boot from PXE с использованием AutoDeploy.
            0
            Она выглядит интересно при наличии Enterprise Plus лицензий на ESXi. :)
          0
          Может не совсем по сабжу…
          Hyper-v это гипервизор или роль в винде?
          И вот не понятен момент если я хочу поднять RDS для этого мне требуется роль Hyper-V, а у меня стоит Hyper-V Server 2008 R2, а ней Windows Server 2008 Ent. допустим. То есть в последней мне нужно будет включить роль Hyper-V?
          Ну и небольшой вопрос в догонку, если я на ESXi поставлю Windows Server 2008 Ent. в ней включу роль Hyper-V и подниму RDS, такой варинат пройдет? Имеет ли это смысл?
          Просто хотелось бы на одной железке поднять AD, файловый сервер, терминальный сервер и что бы это было отдельно друг от друга.
          Заранее, Спасибо!
            +1
            Если у Вас Ent редакция винды, то все очень просто: ставим ее на сервер, добавляем роль Hyper-V, больше ничего в этой винде не ставим (это обязательно!). Теперь согласно лицензии Вы имеете право на запуск 4 виртуалок с виндой, в которых уже поднимаете необходимые Вам сервисы.
              +3
              С Hyper-V часто возникает путаница из за названий…
              «Hyper-V» — это роль в Windows Server
              «Hyper-V Server» это бесплатная редакция операционной системы, на основе Server Core, с единственной ролью — Hyper-V.

              Для RDS не требуется Hyper-V, только для одного из его компонентов — Remote Desktop Virtualization Host. Этот компонент является полностью опциональным и нужен только если вы хотите предоставлять удобный доступ по RDC к виртуализированным на Hyper-V машинам.

              Врядли вы сможете включить на виртуальной машине роль Hyper-V. Ну точнее установить то наверное еще получится, а вот запустить службу врядли. Дело в том что для работы Hyper-V (как и ESX) нужна аппаратная виртуализация, а в виртуальной машине соответствующие возможности не эмулируются :)

              Чтобы поднять 3 ваших службы можно просто в Windows Server или в Hyper-V Server поднять 3 виртуальных машины. Причем вы можете обойтись лишь одной лицензией Enterprise (право на 4 ОС на одном физическом хосте)
                0
                Не знаю, как Hyper-V, но ESX умеет виртуализировать сам себя и может запускать в себе ESX! Но и более того, во вложенном ESX-сервере можно даже запустить виртуальную машину :)
                То есть, типа такого паровозика: ESX->ESX->VM :)
                  0
                  Внутри виртуализованного ESX(i) можно запускать только 32-разрядные ВМ. Да и сложно представить, где это может пригодиться, кроме демостенда или тестовой лаборатории?
                    0
                    Да, конечно, только 32-бита. Но сам факт-то остаётся :) Я тоже не вижу такой области, где такая вложенность пригодится, но вот как раз как для тестов, даже дома, на одной машине погонять, помигрировать туда-сюда — вполне возможно и доступно.
                      0
                      Virtual Server тогда там тоже можно запустить. Остается факт что виртуализированный ESXi в таком случае не использует аппаратную виртуализацию (что как бы очевидно), и непонятно зачем вы об этом тогда упомянули.
                        0
                        Область была названа — демостенды и лаборатории с ограниченным бюджетом/железом.
                      –2
                      А еще инет можно сделать по диалапу через IP-телефонию.
                        0
                        Hyper-V не может, он работает только с аппаратной виртуализацией. ESX 4 работает на любом 64-битном процессоре, даже без VT.
                          0
                          Угу, просто у Microsoft продукт с аппаратной виртуализацией (Hyper-V) и без неё (Virtual Server) являются отдельными продуктами, а VMWare решила сделать это одним продуктом. Теперь можно заявлять что ESX работает без аппаратной поддержки, но в демонстрациях производительности использовать разумеется машины с аппаратной поддержкой :)
                            0
                            Извините, это глупость.

                            ESX (bare-metal) и GSX (теперь известный как VMware Server) работали без аппаратной виртуализации с 2001 года. Аппаратная виртуализация требуется только для запуска 64-битных гостевых ОС.

                            Причем касательно Вашей попытки поиронизировать — я встречал утверждения, что ESX в режиме binary rewrite работает быстрее, чем с аппаратной виртуализацией.
                      0
                      на одну железку сгружать ворох сервисов не очень разумно, т.к. если что с ней нехорошее случится по жопке начальство надает за выход из строя такого количества служб :)

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

                      перечисленные вами службы легко поднимаются «на одной железке» и без всяких виртуализаций. не понимаю, зачем их раздельно совать по виртуалкам? ну может разве что терминальный сервер отдельно сунуть в целях избежания локальных уязвимостей. но для этого не обязательно hyper-v. vbox'а в режиме службы хватит за глаза, имхо.
                      • UFO just landed and posted this here
                          –2
                          а кроме вашего «авторитетного» мнения есть еще причины?
                            0
                            Достаточно странно использовать решение для виртуализации десктопов в качестве серверной платформы.

                            Двже идейные красноглазые линуксоиды предпочтут Xen VBox'у для серверов.
                              0
                              не знаю как идейные и красноглазые линуксойды, а нормальные люди на линуксе уже давно предпочитают таке KVM, но это не важно. важно то что, адекватных причин почему vbox не подходит для виртуализации на сервере видимо увидеть не удасться :(
                                0
                                Причина была Вам озвучена. Если Вам этого недостаточно, то видимо с серверами, тем более продуктивными, Вы дела имели маловато.
                          0
                          >на одну железку сгружать ворох сервисов не очень разумно

                          Зато очень выгодно. Поэтому начальство с мозгами посчитает экономию и сравнит ее с возможными потерями от простоя, чтобы решить что и как.

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

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

                            в любом случае, ни один из выбранных путей не отменяет необходимости бэкапов, регулярной проверки возможности наката с бэкапа и документации собсенно того как это все работает и как с бэкапа накатывать.
                              0
                              Ну что ж, либо Вы не правы, либо мое руководство было нетрезво, когда оценивало.
                        –10
                        как это — винда, и нужно вводить команды с консоли? а как же gui?
                          +2
                          В серьёзных статьях ваш юморок неуместен.
                            0
                            для GUI есть regedit
                            • UFO just landed and posted this here
                              –2
                              Жесть, разница в установке с ESXi колоссальна! В прочем конечно это в духе MS.
                                0
                                Я бы на сказал, что вариант с образом ESXi и WinImage сильно проще BootFromUSB. В любом случае, следует понимать, что данная возможность предоставляется, в основном, для крупным производителей серверов, которые в качестве опции могут поставлять предустановленный гипервизор вместе с сервером.
                                  0
                                  Зачем WinImage? ESXi Installable прекрасно ставится на USB / SD Flash прямо со стандартного загрузочного CD.
                                    0
                                    Я полагал, речь шла про сравнение embedded. И вообще, ESX на flash в отличии от Windows Server 2008 R2 без внешнего storage'а поставить не получится. :)
                                      0
                                      А Embedded вообще не ставится, строго говоря, а поставляется уже установленным вместе с сервером.
                                        0
                                        Об этом речь и шла.
                                          0
                                          Не совсем понимаю почему речь об Embedded шла. ESXi Installable прекрасно ставится на USB сам.

                                          ESXi, а не ESX.
                                            0
                                            Вот я и говорю, не поставишь просто так ESX на flash.
                                –3
                                А чего на флешке? Давайте уж на рейде из флопиков. Надежность еще выше будет.
                                  +1
                                  Нет, рейды из флопиков, веб-интерфейс на кофеварке — это все к линуксоидам.
                                  0
                                  У меня Microsoft sql сервер с базой размером 300 гб., ОС крутится на локальном диске, а БД лежит на СХД подключенным Fibre Channel. Потеряю ли я в производительности перенеся ОС в виртуальную среду и поместив виртуальный жесткий диск на удаленную СХД?
                                    –1
                                    Если верить MS — разница в производительности реальных дисков и VHD — практически незаметна.
                                    0
                                    А зачем помещать на СХД виртуальный жесткий диск, если можно подключить реальный к виртуальной машине?
                                      –1
                                      Ну разница там практически 0.
                                      Да и не умеет hyper-v пробрасывать FC-LUN внутрь — только iscsi можно через программный инициатор.
                                        0
                                        Пользуйтесь VMware ESX, он умеет :)
                                          0
                                          Чем FC-LUN будет отличаться от обычного LUN на DAS?
                                          0
                                          По разным причинам: snapshot'ы, тонкие/динамические диски, меньше внимания можно уделять сайзингу, и в большинстве случаев, такую машину проще перенести.
                                          0
                                          Да, потеряете, в виртуальной машине не может быть больше 4 ядер, в физической их у вас, скорее всего, больше.
                                          По памяти и по скорости дисковой подсистемы потерь в производительности вы скорее всего не заметите, хотя небольшие и есть.
                                            0
                                            VMware ESX может до 8 ядер.
                                              0
                                              В Hyper-V, про которую пост, до 4, в серверах, например, можно встретить и 12 реальных ядер, и больше, все равно больше 8, которые в VMWare.
                                                0
                                                Имеется в виду, что Hyper-V может сделать виртуалку максимум с 4 виртуальными процами. То есть даже если в сервере 48 ядер — у виртуалки будет максимум 4.
                                                  0
                                                  Вы не путайте ядра для виртуальной машины и ядра на физических процессорах.

                                                  VMware ESX/ESXi прекрасно работает с 12 ядерными процессорами, но виртуальным машинам отдает максимум 8.
                                                    0
                                                    В общем то и не путаю, цитирую себя: «в виртуальной машине не может быть больше 4 ядер».
                                                      0
                                                      Перфразирую: в виртуальной машине VMware может быть до 8 ядер.
                                              0
                                              В дисковых операциях вы практически ничего не заметите. Основные потери производительности будут на процессорной мощности — многопроцессорные ВМ совсем не то же самое, что многопроцессорные физические машины. В особенности если на этом же хосте виртуализации у вас будет еще целый косяк многопроцессорных ВМ.

                                            Only users with full accounts can post comments. Log in, please.