Arquivo de configuração do Cloud Storage FUSE

Nesta página, descrevemos como usar o arquivo de configuração do Cloud Storage FUSE para definir o comportamento do Cloud Storage FUSE de maneira persistente. Para usar esse arquivo, especifique o caminho para ele na flag --config-file como parte do comando de montagem.

O arquivo de configuração é um YAML que usa o formato e os campos a seguir. Alguns dos campos também podem ser especificados usando opções de linha de 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

Campos de configuração

A tabela a seguir descreve os campos que você pode especificar no arquivo de configuração. A menos que seja indicado o contrário, todos os campos são opcionais.

Campo Descrição Valor válido Valor padrão
app-name O nome do aplicativo da montagem. Valor de string, por exemplo: "my-bucket-mount". ""
file-path O caminho para o arquivo de registro em que os registros serão gravados. Se esse campo não for especificado, os registros serão roteados para stdout quando o Cloud Storage FUSE for executado em primeiro plano e para syslogs quando o Cloud Storage FUSE for executado em segundo plano. Valor de string, por exemplo: "/var/log". ""
format Especifica o formato do arquivo de registros.
  • text
  • json
json
severity

O nível de gravidade para o Cloud Storage FUSE gerar registros. Os níveis de gravidade são ordenados do menor para o maior. Por exemplo, quando você especifica warning, o Cloud Storage FUSE gera registros de avisos e erros. Em geral, recomendamos o uso do nível de gravidade info.

  • trace
  • debug
  • info
  • warning
  • error
  • off: desativa todos os registros.
info
max-file-size-mb O tamanho máximo em megabytes (MB) que os arquivos de registro podem alcançar antes de serem rotacionados. Número inteiro. O valor mínimo é 1. 512
backup-file-count O número máximo de arquivos de registro rotacionados a serem mantidos, exceto o arquivo ativo em que os registros são gravados.
  • Número inteiro
  • 0: retém todos os arquivos de registro girados
10
compress Especifica se os arquivos de registro rotacionados serão compactados usando gzip. Valor booleano: true, false true
max-size-mb

O tamanho máximo em MiB que o cache de arquivos pode usar. Se presente, max-size-mb habilita o armazenamento em cache de arquivos no Cloud Storage FUSE e é útil se você quer limitar a capacidade total que o cache do Cloud Storage FUSE pode usar no diretório ativado.

  • Número inteiro
  • -1: especifica o uso de toda a capacidade disponível do cache no diretório especificado para cache-dir.
  • 0: desativa o cache de arquivos.
-1
cache-file-for-range-read Determina se o download completo do objeto precisa ser feito de modo assíncrono e armazenado no diretório de cache do Cloud Storage FUSE quando a primeira leitura for feita de um deslocamento diferente de zero. Essa opção precisa ser definida como true se você planeja executar várias leituras aleatórias ou parciais.

Observação: se você realizar uma leitura parcial começando no deslocamento 0, o Cloud Storage FUSE vai fazer o download e armazenar em cache de forma assíncrona o objeto completo.

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

Acelera a leitura de arquivos grandes usando o diretório de cache de arquivos como um buffer de pré-busca usando vários workers para fazer o download de arquivos grandes em em paralelo. Para saber mais sobre downloads paralelos e configurar as propriedades de suporte, consulte Melhorar o desempenho de leitura usando downloads paralelos.

Para usar downloads paralelos, primeiro ative o armazenamento em cache de arquivos.

Valor booleano: true, false false
parallel-downloads-per-file

Especifica o número máximo de goroutines a serem geradas por arquivo para download do objeto do Cloud Storage para o cache de arquivos.

Número inteiro 16
max-parallel-downloads O número máximo de goroutines que podem ser gerados a qualquer momento em todos os jobs de download de arquivos.
  • Número inteiro
  • -1: especifica downloads paralelos ilimitados.
  • 0: desativa os downloads paralelos. Só pode ser usado se --enable-parallel-downloads não for transmitido ou for transmitido como false.
  • >0: não especifica limite máximo. O Cloud Storage FUSE limita internamente o valor com base no número máximo de goroutines que podem ser gerados especificado pela configuração da máquina.
