Freigeben über


Konfigurieren von BlobFuse für den Streamingmodus

In diesem Artikel erfahren Sie, wie Sie BlobFuse so konfigurieren, dass ein Container im Streamingmodus bereitgestellt wird.

Tipp

Sie können einen Container entweder im Streamingmodus oder im Cachemodus bereitstellen. Weitere Informationen zu den einzelnen Modus finden Sie unter Streaming im Vergleich zum Zwischenspeicherungsmodus.

Im Streamingmodus cacht BlobFuse Daten in Blöcken im Arbeitsspeicher sowohl zum Lesen als auch zum Schreiben. Beim Streamen während Lese- und Schreibvorgängen werden Datenblöcke im Arbeitsspeicher zwischengespeichert, während sie gelesen oder aktualisiert werden. BlobFuse löscht Updates für Azure Storage, wenn Sie eine Datei schließen oder wenn der Puffer mit schmutzigen Blöcken gefüllt wird.

Konfigurationsparameter

In der folgenden Tabelle werden die einzelnen Parameter und ihre Standardeinstellung beschrieben.

Parameter Description Standardwert
Blockgröße Die Größe in MB jedes Blocks, der im Arbeitsspeicher zwischengespeichert werden soll 16 MB
Arbeitsspeichergröße Gesamtmenge des Arbeitsspeichers in MB, der für den Blockcache vorab zugewiesen werden soll 80% freier Arbeitsspeicher
Pfad Der Pfad zum lokalen Datenträgercache, in dem heruntergeladene Blöcke gespeichert werden Nicht anwendbar
Datenträgergröße Maximale Größe des Datenträgercaches in MB zulässig 80% freier Speicherplatz
Timeout für Datenträger Timeout für die Entfernung des Datenträgers aus dem Cache in Sekunden 120 Sekunden
Prefetch Die Anzahl der Blöcke, die für serielle Lesevorgänge vorab geladen werden sollen 2 × Anzahl der CPU-Kerne
Parallelität Die Anzahl der parallelen Threads, die Daten herunterladen und in den Datenträgercache schreiben 3 × Anzahl der CPU-Kerne

Im folgenden Beispiel werden diese Werte als Parameter auf den mount Befehl festgelegt.

blobfuse2 mount <mount-path> --streaming --block-cache-disk-size=16 --block-cache-block-size=80 --block-cache-disk-timeout=120

Das folgende Beispiel zeigt, wie diese Einstellungen in der BlobFuse-Konfigurationsdatei angezeigt werden:

block_cache:
  block-size-mb: 16
  mem-size-mb: 80
  disk-timeout-sec: 120

Ein vollständiges Beispiel finden Sie unter Beispiel-Streamingkonfiguration.

Wenn Sie optimale Konfigurationswerte auswählen, verwenden Sie das folgende Diagramm als Leitfaden.

Diagramm, das zeigt, wie der Blockcachemodus basierend auf verschiedenen Faktoren konfiguriert wird.

Empfehlungen für die Verwendung des Streamingmodus

  • Anwendungen müssen den zurückgegebenen Code (Erfolg oder Fehler) bei Dateisystemaufrufen wie read, write, close und flush prüfen. Wenn ein Fehler zurückgegeben wird, muss die Anwendung den jeweiligen Vorgang abbrechen.

  • Anwendungen müssen sicherstellen, dass jeweils nur ein Autor für eine bestimmte Datei vorhanden ist.

  • Konfigurieren Sie beim Umgang mit großen Dateien (in TiBs) die Blockgröße entsprechend. Azure Storage unterstützt nur 50.000 Blöcke pro Blob.

Wichtige Überlegungen für den Streamingmodus

  • Sie können zwar dasselbe Blob aus mehreren gleichzeitigen Threads lesen, aber gleichzeitige Schreibvorgänge können zu unerwarteten Dateidatenergebnissen führen, einschließlich Datenverlust.

  • Während gleichzeitige Lesevorgänge und ein einzelner Schreibvorgang unterstützt werden, sind die aus einigen Threads gelesenen Daten möglicherweise nicht aktuell.

  • Gleichzeitige Schreibvorgänge für dieselbe Datei mit mehreren Handles werden nicht auf Datenkonsistenz überprüft und können zu falschen Daten führen.

  • Ein Lesevorgang für eine Datei, in die ein anderer Prozess oder Handle gleichzeitig schreibt, gibt nicht die aktuellsten Daten zurück.

  • Wenn Sie Dateien mit Nullbytes am Ende mit dem cp-Dienstprogramm in einen von BlobFuse gemounteten Pfad kopieren, verwenden Sie den Parameter --sparse=never, um zu verhindern, dass Daten abgeschnitten werden. Beispiel: cp --sparse=never src dest.

  • Bei Schreibvorgängen speichert die Anwendung Daten (oder bestätigt diese) nur dann im Azure Storage-Container, wenn sie close, sync, oder flush Vorgänge aufruft.

  • Sie können Dateien nicht ändern, wenn Sie sie ursprünglich mit einer Blockgröße erstellt haben, die sich von der aktuell konfigurierten unterscheidet.

Sie können die Zwischenspeicherung auf der Kernel- und BlobFuse-Ebene oder ausschließlich auf Kernelebene deaktivieren. Weitere Informationen finden Sie unter Configure BlobFuse caching options.

Nächste Schritte

Siehe auch