⚙️ Паровой сервер ROADIT

Hyper-V: установка и первоначальная настройка роли

Hyper-V — встроенный гипервизор Microsoft, который превращает обычный Windows Server в полноценный узел виртуализации. В паровой мастерской ROADIT это выглядит примерно так: физический сервер становится котлом, гипервизор — главным машинистом, а виртуальные машины — отдельными вагонами, каждый со своим процессором, памятью, диском и сетевым портом.

В этой статье разберём установку Hyper-V на Windows Server, проверку аппаратных требований и первичную настройку хоста. Основной упор — на PowerShell, потому что администратор с консолью обычно быстрее добирается до нужного вентиля, чем администратор с мышью.

Примеры ориентированы прежде всего на Windows Server 2022 и Windows Server 2025. Hyper-V также доступен в Pro/Enterprise-редакциях Windows 10 и Windows 11 как дополнительный компонент, но модель установки там немного отличается.



⚙️ Содержание

Что такое Hyper-V и что именно мы устанавливаем

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

Упрощённо архитектуру можно представить так:

  • физический сервер — Hyper-V host;
  • Hyper-V hypervisor — слой виртуализации;
  • management OS — операционная система самого сервера;
  • виртуальные машины — guest/child partitions;
  • VHDX — виртуальные диски;
  • VMSwitch — виртуальные коммутаторы;
  • VM network adapter — виртуальные сетевые карты.

Проверяем сервер перед установкой

Прежде чем вращать главный вентиль, проверим железо. Для Hyper-V необходимы:

  • 64-битный процессор;
  • SLAT — Second Level Address Translation;
  • VM Monitor Mode Extensions;
  • аппаратная виртуализация, включённая в BIOS/UEFI;
  • аппаратная поддержка DEP/NX/XD;
  • достаточный объём оперативной памяти.

Microsoft указывает 4 ГБ RAM как минимальное требование для Hyper-V, но для реального сервера это скорее нижняя отметка шкалы, чем разумный объём для рабочей нагрузки. Память должна хватать одновременно и хосту, и всем работающим виртуальным машинам.

Проверка через Systeminfo

Запускаем PowerShell или CMD от имени администратора:

systeminfo.exe

В конце вывода ищем раздел:

Hyper-V Requirements: 
          VM Monitor Mode Extensions: Yes
          Virtualization Enabled In Firmware: Yes 
          Second Level Address Translation: Yes
          Data Execution Prevention Available: Yes

Если вместо Yes появляется No, сначала разбираемся с железом или настройками BIOS/UEFI.

Если виртуализация отключена

В BIOS/UEFI ищем соответствующую настройку:

  • Intel — Intel Virtualization Technology, VT-x;
  • AMD — SVM Mode, AMD-V.

Также должна быть включена аппаратная защита DEP:

  • Intel — XD bit;
  • AMD — NX bit.

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


Подготовка Windows Server

Перед установкой роли полезно привести сам сервер в порядок. Минимальный чек-лист:

  • Задать понятное имя сервера.
  • Настроить статический IP.
  • Настроить DNS.
  • Установить актуальные обновления.
  • Проверить время и часовой пояс.
  • Убедиться, что сервер подключён к домену, если это требуется инфраструктурой.
  • Подготовить отдельный том для виртуальных машин.

Например:

hostname

Посмотреть сетевые интерфейсы:

Get-NetAdapter

Посмотреть IP-конфигурацию:

Get-NetIPConfiguration

Посмотреть DNS:

Get-DnsClientServerAddress

Посмотреть диски и тома:

Get-Disk 
Get-Volume

Почему VM лучше не складывать куда попало

Технически ничто не мешает хранить виртуальные диски в системном C:\, но для нормального сервера это плохая привычка.

Например, можно подготовить:

D:\Hyper-V\
├── VMs\
├── VHDX\
├── ISO\
└── Export\

Либо использовать отдельные тома:

D:\Hyper-V\VMs
E:\Hyper-V\VHDX
F:\Hyper-V\ISO

Конкретная схема зависит от дисковой подсистемы. Для нескольких производительных VM гораздо важнее характеристики самого storage — SSD/NVMe, RAID, SAN, Storage Spaces и IOPS, — чем красивое имя каталога.


Устанавливаем роль Hyper-V через PowerShell

