Condividi tramite


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

Questo articolo illustra come copiare BLOB tra account di archiviazione usando l'utilità della riga di comando AzCopy. Viene inoltre illustrato come implementare l'operazione di copia quando sono 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 implementato tramite l'utilità della 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 dei 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 le 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à di Microsoft Entra disponga delle assegnazioni di ruolo appropriate per gli account di origine e di destinazione.

  • Se si usa un token di firma di accesso condiviso, 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 aggiungere un token di firma di accesso condiviso all'URL di origine e di destinazione usato nei comandi di AzCopy.

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

Copiare BLOB tra account di archiviazione con restrizione di accesso

Se è necessario limitare l'accesso agli account di archiviazione di origine e di destinazione tramite il firewall di archiviazione, potrebbero essere necessarie più configurazioni per la copia di BLOB tra account di archiviazione tramite AzCopy. Ciò è dovuto al fatto che 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 illustra il processo di copia dei BLOB tra gli account di archiviazione in questo scenario:

Diagramma che mostra il processo di gestione 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 illustra il processo di copia dei BLOB tra gli account di archiviazione in questo scenario:

Diagramma che mostra il processo di gestione 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é lo spazio di archiviazione di destinazione non è stato consentito dal firewall di origine, riceve un errore "403 Accesso negato".
  3. Dopo che l'archiviazione di destinazione riceve l'errore "403 Accesso negato", 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 di esito positivo al client.
  4. Il client invia PutBlockList all'archivio di destinazione per eseguire il commit dei blocchi e completare il processo dopo aver ricevuto un codice di risposta con esito positivo 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 gli 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 Questa richiesta non è autorizzata a eseguire questa operazione - 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 gli 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 dei BLOB tra gli account di archiviazione in Soluzione alternativa 1.

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

Un'altra opzione consiste nell'inserire 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 gli 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 all'account di archiviazione di destinazione. Assicurarsi che l'account di archiviazione temporaneo 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 al 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.