Anpassen des Dateirückschreibens in Azure HPC Cache

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

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

Sie können beispielsweise Azure HPC Cache verwenden, um Ihre Computingaufträge in der Cloud zu skalieren, aber Ihr Dataset dauerhaft in einem lokalen Rechenzentrum speichern. Wenn Computeaufgaben im Rechenzentrum ausgeführt werden, die von mit Azure HPC Cache erstellten Änderungen abhängig sind, können Sie dieses Hilfsprogramm verwenden, um die von einer Cloudaufgabe generierten Ausgaben oder Änderungen zurück in den lokalen NAS-Speicher zu pushen. Dadurch können die neuen Dateien fast sofort von lokalen Computeressourcen verwendet werden.

Wählen zwischen benutzerdefiniertem Rückschreiben und Leeren

Mit der in Azure HPC Cache integrierten Option zum Leeren des Speicherziels können Sie erzwingen, dass Daten zurückgeschrieben werden. Dieser Ansatz ist jedoch möglicherweise nicht für alle Situationen geeignet.

  • Das Schreiben aller geänderten Dateien zurück in das Speichersystem kann mehrere Minuten oder sogar Stunden dauern, abhängig von der Menge der Daten und der Geschwindigkeit der Netzwerkverbindung mit dem lokalen System. Außerdem ist es nicht möglich, nur die abgeschlossenen Dateien zum Schreiben auszuwählen. Dateien, die noch aktiv geändert werden, fließen ebenfalls in diese Berechnung ein.

  • Der Cache kann die Bereitstellung einiger Anforderungen aus diesem Speicherziel während der Leerung blockieren. Dies kann die Verarbeitung verzögern, wenn andere Computeclients Dateien verwenden, die sich in demselben Speicherziel befinden.

  • Durch das Auslösen dieser Aktion ist Zugriff vom Typ „Mitwirkender“ auf die Azure Resource Manager-Instanz erforderlich, über den Endbenutzer möglicherweise nicht verfügen.

Sie können beispielsweise mehrere parallele (aber nicht überlappende) Computeaufträge ausführen, die Daten verwenden, die sich in demselben HPC Cache-Speicherziel befinden. Wenn ein Auftrag abgeschlossen ist, möchten Sie die Ausgabe dieses Auftrags aus dem Cache sofort in Ihren langfristigen Speicher auf dem Back-End schreiben.

Sie haben drei Möglichkeiten:

  • Warten Sie, bis die zwischengespeicherten Dateien automatisch aus dem Cache zurückgeschrieben werden. Dateien verbleiben jedoch möglicherweise länger als eine Stunde im Cache, bevor sie vollständig zurückgeschrieben werden. Die Dauer hängt von der Verzögerung beim Rückschreiben Ihres Cachenutzungsmodells sowie anderen Faktoren (etwa Leistung der Netzwerkverbindung und Größe der Dateien) ab. (Weitere Informationen zur Verzögerung beim Rückschreiben finden Sie unter Grundlegendes zu Cache-Verwendungsmodellen.)

  • Leeren Sie die zwischengespeicherten Dateien sofort für das gesamte Speicherziel. Dadurch werden jedoch andere Computeaufträge unterbrochen, die ebenfalls die Daten dieses Speicherziels nutzen.

  • Verwenden Sie dieses Hilfsprogramm für benutzerdefiniertes Rückschreiben, um eine spezielle NFS-Anforderung an den Cache zu senden und nur die gewünschten Dateien zurückzuschreiben. In diesem Szenario wird der Zugriff für andere Clients nicht unterbrochen, und es kann zu einem beliebigen Zeitpunkt in der Computingaufgabe ausgelöst werden.

Informationen zum Hilfsprogramm für das Rückschreiben

Das Hilfsprogramm für das Rückschreiben beinhaltet ein Skript, mit dem Sie einzelne Dateien angeben können, die vom Cache in das System für die langfristige Speicherung geschrieben werden.

Das Skript verwendet einen Eingabestream der zu schreibenden Dateien, den Cache-Namespacepfad zu Ihrem Speicherzielexport und eine HPC Cache-Einbindungs-IP-Adresse.

Das Skript verwendet den NFSv3-Aufruf „commit“ mit aktivierten speziellen Argumenten. Der Linux-Client „nfs-common“ kann diese Argumente nicht entsprechend übergeben, sodass das Hilfsprogramm „flush_file.py“ einen NFS-Client-Emulator in einer Python-Bibliothek verwendet, um mit dem HPC Cache-NFS-Dienst zu kommunizieren. Die Bibliothek enthält alle erforderlichen Elemente. Dadurch werden alle Einschränkungen umgangen, die möglicherweise auf dem Linux-Kernel-basierten NFS-Client Ihres Computeclients vorhanden sind.

Zur Verwendung dieses Features müssen folgende Schritte ausgeführt werden:

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