Anpassen des Dateirückschreibens im Azure HPC-Cache

HPC-Cachebenutzer können anfordern, dass der Cache bestimmte einzelne Dateien mithilfe des flush_file.py Hilfsprogramms in Back-End-Speicher bei Bedarf schreibt. Dieses Dienstprogramm ist ein separat heruntergeladenes Softwarepaket, das Sie auf Linux-Clientcomputern installieren und verwenden.

Dieses Feature ist für Situationen gedacht, in denen die Änderungen an zwischengespeicherten Dateien so schnell wie möglich für Systeme verfügbar gemacht werden sollen, die den Cache nicht bereitstellen.

Sie können z. B. Azure HPC Cache verwenden, um Ihre Computeraufträge in der Cloud zu skalieren, aber Ihre Daten in einem lokalen Rechenzentrum dauerhaft speichern. Wenn Rechenaufgaben im Rechenzentrum auftreten, die von Änderungen abhängen, die mit Azure HPC Cache erstellt wurden, können Sie dieses Hilfsprogramm verwenden, um die Ausgabe oder Änderungen, die von einer Cloudaufgabe generiert werden, zurück an den lokalen NAS-Speicher zu übertragen. Auf diese Weise können die neuen Dateien fast sofort von lokalen Computeressourcen verwendet werden.

Wählen Sie zwischen benutzerdefiniertem Rückschreiben und Leeren des Speichers.

Sie können erzwingen, dass Daten mithilfe der in Azure HPC Cache integrierten Option "Storage Target Flush" zurückgeschrieben werden – jedoch ist dieser Ansatz möglicherweise nicht für alle Situationen geeignet.

  • Das Schreiben aller geänderten Dateien in das Speichersystem kann mehrere Minuten oder sogar Stunden dauern, abhängig von der Datenmenge und der Geschwindigkeit der Netzwerkverbindung zurück zum lokalen System. Außerdem können Sie nicht nur die Dateien auswählen, die Sie fertig gestellt haben, um geschrieben zu werden. Dateien, die noch aktiv geändert werden, werden in diese Berechnung einbezogen.

  • Der Cache blockiert möglicherweise die Bereitstellung einiger Anforderungen dieses Speicherziels während des Flush-Prozesses. Dies kann die Verarbeitung verzögern, wenn andere Computeclients Dateien verwenden, die sich auf demselben Speicherziel befinden.

  • Das Auslösen dieser Aktion erfordert den Mitwirkendenzugriff auf den Azure Resource Manager, über den Endbenutzer möglicherweise nicht verfügen.

Sie können z. B. mehrere parallele (aber nicht überlappende) Computeaufträge haben, die Daten verbrauchen, die sich im gleichen HPC-Cachespeicherziel befinden. Wenn ein Auftrag abgeschlossen ist, möchten Sie sofort die Ausgabe dieses Auftrags aus dem Cache in Ihren Langzeitspeicher im Back-End schreiben.

Sie haben drei Möglichkeiten:

  • Warten Sie, bis die zwischengespeicherten Dateien automatisch aus dem Cache zurückgeschrieben werden. Dateien befinden sich jedoch möglicherweise länger als eine Stunde im Cache, bevor sie vollständig zurückgeschrieben werden. Die Anzeigedauer hängt von der Zurückschreibverzögerung Ihres Cachenutzungsmodells sowie von anderen Faktoren wie der Netzwerkverbindungsleistung und der Größe der Dateien ab. (Lesen Sie "Grundlegendes zu Cachenutzungsmodellen ", um mehr über die Zurückschreibverzögerung zu erfahren.)

  • Löschen Sie sofort die zwischengespeicherten Dateien für das gesamte Speicherziel. Dies würde jedoch andere Rechenaufträge unterbrechen, die auch die Daten dieses Speicherziels verwenden.

  • Verwenden Sie dieses benutzerdefinierte Hilfsprogramm zum Zurückschreiben, um eine spezielle NFS-Anforderung an den Cache zu senden, um nur die gewünschten Dateien zurückzugeben. In diesem Szenario wird der Zugriff für andere Clients nicht unterbrochen und kann an einem beliebigen Punkt in der Computeraufgabe ausgelöst werden.

Informationen zum Rückschreibhilfsprogramm

Das Rückschreibprogramm verfügt über ein Skript, mit dem Sie einzelne Dateien angeben können, die aus dem Cache in das langfristige Speichersystem geschrieben werden.

Das Skript nutzt einen Eingabedatenstrom der zu schreibenden Dateien, den Cachenamespacepfad für den Export Ihres Speicherziels sowie eine IP-Adresse für die Anbindung des HPC-Cache.

Das Skript verwendet einen NFSv3 -Commit-Aufruf mit speziellen Argumenten aktiviert. Der Linux nfs-common Client kann diese Argumente nicht entsprechend übergeben, sodass das Hilfsprogramm flush_file.py einen NFS-Clientemulator in einer Python-Bibliothek verwendet, um mit dem HPC Cache NFS Service zu kommunizieren. Die Bibliothek enthält alle erforderlichen Elemente, die alle Einschränkungen umgehen, die möglicherweise im Linux-kernelbasierten NFS-Client Ihres Computeclients vorhanden sind.

Um dieses Feature zu verwenden, müssen Sie die folgenden Schritte ausführen:

Erfahren Sie mehr über die Installation und Verwendung des flush_file.py-Skripts im GitHub-Repository.