File di configurazione Cloud Storage FUSE

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

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

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

Campi di configurazione

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

Campo Descrizione Valore valido Valore predefinito
app-name Il nome dell'applicazione del montaggio. Valore stringa, ad esempio: "my-bucket-mount". ""
file-path Il percorso del file di log in cui verranno scritti i log. Se questo campo non è specificato, i log vengono inoltrati a stdout quando Cloud Storage FUSE viene eseguito in modalità primo piano e a stdout quando Cloud Storage FUSE viene eseguito in modalità in background.syslogs Valore stringa, ad esempio: "/var/log". ""
format Specifica il formato del file di log.
  • text
  • json
json
severity

Il livello di gravità per cui vuoi che Cloud Storage FUSE generi log. I livelli di gravità sono ordinati dalla gravità più bassa alla gravità più alta. Ad esempio, quando specifichi warning, Cloud Storage FUSE genera log per avvisi ed errori. In genere, consigliamo di utilizzare il livello di gravità info.

  • trace
  • debug
  • info
  • warning
  • error
  • off: disattiva tutto il logging.
info
max-file-size-mb La dimensione massima in megabyte (MB) che i file di log possono raggiungere prima di essere girati. Numero intero. Il valore minimo è 1. 512
backup-file-count Il numero massimo di file di log sottoposti a rotazione da conservare, escluso il file attivo su cui vengono scritti i log.
  • Numero intero
  • 0: vengono conservati tutti i file di log ruotati
10
compress Specifica se i file log ruotati vengono compressi utilizzando gzip. Valore booleano: true, false 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.

  • Numero intero
  • -1: specifica l'utilizzo dell'intera capacità disponibile della cache nella directory specificata per cache-dir.
  • 0: disattiva la cache dei file.
-1
cache-file-for-range-read Determina se l'oggetto completo deve essere scaricato in modo asincrono e archiviato nella directory della cache FUSE di Cloud Storage quando viene completata la prima lettura da un offset diverso da zero. Questa opzione deve essere impostata su true se prevedi di eseguire più letture casuali o letture parziali.

Nota: se esegui una lettura parziale a partire dall'offset0, Cloud Storage FUSE scarica e memorizza nella cache in modo asincrono l'oggetto completo.

Valore booleano: true, false false
enable-parallel-downloads

Accelera le letture di file di grandi dimensioni utilizzando la directory della cache dei file come buffer di prefetch con più worker per scaricare file di grandi dimensioni in parallelo. Per scoprire di più sui download paralleli e configurare le relative proprietà di supporto, consulta Migliorare il rendimento della lettura utilizzando i download paralleli.

Per utilizzare i download in parallelo, devi prima abilitare la memorizzazione nella cache dei file.

Valore booleano: true, false false
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.

Numero intero 16
max-parallel-downloads Il numero massimo di goroutine che possono essere generate in un determinato momento in tutti i job di download dei file.
  • Numero intero
  • -1: specifica download paralleli illimitati.
  • 0: disattiva i download paralleli. Può essere utilizzato solo se --enable-parallel-downloads non viene passato o viene passato come false.
  • >0: non specifica un limite superiore. Cloud Storage FUSE limita internamente il valore in base al numero massimo di goroutine che possono essere generate specificato dalla configurazione della macchina.
Il doppio del numero di core della CPU della tua macchina o 16, a seconda del valore più alto.
download-chunk-size-mb Specifica le dimensioni in MiB di ogni richiesta di lettura inviata da ogni goroutine a Cloud Storage durante il download dell'oggetto nella cache dei file. Numero intero 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 per il file è memorizzata nella cache, Cloud Storage FUSE non può richiederlo finché la voce NonexistentType non viene rimossa dalla cache dei tipi. Valore booleano: true, false false
stat-cache-max-size-mb La dimensione massima della memoria che la cache delle statistiche può utilizzare, in MiB. La cache delle statistiche viene sempre mantenuta interamente in memoria.
  • Numero intero. Ti consigliamo quanto segue:
    • 32 se il tuo carico di lavoro prevede fino a 20.000 file.
    • Se il tuo carico di lavoro è costituito da più di 20.000 file, aumenta le dimensioni di 10 per ogni 6000 file aggiuntivi, poiché la cache delle statistiche utilizza in media 1500 MiB per file.
  • -1: non imposta alcun limite, in cui la cache delle statistiche utilizza la memoria necessaria.
  • 0: disattiva la cache delle statistiche.
