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"
write:
  create-empty-file: CREATE_EMPTY_FILE
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
  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

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
app-name Der Anwendungsname der Bereitstellung.
create-empty-file Ein boolescher Wert, mit dem angegeben wird, ob beim Erstellen einer neuen Datei in dem bereitgestellten Bucket eine Null-Byte-Datei in Cloud Storage erstellt werden soll. Wenn dieses Feld nicht angegeben ist, wird standardmäßig false verwendet.
file-path Der Pfad zur Logdatei, in die Logs geschrieben werden. Diese werden als String angegeben. Beispiel: /var/log. 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.
format Das Format, in dem Logs generiert werden, ausgedrückt als Enum. Mögliche Werte sind text und json. Wenn dieses Feld nicht angegeben ist, wird standardmäßig json verwendet.
severity

Der Schweregrad der Logs, die Cloud Storage FUSE generieren soll, ausgedrückt als Enum. Die Schweregrade werden vom niedrigsten zum höchsten Schweregrad sortiert:

  • trace
  • debug
  • info
  • warning
  • error

Wenn Sie einen Schweregrad angeben, generiert Cloud Storage FUSE Logs mit gleichem oder höherem Schweregrad. Wenn Sie beispielsweise warning angeben, generiert Cloud Storage FUSE Logs für Warnungen und Fehler. Sie können auch off angeben, um das gesamte Logging zu deaktivieren. Im Allgemeinen empfehlen wir die Verwendung des Schweregrads info.

Die Wichtigkeitsstufe wird automatisch auf trace gesetzt, wenn eine der folgenden Optionen als Teil des Befehls angegeben ist:

  • --debug_fuse
  • --debug_gcs
  • --debug_mutex

Wenn dieses Feld nicht angegeben ist, wird standardmäßig info verwendet.

Hinweis:Wenn Sie die Schweregrade trace oder debug verwenden, während das Datei-Caching aktiviert ist, kann dies aufgrund des Logging-Overheads zu einer Leistungsminderung führen. Diese Schweregrade sollten daher nur vorübergehend oder bei der Fehlerbehebung verwendet werden.

max-file-size-mb Die maximale Größe in Megabyte (MB), die Logdateien erreichen können, bevor sie rotiert werden. Der Mindestwert beträgt 1. Wenn dieses Feld nicht angegeben ist, wird standardmäßig 512 verwendet.
backup-file-count Die maximale Anzahl der rotierten Logdateien, die beibehalten werden sollen, ausgenommen die aktive Datei, in die Logs geschrieben werden. Wenn der Wert auf 0 festgelegt ist, werden alle gewechselten Protokolldateien beibehalten. Wenn dieses Feld nicht angegeben ist, wird standardmäßig 10 verwendet.
compress Ein boolescher Wert, der angibt, ob gewechselte Protokolldateien mit gzip komprimiert werden. Wenn dieses Feld nicht angegeben ist, wird standardmäßig true verwendet.
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.

  • Geben Sie -1 an, um die gesamte verfügbare Kapazität des Caches im Verzeichnis zu verwenden, das Sie für cache-dir angeben.
  • Geben Sie 0 an, um den Datei-Cache zu deaktivieren.

Wenn dieses Feld nicht angegeben ist, wird standardmäßig -1 verwendet.

cache-file-for-range-read

Ein boolescher Wert, der angibt, ob das vollständige Objekt asynchron heruntergeladen und im Cloud Storage FUSE-Cache-Verzeichnis gespeichert werden soll, wenn die erste Leseoperation von einem nicht nullwertigen Offset aus erfolgt. Dieser Wert sollte auf true festgelegt werden, wenn Sie mehrere zufällige oder teilweise Lesevorgänge ausführen möchten. Wenn dieses Feld nicht angegeben ist, wird standardmäßig false verwendet.

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

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. Der Standardwert ist false.


