Share via


Azure Blob Storage gebruiken met Azure Managed Lustre

Azure Managed Lustre kan worden geïntegreerd met Azure Blob Storage om het importeren van gegevens uit een blobcontainer naar een bestandssysteem te vereenvoudigen. U kunt ook gegevens uit het bestandssysteem exporteren naar een blobcontainer voor langetermijnopslag. In dit artikel worden concepten uitgelegd voor het gebruik van blob-integratie met Azure Managed Lustre-bestandssystemen.

Zie Vereisten voor blobintegratie voor meer informatie over de vereisten en configuratie die nodig zijn voor een compatibele blobcontainer.

Overzicht van blob-integratie

U kunt blobintegratie configureren tijdens het maken van het cluster en u kunt op elk gewenst moment een importtaak maken nadat het cluster is gemaakt. Zodra de gegevens zijn geïmporteerd, kunt u met de gegevens werken zoals met andere bestandssysteemgegevens. Wanneer nieuwe bestanden worden gemaakt of bestaande bestanden worden gewijzigd in het bestandssysteem, kunt u deze bestanden weer exporteren naar het opslagaccount door Lustre CLI-opdrachten uit te voeren op de client of door de gegevens te exporteren met behulp van exporttaken.

Wanneer u gegevens uit een blobcontainer importeert in een Azure Managed Lustre-bestandssysteem, worden alleen de bestandsnamen (naamruimte) en metagegevens geïmporteerd in de Lustre-naamruimte. De werkelijke inhoud van een blob wordt geïmporteerd wanneer deze voor het eerst wordt geopend door een client. Er is een kleine vertraging bij de eerste toegang tot gegevens terwijl de HSM-functie (Lustre Hierarchical Storage Management) de blobinhoud naar het bijbehorende bestand in het bestandssysteem haalt.

U kunt de inhoud van blobs vooraf ophalen met behulp van de opdracht van lfs hsm_restore Lustre vanaf een gekoppelde client met sudo-mogelijkheden. Met de volgende opdracht wordt de inhoud van de blobs vooraf in het bestandssysteem gebracht:

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

Azure Managed Lustre werkt met opslagaccounts waarvoor hiërarchische naamruimte is ingeschakeld en opslagaccounts met een niet-hiërarchische of platte naamruimte. De volgende kleine verschillen zijn van toepassing:

  • Voor een opslagaccount waarvoor hiërarchische naamruimte is ingeschakeld, leest Azure Managed Lustre POSIX-kenmerken uit de blob-header.
  • Voor een opslagaccount waarvoor geen hiërarchische naamruimte is ingeschakeld, leest Azure Managed Lustre POSIX-kenmerken uit de blobmetagegevens. Er wordt een afzonderlijk, leeg bestand gemaakt met dezelfde naam als de inhoud van de blobcontainer om de metagegevens op te slaan. Dit bestand is gelijk aan de werkelijke gegevensmap in het Azure Managed Lustre-bestandssysteem.

Gegevens importeren uit Blob Storage

U kunt integratie met Blob Storage configureren tijdens het maken van het cluster en u kunt op elk gewenst moment een importtaak maken nadat het cluster is gemaakt.

Vereisten voor blobcontainers

Wanneer u blob-integratie configureert tijdens het maken van het cluster, moet u twee afzonderlijke blobcontainers identificeren: de container die moet worden geïmporteerd en de container voor logboekregistratie. De te importeren container bevat de gegevens die u wilt importeren in het Azure Managed Lustre-bestandssysteem. De logboekregistratiecontainer wordt gebruikt voor het opslaan van logboeken voor de importtaak. Deze twee containers moeten zich in hetzelfde opslagaccount bevinden. Zie Vereisten voor blobintegratie voor meer informatie over de vereisten voor de blobcontainer.

Importvoorvoegsel

Bij het importeren van gegevens uit een blobcontainer kunt u desgewenst een of meer voorvoegsels opgeven om de gegevens te filteren die zijn geïmporteerd in het Azure Managed Lustre-bestandssysteem. Bestandsnamen in de blobcontainer die overeenkomen met een van de voorvoegsels, worden toegevoegd aan een metagegevensrecord in het bestandssysteem. Wanneer een client een bestand voor het eerst opent, wordt de inhoud ervan opgehaald uit de blobcontainer en opgeslagen in het bestandssysteem.

Gebruik in de Azure Portal de voorvoegselvelden importeren op het tabblad Geavanceerd tijdens het maken van het cluster om de gegevens op te geven die uit uw blobcontainer moeten worden geïmporteerd. Deze velden zijn alleen van toepassing op de eerste importtaak. U kunt het importvoorvoegsel niet wijzigen nadat het cluster is gemaakt.

