Caricare un disco rigido virtuale in Azure o copiare un disco gestito in un'altra area: interfaccia della riga di comando di Azure

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 disco rigido virtuale 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 disco rigido virtuale da un'origine esterna ad Azure, le velocità 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.

Proteggere i caricamenti con Microsoft Entra ID

Se si usa Microsoft Entra ID per controllare l'accesso alle risorse, è ora possibile usarlo per limitare il caricamento dei dischi gestiti di Azure. Questa funzionalità è disponibile come offerta per la disponibilità generale in tutte le aree. Quando un utente tenta di caricare un disco, Azure convalida l'identità dell'utente richiedente in Microsoft Entra ID e conferma che l'utente dispone delle autorizzazioni necessarie. A un livello superiore, un amministratore di sistema potrebbe impostare criteri a livello di account o sottoscrizione di Azure per assicurarsi che un'identità di Microsoft Entra disponga delle autorizzazioni necessarie per il caricamento prima di consentire il caricamento di un disco o uno snapshot del disco. Per eventuali domande sulla protezione dei caricamenti con Microsoft Entra ID, contattare questo messaggio di posta elettronica: azuredisks@microsoft .com

Prerequisiti

Restrizioni

  • I dischi rigidi virtuali non possono essere caricati in snapshot vuoti.
  • Il backup di Azure attualmente non supporta la protezione dei dischi con Microsoft Entra ID.
  • Azure Site Recovery attualmente non supporta la protezione dei dischi con Microsoft Entra ID.

Assegnare il ruolo Controllo degli accessi in base al ruolo

Per accedere ai dischi gestiti protetti con Microsoft Entra ID, l'utente che effettua la richiesta deve avere il ruolo di Operatore dati per i dischi gestiti o un ruolo personalizzato con le autorizzazioni seguenti:

  • Microsoft.Compute/disks/download/action
  • Microsoft.Compute/disks/upload/action
  • Microsoft.Compute/snapshots/download/action
  • Microsoft.Compute/snapshots/upload/action

Per informazioni dettagliate sull'assegnazione di un ruolo, vedere Assegnare ruoli di Azure tramite l'interfaccia della riga di comando di Azure. Per creare o aggiornare un ruolo personalizzato, vedere Creare o aggiornare ruoli personalizzati di Azure tramite l'interfaccia della riga di comando di Azure.

Operazioni preliminari

Se si preferisce caricare i dischi tramite un'interfaccia utente grafica, è possibile farlo usando Archiviazione di Azure Explorer. Per informazioni dettagliate, vedere: Usare Archiviazione di Azure Explorer per gestire i dischi gestiti di Azure

Prerequisiti

Per caricare il disco rigido virtuale in Azure, è necessario creare un disco gestito vuoto configurato 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:

  • ReadToUpload, il che significa che il disco è pronto per ricevere un caricamento, ma non è stata generata alcuna firma di accesso sicuro .
  • ActiveUpload, il che significa che il disco è pronto per ricevere un caricamento e che la firma di accesso condiviso è stata generata.

Nota

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. A tale scopo, è possibile usare wc -c <yourFileName>.vhd o ls -al <yourFileName>.vhd. Questo valore viene usato quando si specifica il parametro --upload-size-bytes .

Creare un hdd standard vuoto per il caricamento specificando sia il parametro --for-upload che il parametro --upload-size-bytes in un cmdlet di creazione del disco:

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 -dataAccessAuthmode '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 di 512k 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) Concedere l'accesso al disco

Se si usa Microsoft Entra ID per proteggere i caricamenti, è necessario assegnare autorizzazioni di controllo degli accessi in base al ruolo per concedere l'accesso al disco e generare una firma di accesso condiviso scrivibile.

az role assignment create --assignee "{assignee}" \
--role "{Data Operator for Managed Disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"

Generare una firma di accesso condiviso scrivibile

Dopo aver creato un disco gestito vuoto configurato per il processo di caricamento, è possibile caricarvi un disco rigido virtuale. Per caricare un disco rigido virtuale sul disco, è necessaria una firma di accesso condiviso scrivibile, in modo che sia possibile farvi riferimento come destinazione per il 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. Il tentativo di generare una firma di accesso condiviso con scadenza superiore a 60 giorni genera un errore. Qualsiasi disco esistente o firma di accesso condiviso snapshot creato con una scadenza superiore a 60 giorni può smettere di funzionare 60 giorni dopo la data di creazione e genererà un errore 403 durante l'autorizzazione.

Se la scadenza di un disco gestito o di una firma di accesso condiviso snapshot è superiore a 60 giorni, revocarne l'accesso e generare una nuova firma di accesso condiviso che richiede l'accesso per 60 giorni (5.184.000 secondi) o meno. Migliorare la sicurezza complessiva usando la firma di accesso condiviso 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 una nuova firma di accesso condiviso.

  • Per verificare se un disco dispone di una firma di accesso condiviso attiva, è possibile usare l'API REST, l'interfaccia della riga di comando di Azure o il modulo Azure PowerShell ed esaminare la proprietà DiskState.
  • Per revocare una firma di accesso condiviso, è possibile usare l'API REST, l'interfaccia della riga di comando di Azure o il modulo di Azure PowerShell.
  • Per creare una firma di accesso condiviso, è possibile usare l'API REST, l'interfaccia della riga di comando di Azure o il modulo di Azure PowerShell e impostare la durata di accesso su 5.184.000 secondi o meno.

Per generare una firma di accesso condiviso 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 disco rigido virtuale o VHDX

Dopo aver ottenuto una firma di accesso condiviso per il disco gestito vuoto, è possibile usarla per impostare il disco gestito come destinazione per il comando di 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.exe copy "c:\somewhere\mydisk.vhd" "sas-URI" --blob-type PageBlob

Al termine del caricamento e non è più necessario scrivere altri dati sul disco, revocare la firma di accesso condiviso. 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.

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.

<sourceResourceGroupHere>Sostituire , <sourceDiskNameHere>, <targetDiskNameHere><targetResourceGroupHere>, e <yourTargetLocationHere> (un esempio di un valore di posizione sarebbe uswest2) con i 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.