다음을 통해 공유


Azure PowerShell을 통해 Azure Stack Edge Pro GPU에서 VM 디스크 백업

적용 대상: Pro GPU SKU의 경우 예Azure Stack Edge Pro - GPUPro 2 SKU의 경우 예Azure Stack Edge Pro 2Pro R SKU의 경우 예Azure Stack Edge Pro RMini R SKU의 경우 예Azure Stack Edge Mini R

이 문서에서는 Azure PowerShell을 사용하여 Azure Stack Edge Pro GPU 디바이스에서 가상 머신 디스크의 백업을 만드는 방법을 설명합니다.

Important

이 절차는 중지된 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. Azure Resource Manager를 통해 연결할 사용자 이름 EdgeArmUser 및 암호를 제공합니다. 암호가 기억나지 않는 경우 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 Portal에서 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 Storage Explorer를 사용하여 로컬 스토리지 계정을 만든 다음 디바이스에서 로컬 스토리지 계정에 컨테이너를 만들 수도 있습니다.

  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>
    

    Storage Explorer를 사용하여 스냅샷이 스토리지 계정에 올바르게 복사되었는지 확인할 수도 있습니다.

    로컬 스토리지 계정의 컨테이너에서 백업을 보여 주는 Storage Explorer

외부 대상에 VHD 다운로드

백업을 외부 위치로 이동하려면 Azure Storage Explorer 또는 AzCopy를 사용할 수 있습니다.

  • 다음 AzCopy 명령을 사용하여 외부 대상에 VHD를 다운로드합니다.

    azcopy copy "https://<local storage account name>.blob.<device name>.<DNS domain>/<container name>/<filename><SAS query string>" <destination target>
    
  • Azure Stack Edge를 통해 Azure Storage Explorer를 설정하고 사용하려면 업로드에 Storage Explorer 사용 의 지침을 참조합니다.

다음 단계

템플릿을 사용하여 Azure Stack Edge Pro GPU 디바이스에 가상 머신을 배포합니다.