Partilhar via


Fazer backup de discos de VM na GPU do Azure Stack Edge Pro por meio do Azure PowerShell

APLICA-SE A: Sim para Pro GPU SKUAzure Stack Edge Pro - GPUSim para Pro 2 SKUAzure Stack Edge Pro 2Sim para Pro R SKUAzure Stack Edge Pro RSim para Mini R SKUAzure Stack Edge Mini R

Este artigo descreve como criar backups de discos de máquina virtual no dispositivo GPU Azure Stack Edge Pro usando o Azure PowerShell.

Importante

Este procedimento destina-se a ser usado para VMs que estão paradas. Para fazer backup de VMs em execução, recomendamos que você use uma ferramenta de backup de terceiros.

Fluxo de Trabalho

As etapas a seguir resumem o fluxo de trabalho de alto nível para fazer backup de um disco VM em seu dispositivo:

  1. Parar a VM.
  2. Tire um instantâneo do disco da VM.
  3. Copie o snapshot para uma conta de armazenamento local como um VHD.
  4. Carregue o VHD para um destino externo.

Pré-requisitos

Antes de fazer backup de VMs, certifique-se de que:

Verificar a conexão com o Azure Resource Manager local

Certifique-se de que as etapas a seguir podem ser usadas para acessar o dispositivo do seu cliente.

Verifique se seu cliente pode se conectar ao Gerenciador de Recursos do Azure local.

  1. Chame APIs de dispositivo local para autenticar:

    login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d  
    
  2. Forneça o nome EdgeArmUser de usuário e a senha para se conectar por meio do Gerenciador de Recursos do Azure. Se não se lembrar da palavra-passe, Reponha a palavra-passe do Azure Resource Manager e utilize esta palavra-passe para iniciar sessão.

