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"
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

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
app-name O nome do aplicativo da montagem.
create-empty-file Um valor booleano que especifica se um arquivo de zero byte será criado no Cloud Storage quando você começar a gravar em um novo arquivo no bucket ativado. Se esse campo não for especificado, o valor padrão será false.
file-path O caminho para o arquivo de registros em que os registros serão gravados, especificado como uma string. Por exemplo, /var/log 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.
format O formato em que os registros são gerados, expresso como um tipo enumerado. Os valores são text ou json. Se esse campo não for especificado, o valor padrão será json.
severity

A gravidade dos registros que você quer que o Cloud Storage FUSE gere, expressa como um tipo enumerado. Os níveis de gravidade são ordenados do menor para o maior:

  • trace
  • debug
  • info
  • warning
  • error

Ao especificar um nível de gravidade, o Cloud Storage FUSE gera registros com gravidade igual ou maior. Por exemplo, quando você especifica warning, o Cloud Storage FUSE gera registros de avisos e erros. Também é possível especificar off para desativar toda a geração de registros. Em geral, recomendamos usar o nível de gravidade info.

O nível de gravidade será definido automaticamente como trace se alguma das opções a seguir for especificada como parte do comando:

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

Se esse campo não for especificado, o valor padrão será info.

Observação:o uso dos níveis de gravidade trace ou debug quando o armazenamento em cache de arquivos está ativado pode resultar em degradação de desempenho devido ao overhead de registro e só deve ser usado temporariamente ou durante a solução de problemas.

max-file-size-mb O tamanho máximo em megabytes (MB) que os arquivos de registro podem alcançar antes de serem rotacionados. O valor mínimo é 1. Se esse campo não for especificado, o valor padrão será 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. Quando o valor é definido como 0, todos os arquivos de registros rotacionados são mantidos. Se esse campo não for especificado, o valor será 10 por padrão.
compress Um valor booleano que especifica se os arquivos de registro rotacionados serão compactados usando gzip. Se esse campo não for especificado, o valor padrão será 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.

  • Especifique -1 para usar toda a capacidade disponível do cache no diretório especificado para cache-dir.
  • Especifique 0 para desativar o cache de arquivos.

Se esse campo não for especificado, o valor padrão será -1.

cache-file-for-range-read

Um valor booleano que determina se o objeto completo será transferido por download de maneira assíncrona e armazenado no diretório de cache do Cloud Storage FUSE quando a primeira leitura for feita de um deslocamento diferente de zero. Defina como true se você planeja executar várias leituras aleatórias ou parciais. Se esse campo não for especificado, o valor padrão será false.

Se você fizer uma leitura parcial começando no deslocamento 0, o Cloud Storage FUSE sempre fará o download e o armazenamento em cache do objeto completo de maneira assíncrona.

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. O valor padrão é false.


Para usar downloads paralelos, ative o armazenamento em cache de arquivos. Para saber mais sobre downloads paralelos e configurar as propriedades de suporte, consulte Melhorar o desempenho de leitura usando downloads paralelos.
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. O valor padrão é 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. O padrão é o dobro do número de núcleos de CPU na máquina. Para ignorar um limite, especifique um valor de -1.

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. O valor padrão é 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. O valor padrão é false.
stat-cache-max-size-mb

O tamanho máximo em MiB que o cache de estatísticas pode usar. O cache de estatísticas é sempre mantido por completo na memória.

  • Especifique 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, uma média de aproximadamente 1.500 bytes por arquivo.
  • Especifique -1 para permitir que o cache de estatísticas use a quantidade de memória necessária.
  • Especifique 0 para desativar o cache de estatísticas.

Se esse campo não for especificado, o valor padrão será 32.

ttl-secs

Define o time to live (TTL) de entradas de metadados armazenadas em cache, expresso em segundos.

  • Especifique -1 para ignorar uma expiração de TTL e exibir o arquivo a partir do cache sempre que ele estiver disponível.
  • Especifique 0 para garantir que o arquivo mais atualizado seja lido. O uso desse valor emite uma chamada de metadados "Receber" 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.