Wenn Sie parallele Downloads verwenden möchten, müssen Sie das Datei-Caching aktivieren. Weitere Informationen zu parallelen Downloads und zur Konfiguration der zugehörigen Eigenschaften finden Sie unter Leseleistung durch parallele Downloads verbessern.
parallel-downloads-per-file

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

max-parallel-downloads

Die maximale Anzahl von Goroutinen, die zu einem bestimmten Zeitpunkt für alle Downloadjobs von Dateien erstellt werden können. Der Standardwert ist doppelt so hoch wie die Anzahl der CPU-Kerne auf der Maschine. Wenn Sie ein Limit umgehen möchten, geben Sie den Wert -1 an.

download-chunk-size-mb

Gibt die Größe jeder Leseanfrage in MiB an, die jede Goroutine an Cloud Storage sendet, wenn sie das Objekt in den Dateicache herunterlädt. Der Standardwert ist 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. Der Standardwert ist false.
stat-cache-max-size-mb

Die maximale Größe in MiB, die der Statistik-Cache verwenden kann. Der Statistik-Cache wird immer vollständig im Arbeitsspeicher gehalten.

  • Geben Sie 32 an,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 10 MiB pro weitere 6.000 Dateien, also durchschnittlich etwa 1.500 Byte pro Datei.
  • Geben Sie -1 an, damit der Statistik-Cache so viel Arbeitsspeicher wie erforderlich verwenden kann.
  • Geben Sie 0 an, um den Statistik-Cache zu deaktivieren.

Wenn dieses Feld nicht angegeben ist, wird standardmäßig 32 verwendet.

ttl-secs

Definiert die Gültigkeitsdauer (TTL) von im Cache gespeicherten Metadateneinträgen in Sekunden.

  • Geben Sie -1 an, um einen TTL-Ablauf zu umgehen und die Datei aus dem Cache bereitzustellen, wann immer sie verfügbar ist.
  • Geben Sie 0 an, damit die aktuelle Datei gelesen wird. Wenn du diesen Wert verwendest, wird ein Metadatenabruf 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.

Wenn dieses Feld nicht angegeben ist, wird standardmäßig 60s verwendet.

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.

  • Geben Sie 4 an,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.
  • Geben Sie -1 an, damit der Typ-Cache so viel Arbeitsspeicher wie erforderlich verwenden kann.
  • Geben Sie 0 an, um den Typ-Cache zu deaktivieren.

Wenn dieses Feld nicht angegeben ist, wird standardmäßig 4 verwendet.

cache-dir Gibt das Verzeichnis für das Speichern von Dateicache-Daten an. Dieses Feld muss angegeben werden, um das Datei-Caching zu aktivieren.
only-dir Stellt nur ein bestimmtes Verzeichnis in einem Bucket bereit.
anonymous-access Deaktiviert die Authentifizierung für Anfragen. Legen Sie dieses Feld fest, wenn Sie ein benutzerdefinierten Endpunkt nutzen, der keine Authentifizierung unterstützt, oder wenn Sie Cloud Storage FUSE zum Bereitstellen öffentlicher Buckets verwenden. Der Standardwert ist 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.
reuse-token-from-url Gibt an, dass das von token-url abgerufene Token verwendet werden soll. Der Standardwert ist true.
token-url Gibt eine URL zum Abrufen eines Zugriffstokens an, wenn key-file nicht vorhanden ist.
billing-project Gibt ein Projekt an, das für die Abrechnung verwendet werden soll, wenn auf den bereitgestellten Bucket zugegriffen wird. Dieses Flag ist häufig erforderlich, wenn Sie einen Bucket bereitstellen, für den Anforderer bezahlt aktiviert ist. Das Standardprojekt ist „kein“.
client-protocol Gibt das Protokoll an, das für die Kommunikation mit dem Cloud Storage-Backend verwendet wird. Der Wert kann http1 für HTTP/1.1 oder http2 für HTTP/2 sein. Der Standardwert ist 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 Flag anonymous-access auf true, um die Authentifizierung zu umgehen.
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. Der Standardwert ist 0s, d. h. kein Zeitlimit.
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. Der Standardlimitwert ist "-1", d. h. kein Limit.
limit-ops-per-sec Gibt ein Limit für Vorgänge pro Sekunde an, die über ein 30-Sekunden-Fenster gemessen werden. Der Standardlimitwert ist "-1", d. h. kein Limit angegeben.
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. Der Standardwert ist 0. Das bedeutet, dass es keine Einschränkungen für TCP-Verbindungen gibt, mit Ausnahme der Einschränkungen, die durch die Spezifikationen Ihres Computers festgelegt sind.
max-idle-conns-per-host Gibt die maximal zulässige Anzahl inaktiver Verbindungen pro Server an. Der Standardwert ist 100.
sequential-read-size-mb Gibt die Blockgröße der aus Cloud Storage herunterzuladenden Daten in Megabyte (MB) an. Der Standardwert ist 200.
implicit-dirs