Voor een importtaak kunt u importvoorvoegsels opgeven wanneer u de taak maakt. In de Azure Portal kunt u importvoorvoegsels opgeven in de velden Voorvoegsel importeren. U kunt ook het importvoorvoegsel opgeven wanneer u de REST API gebruikt om een importtaak te maken.

Houd rekening met de volgende overwegingen bij het opgeven van importvoorvoegsels:

  • Het standaard importvoorvoegsel is /. Met dit standaardgedrag wordt de inhoud van de hele blobcontainer geïmporteerd.
  • Als u meerdere voorvoegsels opgeeft, moeten de voorvoegsels niet overlappen. Als u bijvoorbeeld en /data2opgeeft/data, mislukt de importtaak omdat de voorvoegsels elkaar overlappen.
  • Als de blobcontainer zich in een opslagaccount bevindt waarvoor hiërarchische naamruimte is ingeschakeld, kunt u het voorvoegsel beschouwen als een bestandspad. Items onder het pad zijn opgenomen in het Azure Managed Lustre-bestandssysteem.
  • Als de blobcontainer zich in een opslagaccount met een niet-hiërarchische (of platte) naamruimte bevindt, kunt u het importvoorvoegsel zien als een zoekreeks die wordt vergeleken met het begin van de blobnaam. Als de naam van een blob in de container begint met de tekenreeks die u hebt opgegeven als het importvoorvoegsel, wordt dat bestand toegankelijk gemaakt in het bestandssysteem. Lustre is een hiërarchisch bestandssysteem en / tekens in blobnamen worden mapscheidingstekens wanneer ze worden opgeslagen in Lustre.

Conflictoplossingsmodus

Wanneer u gegevens importeert uit een blobcontainer, kunt u opgeven hoe conflicten tussen de blobcontainer en het bestandssysteem moeten worden verwerkt. Deze optie is alleen van toepassing op importtaken die worden uitgevoerd voor bestaande clusters. In de volgende tabel ziet u de beschikbare conflictoplossingsmodi en de bijbehorende beschrijvingen:

Modus Beschrijving
fail De importtaak mislukt onmiddellijk met een fout als er een conflict wordt gedetecteerd.
skip De importtaak slaat het bestand over als er een conflict wordt gedetecteerd.
overwrite-dirty De importtaak evalueert een conflicterend pad om te zien of het moet worden verwijderd en opnieuw moet worden geïmporteerd. Zie overwrite-dirty mode (Overwrite-dirty mode) voor meer informatie.
overwrite-always De importtaak evalueert een conflicterend pad en verwijdert/importeert altijd opnieuw als het vuil is, of geeft vrij als het schoon is. Zie overwrite-always mode (Overwrite-always mode) voor meer informatie.

Overwrite-dirty-modus

De overwrite-dirty modus evalueert een conflicterend pad om te zien of het moet worden verwijderd en opnieuw moet worden importeren. Op een hoog niveau overwrite-dirty controleert de modus de HSM-status. Als de HSM-status Schoon en gearchiveerd is, wat betekent dat de gegevens zijn gesynchroniseerd met de blobcontainer voor zover lustre dat kan zien, worden alleen de kenmerken bijgewerkt, indien nodig. Anders wordt het bestand verwijderd en opnieuw uit de blobcontainer importeren.

Het controleren van de HSM-status garandeert niet dat het bestand in Lustre overeenkomt met het bestand in de blobcontainer. Als u ervoor moet zorgen dat het bestand in Lustre zo goed mogelijk overeenkomt met het bestand in de blobcontainer, gebruikt u de overwrite-always modus.

Modus Overwrite-always

De overwrite-always modus evalueert een conflicterend pad en verwijdert/importeert altijd opnieuw als het vuil is, of geeft vrij als het schoon is. Deze modus is handig als u ervoor wilt zorgen dat het bestandssysteem altijd is gesynchroniseerd met de blobcontainer. Het is ook de duurste optie, omdat elk eerder hersteld bestand wordt vrijgegeven of verwijderd/opnieuw wordt geïmporteerd bij de eerste toegang.

Fouttolerantie

Wanneer u gegevens importeert uit een blobcontainer, kunt u de fouttolerantie opgeven. Het fouttolerantieniveau bepaalt hoe de importtaak tijdelijke fouten verwerkt die optreden tijdens het importproces, bijvoorbeeld fouten in het besturingssysteem of netwerkonderbrekingen. Het is belangrijk te weten dat fouten in deze context niet verwijzen naar bestandsconflicten, die worden afgehandeld door de conflictoplossingsmodus.

