Cloud Storage FUSE-Konfigurationsdatei

Auf dieser Seite wird beschrieben, wie Sie mit einer Cloud Storage FUSE-Konfigurationsdatei das Verhalten von Cloud Storage FUSE dauerhaft konfigurieren. Wenn Sie die Konfigurationsdatei verwenden möchten, geben Sie den Pfad zur Konfigurationsdatei im Flag --config-file als Teil des Befehls zum Bereitstellen an.

Die Konfigurationsdatei ist eine YAML-Datei im folgenden Format und in den folgenden Feldern. Einige Felder können auch mithilfe von Befehlszeilenoptionen angegeben werden.

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
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
cache-dir: "CACHE_DIR"
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-sleep: MAX_RETRY_SLEEP
  multiplier: "MULTIPLIER"
metrics:
  stackdriver-export-interval: STACKDRIVER_EXPORT_INTERVAL
debug:
  log-mutex: LOG_MUTEX
  exit-on-invariant-violation: EXIT_ON_INVARIANT_VIOLATION
write:
  enable-streaming-writes: STREAMING_WRITES

Felder für die Konfiguration

In der folgenden Tabelle werden die Felder beschrieben, die Sie in Ihrer Konfigurationsdatei angeben können. Sofern nicht anders angegeben, sind alle Felder optional.

Feld Beschreibung Gültiger Wert Standardwert
app-name Der Anwendungsname der Bereitstellung. Stringwert, z. B. "my-bucket-mount". ""
file-path Der Pfad zur Logdatei, in die Protokolle geschrieben werden. Wenn dieses Feld nicht angegeben ist, werden die Protokolle 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". ""
format Gibt das Format der Protokolldatei an.
  • text
  • json
json
severity

Der Schweregrad, für den Cloud Storage FUSE Protokolle generieren soll. Die Schweregrade werden vom niedrigsten zum höchsten Schweregrad sortiert. Wenn Sie beispielsweise warning angeben, generiert Cloud Storage FUSE Logs für Warnungen und Fehler. Im Allgemeinen empfehlen wir die Verwendung der Schwerestufe info.

  • trace
  • debug
  • info
  • warning
  • error
  • off: Deaktiviert das gesamte Logging.
info
max-file-size-mb Die maximale Größe in Megabyte (MB), die Logdateien erreichen können, bevor sie rotiert werden. Integer. Der Mindestwert beträgt 1. 512
backup-file-count Die maximale Anzahl der rotierten Logdateien, die beibehalten werden sollen, ausgenommen die aktive Datei, in die Logs geschrieben werden.
  • Ganzzahl
  • 0: Alle rotierten Protokolldateien werden beibehalten.
10
compress Gibt an, ob rotierte Logdateien mit gzip komprimiert werden. Boolescher Wert: true, false true
max-size-mb

Die maximale Größe in MiB, die der Dateicache nutzen kann. Wenn max-size-mb vorhanden ist, wird das Datei-Caching in Cloud Storage FUSE aktiviert. Das ist nützlich, wenn Sie die Gesamtkapazität begrenzen möchten, die der Cloud Storage FUSE-Cache im bereitgestellten Verzeichnis verwenden kann.

  • Ganzzahl
  • -1: Gibt an, dass die gesamte verfügbare Kapazität des Caches im Verzeichnis verwendet werden soll, das Sie für cache-dir angeben.
  • 0: Deaktiviert den Dateicache.
-1
cache-file-for-range-read Bestimmt, ob das vollständige Objekt asynchron heruntergeladen und im Cloud Storage FUSE-Cacheverzeichnis gespeichert werden soll, wenn die erste Leseoperation von einem nicht nullwertigen Offset abgeschlossen wird. Diese Option sollte auf true festgelegt sein, wenn Sie mehrere zufällige oder teilweise Lesevorgänge ausführen möchten.

Hinweis: Wenn Sie einen Teillesevorgang ab dem Offset 0 ausführen, lädt Cloud Storage FUSE das vollständige Objekt asynchron herunter und speichert es im Cache.

Boolescher Wert: true, false false
enable-parallel-downloads

Beschleunigt das Lesen großer Dateien, indem das Dateicache-Verzeichnis als Prefetch-Puffer verwendet wird und große Dateien mithilfe mehrerer Worker parallel heruntergeladen werden. Weitere Informationen zu parallelen Downloads und zur Konfiguration der zugehörigen Eigenschaften finden Sie unter Leseleistung durch parallele Downloads verbessern.