Umfasst implizit Ordner und verwaltete Ordner.

Weitere Informationen finden Sie in der Dokumentation zu Dateien und Verzeichnissen in GitHub.
kernel-list-cache-ttl-secs Hiermit wird der Listencache aktiviert und die Gültigkeitsdauer (TTL) in Sekunden für im Cache gespeicherte Listeneinträge definiert. Die Arbeitsspeicherzuweisung für den Listen-Cache wird vom Kernel basierend auf verfügbarer Arbeitsspeicher gesteuert. Der Standardwert ist 0, wodurch das Listen-Caching deaktiviert wird.

Um das Feld kernel-list-cache-ttl-secs festzulegen, geben Sie positiver Wert in Sekunden an, damit die Verzeichnislistenantwort im im Seiten-Cache des Kernels bleibt. Um den Ablauf von Einträgen zu umgehen und immer die Listenaantwort aus dem Cache zurückzugeben, wenn sie verfügbar ist, geben Sie den Wert -1 ein.
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. Mögliche Werte sind true und false. Der Standardwert ist true.
dir-mode Berechtigungs-Bits für Verzeichnisse in Oktal. Der Standardwert ist "755".
file-mode Gibt Berechtigungs-Bits für Dateien in Oktal an. Der Standardwert ist "644".
fuse-options Gibt zusätzliche systemspezifische Bereitstellungsoptionen an.
gid Gibt den Gruppen-ID-Inhaber (GID) aller Inodes an. Der GID-Standardwert ist -1.
rename-dir-limit Ermöglicht das Umbenennen von Verzeichnissen, die weniger Nachfolgerelemente als das angegebene Limit enthalten. Der Standardwert ist 0.
temp-dir Gibt einen Pfad zum temporären Verzeichnis an, in dem Schreibvorgänge vor dem Hochladen in Cloud Storage bereitgestellt werden. Der Standardwert ist Ihr Systemstandard, z. B. "/tmp".
uid Gibt den Inhaber der User Identifier (UID) aller Inodes an. Der UID-Standardwert ist -1.
foreground Führt den Befehl gcsfuse im Vordergrund aus. Der Standardwert ist 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. Der Standardlimitwert ist 30s (30 Sekunden).
multiplier Gibt den exponentiellen Backoff zwischen den Wiederholungen an. Der Wert ist der Multiplikator für die nachfolgende Wartezeit basierend auf der vorherigen Wartezeit. Der Standardwert ist "2".
stackdriver-export-interval Exportiert Messwerte mit dem angegebenen Intervall nach Cloud Monitoring. Der Standardwert ist 0s (0 Sekunden). Damit wird kein Export angegeben.
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. Der Standardwert ist false.
exit-on-invariant-violation Beendet das Programm, wenn interne Variantenverstöße erkannt werden. Der Standardwert ist false.