Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Empfehlungen für die Verwendung des Streamingmodus
Anwendungen müssen den zurückgegebenen Code (Erfolg oder Fehler) bei Dateisystemaufrufen wie
read,write,closeundflushprü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, oderflushVorgä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.