Eseguire la migrazione dei dati da un file system POSIX locale a Lustre gestito di Azure

Questo articolo illustra come eseguire la migrazione dei dati da un file system POSIX locale a Lustre gestito di Azure usando Archiviazione BLOB di Azure come intermediario. Questo approccio usa AzCopy per caricare i dati in un contenitore BLOB mantenendo le proprietà POSIX e quindi importa i dati dal contenitore BLOB nel file system lustre gestito di Azure.

Informazioni generali

Lustre gestito di Azure si integra con Archiviazione BLOB di Azure, che rende l'archiviazione BLOB utile come area di gestione temporanea durante la migrazione dei dati dagli ambienti locali.

Utilizzare Archiviazione Blob di Azure come intermediario

L'uso di Archiviazione BLOB di Azure come intermediario per la migrazione dei dati offre diversi vantaggi rispetto alla copia diretta dei dati in un file system usando protocolli POSIX tradizionali, ad esempio NFS o SMB:

  • Accesso basato su API REST dall'esterno di Azure: Archiviazione BLOB di Azure espone le API REST accessibili da qualsiasi rete con connettività Internet. Ciò semplifica i trasferimenti di dati da ambienti locali senza richiedere la connettività VPN o ExpressRoute per il caricamento iniziale dei dati e fornisce un controllo di accesso granulare tramite token di firma di accesso condiviso o MICROSOFT Entra ID. Se i requisiti di sicurezza non consentono l'accesso a Internet pubblico, è anche possibile configurare endpoint privati e usare una VPN o Azure ExpressRoute per mantenere tutto il traffico in una rete privata.
  • Prestazioni migliori in condizioni a latenza elevata: AzCopy è ottimizzato per il trasferimento dei dati su connessioni a latenza elevata. Usa connessioni parallele, tentativi automatici e trasferimenti ripristinabili che superano significativamente i protocolli tradizionali basati su POSIX come NFS o SMB, sensibili alla latenza di rete e possono riscontrare una grave riduzione della velocità effettiva su lunghe distanze.
  • Staging e importazione disaccoppiati: il caricamento dei dati su Blob Storage consente prima di tutto di organizzare i dati indipendentemente dal file system Lustre gestito di Azure, convalidare il trasferimento e quindi importare in un momento pratico.

Passaggi per la migrazione

Il processo di migrazione è costituito da due passaggi principali:

  1. Caricare dati in Archiviazione BLOB di Azure: usare AzCopy per copiare dati dal file system POSIX locale in un contenitore di Archiviazione BLOB di Azure. AzCopy mantiene le proprietà POSIX, ad esempio proprietà, autorizzazioni e timestamp durante il trasferimento.
  2. Importare dati in Lustre gestito di Azure: usare un processo di importazione per trasferire dati dal contenitore BLOB nel file system Lustre gestito di Azure. Gli attributi POSIX archiviati nei metadati BLOB vengono applicati automaticamente durante l'importazione.

Prerequisiti

Prima di avviare la migrazione, assicurarsi di disporre delle risorse e delle configurazioni seguenti:

  • Azure Managed Lustre file system: un file system esistente con integrazione BLOB configurata. L'integrazione dei BLOB deve essere configurata in fase di creazione del file system e non può essere aggiunta in un secondo momento. Se non si ha ancora un file system, vedere Creare un Azure Managed Lustre file system e assicurarsi di abilitare l'integrazione con blob durante il processo di creazione. Per altre informazioni, vedere Integrazione di Azure Blob Storage.
  • Account di archiviazione BLOB di Azure: un account di archiviazione con un contenitore BLOB configurato per l'uso con Lustre gestito di Azure. Per altre informazioni, vedere Prerequisiti per l'integrazione dei BLOB.
  • AzCopy: installare la versione 10.32.2 o successiva nel sistema locale. Per scaricare e installare AzCopy, vedere Introduzione ad AzCopy.
  • Autenticazione: AzCopy deve essere autorizzato ad accedere all'account di archiviazione. È possibile usare Microsoft Entra ID o un token di firma di accesso condiviso .You can use Microsoft Entra ID or a shared access signature (SAS). Per altre informazioni, vedere Autorizzare AzCopy.

