Продукты для резервного копирования информации
90,62
рейтинг
22 октября 2013 в 09:14

Разное → Как я перестал беспокоиться и полюбил Hyper-V Server

Как я перестал беспокоиться и полюбил Hyper-V Server
Недавно у меня появилась задача “вжиться в шкуру пользователя” и на деле проверить, как работается на бесплатном Microsoft Hyper-V Server 2012.

Да-да, бесплатный сыр есть не только в мышеловке, но и у Майкрософта. Если вы хотите виртуализовать сервера или хотя бы ваш старый ноутбук, но при этом не хотите платить дополнительные деньги за гипервизор, то Hyper-V Server — это то, что нужно попробовать. Почему? Во-первых, он по-настоящему бесплатен – все функции, включая даже «энтерпрайзные», доступны пользователям сразу и без каких-либо оговорок, во-вторых, он поддерживается и развивается большой компанией, и, в-третьих, это просто старый добрый Windows, хоть и немного обрезанный до Server Core.

Под катом вас ждет рассказ о том, как установить и настроить Hyper-V Server и элегантно обойти ограничения этой платформы при помощи Линукса.

Установка


Все стандартно настолько, что даже писать не о чем. ISO образ берем отсюда по горделивой ссылке «Free Download».

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

Консоль

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

Конфигурирование: система


С помощью синей консоли задаем необходимые параметры — имя, сетевые адреса, включаем RDP и автообновления.

Кстати об обновлении системы: обрезание до Server Core было сделано для сокращения attack surface, другими словами уменьшения количества сервисов и программных компонент, которые могут содержать уязвимости, а соответственно должны регулярно патчиться. А поскольку установка патчей часто требует перезагрузки сервера, то уменьшение количества обновляемых компонент сервера будет вести не только к увеличению его безопасности, но и доступности.

Конфигурирование: Hyper-V


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

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

1) Узнаем под какими именами фигурируют адаптеры. Для этого выполним команду Get-NetAdapter
PS C:\Users\Administrator> Get-NetAdapter
Name                      InterfaceDescription                    ifIndex Statu
                                                                          s
----                      --------------------                    ------- -----
Ethernet 5                Broadcom BCM5708C NetXtreme II Gi...#47      16 Up
Ethernet 4                Intel(R) PRO/1000 PT Dual Port Ser...#2      15 Di...
Ethernet 3                Intel(R) PRO/1000 PT Dual Port Serve...      14 Di...
Ethernet 2                Broadcom BCM5708C NetXtreme II Gi...#49      13 Up

2) Создадим виртуальный свитч привязанным к адаптеру Ethernet 5
PS C:\Users\Administrator> New-VMSwitch -Name "bridged" -NetAdapterName "Ethernet 5"

Name    SwitchType NetAdapterInterfaceDescription
----    ---------- ------------------------------
bridged External   Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Client) #47

Для создания виртуальной машины — все готово.

Создание виртуальной машины


Скорее всего нам понадобится ISO образ для установки операционной системы, его мы копируем привычным для Windows способом — по сети через долларовые шары на нашем сервере.

Теперь создадим машину.
PS C:\Users\Administrator> New-VM -Name "test1" -Path C:\vms\test1 -MemoryStartupBytes 2GB -NewVHDPath C:\vms\test1\disk1.vhdx -NewVHDSizeBytes 40GB -SwitchName "bridged"

Name  State CPUUsage(%) MemoryAssigned(M) Uptime   Status
----  ----- ----------- ----------------- ------   ------
test1 Off   0           0                 00:00:00 Operating normally

Небольшая тонкость есть в выборе типа сетевого адаптера — если выбор операционной пал на Windows 2012, то можно выбирать стандартный адаптер, но если что-либо другое лучше выбрать «legacy» тип адаптера. Это можно сделать, передобавив адаптер к виртуальной машине с ключиком -IsLegacy 1
Remove-VMNetworkAdapter -VMName test1
Add-VMNetworkAdapter -VMName test1 -IsLegacy 1 -SwitchName «bridged»

Вставим в созданный по умолчанию DVD дисковод ISO образ
PS C:\Users\Administrator> Set-VMDvdDrive -VMName test1 -Path C:\iso\en_windows_server_2012_vl_x64_dvd_917758.iso

На будущее — когда потребуется вытащить диск из виртуального дисковода нужно выполнить Set-VMDvdDrive -VMName <имя машины> -Path $null