Это основной способ, особенно если сервер работает в Server Core. Открываем PowerShell от имени администратора и выполняем:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

Параметры здесь простые:

  • -Name Hyper-V — устанавливает роль Hyper-V;
  • -IncludeManagementTools — добавляет инструменты управления;
  • -Restart — автоматически перезагрузит сервер после установки.

Именно такой способ установки роли рекомендует Microsoft для Windows Server. После перезагрузки проверяем:

Get-WindowsFeature -Name Hyper-V

Ожидаемый результат:

Display Name    Name    Install State
------------ ---- ------------- 
[X] Hyper-V      Hyper-V     Installed

Дополнительно:

Get-Service vmms

Служба управления виртуальными машинами должна находиться в состоянии Running.

Get-Service vmms | Select-Object Name, Status, StartType

Ожидаем:

Name  Status    StartType
---- ------ --------- 
vmms Running Automatic

Установка через Server Manager

Если сервер работает с Desktop Experience, роль можно поставить и графически. Открываем:

Server Manager → Manage → Add Roles and Features

Далее:

  1. Выбираем Role-based or feature-based installation.
  2. Выбираем нужный сервер.
  3. Отмечаем Hyper-V.
  4. В появившемся окне подтверждаем добавление необходимых компонентов.
  5. При необходимости оставляем выбранными Hyper-V Management Tools.
  6. На шаге настройки виртуальной сети можно создать внешний виртуальный коммутатор.
  7. Подтверждаем установку.
  8. Перезагружаем сервер.

Microsoft поддерживает установку Hyper-V как через Server Manager, так и через PowerShell. Для production-серверов PowerShell удобнее: команду можно задокументировать, повторить на другом узле или встроить в автоматизацию.


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

После установки Hyper-V следующий важный вентиль — сеть. Hyper-V поддерживает три типа виртуальных коммутаторов:

ТипНазначение
ExternalVM получает доступ к физической сети
InternalVM общается с хостом и другими VM, но не напрямую с внешней сетью
PrivateVM общаются только друг с другом

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

Сначала смотрим физические NIC

Get-NetAdapter

Например:

 Name             InterfaceDescription            ifIndex   Status
 ----          --------------------         ------- ------  
 Ethernet     Intel(R) Ethernet Controller       4            Up 
 Ethernet 2  Intel(R) Ethernet Controller       7            Up

Предположим, Ethernet подключён к нужной физической сети.

Создаём switch:

