1. Резервное копирование.
1.1. Устанавливаем компоненты встроенного Windows Server Backup:
PS c:\> Install-WindowsFeature Windows-Server-Backup -IncludeManagementTools
1.2. Создаём бекап машин TestVM01 и TestVM02 на сетевом хранилище \\192.168.1.100\VMBackup:
PS c:\> wbadmin start backup -backuptarget:\\192.168.1.100\VMbackup: -hyperv:"TestVM01,TestVM02" -allowDeleteOldBackups -quiet
1.3. Мой скрипт для планировщика задач wbadmin-backup.ps1:
#Constant variables $Date = Get-Date -format yyyy.MM.dd $BackupFolder = "\\192.168.0.2\data\" #Set Paths $BackupPath = $BackupFolder + $Date $LogPath = $BackupPath + "\BackupLogs\" #Create backup and logs folders New-Item -ItemType Directory -Force -Path $BackupPath New-Item -ItemType Directory -Force -Path $LogPath #Get VMs list $VMList = $null $VMs = Get-VM | Select-Object VMId foreach ($VM in $VMs) { $VMList = $VMList + '"' + $VM.VMId + '"' +"," } $VMList = $VMList.Substring(0,$VMList.Length - 1) #Start backup $result = wbadmin start backup -backupTarget:$BackupPath -hyperv:"$VMList,Host Component" -Quiet #Move logs Move-Item -Path "c:\Windows\Logs\WindowsServerBackup\Backup*" -Destination ($LogPath)
Скрипт бекапит все ВМ на хосте и переносить к ним логи из папки c:\Windows\Logs\WindowsServerBackup\ .
2. Восстановление из копии.
2.1. Получаем список версий бекапов:
PS c:\> wbadmin get versions wbadmin 1.0 - Backup command-line tool (C) Copyright Microsoft Corporation. All rights reserved. Backup time: 11/24/2021 12:08 PM Backup target: Fixed Disk labeled (C:) Version identifier: 11/24/2021-20:08 Can recover: Volume(s), File(s), Application(s), Virtual Machine(s) Snapshot ID: {2d6516d5-9743-452b-a63a-32d329f6acc6}
Копируем отсюда Version identifier: 11/24/2021-20:08 . Он нам понадобиться для следующей команды.
2.2. Восстанавливаем резервную копию ВМ из бекапа:
PS c:\> wbadmin start recovery -itemtype:hyperv -items:TestVM01 -version:11/24/2021-20:08
В случае если версия бекапа не зарегистрирована на сервере, то есть команда wbadmin get version не показывает её, то ко всем командам выше добавляем опцию: -backupTarget:path , где path — путь до папки где лежит бекап нужной версии.
3. Удаление резервных копий.
3.1. В случае если мы хотим удалить все бекапы то набираем команду:
PS c:\> wbadmin delete backup -keepVersions:0
3.2. В случае если мы хотим удалить определенную версию, то:
3.2.1. Получаем список версий бекапов:
PS c:\> wbadmin get versions wbadmin 1.0 - Backup command-line tool (C) Copyright Microsoft Corporation. All rights reserved. Backup time: 11/24/2021 12:08 PM Backup target: Fixed Disk labeled (C:) Version identifier: 11/24/2021-20:08 Can recover: Volume(s), File(s), Application(s), Virtual Machine(s) Snapshot ID: {2d6516d5-9743-452b-a63a-32d329f6acc6}
Копируем отсюда Version identifier: 11/24/2021-20:08 . Он нам понадобиться для следующей команды.
3.2.2. Удаляем резервную копию определенной версии:
PS c:\> wbadmin delete backup -version:11/24/2021-20:08