Usare l'archiviazione BLOB di Azure con Lustre gestito di Azure

Questo articolo illustra i concetti relativi all'uso dell'integrazione BLOB di Azure con i file system di Lustre gestiti di Azure.

Per informazioni sui requisiti e sulla configurazione necessari per un contenitore BLOB compatibile, i prerequisiti di integrazione BLOB.

Azure Managed Lustre supporta sia spazi dei nomi gerarchici che non gerarchici per i BLOB con le differenze minori seguenti:

  • Con un contenitore dello spazio dei nomi gerarchico, Azure Managed Lustre legge gli attributi POSIX dall'intestazione BLOB.
  • Con un contenitore non gerarchico, Azure Managed Lustre legge gli attributi POSIX dai metadati del BLOB. Viene creato un file vuoto separato con lo stesso nome del contenuto del contenitore BLOB per contenere i metadati. Questo file è un elemento di pari livello nella directory dati effettiva nel file system lustre gestito di Azure.

Alcune interazioni chiave tra Lustre e BLOB gestiti di Azure includono:

  • Vengono importati solo nomi di file (spazio dei nomi) e metadati quando viene creato il file system. Il contenuto del BLOB viene importato più avanti quando viene prima eseguito l'accesso.

    Al momento della creazione del file system, lo spazio dei nomi e i metadati del contenitore di archiviazione BLOB o HNS vengono importati nello spazio dei nomi Lustre.  Ogni BLOB viene importato come un file con barre nei nomi dei percorsi BLOB corrispondenti alle directory create in Lustre.  È possibile specificare un subset dello spazio dei nomi da importare usando un prefisso di importazione.

  • Al termine dell'accesso client (dopo il completamento della distribuzione del file system), il contenuto dei BLOB viene eseguito il pull nel file system.  Si verificherà un leggero ritardo al primo accesso fino a quando i dati non sono disponibili mentre la funzionalità Gestione archiviazione gerarchica lustre (HSM) esegue il pull nel contenuto del BLOB al file corrispondente nel file system.

  • Poiché i nuovi file vengono creati o i file esistenti vengono modificati nel file system, è possibile esportare questi file nell'account di archiviazione eseguendo i comandi dell'interfaccia della riga di comando Lustre nel client o usando il processo gestito come descritto nell'articolo Export data using archive jobs .

Nota

È anche possibile eseguire il prefetch del contenuto dei BLOB usando il comando di lfs hsm_restore Lustre da un client montato con funzionalità sudo usando il comando seguente.

nohup find local/directory -type f -print0 | xargs -0 -n 1 sudo lfs hsm_restore &

Filtrare le importazioni di BLOB

Quando si crea il file system lustre gestito di Azure, è possibile specificare un prefisso per filtrare i dati importati nel file system lustre gestito di Azure. Il contenuto che corrisponde al prefisso viene aggiunto a un record di metadati nel file system. Quando i client richiedono un file, il relativo contenuto viene recuperato dal contenitore BLOB e archiviato nel file system.

Usare l'opzione Importa prefisso nella scheda Avanzate per determinare i dati importati dal contenitore BLOB al momento della creazione del sistema. Questo campo non può essere modificato dopo aver creato il file system lustre gestito di Azure.

  • Il prefisso di importazione predefinito, /, importa l'intero contenuto del contenitore BLOB.

  • Se non si desidera importare file dal contenitore BLOB, è possibile impostare un prefisso di importazione che non corrisponde a alcun file nel contenitore.

  • Se si usa un servizio di archiviazione BLOB gerarchico (ad esempio l'archiviazione BLOB montata su NFSv3), è possibile pensare al prefisso come percorso di file. Gli elementi nel percorso sono inclusi nel file system lustre gestito di Azure.

  • Se si usa il contenitore BLOB come archivio oggetti non gerarchico, è anche possibile pensare al prefisso di importazione come stringa di ricerca confrontata con l'inizio del nome dell'oggetto BLOB. Se il nome di un file nel contenitore BLOB inizia con la stringa specificata come prefisso di importazione, tale file viene reso accessibile nel file system. Lustre è un file system gerarchico e / i caratteri nei nomi di file BLOB diventano delimitatori di directory quando archiviati in Lustre.

Metadati per i file esportati

Quando i file vengono archiviati dal sistema Lustre gestito di Azure al contenitore BLOB, i metadati aggiuntivi vengono salvati per semplificare la reimportazione del contenuto in un file system lustre gestito di Azure.

  • Gli attributi POSIX seguenti del file system Lustre vengono salvati nei metadati BLOB come coppie chiave-valore (tipo di valore nelle parentesi):

    • owner: (int)
    • group: (int)
    • permissions: (formato octal o rwxrwxrwx; è supportato un bit sticky)
  • Gli attributi della directory vengono salvati in un BLOB vuoto. Questo BLOB ha lo stesso nome del percorso della directory e contiene la coppia chiave-valore seguente nei metadati del BLOB:

    hdi_isfolder : true

È possibile modificare manualmente gli attributi POSIX prima di usare il contenitore per idratare un nuovo cluster Lustre. Modificare o aggiungere metadati BLOB usando le coppie chiave-valore descritte in precedenza.

Copiare un contenitore BLOB Lustre con AzCopy o Storage Explorer

È possibile spostare o copiare il contenitore BLOB Lustre usando AzCopy o Storage Explorer.

Per AzCopy, è possibile includere gli attributi della directory aggiungendo il flag seguente:

--include-directory-stub

Incluso questo flag mantiene gli attributi POSIX della directory durante un trasferimento, ad esempio , owner, groupe permissions. Se si usa azcopy nel contenitore di archiviazione senza questo flag o con il flag impostato su false, i dati e le directory sono inclusi nel trasferimento, ma le directory non mantengono gli attributi POSIX.

In Storage Explorer è possibile abilitare questo flag in Impostazioni selezionando Trasferisci e selezionando la casella Includi stub directory.

Screenshot che mostra come includere gli stub della directory durante un trasferimento in Storage Explorer.

Passaggi successivi