Verschieben von Daten in Azure-Blobspeicher

Wenn Ihr Workflow das Verschieben von Daten in Azure Blob Storage beinhaltet, achten Sie darauf, eine effiziente Strategie zu verwenden. Sie sollten den Cache erstellen, den Blobcontainer als Speicherziel hinzufügen und dann Ihre Daten mithilfe von Azure HPC Cache kopieren.

In diesem Artikel werden die besten Verfahren zum Verschieben von Daten in Blobspeicher für die Verwendung mit Azure HPC Cache erläutert.

Tipp

Dieser Artikel gilt nicht für in NFS eingebundenen Blobspeicher (ADLS-NFS-Speicherziele). Sie können eine beliebige NFS-basierte Methode verwenden, um einen ADLS-NFS-Blobcontainer aufzufüllen, bevor oder nachdem Sie ihn der HPC Cache-Instanz hinzufügen. Weitere Informationen finden Sie unter Im Voraus Laden von Daten mit dem NFS-Protokoll.

Beachten Sie dabei Folgendes:

  • Azure HPC Cache verwendet ein spezielles Speicherformat zum Strukturieren von Daten im Blobspeicher. Aus diesem Grund muss ein Blobspeicherziel entweder ein neuer, leerer Container oder ein Blobcontainer sein, der zuvor für Azure HPC Cache-Daten verwendet wurde.

  • Das Kopieren von Daten über Azure HPC Cache in ein Back-End-Speicherziel ist effizienter, wenn Sie mehrere Clients und parallele Operationen verwenden. Ein einfacher Kopierbefehl von einem Client verschiebt Daten langsam.

Die in diesem Artikel beschriebenen Strategien funktionieren zum Auffüllen eines leeren Blobcontainers oder zum Hinzufügen von Dateien zu einem zuvor verwendeten Speicherziel.

Kopieren von Daten über den Azure HPC Cache

Azure HPC Cache wurde dafür ausgelegt, mehrere Clients gleichzeitig zu bedienen, daher sollten Sie zum Kopieren von Daten über den Cache parallele Schreibvorgänge von mehreren Clients verwenden.

Diagram showing multi-client, multi-threaded data movement: At the top left, an icon for on-premises hardware storage has multiple arrows coming from it. The arrows point to four client machines. From each client machine three arrows point toward the Azure HPC Cache. From the Azure HPC Cache, multiple arrows point to blob storage.

Die Befehle cp oder copy, die normalerweise verwendet werden, um Daten von einem Speichersystem zu einem anderen zu übertragen, sind Singlethread-Prozesse, die jeweils nur eine Datei zugleich kopieren. Das bedeutet, dass der Dateiserver immer nur eine Datei auf einmal erfasst, was eine Verschwendung der Ressourcen des Cache darstellt.

In diesem Abschnitt werden Strategien zum Erstellen eines Dateikopiersystems mit mehreren Clients und Threads erläutert, um Daten mithilfe von Azure HPC Cache in Blobspeicher zu verschieben. Es werden Konzepte für die Dateiübertragung und Entscheidungspunkte erläutert, die für eine effiziente Datenkopie mit mehreren Clients und einfachen Kopierbefehlen verwendet werden können.

Es werden auch einige Hilfsprogramme erläutert, die hilfreich sein können. Das Hilfsprogramm msrsync kann verwendet werden, um den Prozess der Aufteilung eines Datasets in Buckets und der Verwendung von rsync-Befehlen teilweise zu automatisieren. Das parallelcp-Skript ist ein weiteres Hilfsprogramm, das das Quellverzeichnis liest und automatisch Kopierbefehle ausgibt.

Strategische Planung

Wenn Sie eine Strategie zum parallelen Kopieren von Daten erstellen, sollten Sie die Kompromisse hinsichtlich Dateigröße, Anzahl der Dateien und Verzeichnistiefe kennen.

  • Bei kleinen Dateien ist die relevante Metrik „Dateien pro Sekunde“.
  • Bei großen Dateien (10 MB oder mehr) ist die relevante Metrik „Bytes pro Sekunde“.

Jeder Kopiervorgang hat eine Durchsatzrate und eine Übertragungsrate, die gemessen werden kann, indem die Dauer des Kopierbefehls gemessen wird und Dateigröße sowie Anzahl der Dateien berücksichtigt werden. Die Erläuterung der Vorgehensweise zur Messung der Raten liegt außerhalb des Rahmens dieses Dokuments, aber es ist unbedingt erforderlich zu verstehen, ob es sich um kleine oder große Dateien handelt.

Zu den Strategien für die parallele Datenerfassung mit Azure HPC Cache gehören:

Nächste Schritte

Nachdem Sie den Speicher eingerichtet haben, erfahren Sie, wie Clients den Cache einbinden können.