32
negative-ttl-secs

Definisce la durata (TTL) in secondi delle voci della cache delle statistiche negative che memorizzano i risultati per i file inesistenti nella cache.

  • Numero intero che rappresenta i secondi, ad esempio: 10 (10 secondi).
  • 0: disattiva la memorizzazione nella cache delle statistiche negative.
  • -1: consente la memorizzazione nella cache delle statistiche negative illimitata e disattiva la scadenza del TTL.
5
ttl-secs Definisce la durata (TTL) in secondi delle voci dei metadati memorizzati nella cache.
  • Numero intero che rappresenta i secondi, ad esempio: 30 (30 secondi).
  • -1: ignora la scadenza del TTL e pubblica i file dalla cache ogni volta che sono disponibili.
  • 0: utilizza il file più aggiornato. L'utilizzo di questo valore comporta una chiamata ai metadati Get per assicurarsi che la generazione dell'oggetto per il file nella cache corrisponda a quanto archiviato in Cloud Storage. Per scoprire di più, consulta Configurare l'invalidazione della cache.
60
type-cache-max-size-mb La dimensione massima in MiB per directory che la cache dei tipi può utilizzare. La cache dei tipi viene sempre mantenuta interamente in memoria.
  • Numero intero. Ti consigliamo quanto segue:
    • 4 se il numero massimo di file all'interno di un'unica directory del bucket che stai montando contiene al massimo 20.000 file.
    • Se il numero massimo di file all'interno di una singola directory che stai montando contiene più di 20.000 file, aumenta il valore di 1 per ogni 5000 file, ovvero in media circa 200 byte per file.
  • -1: non specifica alcun limite e consente alla cache dei tipi di utilizzare tutta la memoria necessaria.
  • 0: disattiva la cache dei tipi.
4
cache-dir

Specifica la directory per l'archiviazione dei dati della cache dei file.

Per scoprire come attivare la memorizzazione nella cache dei file, consulta Utilizzare la memorizzazione nella cache dei file.

Un percorso, ad esempio: "/tmp/gcsfuse-cache-path".
only-dir Monta solo una directory specifica all'interno di un bucket. Un percorso, ad esempio: "/etc/gcsfuse.yaml".
anonymous-access Disattiva l'autenticazione per le richieste. Questa opzione deve essere impostata se utilizzi un endpoint personalizzato che non supporta l'autenticazione. Questa opzione deve essere impostata anche se utilizzi Cloud Storage FUSE con bucket pubblici. Valore booleano: true, false false
key-file Specifica un percorso assoluto al file della chiave JSON delle credenziali per autenticare le richieste a Cloud Storage. Per impostazione predefinita, Cloud Storage FUSE utilizza le Credenziali predefinite dell'applicazione per autenticare le richieste. Un URL. Se questa opzione non è impostata, vengono utilizzate le credenziali predefinite dell'applicazione.
reuse-token-from-url Specifica se riutilizzare il token acquisito da --token-url. Valore booleano: true, false true
token-url Specifica un URL per ottenere un token di accesso quando --key-file non è presente. Un URL.
billing-project Specifica un progetto da utilizzare per la fatturazione quando si accede al bucket montato. Questa opzione è spesso obbligatoria quando si monta un bucket abilitato con pagamenti a carico del richiedente. Valore di stringa che rappresenta un "ID progetto". ""
client-protocol Specifica il protocollo utilizzato per la comunicazione con il backend Cloud Storage.
  • http1 per HTTP/1.1
  • http2 per HTTP/2
  • grpc per gRPC