O dobro do número de núcleos de CPU na máquina ou 16, o que for maior.
download-chunk-size-mb Especifica o tamanho de cada solicitação de leitura em MiB que cada goroutine faz para o Cloud Storage ao fazer o download do objeto no cache de arquivos. Número inteiro 50
enable-nonexistent-type-cache Cria uma entrada de cache de tipo com o tipo NonexistentType se um arquivo não for encontrado no Cloud Storage. Se o arquivo for criado no Cloud Storage, mas a entrada NonexistentType para o arquivo for armazenada em cache, o Cloud Storage FUSE não poderá solicitar esse arquivo até que a entrada NonexistentType seja removida do tipo cache. Valor booleano: true, false false
stat-cache-max-size-mb O tamanho máximo de memória que o cache de estatísticas pode usar, em MiB. O cache de estatísticas é sempre mantido por completo na memória.
  • Número inteiro. Recomendamos o seguinte:
    • 32 se a carga de trabalho envolver até 20.000 arquivos.
    • Se a carga de trabalho for maior que 20.000 arquivos, aumente o tamanho em valores de 10 para cada 6.000 arquivos adicionais, em que o cache de estatísticas usa uma média de 1.500 MiB por arquivo.
  • -1: define sem limite, em que o cache de estatísticas usa a quantidade de memória necessária.
  • 0: desativa o cache de estatísticas.
32
negative-ttl-secs

Define o time to live (TTL) em segundos de entradas de cache de estatísticas negativo, que armazenam resultados de arquivos inexistentes no cache.

  • Número inteiro que representa segundos, por exemplo: 10 (10 segundos).
  • 0: desativa o armazenamento de estatísticas em cache negativo.
  • -1: permite o armazenamento em cache de estatísticas negativo ilimitado e desativa a TTL de expiração.
5
ttl-secs Define o time to live (TTL), em segundos, das entradas de metadados armazenadas em cache.
  • Número inteiro que representa segundos, por exemplo: 30 (30 segundos).
  • -1: ignora a expiração de TTL e disponibiliza arquivos do cache sempre que eles estiverem disponíveis.
  • 0: use o arquivo mais atualizado. O uso desse valor emite uma chamada de metadados Get para garantir que a geração do objeto para o arquivo no cache corresponda ao que está armazenado no Cloud Storage. Para saber mais, consulte Como configurar a invalidação de cache.
60
type-cache-max-size-mb O tamanho máximo em MiB por diretório que o cache de tipos pode usar. O cache de tipos é sempre totalmente mantido na memória.
  • Número inteiro. Recomendamos o seguinte:
    • 4 se o número máximo de arquivos em um único diretório do bucket que você está ativando contiver 20.000 arquivos ou menos.
    • Se o número máximo de arquivos em um único diretório ativado tiver mais de 20.000 arquivos, aumente o valor por 1 para cada 5.000 arquivos, uma média de aproximadamente 200 bytes por arquivo.
  • -1: não especifica um limite e permite que o cache de tipos use a quantidade de memória necessária.
  • 0: desativa o cache de tipos.
4
cache-dir

Especifica o diretório para armazenar dados de cache de arquivos.

Para saber como ativar o armazenamento em cache de arquivos, consulte Usar o armazenamento em cache de arquivos.

Um caminho, por exemplo: "/tmp/gcsfuse-cache-path".
only-dir Ativa apenas um diretório específico em um bucket. Um caminho, por exemplo: "/etc/gcsfuse.yaml".
anonymous-access Desativa a autenticação para solicitações. Essa opção precisa ser definida se você estiver usando um endpoint personalizado que não é compatível com autenticação. Essa opção também precisa ser definida se você estiver usando o Cloud Storage FUSE com buckets públicos. Valor booleano: true, false false
key-file Especifica um caminho absoluto para o arquivo de chave JSON de credencial para autenticar solicitações para o Cloud Storage. Por padrão, o Cloud Storage FUSE usa Application Default Credentials para autenticar solicitações. Um URL. Quando essa opção não está definida, as credenciais padrão do aplicativo são usadas.
reuse-token-from-url Especifica se o token adquirido de --token-url será reutilizado. Valor booleano: true, false true
token-url Especifica um URL para receber um token de acesso quando --key-file estiver ausente. Um URL.
billing-project Especifica um projeto para usar no faturamento quando o bucket ativado é acessado. Essa opção é frequentemente necessária ao ativar um bucket com pagamentos do solicitante. Valor de string que representa um "ID do projeto". ""
client-protocol Especifica o protocolo usado para comunicação com o back-end do Cloud Storage.
  • http1 para HTTP/1.1
  • http2 para HTTP/2
  • grpc para gRPC
