Добрый день.
В предыдущий раз было дано описание процесса установки гипервизора компании VMware — ESXi. На эот раз, как и было анонсировано ранее, будет рассмотрен продукт другого довольно известного и популярного разработчика.
В статье ниже я задался целью пролить еще немного света на тему виртуализации, но на сей раз на платформе от Microsoft – Hyper-V. Причем выбрана бесплатная версия данного гипервизора существующая ввиде отдельного сервера. Статей на эту тему в сети немало, да что там, — идею этой статьи я честно подчерпнул из одного такого мануала. Однако я решил несколько усовершенствовать процесс настройки описанный там, снабдив более удобными «костылями» из других источников, чтобы в итоге получить более гарантированный результат при еще большей наглядности и ясности в деталях. У кого получилось интереснее — судить читателю.
Скачиваем (нужна регистрация на сайте), пишем на болванку: Hyper-V Server 2012 R2. Небольшая рекомендация — если у вас на руках окажется на выбор больше чем одна локализация дистрибутива (русская, английская), могу посоветовать использовать английскую. Такой выбор обусловлен тем, что по некоторыми (непроверенным) данным, русскоязычная версия имеет свои подводные камни при работе с командно-строчным интерфейсом и русскими символами в нем. Правда это или нет и в каком проявлении, на этот раз гадать мне не хотелось, потому я без особых колебаний выбрал английскую версию, что и вам советую сделать, хотя бы по причине того, что дальнейшее описание будет основываться на такой системе.
Содержание
Устанавливаем Hyper-V Server 2012 R2
Настраиваем новый гипервизор из консоли sconfig (TUI-интерфейс)
Настройка сетевых интерфейсов
Настройка межсетевого экрана (Advanced Firewall) через PowerShell
Установка и настройка системы хоста управления для Hyper-V
Настройка хоста управления гипервизором Hyper-V на Windows 8.1
Источники
Устанавливаем Hyper-V Server 2012 R2
Начнем со скучного, установим сам Hyper-V. Подключаем привод, образ или флешку и устанавливаем.
Рис. 01
Рис. 02
Рис. 03
Картинки выше, конечно не отображают всю полную хронологию, скорее для демонстрации интуитивной понятности процесса и его малым отличием от типовой установки ОС этого поколения Windows. Потому тут — «галопом по европам».
Единственное, на что я тут отвлекся на несколько секунд — установил размер системного раздела сервера по своему усмотрению. Остаток места можно использовать например для хранилища виртуальных машин (ВМ), создав позже еще раздел рядом.
Пока двигаемся дальше.
Настраиваем новый гипервизор из консоли sconfig (TUI-интерфейс)
После завершения установки, первое, что видит пользователь — пара окон CMD и открытая в ней же утилита базовой настройки сервера — Sconfig. Не густо, но для сервера нам вполне хватит.
Рис. 04
Ниже по пунктам перечислены действия, которые нужно выполнить из интерфейса Sconfig.
1. Указываем рабочую группу. (В моем случае сервер вне доменной сети, имя группы — HOMELAB).
2. Указываем имя сервера (мое значение — HYPERV01).
3. Создаем дополнительного пользователя (для примера — hvoper). Можно администрировать от имени Administrator, который создается по-умолчанию, но можно создать для управления отдельного пользователя. Чуть позднее будет ясно для чего
4. Включаем удаленное управление. (Включаем возможность ответов на PING) (опционально)
5. Включаем автоматическое обновление. (опционально)
6. Скачиваем и инсталлируем обновления. (опционально)
7. Разрешаем подключаться по rdp всем клиентам, с любой версией протокола.
8. Задаем сетевые настройки.
9. Устанавливаем время и дату.
Настраивать и проводить обновление сразу или же после завершения конфигурирования сервера — на ваш выбор. Можно обновить систему и затем просто перевести этот процесс на ручное управление — не оставлять же карты судьбы продакшн-сервера в руках малопредсказуемых индусов отдела троянских коней обновления Windows из славной организации MS. В своем случае я это сделал сразу, пока имел выданные адреса от моего DHCP. Статический IP-адрес можно настроить в Sconfig с целью работы по RDP, хотя делать это сразу вовсе не обязательно, поскольку позже планируется настраивать сеть более обстоятельно (процесс будет ниже по тексту).
Если вы меняли имя хоста и/или делали обновление, то вероятно вас попросят перезагрузиться. Когда первые установочные «ре-старты» завершены, пойдем далее.
Кстати говоря, можно уже соединиться с сервером по RPD, если такой вариант вам покажется удобнее.
Для первичной настройки и удобства оной временно выключаем встроенный брандмауэр сервера (также будет настроен чуть позже):
netsh advfirewall set allprofiles state off
Для удобства дальнейшей работы с ФС копируем на Hyper-V некоторые полезные инструменты:
— Total Commander (Far)
— HVRemote
— Дистрибутив ОС ввиде образа ISO будущей виртуальной машины.
Total Commander можно сразу же и установить.
По-моему так рабочее место администратора в Hyper-V выглядит более оптимистично:
Рис. 05
Настройка сетевых интерфейсов
Ввиду того, что наш сервер не имеет привычного для семейства Windows рабочего стола, где можно бодро двигать мышкой и ставить нужные «галочки», приличная часть дальнейшего текста будет посвящена настройке с использованием командной строки, а в частности ее более современного и мощного средства — PowerShell. Если и после этого вы готовы продолжать, тогда продолжим — впереди нас ждет удача!
Открываем окно CMD и запускаем сеанс PowerShell:
powershell
Рис. 06
Смотрим какие у нас есть данные по сетевому адаптеру:
Get-NetAdapter | Where-Object -Property Status -eq Up
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Ethernet 2 Broadcom NetXtreme Gigabit Ethernet 13 Up 11-22-33-44-55-AB 1 Gbps
Добавляем новый виртуальный «коммутатор» (сеть) используя значение Name из вывода команды выше:
New-VMSwitch -Name "local1" -NetAdapterName "Ethernet 2"
где: local1 – имя нашего нового «коммутатора»
Устанавливаем «коммутатору» флаг для будущего управляющего хоста, разрешающий ему использование физического сетевого адаптера:
Set-VMSwitch -Name "local1" -AllowManagementOS 1
Проверяем наличие нового созданного устройства:
Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription ---- ---------- ------------------------------ local1 External Broadcom NetXtreme Gigabit Ethernet
Настройка протоколов сети
Если сервер работает в локальной корпоративной сети, и использовать адресацию IPv6 не планируется (а чаще всего так и бывает), то выключаем 6-ю версию. Активная и не сконфигурированная версия протокола может давать лишнюю уязвимость в соответствующем диапазоне адресов, которым не уделено внимание при развертывании системы.
Проверяем текущую настройку IPv6 на интерфейсе. Имя интерфейса берем из вывода командлетов
Get-NetAdapter
или
Get-NetIPConfiguration
Смотрим, включена ли она:
Get-NetAdapterBinding -InterfaceDescription "Microsoft Hyper-V Network Adapter" | Where-Object -Property DisplayName -Match IPv6 | Format-Table –AutoSize
Если видите что IPv6 активен (наличие полей IPv6 в выводе), то выключаем:
Disable-NetAdapterBinding -InterfaceDescription "Microsoft Hyper-V Network Adapter" -ComponentID ms_tcpip6
где: «Microsoft Hyper-V Network Adapter» — ваше значение из описания (InterfaceDescription) сетевого адаптера.
Теперь посмотрим, какие сетевые установки у нас имеются:
Get-NetIPConfiguration
(тут смотрим InterfaceIndex)
InterfaceAlias : vEthernet (local1) InterfaceIndex : 27 InterfaceDescription : Hyper-V Virtual Ethernet Adapter #2 IPv4Address : 192.168.10.2 IPv4DefaultGateway : 192.168.10.1 DNSServer : 192.168.10.1 InterfaceAlias : Ethernet 3 InterfaceIndex : 14 InterfaceDescription : Broadcom NetXtreme Gigabit Ethernet #2 NetAdapter.Status : Disconnected
Выше в таблице видно, что сервер «подхватил» IP-адрес от DHCP-сервера обслуживающего мою локальную сеть. В мои планы входит работа исключительно со статическими адресами для любых серверов.
Кстати, весьма логично вывести некоторые критичные служебные машины хотя бы в такой отдельный пул для обеспечения лучшей приватности
Поэтому обращаемся к окну PowerShell и задаем сетевые установки исходя из части данных вывода выше, переводя адрес гипервизора в «закрытый» от остальной локальной сети диапазон:
Даем новый IP-адрес:
New-NetIPAddress -InterfaceIndex 27 -IPAddress 192.168.55.101 -DefaultGateway 192.168.55.254 -PrefixLength 24
В этом месте очевидно, потребуется пересоединиться к серверу по RDP — перезапустить сессию с новым IP.
И новые DNS:
Set-DnsClientServerAddress -InterfaceIndex 27 -ServerAddress 192.168.55.254,192.168.10.1
После чего они должны принять вид похожий на таблицу ниже:
InterfaceAlias : vEthernet (local1) InterfaceIndex : 27 InterfaceDescription : Hyper-V Virtual Ethernet Adapter #2 IPv4Address : 192.168.55.101 IPv4DefaultGateway : 192.168.55.254 DNSServer : 192.168.55.254 192.168.10.1 InterfaceAlias : Ethernet 3 InterfaceIndex : 14 InterfaceDescription : Broadcom NetXtreme Gigabit Ethernet #2 NetAdapter.Status : Disconnected
Настройка межсетевого экрана (Advanced Firewall) через PowerShell
Настройка разрешающих правил
После появления PowerShell в стандартной поставке Hyper-V в системе имеется удобный способ настройки встроенного брандмауэра. Для просмотра соответствующих доступных командлетов выполните:
Get-Command -Noun *Firewall* -Module NetSecurity
Проверим правило разрешающее удаленное управление рабочим столом (RDP).
Get-NetFirewallRule | Where-Object -Property DisplayName -Match "remote desktop" | Format-List -Property Name, DisplayName, Enabled
Если видим в графе Enabled: значение False, разрешаем это правило:
Enable-NetFirewallRule RemoteDesktop-UserMode-In-TCP
Переключимся на окно CMD и активируем брандмауэр:
netsh advfirewall set allprofiles state on
Если все было сделано правильно, то соединение через RDP не должно прерваться.
Теперь задействуем правило разрешающее удаленный доступ к управлению встроенным фаерволом.
Проверим, включено ли оно:
Get-NetFirewallRule | Where-Object -Property DisplayName -Match "firewall" | Format-List -Property Name, DisplayName, Enabled
Если в строке Enable видим False, то выполним следующее:
Enable-NetFirewallRule -Name RemoteFwAdmin-In-TCP,RemoteFwAdmin-RPCSS-In-TCP
После этого должна стать доступна оснастка «Брандмауэр Windows» MMC на хосте управления (Windows 8.1, Windows 2012 Server), которая нужна чтобы получить доступ к фаерволу сервера Hyper-V:
Точно также, при желании можно изменить статус для других правил, например для удаленного управления службой Virtual Disk (vds):
Смотрим, включено или нет
Get-NetFirewallRule | Where-Object -Property DisplayName -Match "volume" | Format-List -Property Name, DisplayName, Enabled
Включаем нужные модули, если они выключены:
Enable-NetFirewallRule RVM-VDS-In-TCP,RVM-VDSLDR-In-TCP,RVM-RPCSS-In-TCP
Помимо перечисленного, будет не лишним открыть и порт для подключений к удаленным каталогам файловой системы сервера для копирования необходимых данных (установщики нужных пакетов, образы ISO…). Смотрим, открыт ли порт:
Get-NetFirewallRule | Where-Object -Property DisplayName -Match "smb" | Format-List -Property Name, DisplayName, Enabled
Name : FPS-SMB-In-TCP DisplayName : File and Printer Sharing (SMB-In) Enabled : False Name : FPS-SMB-Out-TCP DisplayName : File and Printer Sharing (SMB-Out) Enabled : False Name : FPSSMBD-iWARP-In-TCP DisplayName : File and Printer Sharing over SMBDirect (iWARP-In) Enabled : False
Если видите аналогичную «фальш», меняем ситуацию:
Enable-NetFirewallRule FPS-SMB-In-TCP
Добавление автозагрузки сеанса PowerShell (опционально)
Если вам нужно, чтобы окно с сеансом PowerShell запускалось при каждом старте системы (входе в сеанс администратором) — выполним следующее:
New-ItemProperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\run -Name PowerShell -Value "cmd /c start /max C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -noExit" -Type string
Внедряем HVRemote (его функции будут нужны позднее):
Копируем файл скрипта hvremote.wsf в удобный для вас каталог, переходим в него.
В каталоге с hvremote.wsf в консольном окне CMD на хосте Hyper-V и выполняем:
cscript hvremote.wsf /add:hvoper
где: hvoper – имя администратора для Hyper-V
Установка и настройка системы хоста управления для Hyper-V
Настал момент задействовать хост управления гипервизором. Тут могут рассматриваться два различных варианта в зависимости от ваших возможностей, желания и наличия нужного свободного оборудования:
1. Вы используете реальный (отдельный физический) компьютер / сервер.
2. Устанавливаете виртуальную машину
Какой бы вариант не выбрали, в любом случае далее нужно будет установить одну из версий ОС на «выбор»: Windows 8.1 Professional или Windows Server 2012. Такое требование связано с наличием в этих версиях ОС необходимых инструментов администрирования для Hyper-V 2012 R2 начиная с указанных версий (тот же Windows 7 или Windows Server 2008 использовать можно только для управления Hyper-V 2008).
Ввиду того обстоятельства, что у меня не очень много доступных физических серверов, я буду описывать далее способ, когда виртуальная машина будет разворачиваться на том Hyper-V, которым в дальнейшем она и будет управлять. Такая вот интересная рекурсия.
Вообще говоря, существует возможность добавить виртуальные машины и с помощью того же PowerShell, но полагаю, что более удобным для данной конкретной задачи можно считать способ с утилитами имеющими графический интерфейс. Одна такая будет описана далее.
Развертывание виртуальной машины
Если вы ставите управляющий хост на физической машине, можете пропустить этот раздел и перейти сразу к следующему, где описывается настройка управляющей системы (Настройка хоста управления гипервизором Hyper-V на Windows 8.1).
Загружаем с сетевого ресурса локальной сети образ ISO нужного дистрибутива будущей виртуальной машины (Windows 8.1 Pro или Windows 2012 Server) в локальный каталог Hyper-V.
Рис. 07
Качаем и ставим на клиента (например с Windows 7) программу 5nine Manager for Hyper-V.
Для корректной обработки запроса соединения с консолью виртуальной машины в программе 5nine Manager, на своей рабочей станции в файл hosts добавьте строку такого вида:
192.168.55.101 hyperv01
Добавляем в конфигурацию 5nine Manager наш сервер Hyper-V .
Рис. 08
Создаем в 5nine Manager новую виртуальную машину.
Рис. 09
Рис. 10
Не забудьте включить в свойствах новой виртуальной машины (ВМ) сетевой адаптер, указав его в диалоге настройки сети (в нашем случае это local1).
Рис. 11
Подключаемся к консоли виртуальной машины и «включаем» ее.
Рис. 12
Выполним инсталляцию ВМ из ISO.
Рис. 13
Настройка хоста управления гипервизором Hyper-V на Windows 8.1
Все манипуляции выполняются на системе «клиента», т. е. хоста управления, если не сказано иное.
Устанавливаем Windows 8.1
После завершения установки, создаем пользователя-оператора с парой логин-пароль как для дополнительного админа на Hyper-V: hvoper (пароль должен совпадать с «коллегой» из гипервизора имеющего права группы Hyperv-V-Администраторы там – добавляли выше с помошью hvremote)
Рис. 14
После установки гостевой ОС настроим ее сетевой интерфейс, указав нужные адреса. Т.к. в нашем примере, ВМ будет размещаться в самом Hyper-V, у которого я напомню, в конфигурации сети адрес из «скрытого» сегмента, то и указать надо будет обе сети, чтобы доступ был как у ВМ к гипервизору, так и к ВМ «извне» (основной, «нескрытый» пул адресов рабочей сети).
Например 192.168.55.0/24 и 192.168.10.0/24 как в данной статье.
Активируем удаленный доступ к ВМ и правило на входящие подключения в брандмауэре.
Правим файл hosts (необходимо для корректной работы оснасток в Windows 8 по имени хоста сервера):
192.168.55.101 hyperv01
Устанавливаем компонент «Диспетчер управления Hyper-V»:
Панель управления — Программы и компоненты — Включение и отключения компонентов Windows;
Рис. 15
В загрузившемся окне диалога, отмечаем галкой пункт «Hyper-V» – применяем изменения кнопкой ОК.
Загружаем Средства удаленного администрирования сервера для Windows 8.1 (RSAT) и устанавливаем.
Рис. 16
Загружаем на хост управления скрипт HVRemote. Файл скрипта необходимо поместить в любой каталог, до которого есть прописаный путь в переменной текущего пользователя или системы (например корень домашней папки — %userprofile% (C:\Users\username\), C:\Windows\).
Рис. 17
Запускаем командную строку Windows от имени администратора и окне CMD выполняем:
C:Windows\System32\cscript C:\Windows\System32\hvremote.wsf /AnonDCOM:grant
Если пользователь в вашей ОС один и он администратор, то при действующих переменных можно сделать тоже самое короткой формой команды:
сscript hvremote.wsf /AnonDCOM:grant
Обращаем внимание на регистр символов в командах — в моем случае система выполняла данные команды только при правильном написании.
Запускаем команду для тестирования настроек связки клиент-сервер Hyper-V:
Вариант с CMD «от имени администратора»:
C:Windows\System32\cscript C:\Windows\System32\hvremote.wsf /show /target:hyperv01
Или от пользователя-администратора
cscript hvremote.wsf /show /target:hyperv01
Смотрим в самом конце экрана вывода, если есть ошибки устраняем, вдумчиво изучая текст ошибок.
Запускаем mmc
Добавляем необходимые оснастки (во всех случаях для сервера HYPERV01):
Диспетчер Hyper-V
Брандмауэр Windows
Управление компьютером
Для последнего пункта. если он востребован, необходимо в правила брандмауэра на сервере Hyper-V добавить несколько дополнительных, для обеспечения требуемых типов соединений в зависимости от нужного раздела данной оснастки — их нетрудно найти в оснастке «Брандмауэр Windows» для HYPERV01, в перечне имеющихся по-умолчанию правил.
Кроме этого, на хосте управления также надо добавить некоторые отдельные правила, например одно важное для оснастки «Управление дисками» сервера. Для доступа к службе VirtualDisk на Hyper-V, в брандмауэре хоста управления надо включить разрешающее правило:
«Удаленное управление томами — загрузчик службы виртуальных дисков».
Рис. 18
После того, как консоль MMC настроена, сохраняем ее конфигурацию в файл в удобном месте — например на рабочем столе.
По завершении перечисленных этапов настройки, у нас в руках удобное рабочее место по администрированию сервера Hyper-V с привычным интерфейсом.
Рис. 19
Теперь, вы можете заняться изучением возможностей бесплатного Hyper-V в удобном интерфейсе. Главное не выключайте ВМ управляющего хоста! 😉
Удачи!
Источники:
http://serveradmin.ru/
http://www.vmstart.ru/
https://blogs.technet.microsoft.com/
http://vmind.ru/
Уведомление: Установка и настройка Windows Hyper-V Server 2012 R2 (PowerShell) — workplace