Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili
Questo articolo illustra come caricare un disco rigido virtuale dal computer locale in un disco gestito di Azure o copiare un disco gestito in un'altra area usando AzCopy. Questo processo, caricamento diretto, consente di caricare un VHD di dimensioni fino a 32 TiB direttamente in un disco gestito. Attualmente, il caricamento diretto è supportato per dischi Ultra, SSD Premium v2, SSD Premium, SSD Standard e HDD Standard.
Se si fornisce una soluzione di backup per le macchine virtuali IaaS in Azure, è consigliabile usare il caricamento diretto per ripristinare i backup dei clienti in dischi gestiti. Quando si carica un VHD (Virtual Hard Disk) da un'origine esterna ad Azure, le velocità di caricamento dipendono dalla larghezza di banda locale. Durante il caricamento o la copia da una macchina virtuale di Azure, la larghezza di banda sarà identica a quella degli HDD Standard.
Se si usa Microsoft Entra ID per controllare l'accesso alle risorse, è possibile usarlo per limitare il caricamento dei dischi gestiti di Azure. Per informazioni dettagliate, vedere Proteggere i download e i caricamenti dei dischi gestiti di Azure .
Preparare il caricamento o la copia di un disco gestito
Se si preferisce caricare dischi tramite un'interfaccia utente grafica, è possibile farlo usando Azure Storage Explorer. Per informazioni dettagliate, vedere Usare Azure Storage Explorer per gestire i dischi gestiti di Azure
Prerequisiti
- Scaricare la versione più recente di AzCopy v10.
- Installare l'interfaccia della riga di comando di Azure
- Se si intende caricare un disco rigido virtuale dall'ambiente locale: un disco rigido virtuale di dimensioni fisse preparato per Azure, archiviato in locale.
- In alternativa, un disco gestito in Azure, se si intende eseguire un'azione di copia.
Per caricare il VHD su Azure, è necessario creare un disco gestito vuoto configurato specificamente per questo processo di caricamento. Prima di crearne uno, è necessario conoscere alcune informazioni aggiuntive su questi dischi.
Questo tipo di disco gestito ha due stati univoci:
- ReadyToUpload, il che significa che il disco è pronto per ricevere un caricamento, ma non è stata generata alcuna firma di accesso condiviso.
- ActiveUpload, il che significa che il disco è pronto per ricevere un upload e il SAS è stato generato.
Annotazioni
Mentre in uno di questi stati, il disco gestito verrà fatturato a prezzi HDD Standard, indipendentemente dal tipo effettivo di disco. Ad esempio, una P10 verrà fatturata come S10. Questo vale fino a quando revoke-access non viene chiamato sul disco gestito, necessario per collegare il disco a una macchina virtuale.
Creare un disco gestito vuoto
Prima di poter creare un HDD Standard vuoto per il caricamento, sono necessarie le dimensioni del file del disco rigido virtuale da caricare, in byte. Per ottenere tale valore, usare wc -c <yourFileName>.vhd o ls -al <yourFileName>.vhd. Usare questo valore quando si specifica il --upload-size-bytes parametro .
Creare un hdd Standard vuoto per il caricamento specificando sia il --for-upload parametro che il --upload-size-bytes parametro nel comando az disk create :
Sostituire <yourdiskname>, <yourresourcegroupname>, <yourregion> con i valori scelti. Il --upload-size-bytes parametro contiene un valore di esempio di 34359738880, sostituirlo con un valore appropriato.
Importante
Se si sta creando un disco del sistema operativo, aggiungere --hyper-v-generation <yourGeneration> a az disk create.
Se si usa Microsoft Entra ID per proteggere i caricamenti dei dischi, aggiungere --data-access-auth-mode AzureActiveDirectory.
Durante il caricamento in un disco Ultra o IN SSD Premium v2 è necessario selezionare le dimensioni del settore corrette del disco di destinazione. Se si usa un file VHDX con dimensioni del settore logico 4k, il disco di destinazione deve essere impostato su 4k. Se si usa un file VHD con dimensioni del settore logico 512, il disco di destinazione deve essere impostato su 512.
I file VHDX con dimensioni del settore logico pari a 512 non sono supportati.
##For Ultra Disk or Premium SSD v2, add --logical-sector-size and specify either 512 or 4096, depending on if you're using a VHD or VHDX
az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --os-type Linux --for-upload --upload-size-bytes 34359738880 --sku standard_lrs
Se si vuole caricare un tipo di disco diverso, sostituire standard_lrs con premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs o ultrassd_lrs.
Facoltativo: Assegnare le autorizzazioni RBAC per Microsoft Entra ID
Se si utilizza Microsoft Entra ID per proteggere il caricamento dei dischi, è necessario assegnare autorizzazioni RBAC per concedere l'accesso al disco e generare un token SAS con autorizzazioni di scrittura.
az role assignment create --assignee "{assignee}" \
--role "{Data Operator for managed disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"
Genera SAS scrivibile
Ora che è stato creato un disco gestito vuoto configurato per il caricamento, è possibile caricarvi un VHD. Per caricare un VHD nel disco, è necessaria una SAS scrivibile, in modo da poterla usare come destinazione del caricamento.
Importante
Il 15 febbraio 2025, il tempo di accesso con firma di accesso condiviso (SAS) per dischi e snapshot sarà limitato a un massimo di 60 giorni. Provare a generare un SAS con una scadenza superiore a 60 giorni si traduce in un errore. Qualsiasi disco o SAS snapshot esistente creato con una scadenza superiore a 60 giorni potrebbe non funzionare più 60 giorni dalla data di creazione e genererà un errore 403 durante l'autorizzazione.
Se la scadenza di un disco gestito o di uno snapshot di firma di accesso condiviso (SAS) è superiore a 60 giorni, revocare l'accesso e generare una nuova SAS che richieda l'accesso per 60 giorni (5.184.000 secondi) o meno. Migliora la sicurezza complessiva utilizzando SAS con date di scadenza più brevi. Apportare queste modifiche prima del 15 febbraio 2025 per impedire l'interruzione del servizio. I collegamenti seguenti possono essere usati per trovare, revocare e richiedere un nuovo SAS.
- Per verificare se un disco ha un SAS attivo, è possibile usare l'API REST, l'interfaccia della riga di comando di Azure o il modulo PowerShell di Azure ed esaminare la proprietà DiskState.
- Per revocare un token di accesso condiviso, è possibile usare l'API REST, interfaccia della riga di comando di Azure o il modulo di Azure PowerShell.
- Per creare un SAS, è possibile usare l'API REST, l'interfaccia della riga di comando di Azure o il modulo Azure PowerShell e impostare la durata di accesso su 5.184.000 secondi o meno.
Per generare una SAS scrivibile del disco gestito vuoto, sostituire <yourdiskname> e <yourresourcegroupname>, quindi usare il comando seguente:
az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400
Valore restituito di esempio:
{
"accessSas": "https://md-impexp-t0rdsfgsdfg4.blob.core.windows.net/w2c3mj0ksfgl/abcd?sv=2017-04-17&sr=b&si=600a9281-d39e-4cc3-91d2-923c4a696537&sig=xXaT6mFgf139ycT87CADyFxb%2BnPXBElYirYRlbnJZbs%3D"
}
Caricare un VHD o VHDX
Ora che hai una SAS (firma di accesso condiviso) per il tuo disco gestito vuoto, puoi usarla per impostare il tuo disco gestito come destinazione per il comando per il caricamento.
Usare AzCopy v10 per caricare il file VHD o VHDX locale in un disco gestito specificando l'URI di firma di accesso condiviso generato.
Questo caricamento ha la stessa velocità effettiva dell'unità HDD Standard equivalente. Ad esempio, se si ha una dimensione che equivale a S4, si avrà una velocità effettiva fino a 60 MiB/s. Tuttavia, se si hanno dimensioni che equivalgono a S70, si avrà una velocità effettiva fino a 500 MiB/s.
azcopy copy "<path-to-vhd-or-vhdx>" "<sas-uri>" --blob-type PageBlob
Al termine del caricamento, quando non è più necessario scrivere altri dati sul disco, revocare il SAS. La revoca della firma di accesso condiviso modifica lo stato del disco gestito e consente di collegare il disco a una macchina virtuale.
Sostituire <yourdiskname> e <yourresourcegroupname>, quindi usare il comando seguente per rendere utilizzabile il disco:
az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>
Copiare un disco gestito
Il caricamento diretto semplifica anche il processo di copia di un disco gestito. È possibile copiare nella stessa area o tra aree (in un'altra area).
Lo script seguente esegue questa operazione per l'utente. Il processo è simile ai passaggi descritti in precedenza, con alcune differenze perché si usa un disco esistente.
Lo script usa az disk show per ottenere le dimensioni del disco di origine e aggiunge l'offset di 512 byte richiesto. Usa quindi az disk create per creare un disco di destinazione pronto per il caricamento e az disk grant-access per generare URI SAS per i dischi di origine e di destinazione. Dopo che AzCopy ha copiato i dati del disco come page blob, az disk revoke-access revoca entrambi gli URI SAS.
Importante
È necessario aggiungere un offset pari a 512 quando si specificano le dimensioni del disco in byte di un disco gestito da Azure. Questo perché Azure omette il piè di pagina quando restituisce le dimensioni del disco. Se non si esegue questa operazione, la copia avrà esito negativo. Lo script seguente esegue già questa operazione.
Replace <sourceResourceGroupHere>, <sourceDiskNameHere>, <targetDiskNameHere>, <targetResourceGroupHere>, e <yourTargetLocationHere> (un esempio di un valore di posizione sarebbe uswest2) con i tuoi valori, quindi eseguire lo script seguente per copiare un disco gestito.
Suggerimento
Se si sta creando un disco del sistema operativo, aggiungere --hyper-v-generation <yourGeneration> a az disk create.
sourceDiskName=<sourceDiskNameHere>
sourceRG=<sourceResourceGroupHere>
targetDiskName=<targetDiskNameHere>
targetRG=<targetResourceGroupHere>
targetLocation=<yourTargetLocationHere>
#Expected value for OS is either "Windows" or "Linux"
targetOS=<yourOSTypeHere>
sourceDiskSizeBytes=$(az disk show -g $sourceRG -n $sourceDiskName --query '[diskSizeBytes]' -o tsv)
az disk create -g $targetRG -n $targetDiskName -l $targetLocation --os-type $targetOS --for-upload --upload-size-bytes $(($sourceDiskSizeBytes+512)) --sku standard_lrs
targetSASURI=$(az disk grant-access -n $targetDiskName -g $targetRG --access-level Write --duration-in-seconds 86400 --query [accessSas] -o tsv)
sourceSASURI=$(az disk grant-access -n $sourceDiskName -g $sourceRG --duration-in-seconds 86400 --query [accessSas] -o tsv)
azcopy copy "$sourceSASURI" "$targetSASURI" --blob-type PageBlob
az disk revoke-access -n $sourceDiskName -g $sourceRG
az disk revoke-access -n $targetDiskName -g $targetRG
Passaggi successivi
Dopo aver caricato correttamente un disco rigido virtuale in un disco gestito, è possibile collegare il disco come disco dati a una macchina virtuale esistente o collegare il disco a una macchina virtuale come disco del sistema operativo per creare una nuova macchina virtuale.
Per altre domande, vedere la sezione caricamento di un disco gestito nelle domande frequenti.