共用方式為


透過 Azure PowerShell 備份 Azure Stack Edge Pro GPU 上的 VM 磁碟

適用於: 是,適用於 Pro GPU SKUAzure Stack Edge Pro - GPU是,適用於 Pro 2 SKUAzure Stack Edge Pro 2是,適用於 Pro R SKUAzure Stack Edge Pro R是,適用於 Mini R SKUAzure Stack Edge Mini R

本文說明如何使用 Azure PowerShell,在 Azure Stack Edge Pro GPU 裝置上建立虛擬機器磁碟的備份。

重要

此程序適用於已停止的 VM。 若要備份執行中的 VM,建議您使用協力廠商備份工具。

工作流程

下列步驟摘要說明在裝置上備份 VM 磁碟的高階工作流程:

  1. 停止 VM。
  2. 製作 VM 磁碟的快照集。
  3. 將快照集複製到本地儲存體帳戶作為 VHD。
  4. 將 VHD 上傳至外部目標。

必要條件

備份 VM 之前,請確定以下事項:

確認與本地 Azure Resource Manager 的連線

請確定可使用下列步驟來從用戶端存取裝置。

確認用戶端可以連線到本地 Azure Resource Manager。

  1. 呼叫本機裝置 API 進行驗證:

    login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d  
    
  2. 提供使用者名稱 EdgeArmUser 和密碼,以透過 Azure Resource Manager 進行連線。 如果您不記得密碼,請重設 Azure Resource Manager 的密碼,並使用此密碼登入。

備份 VM 磁碟

  1. 取得在裝置上執行的 VM 清單。 識別您想要停止的 VM 和對應的資源群組。

    Get-AzVM
    

    範例輸出如下:

    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. 設定部分參數。

    $ResourceGroupName = "<Resource group name>"
    $VmName = "<VM name>"
    
  3. 停止 VM。

    Stop-AzVM –ResourceGroupName $ResourceGroupName -Name $VmName
    

    範例輸出如下:

    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>
    

    您也可以從 Azure 入口網站停止 VM。

  4. 擷取 VM 磁碟的快照集,並將快照集儲存至本地資源群組。 您可以針對 OS 和資料磁碟使用此程序。

    1. 取得您裝置或特定資源群組中的磁碟清單。 記下要備份的磁碟名稱。

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

      範例輸出如下:

      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. 建立本地資源群組,作為 VM 快照集的目的地。 將位置設為 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. 設定部分參數。

      $DiskResourceGroup = <Disk resource group>
      $DiskName = <Disk name>
      $SnapshotName = <Snapshot name>
      $DestinationRG = <Snapshot destination resource group>
      
    4. 設定快照集並擷取快照集。

      $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
      

      確認已在目的地資源群組中建立快照集。

      Get-AzSnapshot -ResourceGroupName $DestinationRG
      

      範例輸出如下:

      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>
      

將快照集複製到本地儲存體帳戶

將快照集複製到裝置上的本地儲存體帳戶。

  1. 設定部分參數。

    $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. 在裝置上建立本地儲存體帳戶。

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

    範例輸出如下:

    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. 在您所建立的本地儲存體帳戶中建立容器。

    $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;    
    

    範例輸出如下:

    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>
    

    您也可以使用 Azure 儲存體總管建立本地儲存體帳戶,然後在裝置上的本地儲存體帳戶中建立容器

  4. 將快照集下載到本地儲存體帳戶。

    $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
    

    範例輸出如下:

    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>
    

    您也可以使用儲存體總管,來確認快照集已正確複製到儲存體帳戶。

    儲存體總管 顯示本機記憶體帳戶中容器中的備份

將 VHD 下載至外部目標

若要將備份移至外部位置,您可以使用 Azure 儲存體總管或 AzCopy。

  • 使用下列 AzCopy 命令將 VHD 下載至外部目標。

    azcopy copy "https://<local storage account name>.blob.<device name>.<DNS domain>/<container name>/<filename><SAS query string>" <destination target>
    
  • 若要設定和使用 Azure 儲存體總管搭配 Azure Stack Edge,請參閱使用儲存體總管進行上傳中的指示。

下一步

使用範本在 Azure Stack Edge Pro GPU 裝置上部署虛擬機器