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:
Wenn Sie einen Schweregrad angeben, generiert Cloud Storage FUSE Logs mit gleichem oder höherem Schweregrad. Wenn Sie beispielsweise Die Wichtigkeitsstufe wird automatisch auf
Wenn dieses Feld nicht angegeben ist, wird standardmäßig
Hinweis:Wenn Sie die Schweregrade |
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
Wenn dieses Feld nicht angegeben ist, wird standardmäßig |
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 Wenn Sie einen Teillesevorgang ab dem Offset |
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 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 |
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 |
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 |
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.
Wenn dieses Feld nicht angegeben ist, wird standardmäßig |
ttl-secs |
Definiert die Gültigkeitsdauer (TTL) von im Cache gespeicherten Metadateneinträgen in Sekunden.
Wenn dieses Feld nicht angegeben ist, wird standardmäßig |
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.
Wenn dieses Feld nicht angegeben ist, wird standardmäßig |
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 . |