Fazer backup de um disco VM

  1. Obtenha uma lista das VMs em execução no seu dispositivo. Identifique a VM que você deseja parar e o grupo de recursos correspondente.

    Get-AzVM
    

    Aqui está um exemplo de saída:

    PS C:\Users\user> Get-AzVM
    
    ResourceGroupName            Name Location         VmSize OsType                NIC
    -----------------            ---- --------         ------ ------                ---
    MYASEAZRG                  myazvm dbelocal Standard_D1_v2  Linux           myaznic1
    MYASERG           myasewindowsvm2 dbelocal Standard_D1_v2  Linux myasewindowsvm2nic
    
    PS C:\Users\user> 
    
  2. Defina alguns parâmetros.

    $ResourceGroupName = "<Resource group name>"
    $VmName = "<VM name>"
    
  3. Parar a VM.

    Stop-AzVM –ResourceGroupName $ResourceGroupName -Name $VmName
    

    Aqui está um exemplo de saída:

    PS C:\Users\user> Stop-AzVM -ResourceGroupName myaserg -Name myasewindowsvm2      
    Virtual machine stopping operation
    This cmdlet will stop the specified virtual machine. Do you want to continue?
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y
    
    OperationId : 8a2fa7ea-99d0-4f9f-b8ca-e37389cd8413
    Status      : Succeeded
    StartTime   : 6/28/2021 11:51:33 AM
    EndTime     : 6/28/2021 11:51:50 AM
    Error       :
    
    PS C:\Users\user>
    

    Você também pode parar a VM do portal do Azure.

  4. Tire um instantâneo do disco da VM e salve-o em um grupo de recursos local. Você pode usar este procedimento para discos de sistema operacional e de dados.

    1. Obtenha a lista de discos no seu dispositivo ou num grupo de recursos específico. Anote o nome do disco para fazer backup.

      $Disk = Get-AzDisk -ResourceGroupName $ResourceGroupName
      $Disk.Name
      

      Aqui está um exemplo de saída:

      PS C:\Users\user> $Disk = Get-AzDisk -ResourceGroupName myaserg
      PS C:\Users\user> $Disk.Name
      myasewindowsvm2_disk1_2a066432056446669368969835d5e3b3
      myazdisk1
      myvmdisk2
      PS C:\Users\user>
      
    2. Crie um grupo de recursos local para servir como destino para o instantâneo da VM. A localização é definida como dbelocal.

      New-AzResourceGroup -ResourceGroupName <Resource group name> -Location dbelocal 
      
      PS C:\Users\user> New-AzResourceGroup -ResourceGroupName myaseazrg1 -Location dbelocal
      
      ResourceGroupName : myaseazrg1
      Location          : dbelocal
      ProvisioningState : Succeeded
      Tags              :
      ResourceId        : /subscriptions/.../resourceGroups/myaseazrg1
      
      PS C:\Users\user>
      
    3. Defina alguns parâmetros.

      $DiskResourceGroup = <Disk resource group>
      $DiskName = <Disk name>
      $SnapshotName = <Snapshot name>
      $DestinationRG = <Snapshot destination resource group>
      
    4. Defina a configuração do snapshot e tire o snapshot.

      $Disk = Get-AzDisk -ResourceGroupName $DiskResourceGroup -DiskName $DiskName
      $SnapshotConfig = New-AzSnapshotConfig -SourceUri $Disk.Id -CreateOption Copy -Location 'dbelocal'
      $Snapshot = New-AzSnapshot -Snapshot $SnapshotConfig -SnapshotName $SnapshotName -ResourceGroupName $DestinationRG
      

      Verifique se o instantâneo foi criado no grupo de recursos de destino.

      Get-AzSnapshot -ResourceGroupName $DestinationRG
      

      Aqui está um exemplo de saída:

      PS C:\Users\user> $DiskResourceGroup = "myaserg"
      PS C:\Users\user> $DiskName = "myazdisk1"
      PS C:\Users\user> $SnapshotName = "myasdisk1ss"
      PS C:\Users\user> $DestinationRG = "myaseazrg1"
      PS C:\Users\user> $Disk = Get-AzDisk -ResourceGroupName $DiskResourceGroup -DiskName $DiskName
      PS C:\Users\user> $SnapshotConfig = New-AzSnapshotConfig -SourceUri $Disk.Id -CreateOption Copy -Location 'dbelocal'
      PS C:\Users\user> $Snapshot=New-AzSnapshot -Snapshot $SnapshotConfig -SnapshotName $SnapshotName -ResourceGroupName $DestinationRG
      PS C:\Users\user> Get-AzSnapshot -ResourceGroupName $DestinationRG
      
      ResourceGroupName            : myaseazrg1
      ManagedBy                    :
      Sku                          : Microsoft.Azure.Management.Compute.Models.SnapshotSku
      TimeCreated                  : 6/28/2021 6:57:40 PM
      OsType                       :
      HyperVGeneration             :
      CreationData                 : Microsoft.Azure.Management.Compute.Models.CreationDat
                                     a
      DiskSizeGB                   : 10
      DiskSizeBytes                : 10737418240
      UniqueId                     : fbc1cfac-8bbb-44d8-8aa4-9e8811950fcc
      EncryptionSettingsCollection :
      ProvisioningState            : Succeeded
      Incremental                  : False
      Encryption                   : Microsoft.Azure.Management.Compute.Models.Encryption
      Id                           : /subscriptions/.../r
                                     esourceGroups/myaseazrg1/providers/Microsoft.Compute/
                                     snapshots/myasdisk1ss
      Name                         : myasdisk1ss
      Type                         : Microsoft.Compute/snapshots
      Location                     : DBELocal
      Tags                         : {}
      
      PS C:\Users\user>
      

Copie o snapshot para uma conta de armazenamento local

