-1

Я использую хотя бы одну виртуальную машину с Hyper-V в Windows 8 Pro, и я хотел бы создать резервную копию, пока она еще работает.

Windows Server 2012 прекрасно справляется со встроенным механизмом резервного копирования Windows Server.

Но я не могу найти способ сделать это на Windows 8.

Я нашел HyperVBackup и приложение с открытым исходным кодом для резервного копирования HyperV, но оно не работает в Windows 8.

3 ответа3

1

Резервное копирование Windows Server, восстановление системы, предыдущие версии, резервное копирование Windows / восстановление файлов Windows 7 и большинство других технологий резервного копирования в Windows используют службу теневого копирования томов (VSS) для выполнения резервного копирования.

А ПО для резервного копирования, использующее VSS, сможет делать моментальные снимки, а затем создавать резервные копии виртуальных машин, не отключая их.

Почему бы не использовать Windows Backup (входит в Windows 8 Pro) для выполнения резервного копирования?

0

Я знаю, что это старый вопрос. Я нашел это при поиске решения о том, как сделать резервную копию машины Hyper-V, работающей в Windows 10. Я считаю, что в Windows 10 ситуация такая же, как и в Windows 8. Так что, надеюсь, следующее будет полезно всем, кто сталкивается с этой проблемой.

Суть в том, что без использования сторонних инструментов вы не сможете создать резервную копию машины hyper-v, работающей под управлением Windows 8/10. Команда wbadmin которая позволяет создавать резервные копии машин hyper-v на сервере Windows, не поддерживает резервное копирование машин hyper-v в Windows 8/10.

Однако, хотя вы не можете сделать резервную копию, вы можете экспортировать. Экспорт почти так же хорош, как и резервное копирование, возможно, самое существенное отличие состоит в том, что виртуальная машина не будет знать, что она была "зарезервирована", поэтому, например, сервер sql не будет знать, что было выполнено резервное копирование, которое может имеют значение для того, когда журналы усекаются.

Вы можете либо использовать графический интерфейс диспетчера Hyper-V для выполнения экспорта, либо, если вы хотите сделать это из командной строки (что вы, вероятно, захотите, если вы хотите, чтобы он выполнялся планировщиком задач), тогда командлет powershell:

Export-VM -Name 'VM-Name' -PATH 'C:\Export-Path'

если вы хотите запустить это из файла .cmd/.bat, то он становится:

powershell -NonInteractive -Command "Export-VM -Name 'VM-Name' -PATH 'C:\Export-Path'"

Имейте в виду, что если вы экспортируете в общий сетевой ресурс, то КОМПЬЮТЕР, работающий с Hyper-V, должен получить доступ к сетевому общему ресурсу.

0

Это сценарий PowerShell, который я использую для резервного копирования клиентских виртуальных машин, работающих на Windows 8, хотя я не делаю их вживую. PowerShell - не самый сильный мой набор, и он делает некоторые предположения, но я надеюсь, что это полезно, чтобы кто-то еще начал быстро

function SendMail([string]$Subject, [string]$Body)
{
    #SMTP Variables

    $EmailFrom = "from@example.com"
    $EmailTo = "to@example.com" 
    $SMTPServer = "smtp.gmail.com" 
    $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
    $SMTPClient.EnableSsl = $true 
    $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("Username", "Password"); 

    $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

}

function init()
{
    # Delete existing shares

    #Net Use * /delete /y

    $guid = [guid]::NewGuid()
    $vms = Get-VM        
}

try
{
    $guid = [guid]::NewGuid()
    $vms = Get-VM  

    $pass = cat C:\HVBackup\securestring.txt | ConvertTo-SecureString
    $mycred = New-Object -typename System.Management.Automation.PSCredential -ArgumentList "Username",$pass

    New-PSDrive -Name V -PSProvider FileSystem -Root "\\NAS\Hyper-V" -Persist -Credential $mycred

    $Subject = "Notification from Virtual Machine Backup" 
    $Body = "Starting Virtual Machine Backup." 

    SendMail($Subject,$Body)

    foreach ($vm in $vms)
    {
        if($vm.State -eq "Running") { Stop-VM $vm.VMName -Save -Force }
    }

    #Stop-VM * -Save -Force

    # Delete all the files older than 7 days

    $TargetFolder = “V:\Backups”
    foreach ($i in Get-ChildItem $TargetFolder -recurse)
    {
        if ($i.CreationTime -lt ($(Get-Date).AddDays(-7)))
        {
            Remove-Item $File.FullName -force
        }
    }

    # Export the virtual machines to directory

    Export-VM * V:\Backups\$guid\

    $Subject = "Notification from Virtual Machine Backup" 
    $Body = "Finished Virtual Machine Backup." 

    SendMail($Subject,$Body)

    exit 0

}
catch [System.Exception]
{
    $Subject = "Notification from Virtual Machine Backup" 
    $Body = "There has been an error whilst running virtual machine backup." + $_.Exception.Message

    Write-Host($_.Exception.Message)

    SendMail($Subject,$Body)

    exit 1
}
finally
{

    Remove-PSDrive V

    $vms = Get-VM

    foreach ($vm in $vms)
    {
        if($vm.State -eq "Saved") { Start-VM $vm.VMName }
    }

    # Start the domain controller virtual machine

    #Start-VM dc.applicita.local
}

Вот скрипт, который я использую для генерации файла паролей.

read-host -assecurestring | ConvertFrom-SecureString | out-file C:\HVBackup\securestring.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .