Eseguire il backup dei dischi delle macchine virtuali in Azure Stack Edge Pro GPU tramite Azure PowerShell
SI APPLICA A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Questo articolo descrive come creare backup di dischi di macchine virtuali nel dispositivo Azure Stack Edge Pro GPU usando Azure PowerShell.
Importante
Questa procedura deve essere usata per le macchine virtuali arrestate. Per eseguire il backup di macchine virtuali in esecuzione, è consigliabile usare uno strumento di backup di terze parti.
Workflow
I passaggi seguenti riepilogano il flusso di lavoro generale per eseguire il backup di un disco della macchina virtuale nel dispositivo:
- Arrestare la VM.
- Creare uno snapshot del disco della macchina virtuale.
- Copiare lo snapshot in un account di archiviazione locale come disco rigido virtuale.
- Caricare il disco rigido virtuale in una destinazione esterna.
Prerequisiti
Prima di eseguire il backup delle macchine virtuali, assicurarsi che:
- È possibile accedere a un client che verrà usato per connettersi al dispositivo.
- Il client esegue un sistema operativo supportato.
- Il client è configurato per connettersi all'istanza locale di Azure Resource Manager del dispositivo in base alle istruzioni riportate in Connettersi ad Azure Resource Manager per il dispositivo.
Verificare la connessione ad Azure Resource Manager locale
Assicurarsi che i passaggi seguenti possano essere usati per accedere al dispositivo dal client.
Verificare che il client possa connettersi all'istanza locale di Azure Resource Manager.
Chiamare le API del dispositivo locale per l'autenticazione:
login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
Specificare il nome utente
EdgeArmUser
e la password da connettere tramite Azure Resource Manager. Se non si richiama la password, reimpostare la password per Azure Resource Manager e usare questa password per accedere.
Eseguire il backup di un disco di macchina virtuale
Ottenere un elenco delle macchine virtuali in esecuzione nel dispositivo. Identificare la macchina virtuale che si vuole arrestare e il gruppo di risorse corrispondente.
Get-AzVM
Di seguito è riportato un esempio di output:
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>
Impostare alcuni parametri.
$ResourceGroupName = "<Resource group name>" $VmName = "<VM name>"
Arrestare la VM.
Stop-AzVM –ResourceGroupName $ResourceGroupName -Name $VmName
Di seguito è riportato un esempio di output:
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>
È anche possibile arrestare la macchina virtuale dal portale di Azure.
Creare uno snapshot del disco della macchina virtuale e salvare lo snapshot in un gruppo di risorse locale. È possibile usare questa procedura sia per il sistema operativo che per i dischi dati.
Ottenere l'elenco dei dischi nel dispositivo o in un gruppo di risorse specifico. Prendere nota del nome del disco di cui eseguire il backup.
$Disk = Get-AzDisk -ResourceGroupName $ResourceGroupName $Disk.Name
Di seguito è riportato un esempio di output:
PS C:\Users\user> $Disk = Get-AzDisk -ResourceGroupName myaserg PS C:\Users\user> $Disk.Name myasewindowsvm2_disk1_2a066432056446669368969835d5e3b3 myazdisk1 myvmdisk2 PS C:\Users\user>
Creare un gruppo di risorse locale da usare come destinazione per lo snapshot della macchina virtuale. Il percorso è impostato su
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>
Impostare alcuni parametri.
$DiskResourceGroup = <Disk resource group> $DiskName = <Disk name> $SnapshotName = <Snapshot name> $DestinationRG = <Snapshot destination resource group>
Impostare la configurazione dello snapshot e creare lo 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
Verificare che lo snapshot sia stato creato nel gruppo di risorse di destinazione.
Get-AzSnapshot -ResourceGroupName $DestinationRG
Di seguito è riportato un esempio di output:
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>
Copiare lo snapshot in un account di archiviazione locale
Copiare gli snapshot in un account di archiviazione locale nel dispositivo.
Impostare alcuni parametri.
$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>
Creare un account di archiviazione locale nel dispositivo.
New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $StorageAccountRG -Location DBELocal -SkuName Standard_LRS
Di seguito è riportato un esempio di output:
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>
Creare un contenitore nell'account di archiviazione locale creato.
$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;
Di seguito è riportato un esempio di output:
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>
È anche possibile usare Archiviazione di Azure Explorer per creare un account di archiviazione locale e quindi creare un contenitore nell'account di archiviazione locale nel dispositivo.
Scaricare lo snapshot nell'account di archiviazione locale.
$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
Di seguito è riportato un esempio di output:
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>
È anche possibile usare Storage Explorer per verificare che lo snapshot sia stato copiato correttamente nell'account di archiviazione.
Scaricare il disco rigido virtuale in una destinazione esterna
Per spostare i backup in una posizione esterna, è possibile usare Archiviazione di Azure Explorer o AzCopy.
Usare il comando AzCopy seguente per scaricare il disco rigido virtuale in una destinazione esterna.
azcopy copy "https://<local storage account name>.blob.<device name>.<DNS domain>/<container name>/<filename><SAS query string>" <destination target>
Per configurare e usare Archiviazione di Azure Explorer con Azure Stack Edge, vedere le istruzioni in Usare Storage Explorer per il caricamento.
Passaggi successivi
Distribuire macchine virtuali nel dispositivo Azure Stack Edge Pro GPU usando modelli.