http1
custom-endpoint Specifica un endpoint personalizzato alternativo per il recupero dei dati. L'endpoint personalizzato deve supportare le risorse e le operazioni equivalenti dell'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 Cloud Storage,https://storage.googleapis.com/storage/v1. Se l'autenticazione non è supportata nell'endpoint personalizzato specificato, imposta il flag --anonymous-access su true per ignorare l'autenticazione. Un endpoint, ad esempio: "http://localhost:443/storage/v1".
http-client-timeout Specifica per quanto tempo il client HTTP FUSE di Cloud Storage può attendere una risposta dal server prima del timeout. Durata, ad esempio: 1h10m10s per 1 ora, 10 minuti e 10 secondi. 0s non specifica alcun timeout. 0s, che non specifica alcun timeout
limit-bytes-per-sec Specifica il limite di larghezza di banda a cui Cloud Storage FUSE può leggere i dati da Cloud Storage, misurato in un intervallo di 30 secondi. "-1", che non specifica alcun limite.
limit-ops-per-sec Specifica un limite per le operazioni eseguite al secondo, misurato su un intervallo di 30 secondi. Numero a virgola mobile. -1 non specifica alcun limite. "-1"
max-conns-per-host Specifica il numero massimo di connessioni TCP consentite per server. Questa impostazione entra in vigore quando --client-protocol è impostato su http1. 0
max-idle-conns-per-host Specifica il numero massimo di connessioni inattive consentite per server. Questa impostazione diventa effettiva quando --client-protocol è impostato su http1. Numero intero compreso tra 0 e 2147483647. 0 non specifica alcun limite per le connessioni TCP. 0
sequential-read-size-mb Specifica la dimensione del chunk dei dati da scaricare da Cloud Storage, in megabyte (MB). Numero intero compreso tra 1 e 1024. 200
implicit-dirs Include implicitamente cartelle e cartelle gestite. Per maggiori informazioni, consulta la documentazione relativa a file e directory su GitHub. Valore booleano: true, false false
kernel-list-cache-ttl-secs Attiva la cache dell'elenco e definisce la durata (TTL) in secondi delle voci dell'elenco memorizzate nella cache. La cache dell'elenco viene mantenuta in memoria nella cache della pagina, che viene controllata dal kernel in base alla memoria disponibile.
  • Numero intero che rappresenta i secondi, ad esempio: 10 (10 secondi).
  • 0: disattiva la memorizzazione nella cache dell'elenco.
  • -1: ignora la scadenza della voce e restituisce sempre la risposta dell'elenco dalla cache quando è disponibile.
0
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. Valore booleano: true, false. true
dir-mode Bit di autorizzazione per le directory, in octal. Numero intero compreso tra 000 e 777 (inclusi). "755"
file-mode Specifica i bit di autorizzazione per i file in octal. Numero intero compreso tra 000 e 777 (inclusi). "644"
fuse-options Specifica opzioni di montaggio aggiuntive specifiche del sistema.
gid Specifica il proprietario dell'identificatore di gruppo (GID) di tutti gli inode.
  • Numero intero che rappresenta un GID.
  • -1: viene utilizzato il GID del chiamante.
-1
rename-dir-limit Consente la ridenominazione delle directory contenenti meno elementi secondari rispetto al limite specificato. Numero intero compreso tra 0 e 2147483647. 0
temp-dir Specifica un percorso alla directory temporanea in cui vengono messe in scena le scritture prima di essere caricate su Cloud Storage. Un percorso di stringa, ad esempio "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
uid Specifica il proprietario dell'identificatore utente (UID) di tutti gli inode.
  • Numero intero che rappresenta un UID.
  • -1: viene utilizzato l'UID del chiamante.
-1
foreground Esegue il comando gcsfuse in primo piano. Valore booleano: true, false 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 che la durata del backoff supera la durata massima specificata, il nuovo tentativo continua con la durata massima specificata. Durata, ad esempio: 1h5m50s (1 ora, 5 minuti e 50 secondi) o 60s (60 secondi). 30s
multiplier Specifica il moltiplicatore per il backoff esponenziale tra i tentativi consecutivi. Numero in virgola mobile "2"
stackdriver-export-interval Esporta le metriche in Stackdriver con l'intervallo specificato. Durata, ad esempio: 1h5m50s (1 ora, 5 minuti e 50 secondi). 0s specifica nessuna esportazione. 0s
log-mutex Stampa messaggi di debug quando un mutex viene trattenuto per troppo tempo. Se questa opzione è specificata, il livello di gravità dei log viene impostato automaticamente su trace, che include log di traccia, log di debug, log di informazioni, log di avviso e log di errore. Valore booleano: true, false. false
exit-on-invariant-violation Esce dal programma quando vengono rilevate violazioni delle varianti interne. Valore booleano: true, false. false
enable-streaming-writes Controlla il flusso del percorso di scrittura in modo che i dati vengano caricati direttamente su Cloud Storage man mano che vengono scritti anziché eseguire la memorizzazione temporanea completa della scrittura localmente e caricarla su close() o fsync(). Per ulteriori informazioni sulle scritture in streaming, consulta la documentazione di GitHub di Cloud Storage FUSE. Valore booleano: true, false. false