Hyper-V: создание и управление виртуальными машинами в Windows Server
Hyper-V — встроенный гипервизор Microsoft, позволяющий запускать виртуальные машины прямо на Windows Server без установки стороннего ПО. Это основной инструмент виртуализации в корпоративной среде Windows: он используется для консолидации серверов, тестовых стендов, изолированных сред разработки и аварийного восстановления. В этой статье разберём полный цикл работы с Hyper-V — от установки роли до управления ВМ через PowerShell.
Установка роли Hyper-V в Windows Server
Прежде чем создавать виртуальные машины, необходимо установить роль Hyper-V на сервере. Убедитесь, что процессор поддерживает аппаратную виртуализацию (Intel VT-x / AMD-V) и что она включена в BIOS/UEFI. Для установки через PowerShell выполните:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
После перезагрузки сервер будет готов к работе. Убедиться в успешной установке можно командой:
Get-WindowsFeature Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All. Hyper-V недоступен в редакции Home.Для просмотра всех доступных командлетов модуля Hyper-V выполните Get-Command -Module hyper-v — их более 200. Информацию о хосте виртуализации получите так:
Get-VMHost | Select-Object LogicalProcessorCount, MemoryCapacity
Рекомендуется сразу настроить пути по умолчанию для хранения файлов ВМ и виртуальных дисков, чтобы не указывать их при каждом создании машины:
Set-VMHost -VirtualMachinePath D:\VM -VirtualHardDiskPath 'D:\VM\VHD'
Создание виртуального коммутатора
Виртуальный коммутатор (vSwitch) — это программный сетевой мост, через который виртуальные машины получают доступ к сети. Без него ВМ будут изолированы. Существует три типа коммутаторов: External (доступ к физической сети), Internal (связь ВМ между собой и с хостом) и Private (только между ВМ).
Чтобы создать внешний коммутатор, сначала определите доступные физические адаптеры:
Get-NetAdapter | Where-Object { $_.Status -eq "Up" }
Затем создайте коммутатор, привязав его к нужному адаптеру:
New-VMSwitch -Name "ExtVMSwitch" -AllowManagementOS $True -NetAdapterName "Ethernet0" -SwitchType External
Создание виртуальной машины
Создание ВМ через PowerShell даёт полный контроль над параметрами. Рекомендуется использовать машины второго поколения (Generation 2) — они поддерживают UEFI, Secure Boot и работают быстрее благодаря SCSI-контроллеру:
$VMName = "SRV-APP01"
$VM = @{
Name = $VMName
MemoryStartupBytes = 4GB
Generation = 2
NewVHDPath = "D:\VM\$VMName\$VMName.vhdx"
NewVHDSizeBytes = 60GB
BootDevice = "VHD"
Path = "D:\VM\$VMName"
SwitchName = "ExtVMSwitch"
}
New-VM @VM
Эта команда создаёт ВМ с 4 ГБ RAM, динамическим диском до 60 ГБ и подключением к внешнему коммутатору. Теперь подключим ISO-образ для установки ОС:
Set-VMDvdDrive -VMName SRV-APP01 -Path "D:\ISO\WinSrv2022.iso"
Set-VMFirmware SRV-APP01 -EnableSecureBoot Off.Настройка ресурсов ВМ: память и процессор
После создания виртуальной машины можно изменить выделенные ей ресурсы. Для изменения объёма оперативной памяти:
Set-VMMemory -VMName SRV-APP01 -StartupBytes 8GB
Для включения динамической памяти, которая позволяет Hyper-V автоматически распределять RAM между ВМ в зависимости от нагрузки:
Set-VMMemory -VMName SRV-APP01 -DynamicMemoryEnabled $true -MinimumBytes 2GB -StartupBytes 4GB -MaximumBytes 8GB
Назначение количества виртуальных процессоров:
Set-VMProcessor -VMName SRV-APP01 -Count 4
Для добавления ещё одного виртуального жёсткого диска:
New-VHD -Path "D:\VM\SRV-APP01\data.vhdx" -SizeBytes 100GB -Dynamic
Add-VMHardDiskDrive -VMName SRV-APP01 -Path "D:\VM\SRV-APP01\data.vhdx"
Запуск, остановка и базовое управление ВМ
Основные операции с виртуальными машинами выполняются следующими командами:
# Запустить ВМ
Start-VM -Name SRV-APP01
# Корректное выключение (через Integration Services)
Stop-VM -Name SRV-APP01
# Принудительное выключение (аналог выдёргивания кабеля питания)
Stop-VM -Name SRV-APP01 -TurnOff
# Приостановить (пауза)
Suspend-VM -Name SRV-APP01
# Возобновить
Resume-VM -Name SRV-APP01
# Перезагрузка
Restart-VM -Name SRV-APP01 -Force
Для просмотра состояния всех ВМ на хосте:
Get-VM | Format-Table Name, State, CPUUsage, MemoryAssigned, Uptime -AutoSize
Вывести только работающие машины:
Get-VM | Where-Object { $_.State -eq 'Running' }
Запустить все выключенные ВМ одной командой:
Get-VM | Where-Object { $_.State -eq 'Off' } | Start-VM
Чекпоинты (снапшоты): создание и откат
Чекпоинты позволяют зафиксировать текущее состояние ВМ и при необходимости откатиться к нему. Это незаменимо перед установкой обновлений или изменением конфигурации.
# Создать чекпоинт
Checkpoint-VM -Name SRV-APP01 -SnapshotName "Before KB5034441"
# Список чекпоинтов
Get-VMCheckpoint -VMName SRV-APP01
# Откат к чекпоинту
Restore-VMCheckpoint -VMName SRV-APP01 -Name "Before KB5034441" -Confirm:$false
# Удалить чекпоинт (объединит дифференциальные диски)
Remove-VMCheckpoint -VMName SRV-APP01 -Name "Before KB5034441"
Экспорт, импорт и клонирование ВМ
Экспорт создаёт полную копию виртуальной машины, включая конфигурацию, диски и чекпоинты. Это основной способ переноса ВМ между хостами Hyper-V:
# Экспорт ВМ (можно выполнять на работающей машине)
Export-VM -Name SRV-APP01 -Path "E:\Export"
# Импорт ВМ
Import-VM -Path "E:\Export\SRV-APP01\Virtual Machines\*.vmcx"
# Импорт с копированием в новое расположение (для клонирования)
Import-VM -Path "E:\Export\SRV-APP01\Virtual Machines\*.vmcx" `
-Copy -GenerateNewId `
-VhdDestinationPath "D:\VM\SRV-APP02" `
-VirtualMachinePath "D:\VM\SRV-APP02"
При клонировании ВМ с Windows обязательно запустите Sysprep перед экспортом, чтобы избежать конфликта SID:
%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
После импорта переименуйте клон и смените сетевые параметры:
Rename-VM -VMName "SRV-APP01" -NewName "SRV-APP02"
Set-VMNetworkAdapter -VMName SRV-APP02 -DynamicMacAddress
Автозапуск и порядок загрузки ВМ
По умолчанию при перезагрузке хоста Hyper-V виртуальные машины не запускаются автоматически. Это критично для серверов, на которых работают контроллеры домена, DNS и другие инфраструктурные роли.
# Включить автозапуск
Set-VM -Name SRV-DC01 -AutomaticStartAction Start
Set-VM -Name SRV-DC01 -AutomaticStartDelay 0
# Задержка для прикладных серверов (ждём пока DC поднимется)
Set-VM -Name SRV-APP01 -AutomaticStartAction Start
Set-VM -Name SRV-APP01 -AutomaticStartDelay 120
Просмотр текущих настроек автозапуска для всех ВМ:
Get-VM | Select-Object Name, AutomaticStartAction, AutomaticStartDelay, AutomaticStopAction | Format-Table -AutoSize
AutomaticStopAction рекомендуем ShutDown — корректное завершение через Integration Services. Значение Save сохраняет состояние RAM на диск, а TurnOff принудительно выключает ВМ.Подключение к консоли ВМ и PowerShell Direct
Для подключения к консоли виртуальной машины через графический интерфейс используйте VMConnect:
vmconnect.exe localhost SRV-APP01
Начиная с Windows Server 2016, доступна технология PowerShell Direct — она позволяет выполнять команды внутри гостевой ОС напрямую через шину виртуализации, без сетевого подключения:
# Интерактивная сессия
Enter-PSSession -VMName SRV-APP01
# Выполнить команду без входа в сессию
Invoke-Command -VMName SRV-APP01 -ScriptBlock { Get-Service | Where-Object Status -eq Running }
# Копирование файла в гостевую ОС
$s = New-PSSession -VMName SRV-APP01 -Credential (Get-Credential)
Copy-Item -ToSession $s -Path "C:\Distrib\agent.msi" -Destination "C:\Temp\"
Мониторинг и получение информации о ВМ
Для оперативного мониторинга состояния виртуальных машин используйте следующие команды:
# Полная информация о ВМ
Get-VM -Name SRV-APP01 | Format-List *
# IP-адреса всех ВМ (через Integration Services)
Get-VM | Select-Object -ExpandProperty NetworkAdapters |
Select-Object VMName, IPAddresses, Status
# Информация о виртуальных дисках
Get-VMHardDiskDrive -VMName SRV-APP01 | Get-VHD |
Select-Object Path, VhdFormat, VhdType, FileSize, Size
# Размер виртуального диска на физическом хранилище
Get-VHD -Path "D:\VM\SRV-APP01\SRV-APP01.vhdx" |
Select-Object @{N='SizeGB';E={[math]::Round($_.FileSize/1GB,2)}},
@{N='MaxGB';E={[math]::Round($_.Size/1GB,2)}}
Для изменения размера существующего виртуального диска (только увеличение для VHDX):
Resize-VHD -Path "D:\VM\SRV-APP01\SRV-APP01.vhdx" -SizeBytes 120GB
Перемещение хранилища ВМ без простоя
Hyper-V позволяет переместить файлы виртуальной машины на другой диск без выключения (Live Storage Migration):
Move-VMStorage -VMName SRV-APP01 -DestinationStoragePath "E:\VM\SRV-APP01"
Можно перемещать отдельные компоненты — например, только виртуальный диск:
Move-VMStorage -VMName SRV-APP01 -VHDs @(
@{
SourceFilePath = "D:\VM\SRV-APP01\SRV-APP01.vhdx"
DestinationFilePath = "E:\VM\SRV-APP01\SRV-APP01.vhdx"
}
)
Практические рекомендации по эксплуатации
На основе опыта администрирования сотен серверов Hyper-V мы собрали ключевые рекомендации:
- Используйте Generation 2 для всех новых ВМ — они быстрее загружаются и поддерживают современные функции безопасности
- Динамическая память экономит RAM на хосте, но для критичных нагрузок (SQL, Exchange) лучше фиксировать объём
- Храните VHDX на отдельном физическом диске от системного — это значительно повышает производительность ввода-вывода
- Не создавайте чекпоинты на продуктивных серверах надолго — дифференциальные диски растут и снижают производительность
- Настройте автозапуск для всех важных ВМ с правильным порядком: сначала DC и DNS, затем прикладные серверы
- Регулярно экспортируйте ВМ — это самый надёжный способ резервного копирования в небольших средах
- Используйте PowerShell Direct вместо RDP для административных задач — это безопаснее и не зависит от состояния сети ВМ
Официальная документация: Microsoft Learn — Windows Server, Microsoft Learn — PowerShell
Часто задаваемые вопросы
Что такое Hyper-V: создание и управление виртуальными машинами в Windows Server?
Hyper-V: создание и управление виртуальными машинами в Windows Server — это важный аспект системного администрирования, который позволяет настроить и оптимизировать работу IT-инфраструктуры. В данной статье подробно рассматриваются все ключевые моменты.
Как правильно настроить Hyper-V: создание и управление виртуальными машинами в Windows Server?
Для корректной настройки Hyper-V: создание и управление виртуальными машинами в Windows Server необходимо следовать пошаговой инструкции, представленной в статье выше. Важно учитывать особенности вашей инфраструктуры и требования безопасности.
Какие типичные ошибки возникают при работе с Hyper-V: создание и управление виртуальными машинами в Windows Server?
Наиболее частые ошибки при работе с Hyper-V: создание и управление виртуальными машинами в Windows Server: некорректная конфигурация, недостаточные права доступа и несовместимость версий. Рекомендуем обратиться к специалистам ITFresh для профессиональной настройки.
ООО АйТи Фреш возьмём это на себя
Развёртывание Hyper-V, миграция физических серверов в виртуальные, настройка отказоустойчивых кластеров, мониторинг и резервное копирование ВМ — всё это мы берём на обслуживание. Сосредоточьтесь на бизнесе, а серверную инфраструктуру доверьте профессионалам.