New-VMSwitch `  
           -Name "vSwitch-External `
           -NetAdapterName "Ethernet" ` 
           -AllowManagementOS $true

Проверяем:

Get-VMSwitch

И более подробно:

Get-VMSwitch | Format-List Name, SwitchType, NetAdapterInterfaceDescription, AllowManagementOS

Microsoft отмечает, что перед созданием внешнего switch стоит определить нужный физический адаптер через Get-NetAdapter; при создании External switch указывается -NetAdapterName либо описание интерфейса.

⚡ Важно

Создание или изменение внешнего виртуального switch может кратковременно нарушить сетевое соединение хоста. Microsoft отдельно предупреждает о возможном воздействии операции на connectivity.
Поэтому не экспериментируем с единственным management NIC посреди рабочего дня.


Когда нужны Internal и Private

Не всякая VM должна видеть production LAN. Например, для лаборатории можно создать:

New-VMSwitch -Name "vSwitch-Lab" -SwitchType Internal

Такой switch позволит хосту и VM обмениваться трафиком. Private:

New-VMSwitch -Name "vSwitch-Isolated" -SwitchType Private

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

Для лаборатории удобно иметь:

vSwitch-External → production/LAN
vSwitch-Lab → host + lab VMs
vSwitch-Isolated → VM ↔ VM

Hyper-V также поддерживает NAT поверх Internal switch, что удобно для лабораторных стендов, которым нужен исходящий доступ без полноценного подключения к физической сети.


Настраиваем каталоги Hyper-V

После сети приводим в порядок storage. Посмотреть текущие пути:

Get-VMHost | Select-Object `
                  VirtualMachinePath, `
                  VirtualHardDiskPath

Например:

VirtualMachinePath:       C:\ProgramData\Microsoft\Windows\Hyper-V
VirtualHardDiskPath :    C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks

Для отдельного диска можно установить собственные каталоги:

New-Item -ItemType Directory -Path "D:\Hyper-V\VMs" -Force
New-Item -ItemType Directory -Path "D:\Hyper-V\VHDX" -Force

Затем:

Set-VMHost `
    -VirtualMachinePath "D:\Hyper-V\VMs" `
    -VirtualHardDiskPath "D:\Hyper-V\VHDX"

Проверяем:

Get-VMHost | Format-List VirtualMachinePath, VirtualHardDiskPath

Настраиваем Hyper-V Manager

Если установлены графические инструменты, запускаем:

virtmgmt.msc

или открываем Hyper-V Manager через меню Windows. В левой части появится имя Hyper-V-хоста. В его контекстном меню доступны:

  • Virtual Switch Manager;
  • Hyper-V Settings;
  • создание и импорт VM;
  • управление виртуальными дисками;
  • подключение к VM через VMConnect.

В Hyper-V Settings находятся два особенно важных раздела:

  • Virtual Hard Disks;
  • Virtual Machines.

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


Проверяем, что Hyper-V действительно работает

После установки не стоит считать задачу законченной только потому, что Server Manager показал зелёную галочку. Собираем небольшой технический отчёт:

Get-WindowsFeature -Name Hyper-V
Get-Service vmms
Get-VMHost
Get-VMSwitch
Get-NetAdapter

Полезно также посмотреть доступные виртуальные машины:

Get-VM

Если машин ещё нет, список будет пустым — и это нормально. Проверяем версии PowerShell и Windows:

$PSVersionTable
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber

Проверяем наличие модуля Hyper-V:

Get-Module -ListAvailable -Name Hyper-V

И загружаем его при необходимости:

Import-Module Hyper-V

Создаём тестовую виртуальную машину

Теперь можно проверить весь паровой агрегат целиком. Для примера создадим VM:

  • имя: TEST-VM01;
  • 2 vCPU;
  • 4 ГБ RAM;
  • VHDX на D:\Hyper-V\VHDX;
  • сетевой адаптер — vSwitch-External.

Сначала создаём виртуальный диск:

New-VHD `
    -Name "TEST-VM01" `
    -Generation 2 `
    -MemoryStartupBytes 4GB `
    -VHDPath "D:\Hyper-V\VHDX\TEST-VM01.vhdx" `
    -SwitchName "vSwitch-External"

Проверяем:

Get-VM -Name "TEST-VM01"

Настраиваем процессор:

Set-VMProcessor -VMName "TEST-VM01" -Count 2

Проверяем параметры:

Get-VM -Name "TEST-VM01" | Format-List *

Почему Generation 2

Для современных гостевых ОС обычно выбираем Generation 2: она использует современную виртуальную прошивку UEFI и поддерживает соответствующие современные возможности Hyper-V.

Generation 1 нужна прежде всего для совместимости со старыми гостевыми ОС и сценариями.


Подключаем ISO и запускаем VM

Предположим, установочный образ находится здесь:

D:\Hyper-V\ISO\WindowsServer.iso

Получаем DVD-привод виртуальной машины:

Get-VMDvdDrive -VMName "TEST-VM01"

Подключаем ISO:

Set-VMDvdDrive `
    -VMName "TEST-VM01" `
    -Path "D:\Hyper-V\ISO\WindowsServer.iso"

Запускаем:

Start-VM -Name "TEST-VM01"

Проверяем:

Get-VM -Name "TEST-VM01"

Подключиться к консоли можно через Hyper-V Manager или:

vmconnect.exe

Что стоит настроить сразу после установки роли

Установка Hyper-V — только момент, когда котёл впервые выходит на рабочее давление. После неё имеет смысл пройтись по базовым настройкам.

Обновления

Убедиться, что хост получает обновления Windows:

Get-HotFix | Sort-Object InstalledOn -Descending |
    Select-Object -First 10

Не стоит строить виртуальную инфраструктуру на сервере, который годами не видел Windows Update.

Время

Проверить:

Get-Date
w32tm /query /status

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

Firewall

Не нужно бездумно отключать Windows Firewall ради «проверки, что сеть работает». Сначала смотрим состояние:

Get-NetFirewallProfile |
    Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction

Если Hyper-V должен управляться удалённо, лучше отдельно настроить необходимые правила и WinRM, чем открывать все ворота.


Удалённое управление Hyper-V

