File di configurazione FUSE di Cloud Storage

Questa pagina descrive come utilizzare un file di configurazione di Cloud Storage FUSE per configurare il comportamento di Cloud Storage FUSE in modo persistente. Per utilizzare di configurazione del file, specifica il percorso del file --config-file come parte del comando mount.

Il file di configurazione è un file YAML che utilizza il seguente formato e campi. Alcuni dei campi possono essere specificati anche utilizzando le opzioni della riga di comando.

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

Campi di configurazione

La tabella seguente descrive i campi che puoi specificare nella configurazione . Se non diversamente indicato, tutti i campi sono facoltativi.

Campo Descrizione
app-name Il nome dell'applicazione del montaggio.
create-empty-file Un valore booleano che specifica se creare o meno un file a zero byte in Cloud Storage quando inizi a scrivere su un nuovo file nella del bucket montato. Se questo campo non è specificato, il valore predefinito è false.
file-path Il percorso del file di log in cui verranno scritti i log, specificato come una stringa. Ad esempio, /var/log. Se questo campo non è specificato, i log vengono inoltrati a stdout quando Cloud Storage FUSE viene eseguito in modalità primo piano e ai log syslog quando Cloud Storage FUSE viene eseguito in modalità in background.
format Il formato in cui vengono generati i log, espresso come enum. I valori sono text o json. Se questo campo è non specificato, il valore predefinito è json.
severity

La gravità dei log che vuoi che vengano generati da Cloud Storage FUSE, espressa come un'enumerazione. I livelli di gravità sono ordinati dalla gravità più bassa alla gravità più alta:

  • trace
  • debug
  • info
  • warning
  • error

Quando specifichi un livello di gravità, Cloud Storage FUSE genera log con gravità uguale o superiore. Ad esempio, se specifichi warning, Cloud Storage FUSE genera i log per avvisi ed errori. Puoi anche specificare off per disattivare tutto il logging. Se uno di anche le tre opzioni seguenti sono specificate nell'ambito il livello di gravità viene impostato automaticamente su trace:

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

Se questo campo non è specificato, il valore predefinito è info.

max-file-size-mb La dimensione massima in megabyte (MB) che i file di log possono raggiungere prima di essere ruotato. Il valore minimo è 1. Se questo campo non è specificato, il valore predefinito è 512.
backup-file-count Il numero massimo di file di log ruotati da conservare, esclusi i file attivi in cui vengono scritti i log. Quando il valore è impostato su 0, i file di log ruotati vengono conservati. Se questo campo non è specificato, il valore il valore predefinito è 10.
compress Un valore booleano che specifica se i file di log ruotati vengono compressi utilizzando gzip. Se questo campo non è specificato, il valore predefinito è true.
max-size-mb

La dimensione massima in MiB che la cache dei file può utilizzare. Se presente, max-size-mb attiva la memorizzazione nella cache dei file in Cloud Storage FUSE ed è utile se vuoi limitare la capacità totale che la cache di Cloud Storage FUSE può utilizzare all'interno della directory montata.

  • Specifica -1 per utilizzare l'intera capacità disponibile della cache nella directory specificata per cache-dir.
  • Specifica 0 per disattivare il file .

Se questo campo non è specificato, il valore predefinito è -1.

cache-file-for-range-read

Un valore booleano che determina se l'oggetto completo deve essere scaricato in modo asincrono e archiviato nella directory della cache FUSE di Cloud Storage quando la prima lettura viene eseguita da un offset diverso da zero. Questo valore deve essere impostato su true se prevedi di eseguire più letture casuali o parziali. Se questo campo non è specificato, il valore predefinito è false.

Tieni presente che se esegui una lettura parziale a partire dall'offset 0, Cloud Storage FUSE scarica e memorizza nella cache in modo asincrono sempre l'oggetto completo.

enable-parallel-downloads

Accelera le letture di file di grandi dimensioni utilizzando la directory della cache dei file come buffer di prefetch utilizzando più worker per scaricare file di grandi dimensioni in parallelo. Il valore predefinito è false.


Per utilizzare i download paralleli, devi abilitare la memorizzazione nella cache dei file. Per scoprire di più sui download paralleli e configurare le relative proprietà di supporto, consulta Migliorare il rendimento della lettura utilizzando i download paralleli.
parallel-downloads-per-file

Specifica il numero massimo di goroutine da generare per file per scaricare l'oggetto da Cloud Storage nella cache dei file. Il valore predefinito è 16.

max-parallel-downloads

Il numero massimo di goroutine che possono essere generate a ogni dato per tutti i job di download dei file. Il valore predefinito è il doppio del numero di core CPU della macchina. Per aggirare un limite, specifica un valore di -1.