Passaggio 1: Caricare i dati in Archiviazione BLOB di Azure con le proprietà POSIX

Usare AzCopy per caricare dati dal file system POSIX locale in un contenitore di Archiviazione BLOB di Azure. Per mantenere le proprietà POSIX durante il trasferimento, usare i --preserve-posix-properties flag e --posix-properties-style amlfs .

Il --preserve-posix-properties flag indica ad AzCopy di mantenere le proprietà POSIX, inclusi proprietario, gruppo, autorizzazioni e timestamp. Il --posix-properties-style amlfs flag garantisce che le proprietà POSIX vengano archiviate nel formato previsto da Lustre gestito di Azure. Il --include-directory-stub flag indica ad AzCopy di creare uno stub di directory (un BLOB di lunghezza zero) per ogni directory durante il caricamento. Questi stub di directory archiviano i metadati POSIX a livello di directory in modo che Lustre gestito di Azure possa ricostruire correttamente le autorizzazioni della directory durante l'importazione.

Usare azcopy copy

Il azcopy copy comando copia i dati da un'origine a una destinazione. Usare azcopy la versione 10.32.2 o successiva per eseguire un trasferimento completo dei dati dal file system locale al contenitore BLOB.

# Requires AzCopy v10.32.2 or later. Verify with: azcopy --version
azcopy copy '/path/to/local/directory' 'https://<storage-account>.blob.core.windows.net/<container>/<path>' \
    --preserve-posix-properties \
    --posix-properties-style amlfs \
    --include-directory-stub \
    --recursive

Sostituire i valori seguenti:

  • /path/to/local/directory: percorso dei dati di origine nel file system POSIX locale.
  • <storage-account>: nome dell'account di archiviazione di Azure.
  • <container>: nome del contenitore BLOB.
  • <path>: percorso di destinazione facoltativo all'interno del contenitore BLOB.

Ad esempio, per copiare la /data/hpc-workload directory in un contenitore denominato lustre-data:

# Requires AzCopy v10.32.2 or later. Verify with: azcopy --version
azcopy copy '/data/hpc-workload' 'https://mystorageaccount.blob.core.windows.net/lustre-data/' \
    --preserve-posix-properties \
    --posix-properties-style amlfs \
    --include-directory-stub \
    --recursive

Importante

