Hyper-V: знімки, клонування і управління віртуальними машинами

7 хв читання

Управління VM в Hyper-V: створення знімків стану, клонування, міграція і управління ресурсами через PowerShell. Практичні сценарії для тестового середовища.

Знімки (snapshots) і клонування VM — ключові функції Hyper-V для тестування і резервного копіювання. Ось як ефективно ними користуватись.


Знімки стану (Checkpoints)

Знімок фіксує стан VM на певний момент. Можна відкотитись якщо щось пішло не так.

Через GUI

Hyper-V Manager → клікни правою на VM → Checkpoint → введи ім'я.

Через PowerShell

# Створити знімок
Checkpoint-VM -Name "TestVM" -SnapshotName "Before Windows Update"

# Список знімків
Get-VMSnapshot -VMName "TestVM" | Select-Object Name, CreationTime, ParentSnapshotName

# Відкотитись до знімку
$snapshot = Get-VMSnapshot -VMName "TestVM" -Name "Before Windows Update"
Restore-VMSnapshot -VMSnapshot $snapshot -Confirm:$false

# Видалити знімок (звільнить місце)
Remove-VMSnapshot -VMName "TestVM" -Name "Before Windows Update"

# Видалити всі знімки
Remove-VMSnapshot -VMName "TestVM" -IncludeAllChildSnapshots

Типи знімків

Production Checkpoints (рекомендовано) — використовує Volume Shadow Copy. Безпечний для VM з відкритими базами даних.

Standard Checkpoints — "заморожує" стан пам'яті. Може спричинити проблеми з транзакціями БД.

# Встановити тип знімків
Set-VM -Name "TestVM" -CheckpointType Production
# або: Standard, ProductionOnly, Disabled

Клонування VM

В Hyper-V немає прямого клонування — копіюємо VHDX файли.

# Зупинити VM
Stop-VM -Name "SourceVM" -Force

# Скопіювати диск
$sourceVHD = "C:\VMs\SourceVM\SourceVM.vhdx"
$destVHD = "C:\VMs\ClonedVM\ClonedVM.vhdx"

Copy-Item $sourceVHD $destVHD

# Створити нову VM з скопійованим диском
New-VM -Name "ClonedVM" `
  -MemoryStartupBytes 2GB `
  -Generation 2 `
  -VHDPath $destVHD `
  -SwitchName "External Switch"

# Запустити нову VM
Start-VM -Name "ClonedVM"

Управління ресурсами VM

# Змінити кількість процесорів
Set-VMProcessor -VMName "TestVM" -Count 4

# Змінити RAM
Set-VMMemory -VMName "TestVM" -StartupBytes 4GB

# Динамічна пам'ять
Set-VMMemory -VMName "TestVM" `
  -DynamicMemoryEnabled $true `
  -MinimumBytes 1GB `
  -StartupBytes 2GB `
  -MaximumBytes 8GB

# Встановити пріоритет ресурсів CPU
Set-VMProcessor -VMName "TestVM" -RelativeWeight 200  # 100 = стандарт

# Обмежити пропускну здатність мережі
Set-VMNetworkAdapter -VMName "TestVM" -MaximumBandwidth 100000000  # 100 Мбіт

Моніторинг VM

# Статус всіх VM
Get-VM | Select-Object Name, State, CPUUsage, MemoryAssigned, Uptime

# Детальний стан конкретної VM
Get-VM -Name "TestVM" | Select-Object *

# Використання ресурсів в реальному часі
while ($true) {
    Get-VM | Select-Object Name, State, CPUUsage,
        @{N="RAM GB";E={[math]::Round($_.MemoryAssigned/1GB,1)}} |
        Format-Table -AutoSize
    Start-Sleep 5
    Clear-Host
}

# Лог подій Hyper-V
Get-WinEvent -LogName "Microsoft-Windows-Hyper-V-Worker-Operational" |
  Select-Object TimeCreated, Message | Select-Object -First 20

Експорт і імпорт VM

# Зупинити і експортувати VM (разом з дисками і конфігурацією)
Stop-VM -Name "TestVM" -Force
Export-VM -Name "TestVM" -Path "D:\VMExports"

# Імпортувати на іншому хості
Import-VM -Path "D:\VMExports\TestVM\Virtual Machines\*.vmcx" -Copy `
  -GenerateNewId `
  -VirtualMachinePath "C:\VMs" `
  -VhdDestinationPath "C:\VMs\TestVM"

Інтеграційні служби

# Переглянути стан Integration Services
Get-VMIntegrationService -VMName "TestVM"

# Увімкнути Guest Services (дозволяє копіювати файли між хостом і VM)
Enable-VMIntegrationService -VMName "TestVM" -Name "Guest Service Interface"

# Скопіювати файл у VM (без мережі)
Copy-VMFile -Name "TestVM" -SourcePath "C:\script.ps1" `
  -DestinationPath "C:\Users\Administrator\script.ps1" `
  -CreateFullPath -FileSource Host

Підсумок

Checkpoint-VM → тест → Restore-VMSnapshot якщо не вийшло. Для клонування — копіювати VHDX і створити нову VM. Export-VM / Import-VM — перенести VM між хостами зі всіма налаштуваннями. Set-VMMemory -DynamicMemoryEnabled — економить RAM на хості при кількох VM.

Схожі статті

← Всі статті