Ficheiro de configuração do FUSE do Cloud Storage

Esta página descreve como usar um ficheiro de configuração do FUSE do Cloud Storage para configurar o comportamento do FUSE do Cloud Storage de forma persistente. Para usar o ficheiro de configuração, especifique o caminho para o ficheiro de configuração na opção --config-file quando executar o comando gcsfuse.

Vista geral do ficheiro de configuração do FUSE do Cloud Storage

O ficheiro de configuração do FUSE do Cloud Storage é um ficheiro YAML que usa o seguinte formato e campos. O comportamento controlado pelos campos do ficheiro de configuração também pode ser definido através da CLI FUSE do Cloud Storage.

Campos e formato do ficheiro de configuração do FUSE do Cloud Storage

O seguinte exemplo de configuração YAML mostra o formato e os campos disponíveis no Cloud Storage FUSE.

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
cache-dir: "CACHE_DIR"
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
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-attempts: MAX_RETRY_ATTEMPTS
  max-retry-sleep: MAX_RETRY_SLEEP
  multiplier: "MULTIPLIER"
metrics:
  cloud-metrics-export-interval-secs: CLOUD_METRICS_EXPORT_INTERVAL
  prometheus-port: PROMETHEUS_PORT
debug:
  log-mutex: LOG_MUTEX
  exit-on-invariant-violation: EXIT_ON_INVARIANT_VIOLATION
write:
  enable-streaming-writes: STREAMING_WRITES
  global-max-blocks: MAXIMUM_GLOBAL_BLOCKS
read:
  enable-buffered-read: ENABLE_BUFFERED_READ
  global-max-blocks: MAXIMUM_GLOBAL_READ_BLOCKS

Campos do ficheiro de configuração do Cloud Storage FUSE

A tabela seguinte descreve os campos que pode especificar no ficheiro de configuração do Cloud Storage FUSE. Salvo indicação em contrário, todos os campos são opcionais.

Campo Descrição Valor válido Valor predefinido
O nome da aplicação da montagem. Valor de string, por exemplo: "my-bucket-mount". ""
O caminho para o ficheiro de registo onde os registos vão ser escritos. Se este campo não for especificado, os registos são encaminhados para stdout quando o Cloud Storage FUSE é executado no modo de primeiro plano e para syslogs quando o Cloud Storage FUSE é executado no modo de segundo plano. Valor de string, por exemplo: "/var/log". ""
Especifica o formato do ficheiro de registo.
  • text
  • json
json

O nível de gravidade para o qual quer que o Cloud Storage FUSE gere registos. Os níveis de gravidade estão ordenados do nível de gravidade mais baixo para o mais elevado. Por exemplo, quando especifica warning, o Cloud Storage FUSE gera registos para avisos e erros. Geralmente, recomendamos que use o nível de gravidade info.

  • off: desativa todo o registo.
  • error: contém mensagens sobre problemas graves que impedem o Cloud Storage FUSE de concluir uma operação ou indicam uma falha, como falhas de montagem, erros de autorização e erros críticos de entrada/saída (E/S).
  • warning: contém mensagens que indicam potenciais problemas que não são críticos, mas que podem originar problemas se não forem resolvidos. Os potenciais problemas incluem problemas de ligação não fatais, avisos de descontinuação, contenção de recursos que podem causar uma ligeira degradação do desempenho e novas tentativas para falhas temporárias. Este nível de gravidade também inclui informações fornecidas no nível de gravidade error.
  • info: contém informações de registo, como mensagens de início e encerramento, ou informações sobre operações de montagem bem-sucedidas, atualizações de progresso e definições de configuração. Este nível de gravidade também inclui informações sobre os níveis de gravidade warning e error.
  • debug: contém informações de registo, como mensagens de início e encerramento, ou informações sobre operações de montagem bem-sucedidas, atualizações de progresso e definições de configuração. Este nível de gravidade também inclui as informações facultadas nos níveis de gravidade info, warning e error.
  • trace: contém detalhes detalhados sobre cada operação e chamada de função do Cloud Storage FUSE, descrevendo a gcsfuse interação com o controlador FUSE do kernel e o Cloud Storage. Este nível de gravidade também inclui os detalhes fornecidos nos níveis de gravidade debug, info, warning e error.