http1
custom-endpoint Especifica um endpoint personalizado alternativo para buscar dados. O endpoint personalizado precisa ser compatível com os recursos e as operações equivalentes ao endpoint JSON do Cloud Storage, https://storage.googleapis.com/storage/v1. Se um endpoint personalizado não for especificado, o Cloud Storage FUSE usará o endpoint global da API JSON do Cloud Storage, https://storage.googleapis.com/storage/v1. Se a autenticação não tiver suporte no endpoint personalizado que você especificar, defina a sinalização --anonymous-access como true para ignorar a autenticação. Um endpoint, por exemplo: "http://localhost:443/storage/v1".
http-client-timeout Especifica quanto tempo o cliente HTTP do FUSE do Cloud Storage pode aguardar para receber uma resposta do servidor antes de expirar. Duração, por exemplo: 1h10m10s para 1 hora, 10 minutos e 10 segundos. 0s não especifica um tempo limite. 0s, que especifica que não há tempo limite
limit-bytes-per-sec Especifica o limite de largura de banda em que o Cloud Storage FUSE pode ler dados do Cloud Storage, medidos em uma janela de 30 segundos. "-1", que não especifica limite.
limit-ops-per-sec Especifica um limite para operações executadas por segundo, medida em uma janela de 30 segundos. Número de ponto flutuante. -1 não especifica nenhum limite. "-1"
max-conns-per-host Especifica o número máximo de conexões TCP permitidas por servidor. Isso entra em vigor quando --client-protocol é definido como http1. 0
max-idle-conns-per-host Especifica o número máximo de conexões inativas permitidas por servidor. Isso entra em vigor quando --client-protocol é definido como http1. Número inteiro entre 0 e 2147483647. 0 não especifica um limite nas conexões TCP. 0
sequential-read-size-mb Especifica o tamanho do bloco dos dados a serem baixados do Cloud Storage, em megabytes (MB). Número inteiro entre 1 e 1024. 200
implicit-dirs Inclui pastas e pastas gerenciadas de maneira implícita. Consulte a documentação de arquivos e diretórios no GitHub para mais informações. Valor booleano: true, false false
kernel-list-cache-ttl-secs Ativa a cache da lista e define o time to live (TTL) em segundos de cache na lista de permissões. O cache da lista é mantido na memória do cache da página, que é controlados pelo kernel com base na memória disponível.
  • Número inteiro que representa segundos, por exemplo: 10 (10 segundos).
  • 0: desativa o armazenamento em cache da lista.
  • -1: ignora a expiração da entrada e sempre retorna a resposta da lista do cache quando disponível.
0
ignore-interrupts Instrui o Cloud Storage FUSE a ignorar sinais de interrupção do sistema, como SIGINT acionado por Control+C. Isso impede indicadores de encerramento de operações em andamento. Valor booleano: true, false. true
dir-mode Bits de permissões para diretórios, em octal. Número inteiro entre 000 e 777 (inclusive). "755"
file-mode Especifica bits de permissões para arquivos, em octal. Número inteiro entre 000 e 777 (inclusive). "644"
fuse-options Especifica outras opções de ativação específicas do sistema.
gid Especifica o proprietário do Identificador de Grupo (GID) de todos os inodes.
  • Inteiro que representa um GID.
  • -1: o GID do autor da chamada é usado.
-1
rename-dir-limit Permite renomear os diretórios que contêm menos descendentes do que o limite especificado. Número inteiro entre 0 e 2147483647. 0
temp-dir Especifica um caminho para o diretório temporário em que as gravações são testadas antes do upload para o Cloud Storage. Um caminho de string, por exemplo: "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
uid Especifica o proprietário do identificador de usuário (UID, na sigla em inglês) de todos os nós.
  • Inteiro que representa um UID.
  • -1: o UID do autor da chamada é usado.
-1
foreground Executa o comando gcsfuse em primeiro plano. Valor booleano: true, false false
max-retry-sleep Especifica a duração máxima que o Cloud Storage FUSE pode ficar suspenso em um loop de nova tentativa com espera exponencial. Quando a duração de espera excede a duração máxima especificada, a nova tentativa continua com a duração máxima especificada. Duração, por exemplo: 1h5m50s (1 hora, 5 minutos e 50 segundos) ou 60s (60 segundos). 30s
multiplier Especifica o multiplicador para a espera exponencial entre tentativas consecutivas. Número de ponto flutuante "2"
stackdriver-export-interval Exporta métricas para o Stackdriver com o intervalo especificado. Duração, por exemplo: 1h5m50s (1 hora, 5 minutos e 50 segundos). 0s não especifica a exportação. 0s
log-mutex Imprime mensagens de depuração quando uma mutex é mantida por muito tempo. Se essa opção for especificada, o nível de gravidade dos registros será definido automaticamente como trace, o que inclui registros de rastreamento, depuração, informações, aviso e erro. Valor booleano: true, false. false
exit-on-invariant-violation Sai do programa quando violações de variantes internas são detectadas. Valor booleano: true, false. false
enable-streaming-writes Controla o fluxo do caminho de gravação para que os dados sejam enviados diretamente para o Cloud Storage conforme são gravados, em vez de preparar a gravação localmente e fazer o upload após close() ou fsync(). Para mais informações sobre gravações em streaming, consulte a documentação do FUSE do Cloud Storage no GitHub. Valor booleano: true, false. false