Migrieren von Daten aus einem lokalen POSIX-Dateisystem zu Azure Managed Lustre

In diesem Artikel erfahren Sie, wie Sie Daten aus einem lokalen POSIX-Dateisystem zu Azure Managed Lustre migrieren, indem Sie Azure Blob Storage als Vermittler verwenden. Bei diesem Ansatz wird AzCopy verwendet, um Daten in einen BLOB-Container hochzuladen und POSIX-Eigenschaften beizubehalten, und importiert dann die Daten aus dem BLOB-Container in Ihr Azure Managed Lustre-Dateisystem.

Übersicht

Azure Managed Lustre ist in Azure Blob Storage integriert, wodurch Blob Storage beim Migrieren von Daten aus lokalen Umgebungen als Stagingbereich nützlich ist.

Verwenden von Azure Blob Storage als Vermittler

Die Verwendung von Azure Blob Storage als Vermittler für die Datenmigration bietet mehrere Vorteile gegenüber dem direkten Kopieren von Daten in ein Dateisystem mit herkömmlichen POSIX-Protokollen wie NFS oder SMB:

  • REST-API-basierter Zugriff von außerhalb von Azure: Azure Blob Storage macht REST-APIs verfügbar, auf die über ein beliebiges Netzwerk mit Internetverbindung zugegriffen werden kann. Dies vereinfacht die Datenübertragung von lokalen Umgebungen, ohne dass eine VPN- oder ExpressRoute-Konnektivität für den anfänglichen Datenupload erforderlich ist, und bietet eine feingranulare Zugriffssteuerung über (Shared Access Signatures, SAS-Token) oder Microsoft Entra ID. Wenn Ihre Sicherheitsanforderungen keinen öffentlichen Internetzugriff zulassen, können Sie auch private Endpunkte konfigurieren und ein VPN oder Azure ExpressRoute verwenden, um den gesamten Datenverkehr in einem privaten Netzwerk beizubehalten.
  • Bessere Leistung unter hohen Latenzbedingungen: AzCopy ist für die Übertragung von Daten über Verbindungen mit hoher Latenz optimiert. Es verwendet parallele Verbindungen, automatische Wiederholungen und reaktivierbare Übertragungen, die herkömmliche POSIX-basierte Protokolle wie NFS oder SMB erheblich übersteigen, die für die Netzwerklatenz empfindlich sind und starke Durchsatzbeeinträchtigungen über lange Entfernungen erleben können.
  • Entkoppeltes Staging und Importieren: Durch das Hochladen von Daten in Blob Storage können Sie zuerst Daten unabhängig vom Azure Managed Lustre-Dateisystem in der Staging-Phase bereitstellen, die Übertragung überprüfen und dann zu einem bequemen Zeitpunkt importieren.

Schritte bei der Migration

Der Migrationsprozess besteht aus zwei Hauptschritten:

  1. Hochladen von Daten in Azure Blob Storage: Verwenden Sie AzCopy, um Daten aus Ihrem lokalen POSIX-Dateisystem in einen Azure Blob Storage-Container zu kopieren. AzCopy behält POSIX-Eigenschaften wie Besitz, Berechtigungen und Zeitstempel während der Übertragung bei.
  2. Importieren von Daten in Azure Managed Lustre: Verwenden Sie einen Importauftrag, um Daten aus dem Blob-Container in Ihr Azure Managed Lustre-Dateisystem zu übertragen. POSIX-Attribute, die in den BLOB-Metadaten gespeichert sind, werden während des Imports automatisch angewendet.

Voraussetzungen

Bevor Sie die Migration starten, stellen Sie sicher, dass die folgenden Ressourcen und Konfigurationen vorhanden sind:

  • Azure Managed Lustre-Dateisystem: Ein vorhandenes Dateisystem mit konfigurierter Blob-Integration. Blob-Integration muss zur Erstellungszeit des Dateisystems konfiguriert werden und kann später nicht hinzugefügt werden. Wenn Sie noch kein Dateisystem haben, lesen Sie "Erstellen eines Azure Managed Lustre"-Dateisystems , und stellen Sie sicher, dass die Blob-Integration während des Erstellungsprozesses aktiviert wird. Weitere Informationen finden Sie unter Azure Blob Storage-Integration.
  • Azure Blob Storage-Konto: Ein Speicherkonto mit einem BLOB-Container, der für die Verwendung mit Azure Managed Lustre konfiguriert ist. Weitere Informationen finden Sie unter Blob-Integrationsvoraussetzungen.
  • AzCopy: Installieren Sie Version 10.32.2 oder höher auf Ihrem lokalen System. Informationen zum Herunterladen und Installieren von AzCopy finden Sie unter "Erste Schritte mit AzCopy".
  • Authentifizierung: AzCopy muss für den Zugriff auf das Speicherkonto autorisiert sein. Sie können Microsoft Entra-ID oder ein SAS-Token (Shared Access Signature) verwenden. Weitere Informationen finden Sie unter Autorisieren von AzCopy.

