Erfassung von Azure HPC-Cachedaten – msrsync-Methode

Dieser Artikel enthält detaillierte Anweisungen für die Verwendung des msrsync Hilfsprogramms zum Kopieren von Daten in einen Azure Blob Storage-Container zur Verwendung mit Azure HPC Cache.

Weitere Informationen zum Verschieben von Daten in Blob Storage für Ihren Azure HPC-Cache finden Sie unter "Verschieben von Daten in Azure Blob Storage".

Das msrsync Tool kann verwendet werden, um Daten in ein Back-End-Speicherziel für den Azure HPC-Cache zu verschieben. Dieses Tool wurde entwickelt, um die Bandbreitennutzung zu optimieren, indem mehrere parallele rsync Prozesse ausgeführt werden. Es ist auf GitHub verfügbar unter https://github.com/jbd/msrsync.

msrsync unterteilt das Quellverzeichnis in separate "Buckets" und führt dann einzelne rsync Prozesse auf jedem Bucket aus.

Vorläufige Tests mit einem vierkernigen virtuellen Computer zeigten bei verwendung von 64 Prozessen die beste Effizienz. Verwenden Sie die msrsync Option -p , um die Anzahl der Prozesse auf 64 festzulegen.

Beachten Sie, dass msrsync nur auf und von lokalen Volumen geschrieben werden kann. Die Quelle und das Ziel müssen als lokale Einbindungen auf der Workstation zugänglich sein, die zum Ausführen des Befehls genutzt wird.

Befolgen Sie die folgenden Anweisungen, um msrsync Azure Blob Storage mit Azure HPC-Cache aufzufüllen:

  1. Installieren Sie msrsync und die erforderlichen Komponenten (rsync und Python 2.6 oder höher)

  2. Bestimmen Sie die Gesamtanzahl der zu kopierenden Dateien und Verzeichnisse.

    Verwenden Sie z. B. das Hilfsprogramm prime.py mit Argumenten prime.py --directory /path/to/some/directory (verfügbar durch Herunterladen https://github.com/Azure/Avere/blob/main/src/clientapps/dataingestor/prime.py).

    Wenn prime.py nicht verwendet wird, können Sie die Anzahl der Elemente mit dem GNU-Tool find wie folgt berechnen:

    find <path> -type f |wc -l         # (counts files)
    find <path> -type d |wc -l         # (counts directories)
    find <path> |wc -l                 # (counts both)
    
  3. Dividieren Sie die Anzahl der Elemente durch 64, um die Anzahl der Elemente pro Prozess zu bestimmen. Verwenden Sie diese Zahl mit der -f Option, um die Größe der Buckets festzulegen, wenn Sie den Befehl ausführen.

  4. Führen Sie den Befehl msrsync aus, um Dateien zu kopieren:

    msrsync -P --stats -p64 -f<ITEMS_DIV_64> --rsync "-ahv --inplace" <SOURCE_PATH> <DESTINATION_PATH>
    

    Dieser Befehl ist beispielsweise so konzipiert, dass 11.000 Dateien in 64 Prozessen aus /test/source-repository in /mnt/hpccache/repository verschoben werden:

    mrsync -P --stats -p64 -f170 --rsync "-ahv --inplace" /test/source-repository/ /mnt/hpccache/repository