Ну вроде, все… Можно запускать!
PS C:\Users\Administrator> Start-VM test1

Мммм, пробежал прогресс вверху окна powershell, видимо все запустилось. Проверим командой Get-VM
PS C:\Users\Administrator> Get-VM test1

Name  State   CPUUsage(%) MemoryAssigned(M) Uptime   Status
----  -----   ----------- ----------------- ------   ------
test1 Running 0           2048              00:01:30 Operating normally

Все хорошо — машинка работает.

Однако, как же взглянуть на экран?!


Секундочку… а как-же посмотреть на экран установки, куда мышкой тыкать? В общем — где консоль? локально — никак: ее нет на сервере!

Что предлагает Microsoft — вы можете поставить RSAT (remote system administration tools) на клиентскую станцию. При помощи этих инструментов можно подключаться к консоли виртуальных машин, и, кстати, оттуда-же создавать и запускать виртуальные машины через mmc snap-in Hyper-V. Однако есть интересные особенности:

  • RSAT для Windows 8 работает только с Windows 2012
  • RSAT для Windows 7 Sp1 работает только с Windows 2008 R2 SP1

По-моему, не дело из-за смены версии сервера менять клиентскую ось! Куда смотрят продуктовые менеджеры в Майкрософт?! Как же мне зайти на консоль?

Идея пришла откуда не ждали… Почему-бы не использовать виртуальную машину с Linux в качестве RDP-прокси?

Подарок для всех


В итоге я на основе CentOS сделал виртуальую машину, на которую можно зайти по RDP, авторизоваться и далее в простеньком интерактивном скрипте запускать консоли на любые виртуальные машины на данном или вообще любом Hyper-V сервере в сети.

Вы можете скачать образ данной машины (371MB) и развернуть его с помощью бесплатной версии Veeam Backup & Replication на Hyper-V сервер. Пользователь root имеет пароль 123qweASD. Для смены пароля нужно запустить сначала passwd, а потом не забыть vncpasswd.

После запуска машины вы можете узнать IP адрес этой машины, выполнив данную команду на сервере Get-VM <имя машины> | select -ExpandProperty NetworkAdapters | select Ipaddresses. Вам необходимо иметь DHCP сервер в сети.

PS C:\Users\Administrator> get-vm rdpproxy | select -ExpandProperty NetworkAdapters | select IPaddresses

IPAddresses
-----------
{192.168.1.8, fe80::215:5dff:fe01:6703}

Используя RDP клиента, заходим на данную машину, добавляем Hyper-V сервер, выбираем виртуальную машину и… voilà — теперь можно продолжить установку операционной системы

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

Как это работает


Основную работы сделали классные ребята из FreeRDP. Нет — ну они, правда, классные, так как поддержали протокол RDP даже лучше, чем в Майкрософт. Там есть поддержка RemoteFX, add-in-ов, кэшей, перенаправлять аудио и clipboard… в общем всего того, что им позволяет подключаться не только к разным версиям Windows, но и к виртуальным машинам напрямую через специально открытый для этого на Hyper-V server порт 2179.

Все последние протоколы необходимые для работы с Hyper-V есть только в бете 1.1.0 версии. Я немного доработал версию только для того чтобы переопределить посылание Ctrl+Alt+Del на сочетание Ctrl+Alt+Insert, а то Linux прокси первым его обрабатывал и зайти в Windows виртуалку не было никакой возможности. Как честный человек — выложил исходники здесь: https://github.com/VeeamSoftware/FreeRDP

В качестве RDP сервера используется xrdp.

Скрипт опроса хостов и запуска консолей написан на Bash. Писал на нем впервые — прошу снисхождения к корявостям.

Опрос хостов на наличие запущенных виртуальных машин и их идентификаторов сделан через WMI. Спасибо утилите wmic, написанной на основе библиотеки от Samba 4.

CentOS 6.4 имеет внутри себя часть Integration Services, которые сообщают по каналу хост-виртуальная машина о себе некоторую информацию, из которой нам необходимы только IP адреса.

Кое-что про будущее


Не очень хорошая новость, в пятницу только вышла новая версия Hyper-V Server 2012 R2, я попробовал запуститься на ее Preview, но интеграционные сервисы CentOS не смогли прокинуть IP адрес на хост. Видимо Майкрософт опять что-то поменяли/расширили без обратной совместимости. Подождем немного выхода Intergation Services for Linux и поддержим и эту версию.