De volgende opties voor fouttolerantie zijn beschikbaar voor importtaken:

  • Fouten niet toestaan (standaard): de importtaak mislukt onmiddellijk als er een fout optreedt tijdens het importeren. Dit is de standaardinstelling.
  • Fouten toestaan: de importtaak wordt voortgezet als er een fout optreedt en de fout wordt geregistreerd. Nadat de importtaak is voltooid, kunt u fouten weergeven in de container voor logboekregistratie.

Overwegingen voor blob-importtaken

De volgende items zijn belangrijk om te overwegen bij het importeren van gegevens uit een blobcontainer:

  • Er kan slechts één import- of exportactie tegelijk worden uitgevoerd. Als er bijvoorbeeld een importtaak wordt uitgevoerd, retourneert een poging om een andere importtaak te starten een fout.
  • Importtaken kunnen worden geannuleerd. U kunt een importtaak annuleren die is gestart op een bestaand cluster of een importtaak die is gestart tijdens het maken van het cluster.
  • De clusterimplementatie kan worden geretourneerd voordat de bijbehorende importtaak is voltooid. De importtaak blijft op de achtergrond worden uitgevoerd. U kunt de voortgang van de importtaak op de volgende manieren controleren:
    • Azure Portal: de Azure Portal geeft de status van de importtaak weer. Navigeer naar het bestandssysteem en selecteer Blob-integratie om de status van de importtaak weer te geven.
    • Lustre-bestand in de hoofdmap: een bestand met de naam vergelijkbaar met /lustre/IMPORT_<state>.<timestamp_start> wordt gemaakt in de lustre-hoofdmap tijdens het importeren. De <state> tijdelijke aanduiding verandert naarmate het importeren vordert. Het bestand wordt verwijderd wanneer de importtaak is voltooid.
  • Als u details over een voltooide importtaak wilt weergeven, kunt u de container voor logboekregistratie controleren. De logboekregistratiecontainer bevat logboeken voor de importtaak, inclusief eventuele fouten of conflicten die zijn opgetreden tijdens het importeren.
  • Als de importtaak om welke reden dan ook mislukt, beschikt u mogelijk niet over volledige statistieken over de importtaak, zoals het aantal geïmporteerde bestanden of het aantal conflicten.

Gegevens exporteren naar Blob Storage met behulp van een exporttaak

U kunt gegevens uit uw Azure Managed Lustre-bestandssysteem kopiëren naar langetermijnopslag in Azure Blob Storage door een exporttaak te maken.

Metagegevens voor geëxporteerde bestanden

Wanneer bestanden worden geëxporteerd van het Azure Managed Lustre-bestandssysteem naar de blobcontainer, worden aanvullende metagegevens opgeslagen om het importeren van de inhoud in een bestandssysteem te vereenvoudigen.

De volgende tabel bevat POSIX-kenmerken van het Bestandssysteem lustre die als sleutel-waardeparen worden opgeslagen in de metagegevens van de blob:

POSIX-kenmerk Type
owner int
group int
permissions octaal of rwxrwxrwx-formaat; sticky bit wordt ondersteund

Directorykenmerken worden opgeslagen in een lege blob. Deze blob heeft dezelfde naam als het mappad en bevat het volgende sleutel-waardepaar in de blobmetagegevens: hdi_isfolder : true.

U kunt de POSIX-kenmerken handmatig wijzigen voordat u de container gebruikt om een nieuw Lustre-cluster te hydrateren. Bewerk of voeg blobmetagegevens toe met behulp van de sleutel-waardeparen die eerder zijn beschreven.

Overwegingen voor exporttaken

De volgende items zijn belangrijk om te overwegen bij het exporteren van gegevens met een exporttaak:

  • Er kan slechts één import- of exportactie tegelijk worden uitgevoerd. Als er bijvoorbeeld een exporttaak wordt uitgevoerd, wordt er een fout geretourneerd als u probeert een andere exporttaak te starten.

Een Lustre-blobcontainer kopiëren met AzCopy of Storage Explorer

U kunt de blobcontainer die Lustre gebruikt verplaatsen of kopiëren met behulp van AzCopy of Storage Explorer.

Voor AzCopy kunt u directorykenmerken opnemen door de volgende vlag toe te voegen:

--include-directory-stub

Als u deze vlag opvoegt, ownerblijven posix-kenmerken van mappen behouden tijdens een overdracht, bijvoorbeeld , groupen permissions. Als u in de opslagcontainer gebruikt azcopy zonder deze vlag, of als de vlag is ingesteld op false, worden de gegevens en mappen opgenomen in de overdracht, maar behouden de directory's hun POSIX-kenmerken niet.

In Storage Explorer kunt u deze vlag inschakelen in Instellingen door Overdrachten te selecteren en het selectievakje voor Directory-stubs opnemen in te schakelen.

Schermopname van het opnemen van mapstucbs tijdens een overdracht in Storage Explorer.

Volgende stappen