info
O tamanho máximo em megabytes (MB) que os ficheiros de registo podem atingir antes de serem rodados. Número inteiro. O valor mínimo é 1. 512
O número máximo de ficheiros de registo rotativos a reter, excluindo o ficheiro ativo no qual os registos são escritos.
  • Número inteiro
  • 0: retém todos os ficheiros de registo rodados
10
Especifica se os ficheiros de registo rodados são comprimidos através de gzip. Valor booleano: true, false true

Ativa a cache de ficheiros e especifica o diretório para armazenar dados da cache de ficheiros.

Um caminho, por exemplo: "/tmp/gcsfuse-cache-path". Um valor vazio indica que este campo está desativado. Este campo está desativado por predefinição.

Especifica o tamanho máximo em MiB que a cache de ficheiros pode usar e permite-lhe limitar a capacidade total que a cache de ficheiros pode usar no respetivo diretório montado.

  • Número inteiro
  • -1: especifica a utilização de toda a capacidade disponível da cache no diretório que especificar para cache-dir. Esta é a predefinição apenas se cache-dir for transmitido.
  • 0: desativa a cache de ficheiros.
-1
Determina se o objeto completo deve ser transferido de forma assíncrona e armazenado no diretório da cache FUSE do Cloud Storage quando a primeira leitura é concluída a partir de um deslocamento diferente de zero. Este campo deve ser definido como true se planear realizar várias leituras aleatórias ou leituras parciais. Valor booleano: true, false false

Acelera as leituras de ficheiros grandes através da utilização do diretório da cache de ficheiros como um buffer de obtenção prévia com vários trabalhadores para transferir várias partes de um ficheiro em paralelo.

As transferências paralelas são ativadas automaticamente quando ativa a colocação em cache de ficheiros. Para saber mais sobre o armazenamento em cache de ficheiros, consulte o artigo Usar o armazenamento em cache de ficheiros do FUSE do Cloud Storage.

Para saber mais sobre as transferências paralelas e como configurar propriedades compatíveis, Transferências paralelas.

Valor booleano: true, false. true
Especifica o número máximo de goroutines a gerar por ficheiro para transferir o objeto do Cloud Storage para a cache de ficheiros. Número inteiro 16
O número máximo de goroutines que podem ser geradas em qualquer momento em todas as tarefas de transferência de ficheiros.
  • Número inteiro
  • -1: especifica transferências paralelas ilimitadas.
  • 0: desativa as transferências paralelas. Só pode ser usado se --enable-parallel-downloads não for transmitido ou for transmitido como false.
O dobro do número de núcleos da CPU na sua máquina ou 16, consoante o que for mais elevado.
Especifica o tamanho de cada pedido de leitura em MiB que cada goroutine faz ao Cloud Storage quando transfere o objeto para a cache de ficheiros. Número inteiro 200
Cria uma entrada de cache de tipo com o tipo NonexistentType se não for encontrado um ficheiro no Cloud Storage. Se o ficheiro for criado no Cloud Storage, mas a entrada NonexistentType do ficheiro estiver em cache, o Cloud Storage FUSE não pode pedir esse ficheiro até que a entrada NonexistentType seja removida da cache de tipos. Valor booleano: true, false false
A memória de tamanho máximo que a cache de estatísticas pode usar, em MiB. A cache de estatísticas é sempre mantida totalmente na memória.
  • Número inteiro. Recomendamos o seguinte:
    • 32 se a sua carga de trabalho envolver até 20 000 ficheiros.
    • Se a sua carga de trabalho for superior a 20 000 ficheiros, aumente o tamanho em valores de 10 para cada 6000 ficheiros adicionais, em que a cache de estatísticas usa uma média de 1500 MiB por ficheiro.
  • -1: não define um limite, em que a cache de estatísticas usa a memória necessária.
  • 0: desativa a cache de estatísticas.
32

Define o tempo de vida (TTL) em segundos das entradas da cache de estatísticas negativas, que armazenam resultados de ficheiros inexistentes na cache.

  • Número inteiro que representa segundos, por exemplo: 10 (10 segundos).
  • 0: desativa a colocação em cache de estatísticas negativas.
  • -1: permite o armazenamento em cache de estatísticas negativas ilimitadas e desativa uma expiração do TTL.
