Cloud Storage FUSE-Konfigurationsdatei

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
  • text
  • json
json

Der Schweregrad, für den Cloud Storage FUSE Logs generieren soll. Die Schweregrade sind vom niedrigsten zum höchsten geordnet. Wenn Sie beispielsweise warning angeben, generiert Cloud Storage FUSE Logs bei Warnungen und Fehlern. Im Allgemeinen empfehlen wir die Verwendung des Schweregrads info.

  • off: deaktiviert das gesamte Logging.
  • error: enthält Meldungen zu schwerwiegenden Problemen, die verhindern, dass Cloud Storage FUSE einen Vorgang abschließen kann. Oder weist auf einen Fehler hin, z. B. Bereitstellungsfehler, Berechtigungsfehler und kritische Ein-/Ausgabe-Fehler (E/A-Fehler).
  • warning: enthält Meldungen, die auf mögliche Probleme hinweisen, die zwar nicht kritisch sind, aber zu Problemen führen können, wenn sie nicht behoben werden. Dazu gehören auch nicht schwerwiegende Verbindungsprobleme, Warnungen zur Einstellung von Funktionen, Ressourcenkonflikte, die zu leichten Leistungseinbußen führen können, und Wiederholungsversuche bei vorübergehenden Fehlern. Dieser Schweregrad enthält auch die Informationen für den Schweregrad error.
  • info: enthält Meldungen zum Starten und Herunterfahren oder Informationen zu erfolgreichen Bereitstellungsvorgängen, Fortschrittsaktualisierungen und Konfigurationseinstellungen. Dieser Schweregrad enthält auch die Informationen für die Schweregrade warning und error.
  • debug: enthält Meldungen zum Starten und Herunterfahren oder Informationen zu erfolgreichen Bereitstellungsvorgängen, Fortschrittsaktualisierungen und Konfigurationseinstellungen. Dieser Schweregrad enthält auch die Informationen für die Schweregrade info, warning und error.
  • trace: enthält detaillierte Informationen zu allen Cloud Storage FUSE-Vorgängen und -Funktionsaufrufen sowie zu den gcsfuse-Interaktionen mit dem Kernel-FUSE-Treiber und Cloud Storage. Dieser Schweregrad enthält auch die Informationen für die Schweregrade debug, info, warning und error.
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.
  • Ganzzahl
  • 0: behält alle rotierten Logdateien bei.
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.

  • Ganzzahl
  • -1: gibt an, dass die gesamte verfügbare Kapazität des Cache in dem Verzeichnis verwendet wird, das Sie für cache-dir angeben. Dies ist nur die Standardeinstellung, wenn cache-dir übergeben wird.
  • 0: deaktiviert den Datei-Cache.
-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
  • Ganzzahl
  • -1: gibt unbegrenzte parallele Downloads an.
  • 0: deaktiviert parallele Downloads. Kann nur verwendet werden, wenn --enable-parallel-downloads nicht oder als false übergeben wird.
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.
  • Ganzzahl. Wir empfehlen folgende Einstellung:
    • 32, wenn Ihre Arbeitslast bis zu 20.000 Dateien umfasst.
    • Wenn Ihre Arbeitslast mehr als 20.000 Dateien enthält, erhöhen Sie den Wert pro weitere 6.000 Dateien in 10er Schritten. Der Statistik-Cache belegt durchschnittlich 1.500 MiB pro Datei.
  • -1: es wird kein Limit festgelegt. Der Statistik-Cache kann so viel Speicherplatz belegen, wie nötig.
  • 0: deaktiviert den Statistik-Cache.
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.

  • Ganzzahl für Sekunden, z. B. 10 (10 Sekunden)
  • 0: deaktiviert das negative Statistik-Caching.
  • -1: ermöglicht unbegrenztes negatives Statistik-Caching und deaktiviert den TTL-Ablauf.
5
Legt die Gültigkeitsdauer (TTL) für im Cache gespeicherte Metadateneinträge in Sekunden fest
  • Ganzzahl für Sekunden, z. B. 30 (30 Sekunden)
  • -1: umgeht den TTL-Ablauf und stellt Dateien aus dem Cache bereit, sobald sie verfügbar sind.
  • 0: verwendet die aktuellste Datei. Mit diesem Wert wird ein Get-Metadatenaufruf ausgegeben, um sicherzustellen, dass die Objektgeneration der Datei im Cache mit der in Cloud Storage gespeicherten Generation übereinstimmt.
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.
  • Ganzzahl. Wir empfehlen folgende Einstellung:
    • 4, wenn die maximale Anzahl an Dateien in einem einzelnen Verzeichnis des bereitgestellten Bucket höchstens 20.000 Dateien beträgt.
    • Wenn ein einzelnes Verzeichnis mehr als 20.000 Dateien enthält, erhöhen Sie den Wert pro 5.000 Dateien um 1, also durchschnittlich ca. 200 Byte pro Datei.
  • -1: es wird kein Limit festgelegt. Der Typ-Cache kann so viel Speicherplatz belegen, wie nötig.
  • 0: deaktiviert den Typ-Cache.
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.
  • Ganzzahl für Sekunden, z. B. 10 (10 Sekunden)
  • 0: deaktiviert das Listen-Caching.
  • -1: umgeht den Ablauf von Einträgen und gibt immer die Listenantwort aus dem Cache zurück, wenn verfügbar.
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.
  • Ganzzahl für eine Gruppen-ID.
  • -1: verwendet die GID des Aufrufers.
-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.
  • Ganzzahl für eine UID.
  • -1: verwendet die UID des Aufrufers.
-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.
  • Ganzzahl für die maximale Anzahl der Wiederholungsversuche, z. B. 10.
  • 0: erlaubt unbegrenzte Wiederholungsversuche.
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 /metrics bereit.

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.

  • Ganzzahl
  • 0: deaktiviert Streaming-Schreibvorgänge.
  • -1: legt den Wert auf eine unbegrenzte Blockanzahl fest.
  • Standardwert für Maschinen mit wenigen Spezifikationen und begrenzten Ressourcen: 4
  • Standardwert für Maschinen mit vielen Spezifikationen und zahlreichen Ressourcen: 1600
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.

  • Ganzzahl
  • 0: deaktiviert gepufferte Lesevorgänge.
  • -1: legt den Wert auf unbegrenzte Blöcke fest.
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.
  • Ein String, z. B. "aiml-checkpointing".
  • "aiml-training": optimiert die Leistung für durchsatzstarke Lesevorgänge in großen Datasets und verhindert, dass Cloud-GPUs und Cloud TPU-Hardware auf Daten warten müssen.
  • aiml-checkpointing: optimiert die Leistung für durchsatzstarke Schreibvorgänge an großen Dateien, indem der Zeitaufwand zum Speichern von Prüfpunkten mit mehreren Gigabyte stark verkürzt wird und Trainingspausen minimiert werden.
  • aiml-serving: optimiert die Leistung für die Bereitstellung von Arbeitslasten durch einen verbesserten Datenzugriff und die Anwendung von Caching-Mechanismen.
""

Nach oben