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.
Questo articolo descrive come copiare file tra condivisioni file di Azure usando strumenti di copia comuni. È possibile copiare file tra condivisioni file HDD e SSD, condivisioni file usando un modello di fatturazione diverso o condivisioni file in aree di Azure diverse.
Questo articolo non fornisce indicazioni per le migrazioni a File di Azure. Per migrare a File di Azure, vedere Migrare a condivisioni di file Azure SMB o Migrare a condivisioni di file Azure NFS. Se si usa Sincronizzazione file di Azure e si vuole eseguire la migrazione tra condivisioni file di Azure, vedere Eseguire la migrazione di file da una condivisione file di Azure a un'altra quando si usa Sincronizzazione file di Azure.
Scegliere uno strumento di copia file
Lo strumento di copia file da scegliere dipende dal fatto che si vogliano copiare file tra condivisioni file SMB o condivisioni file NFS. Nella tabella seguente sono elencati i vari strumenti di copia disponibili e la relativa compatibilità.
| Strumento di copia | SMB | NFS | Descrizione |
|---|---|---|---|
| AzCopy |
|
|
AzCopy è in genere consigliato perché usa API da server a server, ovvero i dati vengono copiati direttamente tra server di archiviazione senza passare attraverso un computer locale. Ciò garantisce prestazioni migliori. È possibile eseguire AzCopy da Windows, Linux o macOS. |
| Robocopy |
|
|
Robocopy è un'utilità della riga di comando di Windows che usa il protocollo SMB per le operazioni di copia file. Richiede il collegamento di entrambe le condivisioni file a una macchina virtuale Windows. Anche se questo comporta un sovraccarico e un costo aggiuntivi, è possibile scegliere Robocopy se sono necessarie opzioni avanzate, ad esempio il mirroring, il controllo granulare dei tentativi o la registrazione in tempo reale. |
| fpsync/rsync |
|
|
rsync è uno strumento di copia di file open source versatile e a thread singolo. Può copiare localmente, da/verso un altro host su qualsiasi shell remota o da un daemon rsync remoto. fpsync è multithreading e offre quindi alcuni vantaggi, inclusa la possibilità di eseguire processi rsync in parallelo. Entrambi gli strumenti richiedono di montare le condivisioni su una VM. |
Copiare file con AzCopy
È possibile usare AzCopy, un'utilità della riga di comando, per copiare file tra condivisioni file di Azure. AzCopy usa api da server a server, quindi i dati vengono copiati direttamente tra i server di archiviazione. Le istruzioni sono diverse a seconda che si usino condivisioni file SMB o NFS.
Anche se AzCopy non richiede il montaggio delle condivisioni file in una macchina virtuale, richiede una macchina virtuale leggera per eseguire i file binari e orchestrare la copia tra le due condivisioni file tramite REST.
I comandi azcopy in questo articolo usano il azcopy copy comando per copiare i file. Il azcopy sync comando consente di sincronizzare i delta dalla baseline iniziale, utile per configurare le operazioni di copia in un'altra area. Per altre informazioni, vedere Sincronizzare i file .
Limiti di scalabilità e prestazioni di AzCopy
Se si copiano solo alcuni file, non è consigliabile riscontrare limiti di scalabilità. Tuttavia, per ottenere prestazioni ottimali, ogni processo AzCopy deve trasferire meno di 10 milioni di file. I processi che trasferiscono più di 50 milioni di file possono riscontrare prestazioni ridotte perché il meccanismo di rilevamento dei processi AzCopy comporta un sovraccarico significativo. Per ridurre il sovraccarico, è consigliabile suddividere i processi di grandi dimensioni in processi più piccoli. Non esiste alcun limite rigido per le singole dimensioni dei file.
Il tempo necessario per la copia può variare a seconda di diversi fattori, tra cui: il numero totale di file e directory da trasferire, le dimensioni medie dei file (molti file di piccole dimensioni richiedono più tempo per elaborare meno file di grandi dimensioni), la larghezza di banda di rete e la latenza tra l'origine e la destinazione, i limiti di limitazione degli account di archiviazione e le operazioni simultanee sulle condivisioni di origine o di destinazione.
Proprietà mantenute durante la copia di file con AzCopy
Quando si usano i --preserve-info flag e --preserve-permissions , AzCopy mantiene gli attributi e le autorizzazioni di file seguenti:
| TIPO | Proprietà (--preserve-info) | Autorizzazioni (--preserve-permissions) |
|---|---|---|
| Condivisioni file SMB | Attributi di file (ReadOnly, Hidden, System, Directory, Archive, None, Temporary, Offline, NotContentIndexed, NoScrubData), ora di creazione, ora dell'ultima scrittura | ACL |
| Condivisioni file NFS | Ora di creazione, ora dell'ultima scrittura | Proprietario, gruppo, modalità file |
Copiare file tra condivisioni file SMB
Per copiare file tra condivisioni file SMB, usare il comando azcopy copy .
Suggerimento
In questi esempi gli argomenti path vengono racchiusi con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della Shell dei comandi di Windows (cmd.exe). Se si usa una Shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti path con virgolette doppie ("") anziché virgolette singole ('').
Copiare un singolo file tra condivisioni file SMB
Usare il comando seguente per copiare un singolo file da una condivisione file SMB a un'altra.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' --preserve-permissions=true --preserve-info=true
Copiare una directory tra condivisioni file SMB
Usare il comando seguente per copiare una directory e tutti i relativi file da una condivisione file SMB a un'altra. Il risultato è una directory nella condivisione file di destinazione con lo stesso nome.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true
Copiare un'intera condivisione file SMB in un altro account di archiviazione
Usare il comando seguente per copiare un'intera condivisione file SMB in un altro account di archiviazione.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true
Copiare tutte le condivisioni file SMB, le directory e i file in un altro account di archiviazione
Usare il comando seguente per copiare tutte le condivisioni file SMB, le directory e i file da un account di archiviazione a un altro.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive --preserve-permissions=true --preserve-info=true
Copiare file tra condivisioni file NFS
Per copiare file tra condivisioni file di Azure NFS, usare il comando azcopy copy con il --from-to=FileNFSFileNFS flag . Lo FileNFSFileNFS scenario usa l'API di copia da server a server. In alternativa, è possibile usare strumenti di copia di file open source, ad esempio fpsync e rsync.
Suggerimento
In questi esempi gli argomenti path vengono racchiusi con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della Shell dei comandi di Windows (cmd.exe). Se si usa una Shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti path con virgolette doppie ("") anziché virgolette singole ('').
Copiare un singolo file tra condivisioni file NFS
Usare il comando seguente per copiare un singolo file da una condivisione file NFS a un'altra.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Copiare una directory tra condivisioni file NFS
Usare il comando seguente per copiare una directory e tutti i relativi file da una condivisione file NFS a un'altra. Il risultato è una directory nella condivisione file di destinazione con lo stesso nome.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Copiare un'intera condivisione file NFS in un altro account di archiviazione
Usare il comando seguente per copiare un'intera condivisione file NFS in un altro account di archiviazione.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Copiare tutte le condivisioni file, le directory e i file NFS in un altro account di archiviazione
Usare il comando seguente per copiare tutte le condivisioni file, le directory e i file NFS da un account di archiviazione a un altro.
azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive --preserve-permissions=true --preserve-info=true --from-to=FileNFSFileNFS
Copiare file con Robocopy
Seguire questa procedura per copiare i file usando Robocopy, un'utilità della riga di comando inclusa in Windows. È possibile usare questo metodo solo con condivisioni file Windows e SMB.
Distribuire una macchina virtuale Windows in Azure nella stessa area della condivisione file di origine. Mantenere i dati e la rete in Azure è più veloce ed evitare addebiti per il trasferimento dei dati in uscita. Per ottenere prestazioni ottimali, è consigliabile usare un tipo di macchina virtuale multi-core con almeno 56 GiB di memoria, ad esempio Standard_DS5_v2.
Montare sia le condivisioni file di origine che di destinazione nella macchina virtuale. Per assicurarsi che la macchina virtuale abbia accesso a tutti i file, montare la condivisione file di Azure con accesso a livello di amministratore: con accesso basato sull'identità con ruoli RBAC Azure a livello amministrativo (scelta consigliata) o con chiave dell'account di archiviazione (meno sicura).
Eseguire questo comando al prompt dei comandi di Windows. Facoltativamente, è possibile includere flag per le funzionalità di registrazione come procedura consigliata (/NP, /NFL, /NDL, /UNILOG). Ricorda di sostituire
s:\et:\con i percorsi delle condivisioni di origine e di destinazione montate in base alle esigenze.robocopy s:\ t:\ /MIR /COPYALL /MT:16 /R:2 /W:1 /B /IT /DCOPY:DATÈ possibile eseguire il comando mentre l'origine è ancora online, ma le operazioni di I/O al secondo e la velocità effettiva utilizzati per il job Robocopy incidono sui limiti della condivisione file.
Al termine dell'esecuzione iniziale, eseguire di nuovo lo stesso comando Robocopy per copiare tutte le modifiche apportate dopo l'esecuzione iniziale. Tutti i dati non modificati dopo l'ultimo processo di copia vengono ignorati.
È possibile ripetere il passaggio 4 tutte le volte desiderato prima di passare alla nuova condivisione file.