5
Define o tempo de vida (TTL) em segundos das entradas de metadados em cache.
  • Número inteiro que representa segundos, por exemplo: 30 (30 segundos).
  • -1: ignorar a expiração do TTL e publicar ficheiros a partir da cache sempre que estiverem disponíveis.
  • 0: use o ficheiro mais atualizado. A utilização deste valor emite uma chamada de metadados para garantir que a geração de objetos para o ficheiro na cache corresponde ao que está armazenado no Cloud Storage.Get Para saber mais, consulte o artigo Configurar a invalidação de cache.
60
O tamanho máximo em MiB por diretório que a cache de tipos pode usar. A cache de tipos é sempre mantida totalmente na memória.
  • Número inteiro. Recomendamos o seguinte:
    • 4 se o número máximo de ficheiros num único diretório do contentor que está a montar contiver 20 000 ficheiros ou menos.
    • Se o número máximo de ficheiros num único diretório que está a montar contiver mais de 20 000 ficheiros, aumente o valor em 1 para cada 5000 ficheiros, o que corresponde a uma média de cerca de 200 bytes por ficheiro.
  • -1: não especifica nenhum limite e permite que a cache de tipos use a memória necessária.
  • 0: desativa a cache de tipos.
4
Monta apenas um diretório específico num contentor. Um caminho, por exemplo: "/etc/gcsfuse.yaml".
Desativa a autenticação para pedidos. Este campo deve ser definido se estiver a usar um ponto final personalizado que não suporte a autenticação. Este campo também deve ser definido se estiver a usar o Cloud Storage FUSE com contentores públicos. Valor booleano: true, false false
Especifica um caminho absoluto para o ficheiro de chave JSON de credenciais para autenticar pedidos ao Cloud Storage. Por predefinição, o Cloud Storage FUSE usa as credenciais padrão da aplicação para autenticar pedidos. Um URL. Quando este campo não está definido, são usadas as credenciais predefinidas da aplicação.
Especifica se deve reutilizar o token adquirido a partir de --token-url. Valor booleano: true, false true
Especifica um URL para obter um token de acesso quando o elemento --key-file está em falta. Um URL.
Especifica um projeto a usar para a faturação quando o contentor montado é acedido. Este campo é frequentemente obrigatório quando monta um contentor ativado com Requester Pays. Valor de string que representa um "ID do projeto". ""
Especifica o protocolo usado para comunicar com o back-end do Cloud Storage.
  • http1 para HTTP/1.1
  • http2 para HTTP/2
  • grpc para gRPC. Para usar o gRPC com o Cloud Storage FUSE, recomendamos que use as versões 2.10.0 ou mais recentes do Cloud Storage FUSE.
http1
Especifica um ponto final personalizado alternativo para obter dados. O ponto final personalizado tem de suportar os recursos e as operações equivalentes ao ponto final JSON do Cloud Storage, storage.UNIVERSE_DOMAIN_NAME:443. Se não for especificado um ponto final personalizado, o Cloud Storage FUSE usa o ponto final da API JSON do Cloud Storage global, storage.googleapis.com:443. Se a autenticação não for suportada no ponto final personalizado que especificar, defina o campo anonymous-access como true para ignorar a autenticação. Um ponto final, por exemplo: storage.googleapis.com:443.
Especifica o tempo que o cliente HTTP do FUSE do Cloud Storage pode esperar para receber uma resposta do servidor antes de atingir o limite de tempo. Duração, por exemplo: 1h10m10s para 1 hora, 10 minutos e 10 segundos. 0s não especifica nenhum limite de tempo. 0s, que especifica que não existe um limite de tempo
Especifica o limite de largura de banda ao qual o Cloud Storage FUSE pode ler dados do Cloud Storage, medido num período de 30 segundos. "-1", que não especifica um limite.
Especifica um limite para as operações realizadas por segundo, medido num período de 30 segundos. Número de vírgula flutuante. -1 especifica que não existe limite. "-1"
Especifica o número máximo de ligações TCP permitidas por servidor. Esta alteração entra em vigor quando --client-protocol estiver definido como http1. 0
Especifica o número máximo de ligações inativas permitidas por servidor. Esta alteração entra em vigor quando --client-protocol estiver definido como http1. Número inteiro entre 0 e 2147483647. 0 especifica que não existe um limite de ligações TCP. 0
Especifica o tamanho do fragmento dos dados a transferir do Cloud Storage, em megabytes (MB). Número inteiro entre 1 e 1024. 200
Inclui implicitamente pastas e pastas geridas. Consulte Ficheiros e diretórios na documentação do GitHub do Cloud Storage FUSE para mais informações. Valor booleano: true, false false
Ativa a cache de listas e define o tempo de vida (TTL) em segundos das entradas de listas em cache. A cache de listas é mantida na memória na cache de páginas, que é controlada pelo kernel com base na memória disponível.
  • Número inteiro que representa segundos, por exemplo: 10 (10 segundos).
  • 0: desativa a colocação em cache de listas.
  • -1: ignora a expiração da entrada e devolve sempre a resposta da lista da cache quando estiver disponível.