Заключение


Hyper-V Server – хорошая система чтобы начинать развитие ИТ небольшой компании. Полная бесплатность – хорошее подспорье когда бюджет ограничен. И в дальнейшем этот гипервизор позволит легко и без лишних расходов добавлять «энтерпрайзные» возможности: развивать мощность добавляя новые сервера, внедрять более хитрые сетевые схемы, предоставлять отказоустойчивость через кластеризацию и т.п.

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

Полезные ссылки


Автор: @avas
Veeam Software
рейтинг 90,62
Продукты для резервного копирования информации

Комментарии (24)

  • +8
    «Не очень хорошая новость, в пятницу только вышла новая версия Hyper-V Server 2012 R2, я попробовал запуститься на ее Preview, но интеграционные сервисы CentOS не смогли прокинуть IP адрес на хост. Видимо Майкрософт опять что-то поменяли/расширили без обратной совместимости. Подождем немного выхода Intergation Services for Linux и поддержим и эту версию.»

    — С этого надо было начинать. Именно за это я в отличие от тебя, и ненавижу грёбанный Hyper-V. Столько мучений с ним вынес, что будь он проклят.
    • 0
      Ну это же частность. Если все сервера крутятся на Windows, то Hyper-V очень не плохо себя показывает. Да и в данном случае, не обязательно сразу переезжать на новую платформу, достаточно самому протестировать и в случае обнаружения каких то косяков дождаться их исправления.
      • –1
        Абсолютно верное замечание: менять основу в работающем продакшене без предварительного полного тестирования — просто безумие.
        Плюс в некоторых других странах дополнительным сдерживающим фактором служат нехилые финансовые затраты на новые версии ПО.
        Но у нас же всё бесплатно, вот и бегут все обновляться — обязательно в день выхода ОС, ни секундой позже! — не взвесив все «за и против», надо им это или нет.
        Работаю как с Hyper-V, так и с другими гипервизорами — всё стабильно, никаких косяков. Единственный заметный для меня недостаток — невозможность пробросить USB-устройства простым способом, но эту особенность просто нужно учитывать, и всё.
    • 0
      Справедливости ради надо отметить, что с новыми версиями VMware, да и всех других гипервизоров тоже нужно менять интеграционные компоненты. Так что это не так это страшно, особенно для такого «страшного» проклятия. Надо просто подождать немного — не бросаться апгрейдиться.

      Надеюсь, скоро накал страстей в битве гипервизоров понизиться и мы увидим что все они поддерживают некий стандарт для таких guest<->host протоколов
  • 0
    ломаем стереотипы, в винде теперь только консоль.
    • +2
      Да уж Server Core installation 6 лет как доступно.
    • +1
      В которой можно запустить Corefig и получить немного GUI
      • 0
        А если рабочая машина админа под windows, то можно поставить admin pack и полноценно пользоваться GUI ;)
        • 0
          Зависит от версии Windows, так как RSAT для 2012 устаналвивается только на Windows 8.
          • 0
            RSAT для Windows 8 работает только с Windows 2012
            RSAT для Windows 7 Sp1 работает только с Windows 2008 R2 SP1

            Может хватит искажать реальность!

            RSAT для win7 Видит машины Windows 2012. Там можно создать машину и подключиться к ней.
            Нет ПОЛНОЦЕННОЙ поддержки. Но подключиться МОЖНО!

            А вот к Hyper-V Server 2012 R2 из win7 вообще не подключиться. Не видит список машин даже :(. Проверено на pre\rtm\final.

            По поводу KVM\Xen там тоже не все так сладко.
            Но меня улыбнуло то что в Xen windows XP работало сносно, а на hyper-v жутко тормозило. (win 7 работает нормально) (проверено на проц. AMD как на интел не знаю)

            5nine Manager. запущенный на hyper-v server тоже не дает подключиться к вм, просит что-то доставить.

            Пока не скачал, не понял предложение:

            Используя RDP клиента, заходим на данную машину, добавляем Hyper-V сервер, выбираем виртуальную машину и… voilà — теперь можно продолжить установку операционной системы

            куда добавляем Hyper-V сервер???
            Для не R2 есть RSAT для win7. Под R2 ваше решение не работает :(
            Где профит? Решение для админа без лиц. win 7?

            А за статью, Спасибо, надеюсь будет допил под R2 ;)

            • 0
              В принципе мой апплаинс уже в таком виде работает с R2. Его просто не получится завести работать на R2 в общем случае, так как через Powershell хоста не удастся узнать IP адрес выдаваемый апплаинсу по DHCP. Однако есть и другие способы узнать этот адрес — зайти на сам DHCP и узнать по MAC адресу например.

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

              И по поводу RSAT Windows 7 и 2012 сервреа (без R2) я честно попытался настроить это — у меня не заработало. Если не трудно расскажите о Вашей конфигурации. Плюс интересно было бы узнать работает ли у Вас доступ на консоль виртуальной машины.

              куда добавляем Hyper-V сервер???

              — зайдя на апплаинс по RDP Вы увидите терминальное окно с моим работающим скриптом — он попросит сразу добавить хост и креды к нему, а потом уже обэнумерит виртуальные машины, которые на нем/них работают и предложит выбрать на терминал какой из машинок зайти.
            • 0
              Где профит? Решение для админа без лиц. win 7?


              профит в независимости от версии Windows на рабочей станции
              как я уже только что ответил выше уже сейчас поддерживает Hyper-V Server 2012 R2

              ну и как небольшой плюс — даже RSAT ставить не надо
  • +2
    Допилим Widnows с помощью Linux… Казалось бы, а зачем? Цитрикс вон тут тоже бесплатным сделал свой XenServer. Холиварный вопрос, конечно, что лучше, но по крайней мере винда в цитриксе работает без нареканий. Для труЪ — KVM, хотя давно его не тестировал. В любом случае — зачем Hyper-V+Linux, когда можно просто Linux? Тем более глупо выглядит заключение. Hyper-V для небольшой фирмы — странность. Ибо XenServer без какого-либо бубна — и вот оно, user и admin friendly счастье.
    • +1
      Цитрикс вон тут тоже бесплатным сделал свой XenServer. Холиварный вопрос, конечно, что лучше, но по крайней мере винда в цитриксе работает без нареканий.

      Поздно для холиваров:
      www.vmguru.nl/wordpress/2013/10/bye-bye-citrix-xenserver/
  • 0
    А я так и не смог добиться от тех поддержки Microsoft адекватного ответа на счёт лицензии Windows datacenter для сторонних систем виртуализации, по этому использую Hyper-V кое-где. Не сказал бы что там всё плохо но вот момент с выбором сетевых карт была трудность, система на глухо уходила в ребут. Помогла замена сетевого адаптер на legacy network adapter.
  • +1
    А что за банки на фотографии? Где такие достать? ;)
    • 0
      А мне хочется со вкусом Linux :)
    • 0
      Это такие маркетинговые завлекалки с конференции TechEd, на фотографии может и не заметно, но это еще для первой версии Hyper-V 2008
      Так что боюсь такие достать уже невозможноб давно уж выпиты…
  • 0
    Вместо RSAT можно использовать 5nine Manager.
    • 0
      5nine требует установки на сервере, это менее предпочтительно так как Hyper-V урезанием до Server Core уменьшал количество компонент, которые могли бы быть атакованы и должны обновляться
      Ровно из-за этих соображений и появилась идея заизолировать все в виртуальной машине.
      • 0
        Алексей, это не так.
        5nine Manager это утилита управления, которую вы устанавливаете на свой ПК (например Windows 7) для удаленного управления любым гипервизором, — например Hyper-V Server 2012 R2. В отличии от штатной утилиты от Microsoft нет требования к прозрачности версий (нет нужды обновлять свой ПК до 8.1 для управления 2012 R2).
        На удаленных узлах никаких агентов не ставится, идет штатное подключение WMI/PowerShell

        Изолировать управление внутри виртуалки, это, конечно, здраво. Но как управлять этой самой виртуалкой? :)
  • 0
    Хватит того, что они сделали со Skype, я уж как-то на ESX
  • +1
    Hyper-V очень хороший продукт, по бенчмаркам обгоняет другие гипервизоры
    Встроенная консоль управления Hyper-V есть в Windows 8, что намного удобнее преложенного варианта через терминал.
  • 0
    я не понял нафига там hyper-v когда есть centos и соотв. можно юзать на нём kvm?!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное