Archivo de configuración de Cloud Storage FUSE

En esta página, se describe cómo usar un archivo de configuración de Cloud Storage FUSE para configurar el comportamiento de Cloud Storage FUSE de forma persistente. Para usar el archivo de configuración, especifica la ruta al archivo de configuración en la marca --config-file como parte de tu comando de activación.

El archivo de configuración es un archivo YAML que usa el formato y los campos siguientes. Algunos de los campos también se pueden especificar usando las opciones de la línea de comandos.

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

Campos de configuración

En la siguiente tabla, se describen los campos que puedes especificar en tu archivo de configuración. Nota: A menos que se indique lo contrario, todos los campos son opcionales.

Campo Descripción Valor válido Valor predeterminado
app-name El nombre de la aplicación de la activación. Es un valor de cadena, por ejemplo: "my-bucket-mount". ""
file-path Es la ruta de acceso al archivo de registro en el que se escribirán los registros. Si no se especifica este campo, los registros se enrutan a stdout cuando Cloud Storage FUSE se ejecuta en modo de primer plano y a syslogs cuando Cloud Storage FUSE se ejecuta en modo en segundo plano. Valor de cadena, por ejemplo: "/var/log". ""
format Especifica el formato del archivo de registro.
  • text
  • json
json
severity

Es el nivel de gravedad para el que deseas que Cloud Storage FUSE genere registros. Los niveles de gravedad se ordenan desde la gravedad más baja a la más alta. Por ejemplo, cuando especificas warning, Cloud Storage FUSE genera registros para advertencias y errores. Por lo general, recomendamos usar el nivel de gravedad info.

  • trace
  • debug
  • info
  • warning
  • error
  • off: Inhabilita todos los registros.
info
max-file-size-mb El tamaño máximo en megabytes (MB) que pueden alcanzar los archivos de registro antes de que se roten. Número entero. El valor mínimo es 1. 512
backup-file-count Es la cantidad máxima de archivos de registro rotados que se conservarán, sin incluir el archivo activo en el que se escriben.
  • Número entero
  • 0: Retiene todos los archivos de registro rotados.
10
compress Especifica si los archivos de registro rotados se comprimen con gzip. Valor booleano: true, false true
max-size-mb

El tamaño máximo en MiB que puede usar la caché de archivos. Si está presente, max-size-mb habilita el almacenamiento en caché de archivos en Cloud Storage FUSE y es útil si deseas limitar la capacidad total que la caché de Cloud Storage FUSE puede usar dentro de su directorio activado.

  • Número entero
  • -1: Especifica el uso de toda la capacidad disponible de la caché en el directorio que especificas para cache-dir.
  • 0: Inhabilita la caché de archivos.
-1
cache-file-for-range-read Indica si el objeto completo debe descargarse de forma asíncrona y almacenarse en el directorio de caché de Cloud Storage FUSE cuando la primera lectura se realiza desde un desplazamiento distinto de cero. Esta opción debe configurarse como true si planeas realizar varias lecturas aleatorias o parciales.

Nota: Si realizas una lectura parcial a partir del desplazamiento 0, Cloud Storage FUSE descarga y almacena en caché el objeto completo de forma asíncrona.

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

Acelera las lecturas de archivos grandes con el directorio de almacenamiento en caché de archivos como un búfer de carga previa con varios trabajadores para descargar archivos grandes en paralelo. Para obtener más información sobre las descargas en paralelo y configurar sus propiedades compatibles, consulta Cómo mejorar el rendimiento de lectura con descargas en paralelo.

Para usar descargas paralelas, primero debes habilitar el almacenamiento en caché de archivos.

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

Especifica la cantidad máxima de goroutines que se crearán por archivo para descargar el objeto de Cloud Storage en la caché de archivos.

Número entero 16
max-parallel-downloads Es la cantidad máxima de goroutines que se pueden crear en un momento determinado en todos los trabajos de descarga de archivos.
  • Número entero
  • -1: Especifica descargas paralelas ilimitadas.
  • 0: Inhabilita las descargas en paralelo. Solo se puede usar si no se pasa --enable-parallel-downloads o si se pasa como false.
  • >0: No especifica un límite superior. Cloud Storage FUSE limita internamente el valor según la cantidad máxima de goroutines que puede generar la configuración de tu máquina.
El doble de la cantidad de núcleos de CPU de tu máquina o 16, lo que sea mayor.
download-chunk-size-mb Especifica el tamaño de cada solicitud de lectura en MiB que cada goroutine realiza en Cloud Storage cuando descarga el objeto en la caché de archivos. Número entero 50
enable-nonexistent-type-cache Crea una entrada de tipo caché con el tipo NonexistentType si no se encuentra un archivo en Cloud Storage. Si el archivo se crea en Cloud Storage, pero la entrada NonexistentType del archivo se almacena en caché, Cloud Storage FUSE no puede solicitar ese archivo hasta que la entrada NonexistentType se quite del tipo caché. Valor booleano: true, false false
stat-cache-max-size-mb Es el tamaño máximo de memoria que puede usar la caché de estadísticas, en MiB. La caché de estadística siempre se mantiene por completo en la memoria.
  • Número entero. Te recomendamos que hagas lo siguiente:
    • 32 si tu carga de trabajo incluye hasta 20,000 archivos.
    • Si tu carga de trabajo supera los 20,000 archivos, aumenta el tamaño en valores de 10 por cada 6,000 archivos adicionales, en los que la caché de estadísticas usa un promedio de 1,500 MiB por archivo.
  • -1: No establece límites, por lo que la caché de estadísticas usa tanta memoria como sea necesario.
  • 0: Inhabilita la caché de estadísticas.
32
negative-ttl-secs

Define el tiempo de actividad (TTL) en segundos de las entradas de la caché de estadísticas negativas, que almacenan resultados de archivos inexistentes en la caché.

  • Es un número entero que representa segundos, por ejemplo: 10 (10 segundos).
  • 0: Inhabilita el almacenamiento en caché de estadísticas negativo.
  • -1: Permite el almacenamiento en caché de estadísticas negativas ilimitado y, además, inhabilita el vencimiento de TTL.
5
ttl-secs Define el tiempo de actividad (TTL), en segundos, de las entradas de metadatos almacenadas en caché.
  • Es un número entero que representa segundos, por ejemplo: 30 (30 segundos).
  • -1: Omite el vencimiento del TTL y entrega archivos desde la caché cuando estén disponibles.
  • 0: Usa el archivo más actualizado. El uso de este valor emite una llamada de metadatos de Get para garantizar que la generación de objetos del archivo en la caché coincida con lo que se almacena en Cloud Storage. Para obtener más información, consulta Configura la invalidación de caché.
60
type-cache-max-size-mb El tamaño máximo en MiB por directorio que puede usar el tipo de caché. La caché de tipo siempre se mantiene por completo en la memoria.
  • Número entero. Te recomendamos que hagas lo siguiente:
    • 4 si la cantidad máxima de archivos dentro de un solo directorio del bucket que activas contiene 20,000 archivos o menos.
    • Si la cantidad máxima de archivos dentro de un solo directorio que activas contiene más de 20,000 archivos, aumenta el valor en 1 por cada 5,000 archivos, que es un promedio de 200 bytes por archivo.
  • -1: No especifica ningún límite y permite que el tipo de caché use tanta memoria como sea necesario.
  • 0: Inhabilita la caché de tipos.
4
cache-dir

Especifica el directorio para almacenar datos de caché de archivos.

Para aprender a habilitar el almacenamiento en caché de archivos, consulta Cómo usar el almacenamiento en caché de archivos.

Una ruta de acceso, por ejemplo: "/tmp/gcsfuse-cache-path".
only-dir Activa solo un directorio específico dentro de un bucket. Una ruta de acceso, por ejemplo: "/etc/gcsfuse.yaml".
anonymous-access Inhabilita la autenticación para las solicitudes. Esta opción se debe configurar si usas un extremo personalizado que no admite la autenticación. Esta opción también se debe configurar si usas Cloud Storage FUSE con buckets públicos. Valor booleano: true, false false
key-file Especifica una ruta de acceso absoluta al archivo de claves JSON de las credenciales para autenticar solicitudes a Cloud Storage. De forma predeterminada, Cloud Storage FUSE usa credenciales predeterminadas de la aplicación para autenticar solicitudes. Una URL. Si no se establece esta opción, se usan las credenciales predeterminadas de la aplicación.
reuse-token-from-url Especifica si se debe volver a usar el token adquirido de --token-url. Valor booleano: true, false true
token-url Especifica una URL para obtener un token de acceso cuando --key-file está ausente. Una URL.
billing-project Especifica un proyecto para usarlo en la facturación cuando se accede al bucket activado. Esta opción a menudo es obligatoria cuando se activa un bucket habilitado con los pagos del solicitante. Es un valor de cadena que representa un "ID de proyecto". ""
client-protocol Especifica el protocolo que se usa para comunicarse con el backend de Cloud Storage.
  • http1 para HTTP/1.1
  • http2 para HTTP/2
  • grpc para gRPC
http1
custom-endpoint Especifica un extremo personalizado alternativo para recuperar datos. El extremo personalizado debe admitir los recursos y las operaciones equivalentes al extremo JSON de Cloud Storage, https://storage.googleapis.com/storage/v1. Si no se especifica un extremo personalizado, Cloud Storage FUSE usa el extremo global de la API de JSON de Cloud Storage, https://storage.googleapis.com/storage/v1. Si la autenticación no es compatible con el extremo personalizado que especificas, establece la marca --anonymous-access en true para omitir la autenticación. Un extremo, por ejemplo: "http://localhost:443/storage/v1".
http-client-timeout Especifica el tiempo que el cliente HTTP de Cloud Storage FUSE puede esperar para obtener una respuesta del servidor antes de que se agote el tiempo de espera. Duración, por ejemplo: 1h10m10s para 1 hora, 10 minutos y 10 segundos 0s no especifica un tiempo de espera. 0s, que no especifica un tiempo de espera
limit-bytes-per-sec Especifica el límite de ancho de banda en el que Cloud Storage FUSE puede leer datos de Cloud Storage, medido en un período de 30 segundos. "-1", que no especifica ningún límite.
limit-ops-per-sec Especifica un límite para las operaciones realizadas por segundo, medido en un período de 30 segundos. Es un número de punto flotante. -1 no especifica ningún límite. "-1"
max-conns-per-host Especifica la cantidad máxima de conexiones TCP permitidas por servidor. Esto entra en vigor cuando --client-protocol se establece en http1. 0
max-idle-conns-per-host Especifica la cantidad máxima de conexiones inactivas permitidas por servidor. Esto entra en vigor cuando --client-protocol se establece en http1. Es un número entero entre 0 y 2147483647. 0 no especifica un límite para las conexiones TCP. 0
sequential-read-size-mb Especifica el tamaño de fragmento de los datos que se descargarán desde Cloud Storage, en megabytes (MB). Es un número entero entre 1 y 1024. 200
implicit-dirs Incluye de manera implícita carpetas y carpetas administradas. Consulta la documentación de archivos y directorios en GitHub para obtener más información. Valor booleano: true, false false
kernel-list-cache-ttl-secs Habilita la caché de listas y define el tiempo de actividad (TTL) en segundos de las entradas de las listas almacenadas en caché. La caché de listas se mantiene en la memoria caché de la página, que el kernel controla según la memoria disponible.
  • Es un número entero que representa segundos, por ejemplo: 10 (10 segundos).
  • 0: Inhabilita el almacenamiento en caché de la lista.
  • -1: Omite el vencimiento de la entrada y siempre muestra la respuesta de la lista de la caché cuando está disponible.
0
ignore-interrupts Indica a Cloud Storage FUSE que ignore las señales de interrupción del sistema, como SIGINT activada por Control+C. Esto evita que las señales finalicen las operaciones en tránsito. Valor booleano: true, false. true
dir-mode Bits de permisos para directorios, en octal. Es un número entero entre 000 y 777 inclusive. "755"
file-mode Especifica los bits de permisos para los archivos, en octal. Es un número entero entre 000 y 777 inclusive. "644"
fuse-options Especifica opciones de activación adicionales específicas del sistema.
gid Especifica el propietario del identificador de grupo (GID) de todos los inodos.
  • Es un número entero que representa un GID.
  • -1: Se usa el GID del llamador.
-1
rename-dir-limit Permite cambiar el nombre de los directorios que contienen menos subordinados que el límite especificado. Es un número entero entre 0 y 2147483647. 0
temp-dir Especifica una ruta de acceso al directorio temporal en el que las operaciones de escritura se publican en etapa de pruebas antes de subirse a Cloud Storage. Una ruta de acceso de cadena, por ejemplo: "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
uid Especifica el propietario del identificador de usuario (UID) de todos los inodos.
  • Es un número entero que representa un UID.
  • -1: Se usa el UID del llamador.
-1
foreground Ejecuta el comando gcsfuse en primer plano. Valor booleano: true, false false
max-retry-sleep Especifica la duración máxima que Cloud Storage FUSE puede suspender en un bucle de reintentos con retirada exponencial. Una vez que la duración de retirada excede la duración máxima especificada, el reintento continúa con la duración máxima especificada. Duración, por ejemplo: 1h5m50s (1 hora, 5 minutos y 50 segundos) o 60s (60 segundos). 30s
multiplier Especifica el multiplicador para la retirada exponencial entre reintentos consecutivos. Número de punto flotante "2"
cloud-metrics-export-interval-secs

Exporta métricas a Cloud Monitoring con el intervalo especificado.

Nota: El uso de esta marca requiere una configuración adicional. Para obtener más información, consulta Configura el exportador de Cloud Monitoring.

Es un número entero que representa un valor en segundos, por ejemplo: 10 (10 segundos). 0 especifica que no se exportará. 0
prometheus-port

Expone el extremo de las métricas de Prometheus en el puerto y la ruta de acceso /metrics especificados.

Nota: El uso de esta marca requiere una configuración adicional. Para obtener más información, consulta Cómo configurar el exportador de Prometheus.

Es un número entero que representa el puerto que deseas especificar. 0
log-mutex Imprime mensajes de depuración cuando una exclusión se mantiene por mucho tiempo. Si se especifica esta opción, el nivel de gravedad de los registros se establece de forma automática en trace, que incluye registros de seguimiento, registros de depuración, registros de información, registros de advertencia y registros de errores. Valor booleano: true, false. false
exit-on-invariant-violation Sale del programa cuando se detectan incumplimientos de variantes internas. Valor booleano: true, false. false
enable-streaming-writes Controla el flujo de la ruta de escritura para que los datos se suban directamente a Cloud Storage a medida que se escriben, en lugar de preparar la escritura por completo de forma local y subirla a close() o fsync(). Para obtener más información sobre las operaciones de escritura continuas, consulta la documentación de GitHub de Cloud Storage FUSE. Valor booleano: true, false. false