Se esse campo não for especificado, o valor padrão será 60s.

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.

  • Especifique 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.
  • Especifique -1 para permitir que o cache de tipos use a quantidade de memória necessária.
  • Especifique 0 para desativar o cache de tipos.

Se esse campo não for especificado, o valor padrão será 4.

cache-dir Especifica o diretório para armazenar dados de cache de arquivos. Esse campo precisa ser especificado para ativar o armazenamento em cache de arquivos.
only-dir Ativa apenas um diretório específico em um bucket.
anonymous-access Desativa a autenticação para solicitações. Defina esse campo se você estiver usando um endpoint personalizado que não oferece suporte à autenticação ou se estiver usando o Cloud Storage FUSE para montar buckets públicos. O valor padrão é 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.
reuse-token-from-url Especifica que o token adquirido de token-url seja usado. O valor padrão é true.
token-url Especifica um URL para receber um token de acesso quando key-file estiver ausente.
billing-project Especifica um projeto para usar no faturamento quando o bucket ativado é acessado. Essa sinalização é frequentemente necessária ao ativar um bucket ativado com pagamentos do solicitante. O projeto padrão é nenhum.
client-protocol Especifica o protocolo usado para comunicação com o back-end do Cloud Storage. O valor pode ser http1 para HTTP/1.1 ou http2 para HTTP/2. O valor padrão é 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 flag de anonymous-access para true para ignorar a autenticação.
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. O valor padrão é 0s, que não indica 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. O valor limite padrão é "-1", que não especifica nenhum limite.
limit-ops-per-sec Especifica um limite para operações executadas por segundo, medida em uma janela de 30 segundos. O valor limite padrão é "-1", que não especifica nenhum limite.
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. O valor padrão é 0, que especifica que não há limite nas conexões TCP, com exceção das limitações definidas especificações da máquina.
max-idle-conns-per-host Especifica o número máximo de conexões inativas permitidas por servidor. O valor padrão é 100.
sequential-read-size-mb Especifica o tamanho do bloco dos dados a serem baixados do Cloud Storage, em megabytes (MB). O valor padrão é 200.
implicit-dirs

Inclui pastas e pastas gerenciadas de maneira implícita.

Consulte a documentação de arquivos e diretórios no GitHub (em inglês) para mais informações.
kernel-list-cache-ttl-secs Ativa o cache da lista e define o time to live (TTL) em segundos de cache nas entradas da lista. A alocação de memória para o cache de lista é controlada pelo kernel com base na memória disponível. O valor padrão é 0, que desativa o armazenamento em cache da lista.

Para definir o campo kernel-list-cache-ttl-secs, especifique um valor positivo em segundos para manter a resposta da lista de diretórios no cache de páginas do kernel. Para ignorar a expiração da entrada e sempre retornar a lista do cache quando disponível, especifique o valor -1:
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. Os valores são true ou false. O valor padrão é true.
dir-mode Bits de permissões para diretórios, em octal. O valor padrão é "755".
file-mode Especifica bits de permissões para arquivos, em octal. O valor padrão é "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. O valor padrão do GID é -1.
rename-dir-limit Permite renomear os diretórios que contêm menos descendentes do que o limite especificado. O valor limite padrão é 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. O valor padrão é o padrão do sistema, como "/tmp".
uid Especifica o proprietário do identificador de usuário (UID, na sigla em inglês) de todos os nós. O valor do UID padrão é -1.
foreground Executa o comando gcsfuse em primeiro plano. O valor padrão é 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. O valor limite padrão é 30s (30 segundos).
multiplier Especifica a espera exponencial entre as tentativas, em que o valor é o multiplicador do tempo de espera subsequente com base no tempo de espera anterior. O valor padrão é "2".
stackdriver-export-interval Exporta métricas para o Cloud Monitoring com o intervalo especificado. O valor padrão é 0s (0 segundos), que não especifica a exportação.
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. O valor padrão é false.
exit-on-invariant-violation Sai do programa quando violações de variantes internas são detectadas. O valor padrão é false.