Início > Virtualizacao / Virtual Machine > Exportando / Importando maquinas virtuais usando o Hyper-V Manager

Exportando / Importando maquinas virtuais usando o Hyper-V Manager

A maneira correta e’ usar o Hyper-V manager para exportar as maquinas virtuais e entao, importa-las novamente.

No menu Acao, selecione a opcao Exportar. Indique o caminho ( por exemplo um disco externo, USB ).

Esta opcao faz com que o Hyper-V copie todas as informacoes e dados necessarios para que a maquina virtual possa ser importada com seguranca em outro servidor hyper-v. Dentro desta pasta que voce especificou tera o seguinte conteudo:

  • Virtual Machines folder
    • contem um arquivo  .exp. Por  exemplo : "6D59FE56-6D20-4129-9BF3-2457DDB58A9A.exp".  Este arquivo contem a configuracao da maquina virtual. 
    • Tambem tera uma outra sub pasta com o nome do ID da maquina virtual. Se a maquina virtual estava em " saved state"  ela vai conter dois aquivos ( .vsv e .bin), senao vai estar em branco.
  • Virtual Hard Disks folder
    • Esta pastas contem a copia de cada VHD associado a maquina virtual.
  • Snapshots folder
    • Esta pasta contem:
      • Um .exp file para cada snapshot que a maquina virtual tiver. 
      • Uma pastas com o nome do snapshot ID que contem os arquivos "saved state" .
      • Uma pasta que ira conter os discos difereciais usados por todos os snapshots da maquina virtual (.avhd).
  • config.xml
  •  

    Se voce preferir tambem pode usar script :

    /* Copyright – Taylor Brown   Hyper-V Test Team  */

    param
    (
        [
    string]$MasterVM = $(Throw "MasterVM required"),
        [
    string]$Path = $(Throw "Path required"),
        [
    string]$NewName = "VMCopy",
        [
    string]$HyperVHost = "localhost"
    )

    function ProcessWMIJob
    {
        param
        (
            [
    System.Management.ManagementBaseObject]$Result
        )

        if ($Result.ReturnValue -eq 4096)
        {
            $Job = [WMI]$Result.Job

            while ($Job.JobState -eq 4)
            {
                Write-Progress -Id 2 -ParentId 1 $Job.Caption -Status "Executing" -PercentComplete $Job.PercentComplete
                Start-Sleep 1
                $Job.PSBase.Get()
            }
            if ($Job.JobState -ne 7)
            {
                Write-Error $Job.ErrorDescription
                Throw $Job.ErrorDescription
            }
        }
        elseif ($Result.ReturnValue -ne 0)
        {
            Throw $Result.ReturnValue
        }
        Write-Progress $Job.Caption -Status "Completed" -PercentComplete 100 -Id 2 -ParentId 1
    }

    #Main Script Body
    $VMManagementService = Get-WmiObject -Namespace rootvirtualization -Class Msvm_VirtualSystemManagementService -ComputerName $HyperVHost
    $SourceVm = Get-WmiObject -Namespace rootvirtualization -Query "Select * From Msvm_ComputerSystem Where ElementName=’$MasterVM’" -ComputerName $HyperVHost
    $a = 0


    while ($a -lt 10) {
        write-progress -Id 1 "Cloning Vm’s" -Status "Executing" -percentcomplete (($a / 10)*100)
        $tempVMName = "$NewName – $a"
        $VMSettingData = Get-WmiObject -Namespace rootvirtualization -Query "Associators of {$SourceVm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState" -ComputerName $HyperVHost
        $VMSettingData.ElementName = $tempVMName

        $Result = $VMManagementService.ModifyVirtualSystem($SourceVm, $VMSettingData.PSBase.GetText(1))
        ProcessWMIJob $Result

        $Result = $VMManagementService.ExportVirtualSystem($SourceVm, $TRUE, "$Path")
        ProcessWMIJob $Result

        $Result = $VMManagementService.ImportVirtualSystem("$Path$tempVMName", $TRUE)
        ProcessWMIJob $Result

        $a ++
    }


    write-progress -Id 1 -Completed $TRUE -Activity "Cloning Vm’s"
    $VMSettingData = Get-WmiObject -Namespace rootvirtualization -Query "Associators of {$SourceVm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState" -ComputerName $HyperVHost
    $VMSettingData.ElementName = $MasterVM

    $Result = $VMManagementService.ModifyVirtualSystem($SourceVm, $VMSettingData.PSBase.GetText(1))
    ProcessWMIJob $Result

     

    1. Nenhum comentário ainda.
    1. No trackbacks yet.

    Deixe uma resposta

    Preencha os seus dados abaixo ou clique em um ícone para log in:

    Logotipo do WordPress.com

    Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

    Imagem do Twitter

    Você está comentando utilizando sua conta Twitter. Sair / Alterar )

    Foto do Facebook

    Você está comentando utilizando sua conta Facebook. Sair / Alterar )

    Foto do Google+

    Você está comentando utilizando sua conta Google+. Sair / Alterar )

    Conectando a %s

    %d blogueiros gostam disto: