Share via


Usare AzCopy per copiare BLOB tra account di archiviazione di Azure con restrizioni di rete

Questo articolo illustra come copiare BLOB tra account di archiviazione usando l'utilità da riga di comando AzCopy. Viene inoltre illustrato come implementare l'operazione di copia quando vengono configurate restrizioni di rete per gli account di archiviazione.

Background

La copia di file BLOB tra due account di archiviazione è un requisito comune per molti utenti di Azure. Archiviazione di Azure supporta la copia diretta di BLOB da un account di archiviazione a un altro, che può essere implementata tramite l'utilità da riga di comando AzCopy. Gli utenti non devono scaricare i file nei dischi o nei buffer locali e quindi caricarli di nuovo.

La copia di BLOB tra due account di archiviazione tramite AzCopy non si basa sulla larghezza di banda di rete del computer locale. Questo metodo può sfruttare le prestazioni degli account di archiviazione e di Azure Rete virtuale per ottenere una velocità effettiva migliore rispetto al download e al caricamento di file. Non sono previsti addebiti per la larghezza di banda se entrambi gli account di archiviazione si trovano nella stessa area.

Comandi AzCopy per la copia di BLOB tra account di archiviazione

  • Se si forniscono credenziali di autorizzazione usando Microsoft Entra ID, usare il comando seguente:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'
    

    In questo scenario è necessario assicurarsi che l'identità Microsoft Entra disponga delle assegnazioni di ruolo appropriate per gli account di origine e di destinazione.

  • Se si usa un token sas (Shared Access Signature), usare il comando seguente:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
    

    In questo scenario è necessario accodare un token di firma di accesso condiviso sia all'URL di origine che all'URL di destinazione usato nei comandi AzCopy.

Per altre informazioni, vedere Copiare BLOB tra account di archiviazione di Azure con AzCopy v10.

Copiare BLOB tra account di archiviazione con restrizioni di accesso

Se è necessario limitare l'accesso agli account di archiviazione di origine e di destinazione tramite il firewall di archiviazione, potrebbero essere necessarie altre configurazioni per la copia di BLOB tra account di archiviazione tramite AzCopy. Questo perché la richiesta di copia tra due account di archiviazione usa indirizzi IP privati e gli indirizzi IP sono dinamici.

Ecco due scenari supportati:

Scenario 1: il client usa un endpoint pubblico per accedere agli account di archiviazione

In questo scenario è necessario aggiungere l'indirizzo IP pubblico o la rete virtuale (VNet) del client all'elenco di indirizzi consentiti del firewall negli account di archiviazione di origine e di destinazione.

L'immagine seguente mostra il processo di copia dei BLOB tra account di archiviazione in questo scenario:

Diagramma che mostra il processo di coping dei BLOB tra gli account di archiviazione nello scenario 1.

In questo scenario, l'elenco di elementi consentiti del firewall non è necessario.

L'immagine seguente mostra il processo di copia dei BLOB tra account di archiviazione in questo scenario:

Diagramma che mostra il processo di coping dei BLOB tra gli account di archiviazione nello scenario 2.

Ecco il processo completo di questo meccanismo per i due scenari:

  1. Il client invia una richiesta PutBlockfromURL all'archiviazione di destinazione.
  2. L'archiviazione di destinazione riceve le richieste e tenta di ottenere blocchi dall'URL di origine specificato. Tuttavia, poiché l'archiviazione di destinazione non è stata consentita dal firewall di origine, riceve un errore "403 Non consentito".
  3. Dopo che l'archiviazione di destinazione riceve l'errore "403 Non consentito", invia un'altra richiesta GetBlob per conto del client. Se il client ha accesso all'archiviazione di origine, la destinazione sarà in grado di ottenere i blocchi dall'origine e restituire un codice di risposta riuscita al client.
  4. Il client invia PutBlockList all'archiviazione di destinazione per eseguire il commit dei blocchi e completare il processo dopo aver ricevuto un codice di risposta riuscita dalla richiesta.

Copiare BLOB tra account di archiviazione in un'architettura hub-spoke usando endpoint privati

Si verifica un errore 403 quando si usa AzCopy per copiare BLOB tra account di archiviazione connessi a endpoint privati in reti virtuali Spoke diverse da una macchina virtuale in una rete virtuale hub. È possibile trovare un errore "403 This request is not authorized to perform this operation - CannotVerfiyCopySource" nei log di AzCopy o nei log di Archiviazione di Azure. Il diagramma dell'architettura seguente illustra lo scenario in cui si verifica l'errore.

Diagramma che mostra l'errore 403 relativo alla copia di BLOB tra account di archiviazione in un'architettura Hub & Spoke tramite endpoint privati.

Soluzione alternativa 1: Creare un endpoint privato per l'account di archiviazione di destinazione nella rete virtuale di origine

Una possibile soluzione alternativa consiste nel creare un endpoint privato per l'account di archiviazione di destinazione nella rete virtuale di origine. Questa configurazione consente alla macchina virtuale di copiare correttamente i BLOB tra gli account di archiviazione usando AzCopy. Il diagramma dell'architettura seguente illustra il processo di copia dei BLOB tra gli account di archiviazione nella soluzione alternativa 1.

Diagramma che mostra il processo di copia di BLOB tra account di archiviazione in Soluzione alternativa 1.

Soluzione alternativa 2: inserire la macchina virtuale nella stessa rete virtuale dell'account di archiviazione di origine e eseguire il peering della rete virtuale con la rete virtuale di destinazione

Un'altra opzione consiste nel posizionare la macchina virtuale nella stessa rete virtuale dell'account di archiviazione di origine. Stabilire quindi il peering tra questa rete virtuale e la rete virtuale di destinazione. Il diagramma dell'architettura seguente illustra il processo di copia dei BLOB tra gli account di archiviazione in Soluzione alternativa 2.

Diagramma che mostra il processo di copia di BLOB tra account di archiviazione in Soluzione alternativa 2.

Soluzione alternativa 3: Usare un account di staging temporaneo per copiare i dati

Se non è possibile implementare le soluzioni alternative indicate in precedenza o non è possibile modificare la configurazione di rete esistente dell'account di archiviazione o della rete virtuale, è possibile usare un account di staging temporaneo per copiare i dati:

  1. Creare un account di archiviazione temporaneo nella stessa area dell'account di archiviazione di origine e dell'account di archiviazione di destinazione.
  2. Usare AzCopy per copiare i dati dall'account di archiviazione di origine all'account di archiviazione temporaneo.
  3. Copiare i dati dall'account di archiviazione temporaneo nell'account di archiviazione di destinazione. Assicurarsi che l'account di archiviazione temporanea abbia un endpoint privato nella stessa rete virtuale dell'account di archiviazione di destinazione prima di eseguire il trasferimento dei dati.

Soluzione alternativa 4: usare una macchina virtuale e scaricare i dati nella macchina virtuale e quindi caricare i dati nell'account di archiviazione di destinazione

Usare questa soluzione alternativa solo se altri metodi non sono fattibili. Usare una macchina virtuale per scaricare i dati dall'account di archiviazione di origine e quindi caricarli nell'account di archiviazione di destinazione. Questa operazione può essere eseguita con AzCopy. Assicurarsi che le dimensioni e la capacità del disco della macchina virtuale siano adatte per il processo di trasferimento dei dati.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.