0
Indica ao Cloud Storage FUSE para ignorar sinais de interrupção do sistema, como o SIGINT acionado por Control+C. Isto impede que os sinais terminem as operações em curso. Valor booleano: true, false. true
Bits de autorizações para diretórios, em octal. Número inteiro entre 000 e 777 (inclusive). "755"
Especifica os bits de autorizações para ficheiros, em octal. Número inteiro entre 000 e 777 (inclusive). "644"
Especifica opções de montagem adicionais específicas do sistema.
Especifica o proprietário do identificador do grupo (GID) de todos os inodos.
  • Número inteiro que representa um GID.
  • -1: é usado o GID do autor da chamada.
-1
Permite a mudança do nome dos diretórios que contêm menos descendentes do que o limite especificado. Número inteiro entre 0 e 2147483647. 0
Especifica um caminho para o diretório temporário onde as escritas são preparadas antes de serem carregadas para o Cloud Storage. Um caminho de string, por exemplo: "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
Especifica o proprietário do identificador de utilizador (UID) de todos os inodes.
  • Número inteiro que representa um UID.
  • -1: é usado o UID do autor da chamada.
-1
Executa o comando gcsfuse em primeiro plano. Valor booleano: true, false false
Especifica o número máximo de vezes que uma operação é repetida se a operação falhar, o que evita ciclos de repetição infinitos.
  • Número inteiro que representa o número máximo de tentativas, por exemplo: 10.
  • 0: permite tentativas ilimitadas.
0
Especifica a duração máxima que o Cloud Storage FUSE pode ficar inativo num ciclo de repetição com recuo exponencial. Quando a duração da suspensão 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
Especifica o multiplicador para a retirada exponencial entre novas tentativas consecutivas. Número de vírgula flutuante "2"

Exporta métricas para o Cloud Monitoring com o intervalo especificado.

Número inteiro que representa um valor em segundos, por exemplo: 10 (10 segundos). 0 especifica que não é permitida a exportação. 0

Expõe o ponto final de métricas do Prometheus na porta e no caminho /metrics especificados.

Número inteiro que representa a porta que quer especificar. 0
Imprime mensagens de depuração quando um mutex é mantido durante demasiado tempo. Se este campo for especificado, o nível de gravidade dos registos é automaticamente definido como trace, que inclui registos de rastreio, registos de depuração, registos de informações, registos de avisos e registos de erros. Valor booleano: true, false. false
Sai do programa quando são detetadas violações de variantes internas. Valor booleano: true, false. false
Controla o fluxo do caminho de escrita para que os dados sejam carregados diretamente para o Cloud Storage à medida que são escritos, em vez de preparar totalmente a escrita localmente e carregá-la após close() ou fsync(). Para mais informações sobre gravações de streaming, consulte a secção Leituras/Gravações na documentação do GitHub do Cloud Storage FUSE. Valor booleano: true, false. true

Especifica o número máximo de blocos de dados disponíveis para escritas de streaming em todos os ficheiros. Por predefinição, cada ficheiro usa um bloco de dados de 32 MiB.

  • Número inteiro
  • 0: desativa as escritas de streaming.
  • -1: define o valor como ilimitado.
  • Valor predefinido para máquinas com especificações baixas e recursos limitados: 4
  • Valor predefinido para máquinas de alta especificação com uma grande quantidade de recursos: 1600
Especifica a obtenção prévia assíncrona de partes de um objeto do Cloud Storage num buffer na memória, o que permite que as leituras subsequentes sejam publicadas a partir do buffer, em vez de exigir chamadas de rede. Valor booleano: true, false false

Especifica o número máximo de blocos disponíveis para leituras em buffer em todos os identificadores de ficheiros.

  • Número inteiro
  • 0: desativa as leituras em buffer.
  • -1: define o valor como blocos ilimitados.
40

Voltar ao início