download-chunk-size-mb

Specifica le dimensioni di ogni richiesta di lettura in MiB che ogni goroutine a Cloud Storage quando scarica l'oggetto nella cache del file. Il valore predefinito è 50.

enable-nonexistent-type-cache Crea una voce della cache dei tipi con il tipo NonexistentType se un file non viene trovato in Cloud Storage. Se il file viene creato in Cloud Storage, ma la voce NonexistentType il file viene memorizzato nella cache, Cloud Storage FUSE non potrà richiederlo finché la voce NonexistentType viene rimossa dalla cache dei tipi. Il valore predefinito è false.
stat-cache-max-size-mb

La dimensione massima in MiB che la cache delle statistiche può utilizzare. Cache delle statistiche viene sempre conservata interamente in memoria.

  • Specifica 32 se il carico di lavoro prevede fino a 20.000 file. Se il carico di lavoro supera i 20.000 file, aumenta il dimensione per valori di 10 per ogni 6000 file aggiuntivi, che è un di circa 1500 byte per file.
  • Specifica -1 per consentire alla cache delle statistiche di utilizzare quanta memoria necessaria.
  • Specifica 0 per disattivare la cache delle statistiche.

Se questo campo non è specificato, il valore predefinito è 32.

ttl-secs

Definisce la durata (TTL) delle voci di metadati memorizzati nella cache, espressa in pochi secondi.

  • Specifica -1 per bypassare una scadenza TTL e gestire il valore dalla cache ogni volta che è disponibile.
  • Specifica 0 per assicurarti che venga letto il file più aggiornato. L'utilizzo di questo valore invia una chiamata Get metadata per assicurare che l'oggetto del file nella cache corrisponda a quanto archiviato di archiviazione ideale in Cloud Storage. Per scoprire di più, consulta la pagina sulla configurazione dell'invalidazione della cache.

Se questo campo non è specificato, il valore predefinito è 60s.

type-cache-max-size-mb

La dimensione massima in MiB per directory che la cache dei tipi può utilizzare. La cache dei tipi è sempre interamente conservata in memoria.

  • Specifica 4 se il numero massimo di file all'interno di un singolo del bucket che stai montando contiene al massimo 20.000 file. Se il numero massimo di file all'interno di una singola directory il montaggio contiene più di 20.000 file, aumenta il valore di 1 ogni 5000 file, ovvero una media di circa 200 byte per file.
  • Specifica -1 per consentire alla cache dei tipi di utilizzare la memoria necessaria.
  • Specifica 0 per disattivare la cache dei tipi.

Se questo campo non è specificato, il valore predefinito è 4.

cache-dir Specifica la directory per l'archiviazione dei dati della cache dei file. Questo campo deve essere specificato per attivare la memorizzazione nella cache dei file.
only-dir Monta solo una directory specifica all'interno di un bucket.
anonymous-access Disabilita l'autenticazione per le richieste. Imposta questo campo se utilizzi una un endpoint personalizzato che non supporta l'autenticazione o che utilizzi Cloud Storage FUSE per montare i bucket pubblici. Il valore predefinito è false.
key-file Specifica un percorso assoluto al file della chiave JSON delle credenziali per di autenticazione delle richieste a Cloud Storage. Per impostazione predefinita, Cloud Storage FUSE utilizza le Credenziali predefinite dell'applicazione per autenticare le richieste.
reuse-token-from-url Specifica che deve essere utilizzato il token acquisito da token-url. Il valore predefinito è true.
token-url Specifica un URL per ricevere un token di accesso quando key-file assente.
billing-project Specifica un progetto da utilizzare per la fatturazione quando il bucket montato è o rifiutano le richieste in base all'organizzazione a cui si accede. Questo flag è spesso richiesto durante il montaggio di un bucket abilitato con Pagamenti a carico del richiedente. Il progetto predefinito è nessuno.
client-protocol Specifica il protocollo utilizzato per comunicare con il backend Cloud Storage. Il valore può essere http1 per HTTP/1.1 o http2 per HTTP/2. Il valore predefinito è http1.
custom-endpoint Specifica un endpoint personalizzato alternativo per il recupero dei dati. L'endpoint personalizzato deve supportare le risorse e le operazioni equivalenti, l'endpoint JSON di Cloud Storage, https://storage.googleapis.com/storage/v1. Se non viene specificato un endpoint personalizzato, Cloud Storage FUSE utilizza l'endpoint globale dell'API JSON di Cloud Storage, https://storage.googleapis.com/storage/v1. Se l'autenticazione non è supportata sull'endpoint personalizzato specificato, imposta il flag anonymous-access a true per eviti l'autenticazione.
http-client-timeout Specifica per quanto tempo il client HTTP di Cloud Storage FUSE può attendere per ricevere una risposta dal server prima del timeout. Il valore predefinito è 0s, che indica che non è impostato alcun timeout.
limit-bytes-per-sec Specifica il limite di larghezza di banda al quale Cloud Storage FUSE può leggere i dati da Cloud Storage, misurati in una finestra di 30 secondi. Il valore predefinito il valore limite è "-1" e non specifica alcun limite.
limit-ops-per-sec Specifica un limite per le operazioni eseguite al secondo, misurato su un intervallo di 30 secondi. Il valore limite predefinito è "-1", che non specifica alcun limite.
max-conns-per-host Specifica il numero massimo di connessioni TCP consentite per server. Questa impostazione diventa valida quando client-protocol è impostato su http1. Il valore predefinito è 0 e specifica che non c'è limite alle connessioni TCP, ad eccezione delle limitazioni impostate dal specifiche della macchina virtuale.
max-idle-conns-per-host Specifica il numero massimo di connessioni inattive consentite per server. Il valore predefinito è 100.
sequential-read-size-mb Specifica la dimensione del blocco dei dati da scaricare Cloud Storage, in megabyte (MB). Il valore predefinito è 200.
implicit-dirs