Wenn Sie parallele Downloads verwenden möchten, müssen Sie zuerst das Datei-Caching aktivieren.

Boolescher Wert: true, false false
parallel-downloads-per-file

Gibt die maximale Anzahl von Go-Routines an, die pro Datei erstellt werden, um das Objekt aus Cloud Storage in den Dateicache herunterzuladen.

Ganzzahl 16
max-parallel-downloads Die maximale Anzahl von Goroutinen, die zu einem bestimmten Zeitpunkt für alle Downloadjobs von 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 übergeben oder als false übergeben wird.
  • >0: Es wird kein Oberlimit angegeben. Cloud Storage FUSE begrenzt den Wert intern auf die maximale Anzahl von Go-Routines, die gemäß der Konfiguration Ihres Computers gestartet werden können.
Die doppelte Anzahl der CPU-Kerne auf Ihrem Computer oder 16, je nachdem, was höher ist.
download-chunk-size-mb Gibt die Größe jeder Leseanfrage in MiB an, die jeder Goroutine an Cloud Storage sendet, wenn sie das Objekt in den Dateicache herunterlädt. Ganzzahl 50
enable-nonexistent-type-cache Erstellt einen Typ-Cache-Eintrag mit dem Typ NonexistentType, wenn eine Datei in Cloud Storage nicht gefunden wird. Wenn die Datei in Cloud Storage erstellt wird, der Eintrag NonexistentType für die Datei jedoch im Cache gespeichert wird, kann Cloud Storage FUSE diese Datei erst anfordern, wenn der Eintrag NonexistentType aus dem Typ-Cache entfernt wurde. Boolescher Wert: true, false false
stat-cache-max-size-mb Die maximale Arbeitsspeichergröße, die der Statistik-Cache verwenden kann, in MiB. Der Statistik-Cache wird immer vollständig im Arbeitsspeicher gehalten.
  • Integer. Wir empfehlen Folgendes:
    • 32,wenn Ihre Arbeitslast bis zu 20.000 Dateien umfasst.
    • Wenn Ihre Arbeitslast mehr als 20.000 Dateien enthält, erhöhen Sie die Größe um Werte von 10 MiB pro weitere 6.000 Dateien. Der Statistik-Cache belegt durchschnittlich 1.500 MiB pro Datei.
  • -1: Es wird kein Limit festgelegt. Der Statistik-Cache belegt dann so viel Arbeitsspeicher wie erforderlich.
  • 0: Deaktiviert den Statistik-Cache.
32
negative-ttl-secs

Definiert die Gültigkeitsdauer (TTL) in Sekunden von negativen Statistik-Cache-Einträgen, in denen Ergebnisse für nicht vorhandene Dateien im Cache gespeichert werden.

  • Ganzzahl, die Sekunden darstellt, z. B. 10 (10 Sekunden).
  • 0: Deaktiviert das negative Caching von Statistiken.
  • -1: Ermöglicht unbegrenztes negatives Caching von Status und deaktiviert den TTL-Ablauf.
5
ttl-secs Definiert die Gültigkeitsdauer (TTL) in Sekunden der im Cache gespeicherten Metadateneinträge.
  • Ganzzahl, die Sekunden darstellt, z. B. 30 (30 Sekunden).
  • -1: TTL-Ablauf umgehen und Dateien aus dem Cache bereitstellen, wann immer sie verfügbar sind.
  • 0: Verwenden Sie die aktuellste Datei. Wenn du diesen Wert verwendest, wird ein Get-Metadatenaufruf ausgeführt, um sicherzustellen, dass die Objektgenerierung für die Datei im Cache mit den in Cloud Storage gespeicherten Daten übereinstimmt. Weitere Informationen finden Sie unter Cache-Entwertung konfigurieren.
60
type-cache-max-size-mb Die maximale Größe in MiB pro Verzeichnis, die der Typcache verwenden kann. Der Typ-Cache wird immer vollständig im Arbeitsspeicher gehalten.
  • Integer. Wir empfehlen Folgendes:
    • 4,wenn die maximale Anzahl von Dateien in einem einzelnen Verzeichnis des bereitgestellten Buckets 20.000 Dateien oder weniger beträgt.
    • Wenn die maximale Anzahl von Dateien in einem einzelnen Verzeichnis,das Sie bereitstellen, mehr als 20.000 Dateien enthält,erhöhen Sie den Wert um 1 pro 5.000 Dateien, also durchschnittlich ca. 200 Byte pro Datei.
  • -1: Gibt keine Begrenzung an und lässt den Typ-Cache so viel Arbeitsspeicher wie nötig verwenden.
  • 0: Deaktiviert den Typ-Cache.