Copie os instantâneos para uma conta de armazenamento local no seu dispositivo.

  1. Defina alguns parâmetros.

    $StorageAccountRG = <Local storage account resource group>
    $StorageAccountName = <Storage account name>
    $StorageEndpointSuffix = <Connection string in format: DeviceName.DnsDomain.com>
    $DestStorageContainer = <Destination storage container>
    $DestFileName = <Blob file name> 
    
  2. Crie uma conta de armazenamento local no seu dispositivo.

    New-AzStorageAccount -Name  $StorageAccountName -ResourceGroupName $StorageAccountRG -Location DBELocal -SkuName Standard_LRS
    

    Aqui está um exemplo de saída:

    PS C:\Users\user> New-AzStorageAccount -Name  $StorageAccountName -ResourceGroupName $StorageAccountRG -Location DBELocal -SkuName Standard_LRS
    
    StorageAccountName ResourceGroupName PrimaryLocation SkuName      Kind    AccessTier
    ------------------ ----------------- --------------- -------      ----    ----------
    myaseazsa1         myaseazrg2        DBELocal        Standard_LRS Storage
    PS C:\Users\user>
    
  3. Crie um contêiner na conta de armazenamento local que você criou.

    $keys = Get-AzStorageAccountKey -ResourceGroupName $StorageAccountRG -Name $StorageAccountName
    $keyValue = $keys[0].Value
    $storageContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $keyValue -Protocol Http -Endpoint $StorageEndpointSuffix;
    $container = New-AzStorageContainer -Name $DestStorageContainer -Context $storageContext -Permission Container -ErrorAction Ignore;    
    

    Aqui está um exemplo de saída:

    PS C:\Users\user> $StorageAccountRG = "myaseazrg2"
    PS C:\Users\user> $StorageAccountName = "myaseazsa1"
    PS C:\Users\user> $StorageEndpointSuffix = "myasegpu.wdshcsso.com"
    PS C:\Users\user> $DestStorageContainer = "testcont1"
    PS C:\Users\user> $DestFileName = "testfile1"
    
    PS C:\Users\user> $keys = Get-AzStorageAccountKey -ResourceGroupName $StorageAccountRG -Name $StorageAccountName
    PS C:\Users\user> $keyValue = $keys[0].Value
    PS C:\Users\user> $storageContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $keyValue -Protocol Http -Endpoint $StorageEndpointSuffix;                                                                                   
    PS C:\Users\user> $storagecontext
    
    StorageAccountName  : myaseazsa1
    BlobEndPoint        : http://myaseazsa1.blob.myasegpu.wdshcsso.com/
    TableEndPoint       : http://myaseazsa1.table.myasegpu.wdshcsso.com/
    QueueEndPoint       : http://myaseazsa1.queue.myasegpu.wdshcsso.com/
    FileEndPoint        : http://myaseazsa1.file.myasegpu.wdshcsso.com/
    Context             : Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext
    Name                :
    StorageAccount      : BlobEndpoint=http://myaseazsa1.blob.myasegpu.wdshcsso.com/;Que
                          ueEndpoint=http://myaseazsa1.queue.myasegpu.wdshcsso.com/;Tabl
                          eEndpoint=http://myaseazsa1.table.myasegpu.wdshcsso.com/;FileE
                          ndpoint=http://myaseazsa1.file.myasegpu.wdshcsso.com/;AccountN
                          ame=myaseazsa1;AccountKey=[key hidden]
    TableStorageAccount : BlobEndpoint=http://myaseazsa1.blob.myasegpu.wdshcsso.com/;Que
                          ueEndpoint=http://myaseazsa1.queue.myasegpu.wdshcsso.com/;Tabl
                          eEndpoint=http://myaseazsa1.table.myasegpu.wdshcsso.com/;FileE
                          ndpoint=http://myaseazsa1.file.myasegpu.wdshcsso.com/;DefaultE
                          ndpointsProtocol=https;AccountName=myaseazsa1;AccountKey=[key
                          hidden]
    Track2OauthToken    :
    EndPointSuffix      : myasegpu.wdshcsso.com/
    ConnectionString    : BlobEndpoint=http://myaseazsa1.blob.myasegpu.wdshcsso.com/;Que
                          ueEndpoint=http://myaseazsa1.queue.myasegpu.wdshcsso.com/;Tabl
                          eEndpoint=http://myaseazsa1.table.myasegpu.wdshcsso.com/;FileE
                          ndpoint=http://myaseazsa1.file.myasegpu.wdshcsso.com/;AccountN
                          ame=myaseazsa1;AccountKey=itOn5Awjh3hnoGKL7EDQ681zhIKG/szCt05Z
                          IWAxP/T22gwEXb5l0sKjI833Hqpc0MsBiSH2rM6NuuwnJyEO1Q==
    ExtendedProperties  : {}
    
    
    
    PS C:\Users\user> $container = New-AzStorageContainer -Name $DestStorageContainer -Context $storageContext -Permission Container -ErrorAction Ignore;
    PS C:\Users\user> $container
    Blob End Point: http://myaseazsa1.blob.myasegpu.wdshcsso.com/
    
    Name                 PublicAccess         LastModified
    ----                 ------------         ------------
    testcont1           Container            6/28/2021 2:46:03 PM +00:00
    
    PS C:\Users\user>
    

    Também pode utilizar o Explorador de Armazenamento do Azure para Criar uma conta de armazenamento local e, em seguida, Criar um contentor na conta de armazenamento local no seu dispositivo.

  4. Transfira o instantâneo para a conta de armazenamento local.

    $sassnapshot = Grant-AzSnapshotAccess -ResourceGroupName $DestinationRG -SnapshotName $SnapshotName -Access 'Read' -DurationInSecond 3600
    $destContext = New-AzStorageContext –StorageAccountName $StorageAccountName -StorageAccountKey $keyValue 
    Start-AzStorageBlobCopy -AbsoluteUri $sassnapshot.AccessSAS -DestContainer $DestStorageContainer -DestContext $destContext -DestBlob $DestFileName
    

    Aqui está um exemplo de saída:

    PS C:\Users\user> $sassnapshot
    
    AccessSAS : https://md-2.blob.myasegpu.wdshcsso.com/22615edc48654bb8b77e383d3a7649ac
    /abcd.vhd?sv=2017-04-17&sr=b&si=43ca8395-6942-496b-92d7-f0d6dc68ab63&sk=system-1&sig
    =K%2Bc34uq7%2BLcTetG%2Bj9loOH440e03vDkD24Ug0Gf%2Bex8%3D
    
    PS C:\Users\user> $destContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $keyValue
    PS C:\Users\user> $destContext
    
    
    StorageAccountName  : myaseazsa1
    BlobEndPoint        : https://myaseazsa1.blob.myasegpu.wdshcsso.com/
    TableEndPoint       : https://myaseazsa1.table.myasegpu.wdshcsso.com/
    QueueEndPoint       : https://myaseazsa1.queue.myasegpu.wdshcsso.com/
    FileEndPoint        : https://myaseazsa1.file.myasegpu.wdshcsso.com/
    Context             : Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext
    Name                :
    StorageAccount      : BlobEndpoint=https://myaseazsa1.blob.myasegpu.wdshcsso.com/;Qu
                          eueEndpoint=https://myaseazsa1.queue.myasegpu.wdshcsso.com/;Ta
                          bleEndpoint=https://myaseazsa1.table.myasegpu.wdshcsso.com/;Fi
                          leEndpoint=https://myaseazsa1.file.myasegpu.wdshcsso.com/;Acco
                          untName=myaseazsa1;AccountKey=[key hidden]
    TableStorageAccount : BlobEndpoint=https://myaseazsa1.blob.myasegpu.wdshcsso.com/;Qu
                          eueEndpoint=https://myaseazsa1.queue.myasegpu.wdshcsso.com/;Ta
                          bleEndpoint=https://myaseazsa1.table.myasegpu.wdshcsso.com/;Fi
                          leEndpoint=https://myaseazsa1.file.myasegpu.wdshcsso.com/;Defa
                          ultEndpointsProtocol=https;AccountName=myaseazsa1;AccountKey=[
                          key hidden]
    Track2OauthToken    :
    EndPointSuffix      : myasegpu.wdshcsso.com/
    ConnectionString    : BlobEndpoint=https://myaseazsa1.blob.myasegpu.wdshcsso.com/;Qu
                          eueEndpoint=https://myaseazsa1.queue.myasegpu.wdshcsso.com/;Ta
                          bleEndpoint=https://myaseazsa1.table.myasegpu.wdshcsso.com/;Fi
                          leEndpoint=https://myaseazsa1.file.myasegpu.wdshcsso.com/;Acco
                          untName=myaseazsa1;AccountKey=itOn5Awjh3hnoGKL7EDQ681zhIKG/szC
                          t05ZIWAxP/T22gwEXb5l0sKjI833Hqpc0MsBiSH2rM6NuuwnJyEO1Q==
    ExtendedProperties  : {}
    
    PS C:\Users\user> Start-AzStorageBlobCopy -AbsoluteUri $sassnapshot.AccessSAS -DestContainer $DestStorageContainer -DestContext $destContext -DestBlob $DestFileName    
    
       AccountName: myaseazsa1, ContainerName: testcont1
    
    Name                 BlobType  Length          ContentType                    LastMo
                                                                                  dified
    ----                 --------  ------          -----------                    ------
    testfile1            BlockBlob -1                                             202...
    
    PS C:\Users\user>
    

    Você também pode usar o Gerenciador de Armazenamento para verificar se o instantâneo foi copiado corretamente para a conta de armazenamento.

    Storage Explorer mostrando o backup no contêiner na conta de armazenamento local

Baixar VHD para destino externo

Para mover seus backups para um local externo, você pode usar o Gerenciador de Armazenamento do Azure ou o AzCopy.

  • Use o seguinte comando AzCopy para baixar VHD para um destino externo.

    azcopy copy "https://<local storage account name>.blob.<device name>.<DNS domain>/<container name>/<filename><SAS query string>" <destination target>
    
  • Para configurar e usar o Gerenciador de Armazenamento do Azure com o Azure Stack Edge, consulte as instruções em Usar o Gerenciador de Armazenamento para upload.

Próximos passos

Implante máquinas virtuais em seu dispositivo de GPU do Azure Stack Edge Pro usando modelos.