Если хост работает без GUI, это совершенно нормально. Hyper-V можно администрировать удалённо с другой Windows-машины с установленными инструментами управления. Например, PowerShell-команды поддерживают работу с удалённым компьютером:

Get-VM -ComputerName "HV01"

или:

Get-VMSwitch -ComputerName "HV01"

Также можно использовать CIM-сессии:

$session = New-CimSession -ComputerName "HV01"

Get-VM -CimSession $session
Get-VMSwitch -CimSession $session

Remove-CimSession $session

Для Server Core такой подход особенно удобен: сам хост остаётся минимальным, а управление происходит с администраторской рабочей станции.


Частые ошибки при первой установке

Virtualization Enabled In Firmware: No

Почти всегда сначала проверяем BIOS/UEFI. Ищем Intel VT-x/VT-d или AMD-V/SVM в зависимости от платформы.

Second Level Address Translation: No

Процессор не соответствует требованиям Hyper-V.

В этом случае никакой PowerShell-командой ситуацию не исправить: паровая машина требует соответствующего котла.

После создания External switch пропала сеть

Возможные причины:

  • выбран не тот физический NIC;
  • management OS не разрешено использовать switch;
  • сетевой драйвер работает некорректно;
  • изменение switch временно сбило соединение;
  • физическая сеть использует VLAN, а конфигурация виртуального адаптера не соответствует ей.

Проверяем:

Get-VMSwitch
Get-NetAdapter
Get-NetIPConfiguration

Если management OS должна использовать внешний switch:

Get-VMSwitch | Select-Object Name, SwitchType, AllowManagementOS

Microsoft отдельно описывает возможность разрешить management OS использовать тот же внешний адаптер через параметр AllowManagementOS.

VM видит switch, но не получает IP

Сначала выясняем, где проблема:

VM → виртуальный NIC → vSwitch → physical NIC → физическая сеть → DHCP

На хосте:

Get-VMNetworkAdapter -VMName "TEST-VM01"

Проверяем подключённый switch:

Get-VMNetworkAdapter -VMName "TEST-VM01" |
    Select-Object VMName, Name, SwitchName, Status

Внутри гостевой ОС проверяем собственную сетевую конфигурацию. Не стоит сразу грешить на Hyper-V: DHCP, VLAN, физический switch и firewall вполне способны быть виновниками.

Не хватает места на диске

Проверяем:

Get-Volume | Select-Object DriveLetter, FileSystemLabel, SizeRemaining, Size

А затем:

Get-VMHost |
    Select-Object VirtualMachinePath, VirtualHardDiskPath

Если VHDX случайно отправились на системный диск, проблема обычно обнаруживается именно здесь.


Минимальный production-чек перед созданием рабочих VM

Перед тем как отправлять первую настоящую виртуальную машину в эксплуатацию, стоит проверить:

  • Hyper-V установлен и находится в состоянии Installed.
  • vmms работает и запускается автоматически.
  • Аппаратная виртуализация включена.
  • SLAT и DEP поддерживаются.
  • Установлены актуальные обновления.
  • Сервер имеет корректное имя.
  • Настроены IP и DNS.
  • Продуман NTP/время.
  • Выделено отдельное место под VM/VHDX.
  • Создан нужный виртуальный switch.
  • Проверена связность хоста.
  • Проверена связность тестовой VM.
  • Продумано резервное копирование VM.
  • Настроен мониторинг CPU/RAM/storage/network.
  • Понятно, кто и как будет управлять Hyper-V удалённо.

Заключение

Установка Hyper-V сама по себе занимает немного времени:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

Но хороший Hyper-V-хост начинается не с этой команды.

Сначала проверяем железо, затем приводим в порядок Windows Server, определяем сетевую архитектуру, создаём виртуальный switch, выносим VHDX и VM на подходящее хранилище и только после этого начинаем запускать гостей.

Главная мысль проста: Hyper-V — это не просто галочка в Server Manager. После установки появляется новый слой инфраструктуры, а значит, вместе с ним появляются вопросы сети, storage, безопасности, резервного копирования, мониторинга и удалённого управления.

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

Официальная документация Microsoft по установке Hyper-V, требованиям хоста и виртуальному коммутатору остаётся хорошим справочником для дальнейшей настройки.



⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале.
📋 Все команды


Оставьте комментарий