4
cache-dir

Gibt das Verzeichnis für das Speichern von Dateicache-Daten an.

Informationen zum Aktivieren des Datei-Cachings finden Sie unter Datei-Caching verwenden.

Ein Pfad, z. B. "/tmp/gcsfuse-cache-path".
only-dir Stellt nur ein bestimmtes Verzeichnis in einem Bucket bereit. Ein Pfad, z. B. "/etc/gcsfuse.yaml".
anonymous-access Deaktiviert die Authentifizierung für Anfragen. Diese Option sollte festgelegt werden, wenn Sie einen benutzerdefinierten Endpunkt verwenden, der keine Authentifizierung unterstützt. Diese Option sollte auch festgelegt werden, wenn Sie Cloud Storage FUSE mit öffentlichen Buckets verwenden. Boolescher Wert: true, false false
key-file Gibt einen absoluten Pfad zur JSON-Schlüsseldatei für Anmeldedaten zur Authentifizierung von Anfragen an Cloud Storage an. Standardmäßig verwendet Cloud Storage FUSE Standardanmeldedaten für Anwendungen zur Authentifizierung von Anfragen. URL Wenn diese Option nicht festgelegt ist, werden die Standardanmeldedaten für Anwendungen verwendet.
reuse-token-from-url Gibt an, ob das von --token-url abgerufene Token wiederverwendet werden soll. Boolescher Wert: true, false true
token-url Gibt eine URL zum Abrufen eines Zugriffstokens an, wenn --key-file nicht vorhanden ist. URL
billing-project Gibt ein Projekt an, das für die Abrechnung verwendet werden soll, wenn auf den bereitgestellten Bucket zugegriffen wird. Diese Option ist häufig erforderlich, wenn Sie einen Bucket bereitstellen, für den Anforderer bezahlt aktiviert ist. Stringwert, der eine Projekt-ID darstellt. ""
client-protocol Gibt das Protokoll an, das für die Kommunikation mit dem Cloud Storage-Backend verwendet wird.
  • http1 für HTTP/1.1
  • http2 für HTTP/2
  • grpc für gRPC
http1
custom-endpoint Gibt einen alternativen benutzerdefinierten Endpunkt zum Abrufen von Daten an. Der benutzerdefinierte Endpunkt muss die entsprechenden Ressourcen und Vorgänge als Cloud Storage-JSON-Endpunkt https://storage.googleapis.com/storage/v1 unterstützen. Wenn kein benutzerdefinierter Endpunkt angegeben ist, nutzt Cloud Storage FUSE den globalen Cloud Storage JSON API-Endpunkt https://storage.googleapis.com/storage/v1. Wenn die Authentifizierung für den angegebenen benutzerdefinierten Endpunkt nicht unterstützt wird, setzen Sie das --anonymous-access-Flag auf true, um die Authentifizierung zu umgehen. Einen Endpunkt, z. B. "http://localhost:443/storage/v1".
http-client-timeout Gibt an, wie lange der Cloud Storage FUSE-HTTP-Client auf die Antwort vom Server warten kann, bevor eine Zeitüberschreitung auftritt. Dauer, z. B. 1h10m10s für 1 Stunde, 10 Minuten und 10 Sekunden. 0s gibt kein Zeitlimit an. 0s, für das kein Timeout angegeben ist
limit-bytes-per-sec Gibt das Bandbreitenlimit an, bei dem Cloud Storage FUSE Daten aus Cloud Storage lesen kann, gemessen über ein 30-Sekunden-Fenster. "-1", was kein Limit festlegt.
limit-ops-per-sec Gibt ein Limit für Vorgänge pro Sekunde an, die über ein 30-Sekunden-Fenster gemessen werden. Gleitkommazahl. -1 gibt kein Limit an. "-1"
max-conns-per-host Gibt die maximal zulässige Anzahl von TCP-Verbindungen pro Server an. Dies wird wirksam, wenn --client-protocol auf http1 festgelegt ist. 0
max-idle-conns-per-host Gibt die maximal zulässige Anzahl inaktiver Verbindungen pro Server an. Dies wird wirksam, wenn --client-protocol auf http1 festgelegt ist. Ganzzahl zwischen 0 und 2147483647. Mit 0 wird kein Limit für TCP-Verbindungen festgelegt. 0
sequential-read-size-mb Gibt die Blockgröße der aus Cloud Storage herunterzuladenden Daten in Megabyte (MB) an. Ganzzahl zwischen 1 und 1024. 200
implicit-dirs Umfasst implizit Ordner und verwaltete Ordner. Weitere Informationen finden Sie in der Dokumentation zu Dateien und Verzeichnissen in GitHub. Boolescher Wert: true, false false
kernel-list-cache-ttl-secs Hiermit wird der Listencache aktiviert und die Gültigkeitsdauer (Time to Live, TTL) in Sekunden für im Cache gespeicherte Listeneinträge definiert. Der Listen-Cache wird im Arbeitsspeicher des Seitencache gespeichert. Dieser wird vom Kernel basierend auf dem verfügbaren Arbeitsspeicher gesteuert.
  • Ganzzahl, die Sekunden angibt, 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 sie verfügbar ist.