Per impostazione predefinita, azcopy copy crea il nome della directory di origine come sottodirectory nella destinazione. Nell'esempio precedente i dati vengono caricati in lustre-data/hpc-workload/. È possibile controllare questo comportamento in due modi:

  • Usare il --as-subdir=false flag : questo flag indica ad AzCopy di copiare solo il contenuto della directory di origine nella destinazione senza creare la directory padre. Per esempio:

    # Requires AzCopy v10.32.2 or later. Verify with: azcopy --version
    azcopy copy '/data/hpc-workload' 'https://mystorageaccount.blob.core.windows.net/lustre-data/' \
        --preserve-posix-properties \
        --posix-properties-style amlfs \
        --include-directory-stub \
        --recursive \
        --as-subdir=false
    

    In questo caso, i file e le sottodirectory all'interno hpc-workload vengono caricati direttamente in lustre-data/.

  • Usare un carattere jolly come origine, per esempio /data/hpc-workload/*: AzCopy copia solo il contenuto della directory senza creare la directory padre nella destinazione, in modo analogo all'utilizzo di --as-subdir=false.

Scegli l'approccio appropriato in base alla struttura di directory desiderata nel contenitore di BLOB. Questa struttura viene replicata quando si importano i dati in Lustre gestito di Azure.

Usare il comando azcopy sync

Il azcopy sync comando sincronizza i dati tra un'origine e una destinazione. Usare questo comando per trasferimenti in corso o incrementali in cui si vuole mantenere sincronizzato il contenitore BLOB con le modifiche nel file system locale.

# Requires AzCopy v10.32.2 or later. Verify with: azcopy --version
azcopy sync '/path/to/local/directory' 'https://<storage-account>.blob.core.windows.net/<container>/<path>' \
    --preserve-posix-properties \
    --posix-properties-style amlfs \
    --include-directory-stub

Ad esempio, per sincronizzare la /data/hpc-workload directory con un contenitore denominato lustre-data:

# Requires AzCopy v10.32.2 or later. Verify with: azcopy --version
azcopy sync '/data/hpc-workload' 'https://mystorageaccount.blob.core.windows.net/lustre-data/' \
    --preserve-posix-properties \
    --posix-properties-style amlfs \
    --include-directory-stub

Annotazioni

Il azcopy sync comando confronta i nomi di file e i timestamp dell'ultima modifica per determinare quali file devono essere trasferiti. Vengono trasferiti solo i file nuovi o aggiornati, il che rende più veloci le operazioni di sincronizzazione per gli aggiornamenti incrementali.

Importante

A differenza di azcopy copy, il azcopy sync comando sincronizza sempre il contenuto della directory di origine con la destinazione senza creare una directory padre. Ad esempio, azcopy sync '/data/hpc-workload' 'https://...blob.core.windows.net/lustre-data/' carica il contenuto di hpc-workload direttamente in lustre-data/, non in lustre-data/hpc-workload/. Assicurarsi che il percorso di destinazione nel contenitore BLOB rifletta la struttura di directory desiderata in Lustre gestito di Azure. Per altre informazioni, vedere Sincronizzare con l'archiviazione BLOB di Azure usando AzCopy.

Verificare il caricamento

Al termine del caricamento, è possibile verificare che i dati siano stati caricati con le proprietà POSIX corrette elencando il contenuto del contenitore BLOB:

# Requires AzCopy v10.32.2 or later. Verify with: azcopy --version
azcopy list 'https://<storage-account>.blob.core.windows.net/<container>/<path>' --properties

Passaggio 2: Importare dati in Lustre gestito di Azure

Dopo aver caricato i dati in Azure Blob Storage con le proprietà POSIX mantenute, importare i dati nel file system Azure Managed Lustre creando un processo di importazione. Lustre gestito di Azure legge gli attributi POSIX dai metadati del BLOB e li applica ai file nello spazio dei nomi Lustre.

È possibile creare un processo di importazione in qualsiasi momento seguendo la procedura descritta in Creare un processo di importazione da Archiviazione BLOB di Azure a un file system. Se durante la creazione del cluster è stata configurata l'integrazione BLOB, è anche possibile importare dati durante la configurazione iniziale.

Per la sincronizzazione automatica e continua dei dati dall'archiviazione BLOB a Lustre gestita di Azure, è consigliabile usare la funzionalità di importazione automatica.

Limitazioni

  • I collegamenti simbolici non vengono mantenuti: L'Archiviazione Blob di Azure non supporta i collegamenti simbolici (symlinks). I collegamenti simbolici nel file system POSIX di origine vengono ignorati durante il trasferimento di AzCopy e non vengono migrati al contenitore di BLOB o a Azure Managed Lustre. Se i dati si basano su collegamenti simbolici, è necessario ristrutturare i dati prima della migrazione o ricreare manualmente i collegamenti simbolici dopo l'importazione dei dati nel file system lustre gestito di Azure. Per ulteriori informazioni, consultare Azure Blob Storage con Azure Managed Lustre.

Suggerimenti e procedure consigliate

  • Prima di eseguire il test con un set di dati di piccole dimensioni: prima di eseguire la migrazione del set di dati completo, testare il processo con un piccolo subset di file per verificare che le proprietà POSIX vengano mantenute correttamente.
  • Ottimizzare le prestazioni di trasferimento: AzCopy usa automaticamente più connessioni simultanee. È possibile ottimizzare ulteriormente le prestazioni impostando la variabile di ambiente in base alla AZCOPY_CONCURRENCY_VALUE larghezza di banda di rete. Per maggiori informazioni, vedere Ottimizzare le prestazioni di AzCopy con Archiviazione di Azure.
  • Usare la sincronizzazione incrementale per le migrazioni in corso: se i dati locali cambiano frequentemente, usare azcopy sync per gli aggiornamenti incrementali anziché copiare l'intero set di dati ogni volta.
  • Monitorare i processi di importazione: dopo aver creato un processo di importazione, monitorare lo stato di avanzamento nel portale di Azure. Per ulteriori informazioni, consultare Creare un'attività di importazione.