In diesem Dokument wird beschrieben, wie Sie das Verhalten von Cloud Storage FUSE mit einer Cloud Storage FUSE-Konfigurationsdatei dauerhaft konfigurieren. Um die Konfigurationsdatei zu verwenden, müssen Sie im Befehl gcsfuse in der Option --config-file den Pfad zur Datei angeben.
Die Cloud Storage FUSE-Konfigurationsdatei ist eine YAML-Datei im folgenden Format und mit den folgenden Feldern. Das Verhalten, das Sie mit den Feldern der Konfigurationsdatei steuern, kann auch über die Befehlszeile von Cloud Storage FUSE festgelegt werden.
Dateiformat und Felder der Cloud Storage FUSE-Konfigurationsdatei
Das folgende YAML-Konfigurationsbeispiel zeigt das Format und die Felder, die in Cloud Storage FUSE verfügbar sind.
app-name: "APP_NAME" logging: file-path: "FILE_PATH" format: FORMAT severity: SEVERITY log-rotate: max-file-size-mb: MAX_FILE_SIZE backup-file-count: BACKUP_FILE_COUNT compress: COMPRESS cache-dir: "CACHE_DIR" file-cache: max-size-mb: MAX_SIZE cache-file-for-range-read: CACHE_FILE_FOR_RANGE_READ enable-parallel-downloads: ENABLE_PARALLEL_DOWNLOADS parallel-downloads-per-file: PARALLEL_DOWNLOADS_PER_FILE max-parallel-downloads: MAX_PARALLEL_DOWNLOADS download-chunk-size-mb: DOWNLOAD_CHUNK_SIZE metadata-cache: enable-nonexistent-type-cache: ENABLE_NONEXISTENT_TYPE_CACHE negative-ttl-secs: ENABLE_NEGATIVE_TTL_SECS stat-cache-max-size-mb: STAT_CACHE_MAX_SIZE ttl-secs: TTL_SECS type-cache-max-size-mb: TYPE_CACHE_MAX_SIZE only-dir: "ONLY_DIR" gcs-auth: anonymous-access: ANONYMOUS_ACCESS key-file: "KEY_FILE" reuse-token-from-url: REUSE_TOKEN_FROM_URL token-url: "TOKEN_URL" gcs-connection: billing-project: "BILLING_PROJECT" client-protocol: CLIENT_PROTOCOL custom-endpoint: "CUSTOM_ENDPOINT" http-client-timeout: HTTP_CLIENT_TIMEOUT limit-bytes-per-sec: "LIMIT_BYTES_PER_SEC" limit-ops-per-sec: "LIMIT_OPS_PER_SEC" max-conns-per-host: MAX_CONNS_PER_HOST max-idle-conns-per-host: MAX_IDLE_CONNS_PER_HOST sequential-read-size-mb: SEQUENTIAL_READ_SIZE implicit-dirs: IMPLICIT_DIRS file-system: kernel-list-cache-ttl-secs: KERNEL_LIST_CACHE_TTL_SECS ignore-interrupts: IGNORE_INTERRUPTS dir-mode: "DIR_MODE" file-mode: "FILE_MODE" fuse-options: FUSE_OPTIONS gid: GID rename-dir-limit: RENAME_DIR_LIMIT temp-dir: "TEMP_DIR" uid: UID foreground: FOREGROUND gcs-retries: max-retry-attempts: MAX_RETRY_ATTEMPTS max-retry-sleep: MAX_RETRY_SLEEP multiplier: "MULTIPLIER" metrics: cloud-metrics-export-interval-secs: CLOUD_METRICS_EXPORT_INTERVAL prometheus-port: PROMETHEUS_PORT debug: log-mutex: LOG_MUTEX exit-on-invariant-violation: EXIT_ON_INVARIANT_VIOLATION write: enable-streaming-writes: STREAMING_WRITES global-max-blocks: MAXIMUM_GLOBAL_BLOCKS read: enable-buffered-read: ENABLE_BUFFERED_READ global-max-blocks: MAXIMUM_GLOBAL_READ_BLOCKS profile: PROFILE
Felder der Cloud Storage FUSE-Konfigurationsdatei
In der folgenden Tabelle werden die Felder beschrieben, die Sie in Ihrer Cloud Storage FUSE-Konfigurationsdatei angeben können. Sofern nicht anders angegeben, sind alle Felder optional.
| Feld | Beschreibung | Gültiger Wert | Standardwert |
|---|---|---|---|
|
Der Anwendungsname der Bereitstellung | Stringwert, z. B. "my-bucket-mount" |
"" |
|
Der Pfad zur Logdatei, in die Logs geschrieben werden.
Ist dieses Feld nicht angegeben, werden die Logs an stdout weitergeleitet, wenn Cloud Storage FUSE im Vordergrundmodus ausgeführt wird, und an syslogs, wenn Cloud Storage FUSE im Hintergrundmodus ausgeführt wird. |
Stringwert, z. B. "/var/log" |
"" |
|
Gibt das Format der Logdatei an |
|
json |
|
Der Schweregrad, für den Cloud Storage FUSE Logs generieren soll. Die Schweregrade sind vom niedrigsten zum höchsten geordnet. Wenn Sie beispielsweise |
|
info |
|
Die maximale Größe in Megabyte (MB) für Logdateien, bevor sie rotiert werden | Ganzzahl. Der Mindestwert beträgt 1. |
512 |
|
Die maximale Anzahl rotierter Logdateien, ohne die aktive Datei, die beibehalten werden sollen. |
|
10 |
|
Gibt an, ob rotierte Logdateien mit gzip komprimiert werden sollen |
Boolescher Wert: true, false |
true |
|
Aktiviert den Datei-Cache und gibt das Verzeichnis zum Speichern der Datei-Cache-Daten an |
Ein Pfad, z. B. "/tmp/gcsfuse-cache-path".
Ein leerer Wert gibt an, dass dieses Feld deaktiviert ist. Dieses Feld ist standardmäßig deaktiviert. |
|
|
Gibt die maximale Größe in MiB an, die der Datei-Cache verwenden kann. Damit können Sie die Gesamtkapazität begrenzen, die der Datei-Cache in seinem bereitgestellten Verzeichnis verwenden kann. |
|
-1 |
|
Gibt an, ob das vollständige Objekt asynchron heruntergeladen und im Cloud Storage FUSE-Cache-Verzeichnis gespeichert werden soll, wenn der erste Lesevorgang von einem Offset ungleich null abgeschlossen wird. Dieses Feld sollte auf true festgelegt werden, wenn Sie mehrere zufällige oder teilweise Lesevorgänge ausführen möchten.
|
Boolescher Wert: true, false |
false |
|
Beschleunigt das Lesen großer Dateien, indem das Datei-Cache-Verzeichnis als Prefetch-Puffer verwendet wird. Dabei werden mehrere Worker eingesetzt, um mehrere Teile einer Datei parallel herunterzuladen. Wenn Sie das Datei-Caching aktivieren, werden automatisch parallele Downloads aktiviert. Weitere Informationen zum Datei-Caching mit Cloud Storage FUSE. Weitere Informationen zu parallelen Downloads und zum Konfigurieren unterstützender Eigenschaften |
Boolescher Wert: true, false. |
true |
|
Gibt die maximale Anzahl an Goroutines an, die pro Datei erstellt werden sollen, um das Objekt aus Cloud Storage in den Datei-Cache herunterzuladen | Ganzzahl | 16 |
|
Die maximale Anzahl "goroutines", die jederzeit für alle Downloadjobs für Dateien erstellt werden können |
|
Die doppelte Anzahl der CPU-Kerne auf Ihrer Maschine oder 16, je nachdem, welcher Wert höher ist |
|
Gibt die Größe jeder Leseanfrage in MiB an, die jede goroutine an Cloud Storage senden kann, wenn das Objekt in den Datei-Cache heruntergeladen wird | Ganzzahl | 200 |
|
Erstellt einen Typ-Cache-Eintrag vom Typ NonexistentType, wenn eine Datei in Cloud Storage nicht gefunden wird. Wenn die Datei in Cloud Storage erstellt, der Eintrag NonexistentType für die Datei jedoch im Cache gespeichert wird, kann Cloud Storage FUSE diese Datei erst anfragen, nachdem der Eintrag NonexistentType aus dem Typ-Cache entfernt wurde. |
Boolescher Wert: true, false |
false |
|
Die maximale Größe des Arbeitsspeichers in MiB, den der Statistik-Cache verwenden kann. Der Statistik-Cache wird immer vollständig im Arbeitsspeicher gespeichert. |
|
32 |
|
Legt die Gültigkeitsdauer (Time to Live, TTL) für negative Einträge im Statistik-Cache in Sekunden fest. Die Einträge speichern die Ergebnisse für nicht vorhandene Dateien im Cache. |
|
5 |
|
Legt die Gültigkeitsdauer (TTL) für im Cache gespeicherte Metadateneinträge in Sekunden fest |
|
60 |
|
Die maximale Größe in MiB pro Verzeichnis, die der Typ-Cache verwenden kann. Der Typ-Cache wird immer vollständig im Arbeitsspeicher gespeichert. |
|
4 |
|
Stellt nur ein bestimmtes Verzeichnis in einem Bucket bereit | Ein Pfad, z. B. "/etc/gcsfuse.yaml" |
|
|
Deaktiviert die Authentifizierung für Anfragen. Dieses Feld sollte festgelegt werden, wenn Sie einen benutzerdefinierten Endpunkt verwenden, der keine Authentifizierung unterstützt. Dieses Feld sollte auch festgelegt werden, wenn Sie Cloud Storage FUSE mit öffentlichen Buckets verwenden. | Boolescher Wert: true, false |
false |
|
Gibt einen absoluten Pfad zur JSON-Schlüsseldatei für die Anmeldedaten an, mit der Anfragen an Cloud Storage authentifiziert werden. Cloud Storage FUSE verwendet standardmäßig die Standardanmeldedaten für Anwendungen, um Anfragen zu authentifizieren. | Eine URL | Wenn dieses Feld nicht festgelegt ist, werden die Standardanmeldedaten für Anwendungen verwendet. |
|
Gibt an, ob das über --token-url abgerufene Token wiederverwendet werden soll |
Boolescher Wert: true, false |
true |
|
Gibt eine URL zum Abrufen eines Zugriffstokens an, wenn --key-file nicht vorhanden ist |
Eine URL | |
|
Gibt ein Projekt an, das für die Abrechnung verwendet werden soll, wenn auf den bereitgestellten Bucket zugegriffen wird. Dieses Feld ist häufig erforderlich, wenn Sie einen Bucket bereitstellen, für den Anforderer bezahlt aktiviert ist. | Stringwert für eine Projekt-ID | "" |
|
Gibt das Protokoll für die Kommunikation mit dem Cloud Storage-Backend an |
|
http1 |
|
Gibt einen alternativen benutzerdefinierten Endpunkt zum Abrufen von Daten an.
Der benutzerdefinierte Endpunkt muss die gleichen Ressourcen und Vorgänge wie der Cloud Storage-JSON-Endpunkt storage.UNIVERSE_DOMAIN_NAME:443 unterstützen.
Wenn kein benutzerdefinierter Endpunkt angegeben ist, verwendet Cloud Storage FUSE den globalen Cloud Storage JSON API-Endpunkt storage.googleapis.com:443.
Wenn auf dem angegebenen benutzerdefinierten Endpunkt keine Authentifizierung unterstützt wird, setzen Sie das Feld anonymous-access auf true, um die Authentifizierung zu umgehen. |
Ein Endpunkt, z. B. storage.googleapis.com:443 |
|
|
Gibt an, wie lange der Cloud Storage FUSE-HTTP-Client auf die Antwort vom Server warten kann, bevor es zu einer Zeitüberschreitung kommt | Dauer, z. B. 1h10m10s für 1 Stunde, 10 Minuten und 10 Sekunden. Mit 0s wird kein Zeitlimit festgelegt. |
0s bedeutet kein Zeitlimit. |
|
Gibt das Bandbreitenlimit an, mit dem Cloud Storage FUSE Daten aus Cloud Storage lesen kann, gemessen über ein 30-Sekunden-Fenster | "-1" bedeutet kein Limit. |
|
|
Gibt ein Limit für die Ausführung von Vorgängen pro Sekunde an, gemessen über ein 30-Sekunden-Fenster | Gleitkommazahl. -1 bedeutet kein Limit. |
"-1" |
|
Gibt die maximal zulässige Anzahl an TCP-Verbindungen pro Server an.
Gilt, wenn --client-protocol auf http1 festgelegt ist. |
0 |
|
|
Gibt die maximal zulässige Anzahl inaktiver Verbindungen pro Server an.
Gilt, wenn --client-protocol auf http1 festgelegt ist. |
Ganzzahl zwischen 0 und 2147483647.
0 bedeutet kein Limit für die TCP-Verbindungsanzahl. |
0 |
|
Gibt die Blockgröße für die aus Cloud Storage herunterzuladenden Daten in Megabyte (MB) an | Ganzzahl zwischen 1 und 1024 |
200 |
|
Umfasst implizit Ordner und verwaltete Ordner. Weitere Informationen finden Sie in der GitHub-Dokumentation zu Cloud Storage FUSE unter Files and directories. | Boolescher Wert: true, false |
false |
|
Aktiviert den Listen-Cache und legt die Gültigkeitsdauer (TTL) für im Cache gespeicherte Listeneinträge in Sekunden fest. Der Listen-Cache wird im Arbeitsspeicher im Seiten-Cache gespeichert. Dieser wird vom Kernel gemäß dem verfügbaren Arbeitsspeicher gesteuert. |
| 0 |
|
Weist Cloud Storage FUSE an, Systemunterbrechungssignale wie SIGINT zu ignorieren, die durch Control+C ausgelöst werden. So wird verhindert, dass laufende Vorgänge durch Signale beendet werden. |
Boolescher Wert: true, false. |
true |
|
Berechtigungs-Bits für Verzeichnisse in Oktal. | Ganzzahl zwischen 000 und 777 (einschließlich). |
"755" |
|
Gibt Berechtigungs-Bits für Dateien in Oktal an. | Ganzzahl zwischen 000 und 777 (einschließlich). |
"644" |
|
Gibt zusätzliche systemspezifische Bereitstellungsoptionen an. | ||
|
Gibt den Gruppen-ID-Inhaber (GID) aller Inodes an. |
|
-1 |
|
Ermöglicht das Umbenennen von Verzeichnissen, die weniger Nachfolgerelemente als das angegebene Limit enthalten. | Ganzzahl zwischen 0 und 2147483647. |
0 |
|
Gibt einen Pfad zum temporären Verzeichnis an, in dem Schreibvorgänge vor dem Hochladen in Cloud Storage zwischengespeichert werden. | Ein Stringpfad, z. B. "/mnt/ssd/example-user-gcsfuse-temp-dir". |
"/tmp" |
|
Gibt den Nutzer-ID-Inhaber (UID) aller Inodes an. |
|
-1 |
|
Führt den Befehl gcsfuse im Vordergrund aus. |
Boolescher Wert: true, false |
false |
|
Gibt die maximale Anzahl an Wiederholungsversuchen für einen fehlgeschlagenen Vorgang an, um endlose Wiederholungsschleifen zu vermeiden. |
|
0 |
|
Gibt die Höchstdauer an, die Cloud Storage FUSE in einer Wiederholungsschleife mit exponentiellem Backoff warten darf. Wenn die Backoff-Dauer die angegebene Höchstdauer überschreitet, werden die Wiederholungsversuche mit der angegebenen Höchstdauer fortgesetzt. | Die Dauer, z. B. 1h5m50s (1 Stunde, 5 Minuten und 50 Sekunden) oder 60s (60 Sekunden). |
30s |
|
Gibt den Multiplikator für den exponentiellen Backoff zwischen aufeinanderfolgenden Wiederholungsversuchen an | Gleitkommazahl | "2" |
|
Exportiert Messwerte im angegebenen Intervall in Cloud Monitoring. |
Ganzzahl für einen Wert in Sekunden, z. B. 10 (10 Sekunden).
0 bedeutet kein Export. |
0 |
|
Stellt den Prometheus-Messwertendpunkt auf dem angegebenen Port und Pfad |
Ganzzahl für den Port, den Sie angeben möchten. | 0 |
|
Gibt Debug-Meldungen aus, wenn ein Mutex zu lange gehalten wird. Ist dieses Feld angegeben, wird der Schweregrad für die Logs automatisch auf trace festgelegt. Gilt für Trace-Logs, Debug-Logs, Info-Logs, Warnungs-Logs und Fehler-Logs. |
Boolescher Wert: true, false. |
false |
|
Beendet das Programm, wenn interne Variantenverstöße erkannt werden. | Boolescher Wert: true, false. |
false |
|
Steuert den Fluss des Schreibpfads, sodass Daten während des Schreibens direkt in Cloud Storage hochgeladen werden. Andernfalls wird der Schreibvorgang vollständig lokal zwischengespeichert und die Daten werden bei close() oder fsync() hochgeladen.
Weitere Informationen zu Streaming-Schreibvorgängen finden Sie in der GitHub-Dokumentation zu Cloud Storage FUSE unter Reads/Writes. |
Boolescher Wert: true, false. |
true |
|
Gibt die maximale Anzahl an Datenblöcken an, die für Streaming-Schreibvorgänge für alle Dateien verfügbar sind. Pro Datei wird standardmäßig ein 32 MiB großer Datenblock verwendet. |
|
|
|
Gibt das asynchrone Prefetching von Teilen eines Cloud Storage-Objekts in einen Arbeitsspeicher-Puffer an. Dadurch können nachfolgende Lesevorgänge aus dem Puffer bedient werden, ohne dass Netzwerkaufrufe erforderlich sind. | Boolescher Wert: true, false |
false |
|
Gibt die maximale Anzahl an Blöcken an, die für gepufferte Lesevorgänge für alle Datei-Handles verfügbar sind. |
|
40 |
|
Wendet einen vordefinierten, optimierten Satz an Cloud Storage FUSE-Konfigurationen für Caching, Threading und Puffergrößen an. So können Sie für bestimmte Arbeitslasttypen wie Training, Bereitstellung und Prüfpunkte eine hohe Leistung erzielen. Weitere Informationen zu den einzelnen vordefinierten Konfigurationen für verschiedene Arbeitslasttypen finden Sie unter Profilbasierte Konfigurationen für KI/ML-Arbeitslasten. |
|
"" |