0
ignore-interrupts Cloud Storage FUSE wird angewiesen, Systemunterbrechungssignale wie SIGINT zu ignorieren, die von Control+C ausgelöst werden. So wird verhindert, dass Signale laufende Vorgänge beenden. Boolescher Wert: true, false. true
dir-mode Berechtigungs-Bits für Verzeichnisse in Oktal. Ganzzahl zwischen 000 und 777 (einschließlich). "755"
file-mode Gibt Berechtigungs-Bits für Dateien in Oktal an. Ganzzahl zwischen 000 und 777 (einschließlich). "644"
fuse-options Gibt zusätzliche systemspezifische Bereitstellungsoptionen an.
gid Gibt den Gruppen-ID-Inhaber (GID) aller Inodes an.
  • Ganzzahl, die eine GID darstellt.
  • -1: Die GID des Anrufers wird verwendet.
-1
rename-dir-limit Ermöglicht das Umbenennen von Verzeichnissen, die weniger Nachfolgerelemente als das angegebene Limit enthalten. Ganzzahl zwischen 0 und 2147483647. 0
temp-dir Gibt einen Pfad zum temporären Verzeichnis an, in dem Schreibvorgänge vor dem Hochladen in Cloud Storage bereitgestellt werden. Ein Stringpfad, z. B. "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
uid Gibt den Inhaber der User Identifier (UID) aller Inodes an.
  • Ganzzahl, die eine UID darstellt.
  • -1: Die UID des Anrufers wird verwendet.
-1
foreground Führt den Befehl gcsfuse im Vordergrund aus. Boolescher Wert: true, false false
max-retry-sleep Gibt die maximale Dauer an, die Cloud Storage FUSE in einer Wiederholungsschleife mit exponentiellem Backoff warten darf. Wenn die Backoff-Dauer die angegebene maximale Dauer überschreitet, wird der Wiederholungsversuch mit der angegebenen maximalen Dauer fortgesetzt. Dauer, z. B. 1h5m50s (1 Stunde, 5 Minuten und 50 Sekunden) oder 60s (60 Sekunden) 30s
multiplier Gibt den Multiplikator für den exponentiellen Backoff zwischen aufeinanderfolgenden Wiederholungsversuchen an. Gleitkommazahl "2"
stackdriver-export-interval Exportiert Messwerte nach Stackdriver mit dem angegebenen Intervall. Dauer, z. B. 1h5m50s (1 Stunde, 5 Minuten und 50 Sekunden) 0s gibt an, dass kein Export erfolgt. 0s
log-mutex Gibt Debug-Nachrichten aus, wenn ein Mutex zu lange gehalten wird. Wenn diese Option angegeben ist, wird der Schweregrad der Logs automatisch auf trace gesetzt, einschließlich Trace-Logs, Debug-Logs, Info-Logs, Warn-Logs und Fehler-Logs. Boolescher Wert: true, false. false
exit-on-invariant-violation Beendet das Programm, wenn interne Variantenverstöße erkannt werden. Boolescher Wert: true, false. false
enable-streaming-writes Steuert den Schreibpfadfluss so, dass Daten beim Schreiben direkt in Cloud Storage hochgeladen werden, anstatt die Schreibvorgänge lokal vollständig zu steuern und bei close() oder fsync() hochzuladen. Weitere Informationen zu Streaming-Schreiben finden Sie in der GitHub-Dokumentation zu Cloud Storage FUSE. Boolescher Wert: true, false. false