Schritt 1: Hochladen von Daten in Azure Blob Storage mit POSIX-Eigenschaften

Verwenden Sie AzCopy, um Daten aus Ihrem lokalen POSIX-Dateisystem in einen Azure Blob Storage-Container hochzuladen. Um POSIX-Eigenschaften während der Übertragung beizubehalten, verwenden Sie die --preserve-posix-properties und --posix-properties-style amlfs die Kennzeichnungen.

Das --preserve-posix-properties Flag weist AzCopy an, POSIX-Eigenschaften wie Besitzer, Gruppe, Berechtigungen und Zeitstempel beizubehalten. Das --posix-properties-style amlfs Flag stellt sicher, dass die POSIX-Eigenschaften im Format gespeichert werden, das Azure Managed Lustre erwartet. Das --include-directory-stub Flag weist AzCopy an, während des Uploads einen Verzeichnis-Stub (ein Blob der Länge null) für jedes Verzeichnis zu erstellen. Diese Verzeichnis stubs speichern POSIX-Metadaten auf Verzeichnisebene, damit Azure Managed Lustre die Verzeichnisberechtigungen während des Imports ordnungsgemäß rekonstruieren kann.

Verwenden Sie Azcopy copy

Der azcopy copy Befehl kopiert Daten aus einer Quelle in ein Ziel. Verwenden Sie azcopy 10.32.2 oder höher, um eine vollständige Datenübertragung von Ihrem lokalen Dateisystem in den BLOB-Container durchzuführen.

# 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

Ersetzen Sie die folgenden Werte:

  • /path/to/local/directory: Der Pfad zu den Quelldaten im lokalen POSIX-Dateisystem.
  • <storage-account>: Der Name Ihres Azure Storage-Kontos.
  • <container>: Der Name des BLOB-Containers.
  • <path>: Der optionale Zielpfad innerhalb des Blob-Containers.

Um das Verzeichnis /data/hpc-workload beispielsweise in einen Container mit dem Namen lustre-data zu kopieren:

# 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

Von Bedeutung