Include implicitamente cartelle e cartelle gestite.

Consulta le documentazione relativa a file e directory in GitHub per ulteriori informazioni.
kernel-list-cache-ttl-secs Consente di attivare list cache ed definisce la durata (TTL) in secondi di voci dell'elenco memorizzate nella cache. L'allocazione della memoria per la cache dell'elenco è controllata dal kernel in base di memoria disponibile. Il valore predefinito è 0 che disabilita la memorizzazione nella cache dell'elenco.

Per impostare il campo kernel-list-cache-ttl-secs, specifica un valore positivo in secondi per mantenere la risposta dell'elenco di directory nella cache della pagina del kernel. Per ignorare la scadenza della voce e restituire sempre la risposta dell'elenco dalla cache quando è disponibile, specifica un valore di -1.
ignore-interrupts Indica a Cloud Storage FUSE di ignorare gli indicatori di interruzione di sistema, come SIGINT attivato da Control+C. In questo modo, gli indicatori non interromperanno le operazioni in corso. I valori sono true o false. Il valore predefinito è true.
dir-mode Bit di autorizzazioni per le directory, in ottale. Il valore predefinito è "755".
file-mode Specifica i bit delle autorizzazioni per i file, in ottale. Il valore predefinito è "644".
fuse-options Specifica opzioni di montaggio aggiuntive specifiche del sistema.
gid Specifica il proprietario dell'identificatore del gruppo (GID) di tutti gli inode. Il valore predefinito del GID è -1.
rename-dir-limit Consente di rinominare le directory contenenti meno discendenti rispetto alla limite specificato. Il valore limite predefinito è 0.
temp-dir Specifica un percorso alla directory temporanea in cui vengono messe in scena le scritture prima di essere caricate su Cloud Storage. Il valore predefinito è predefinito di sistema, ad esempio "/tmp".
uid Specifica il proprietario dell'identificatore utente (UID) di tutti gli inode. Il valore predefinito Il valore dell'UID è -1.
foreground Esegue il comando gcsfuse in primo piano. Il valore predefinito è false.
max-retry-sleep Specifica la durata massima in cui Cloud Storage FUSE può rimanere inattivo in un loop di ripetizione con backoff esponenziale. Una volta la durata del backoff supera la durata massima specificata, il nuovo tentativo va avanti con la durata massima specificata. Il valore limite predefinito è 30s (30 secondi).
multiplier Specifica il backoff esponenziale tra i tentativi, dove il valore è il moltiplicatore per il tempo di attesa successivo in base al tempo di attesa precedente. Il valore predefinito è "2".
stackdriver-export-interval Esporta le metriche in Cloud Monitoring con l'intervallo specificato. Il valore predefinito è 0s (0 secondi), che specifica nessuna esportazione.
log-mutex Stampa i messaggi di debug quando un mutex viene tenuto troppo a lungo. Se questa opzione è specificato, il livello di gravità dei log viene impostato automaticamente su trace, che include log di traccia, log di debug, log delle informazioni, log degli avvisi ed errori. Il valore predefinito è false.
exit-on-invariant-violation Esce dal programma quando vengono rilevate violazioni delle varianti interne. Il valore predefinito è false.