Standardmäßig erstellt azcopy copy den Quellverzeichnisnamen als Unterverzeichnis am Ziel. Im vorherigen Beispiel werden die Daten zu lustre-data/hpc-workload/ hochgeladen. Sie können dieses Verhalten auf zwei Arten steuern:

  • Verwenden Sie das --as-subdir=false Kennzeichen: Dieses Flag weist AzCopy an, nur den Inhalt des Quellverzeichnisses an das Ziel zu kopieren, ohne das übergeordnete Verzeichnis zu erstellen. Beispiel:

    # 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 diesem Fall werden Dateien und Unterverzeichnisse innerhalb hpc-workload direkt unter lustre-data/ hochgeladen.

  • Verwenden Sie einen Wildcard als Quelle (z. B.): /data/hpc-workload/*AzCopy kopiert nur den Inhalt des Verzeichnisses, ohne das übergeordnete Verzeichnis am Ziel zu erstellen, ähnlich der Verwendung --as-subdir=false.

Wählen Sie den geeigneten Ansatz basierend auf der gewünschten Verzeichnisstruktur im BLOB-Container aus. Diese Struktur wird repliziert, wenn Sie die Daten in Azure Managed Lustre importieren.

Verwenden Sie azcopy sync

Der azcopy sync Befehl synchronisiert Daten zwischen einer Quelle und einem Ziel. Verwenden Sie diesen Befehl für laufende oder inkrementelle Übertragungen, bei denen der BLOB-Container mit Änderungen im lokalen Dateisystem synchronisiert werden soll.

# 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

Zum Synchronisieren des /data/hpc-workload Verzeichnisses mit einem Container mit dem Namen 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

Hinweis

Der azcopy sync Befehl vergleicht Dateinamen und Zeitstempel der letzten Änderung, um zu bestimmen, welche Dateien übertragen werden müssen. Nur neue oder aktualisierte Dateien werden übertragen, wodurch Synchronisierungsvorgänge für inkrementelle Updates schneller werden.

Von Bedeutung

Im Gegensatz dazu azcopy copysynchronisiert der azcopy sync Befehl immer den Inhalt des Quellverzeichnisses mit dem Ziel, ohne ein übergeordnetes Verzeichnis zu erstellen. azcopy sync '/data/hpc-workload' 'https://...blob.core.windows.net/lustre-data/' lädt zum Beispiel den Inhalt von hpc-workload direkt in lustre-data/ und nicht in lustre-data/hpc-workload/. Stellen Sie sicher, dass der Zielpfad im BLOB-Container die gewünschte Verzeichnisstruktur in Azure Managed Lustre widerspiegelt. Weitere Informationen finden Sie unter "Synchronisieren mit Azure Blob Storage mithilfe von AzCopy".

Überprüfen des Uploads

Nach Abschluss des Uploads können Sie überprüfen, ob die Daten mit den richtigen POSIX-Eigenschaften hochgeladen wurden, indem Sie den Inhalt des BLOB-Containers auflisten:

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

Schritt 2: Importieren von Daten in Azure Managed Lustre

Nachdem die Daten in Azure Blob Storage mit beibehaltenen POSIX-Eigenschaften hochgeladen wurden, importieren Sie die Daten in Ihr Azure Managed Lustre-Dateisystem, indem Sie einen Importauftrag erstellen. Azure Managed Lustre liest die POSIX-Attribute aus den BLOB-Metadaten und wendet sie auf die Dateien im Lustre-Namespace an.

Sie können jederzeit einen Importauftrag erstellen, indem Sie die Schritte unter Erstellen eines Importauftrags aus Azure Blob Storage in ein Dateisystem ausführen. Wenn Sie die Blob-Integration während der Clustererstellung konfiguriert haben, können Sie daten auch während der ersteinrichtung importieren.

Für die automatisierte und kontinuierliche Datensynchronisierung von Blob Storage in Azure Managed Lustre sollten Sie das Feature für den automatischen Import verwenden.

Einschränkungen

  • Symbolische Verknüpfungen bleiben nicht erhalten: Azure Blob Storage unterstützt keine symbolischen Verknüpfungen (Symlinks). Symlinks im POSIX-Quelldateisystem werden während der AzCopy-Übertragung übersprungen und werden nicht zum Blob-Container oder zu Azure Managed Lustre migriert. Wenn Ihre Daten auf Symlinks basieren, müssen Sie die Daten vor der Migration neu strukturieren oder die Symlinks manuell neu erstellen, nachdem die Daten in das Azure Managed Lustre-Dateisystem importiert wurden. Weitere Informationen finden Sie unter Verwenden von Azure Blob Storage mit Azure Managed Lustre.

Tipps und bewährte Methoden

  • Testen Sie zuerst mit einem kleinen Dataset: Testen Sie vor der Migration Ihres vollständigen Datasets den Prozess mit einer kleinen Teilmenge von Dateien, um zu überprüfen, ob POSIX-Eigenschaften ordnungsgemäß erhalten bleiben.
  • Optimieren der Übertragungsleistung: AzCopy verwendet automatisch mehrere gleichzeitige Verbindungen. Sie können die Leistung weiter optimieren, indem Sie die AZCOPY_CONCURRENCY_VALUE Umgebungsvariable basierend auf Ihrer Netzwerkbandbreite festlegen. Weitere Informationen finden Sie unter Optimieren der Leistung von AzCopy mit Azure Storage.
  • Verwenden Sie die inkrementelle Synchronisierung für fortlaufende Migrationen: Wenn sich Ihre lokalen Daten häufig ändern, verwenden Sie azcopy sync sie für inkrementelle Updates, anstatt jedes Mal das gesamte Dataset zu kopieren.
  • Überwachen von Importaufträgen: Überwachen Sie den Fortschritt nach dem Erstellen eines Importauftrags im Azure-Portal. Weitere Informationen finden Sie unter Erstellen eines Importauftrags.