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 del archivo de configuración en la marca --config-file como parte del comando mount.

Información general sobre el archivo de configuración de Cloud Storage FUSE

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

Formato y campos del archivo de configuración de Cloud Storage FUSE

En el siguiente ejemplo de configuración de YAML se muestran el formato y los campos disponibles en 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 de configuración

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

Campo Descripción Valor válido Valor predeterminado
Nombre de la aplicación del montaje. Valor de cadena; por ejemplo, "my-bucket-mount". ""
Ruta al archivo de registro en el que se escribirán los registros. Si no se especifica este campo, los registros se dirigen a stdout cuando Cloud Storage FUSE se ejecuta en modo de primer plano y a syslogs cuando Cloud Storage FUSE se ejecuta en modo de segundo plano. Valor de cadena; por ejemplo, "/var/log". ""
Especifica el formato del archivo de registro.
  • text
  • json
json

El nivel de gravedad de los registros que quieres que genere Cloud Storage FUSE. Los niveles de gravedad se ordenan de menor a mayor. Por ejemplo, si especificas warning, Cloud Storage FUSE genera registros de advertencias y errores. Por lo general, recomendamos usar el info nivel de gravedad.

  • off: inhabilita todos los registros.
  • error: contiene mensajes sobre problemas graves que impiden que Cloud Storage FUSE complete una operación o indican un fallo, como fallos de montaje, errores de permisos y errores críticos de entrada/salida (E/S).
  • warning: contiene mensajes que indican posibles problemas que no son críticos, pero que pueden provocar problemas si no se solucionan. Entre los posibles problemas se incluyen problemas de conexión no fatales, advertencias de obsolescencia, contención de recursos que puede provocar una ligera degradación del rendimiento y reintentos de errores transitorios. Este nivel de gravedad también incluye la información proporcionada en el nivel de gravedad error.
  • info: contiene información de registro, como mensajes de inicio y cierre, o información sobre operaciones de montaje correctas, actualizaciones de progreso y ajustes de configuración. Este nivel de gravedad también incluye información sobre los niveles de gravedad warning y error.
  • debug: contiene información de registro, como mensajes de inicio y cierre, o información sobre operaciones de montaje correctas, actualizaciones de progreso y ajustes de configuración. Este nivel de gravedad también incluye la información proporcionada en los niveles de gravedad info, warning y error.
  • trace: contiene detalles específicos sobre cada operación y llamada de función de Cloud Storage FUSE, y describe la interacción gcsFUSE con el controlador FUSE del kernel y Cloud Storage. Este nivel de gravedad también incluye los detalles proporcionados en los niveles de gravedad debug, info, warning y error.
info
El tamaño máximo en megabytes (MB) que pueden alcanzar los archivos de registro antes de rotarse. Número entero. El valor mínimo es 1. 512
El número máximo de archivos de registro rotados que se conservarán, sin incluir el archivo activo en el que se escriben los registros.
  • Entero
  • 0: conserva todos los archivos de registro rotados.
10
Especifica si los archivos de registro rotados se comprimen con gzip. Valor booleano: true o false true

Habilita la caché de archivos y especifica el directorio para almacenar los datos de la caché de archivos.

Por ejemplo, una ruta: "/tmp/gcsfuse-cache-path". Un valor vacío indica que este campo está inhabilitado. Este campo está inhabilitado de forma predeterminada.

Especifica el tamaño máximo en MiB que puede usar la caché de archivos y te permite limitar la capacidad total que puede usar la caché de archivos en su directorio montado.

  • Entero
  • -1: especifica el uso de toda la capacidad disponible de la caché en el directorio que especifiques para cache-dir. Este es el valor predeterminado solo si se pasa cache-dir.
  • 0: inhabilita la caché de archivos.
-1
Determina si el objeto completo se debe descargar de forma asíncrona y almacenar en el directorio de caché de FUSE de Cloud Storage cuando se complete la primera lectura desde un desplazamiento distinto de cero. Esta opción debe configurarse como true si tienes previsto realizar varias lecturas aleatorias o lecturas parciales. Valor booleano: true o false false

Acelera las lecturas de archivos grandes mediante el directorio de caché de archivos como búfer de prefetched. Para ello, usa varios procesos de trabajo para descargar varias partes de un archivo en paralelo.

Las descargas paralelas se habilitan automáticamente cuando habilitas el almacenamiento en caché de archivos. Para obtener más información sobre el almacenamiento en caché de archivos, consulta Usar el almacenamiento en caché de archivos de Cloud Storage FUSE.

Para obtener más información sobre las descargas paralelas y cómo configurar las propiedades compatibles, consulta el artículo Descargas paralelas.

Valor booleano: true o false. true
Especifica el número máximo de goroutines que se van a generar por archivo para descargar el objeto de Cloud Storage en la caché de archivos. Entero 16
Número máximo de goroutines que se pueden generar en un momento dado en todos los trabajos de descarga de archivos.
  • Entero
  • -1: especifica descargas paralelas ilimitadas.
  • 0: inhabilita las descargas paralelas. Solo se puede usar si no se incluye --enable-parallel-downloads o si se incluye con el valor false.
El doble del número de núcleos de CPU de tu máquina o 16, lo que sea mayor.
Especifica el tamaño de cada solicitud de lectura en MiB que cada goroutine hace a Cloud Storage al descargar el objeto en la caché de archivos. Entero 200
Crea una entrada de caché de tipo 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 podrá solicitar ese archivo hasta que se elimine la entrada NonexistentType de la caché de tipos. Valor booleano: true o false false
Tamaño máximo de memoria que puede usar la caché de estadísticas, en MiB. La caché de estadísticas siempre se mantiene por completo en la memoria.
  • Número entero. Te recomendamos 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 10 por cada 6000 archivos adicionales, donde la caché de estadísticas usa una media de 1500 MiB por archivo.
  • -1: no establece ningún límite, por lo que la caché de estadísticas usa tanta memoria como sea necesario.
  • 0: inhabilita la caché de estadísticas.
32

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

  • Número entero que representa segundos. Por ejemplo, 10 (10 segundos).
  • 0: inhabilita el almacenamiento en caché de estadísticas negativas.
  • -1: permite el almacenamiento en caché negativo de estadísticas ilimitado e inhabilita la caducidad del TTL.
5
Define el tiempo de vida (TTL) en segundos de las entradas de metadatos almacenadas en caché.
  • Número entero que representa segundos. Por ejemplo, 30 (30 segundos).
  • -1: ignora el vencimiento del TTL y sirve archivos de la caché siempre que estén disponibles.
  • 0: usa el archivo más actualizado. Al usar este valor, se hace una llamada de metadatos Get para asegurarse de que la generación del objeto del archivo de la caché coincida con lo que se almacena en Cloud Storage. Para obtener más información, consulta Configurar la invalidación de caché.
60
Tamaño máximo en MiB por directorio que puede usar la caché de tipos. La caché de tipos siempre se mantiene por completo en la memoria.
  • Número entero. Te recomendamos lo siguiente:
    • 4 si el número máximo de archivos de un mismo directorio del contenedor que vas a montar es de 20.000 o menos.
    • Si el número máximo de archivos de un directorio que vas a montar supera los 20.000, aumenta el valor en 1 por cada 5000 archivos, lo que supone una media de unos 200 bytes por archivo.
  • -1: no especifica ningún límite y permite que la caché de tipos use tanta memoria como necesite.
  • 0: inhabilita la caché de tipos.
4
Monta solo un directorio específico de un segmento. Por ejemplo, una ruta: "/etc/gcsfuse.yaml".
Inhabilita la autenticación de las solicitudes. Esta opción debe configurarse si utilizas un endpoint personalizado que no admite la autenticación. Esta opción también debe configurarse si usas Cloud Storage FUSE con segmentos públicos. Valor booleano: true o false false
Especifica una ruta absoluta al archivo de clave JSON de las credenciales para autenticar las solicitudes a Cloud Storage. De forma predeterminada, Cloud Storage FUSE usa las credenciales predeterminadas de la aplicación para autenticar las solicitudes. Una URL. Si no se define esta opción, se usarán las credenciales predeterminadas de la aplicación.
Especifica si se debe reutilizar el token adquirido de --token-url. Valor booleano: true o false true
Especifica una URL para obtener un token de acceso cuando no se incluye el --key-file. Una URL.
Especifica un proyecto que se usará para la facturación cuando se acceda al segmento montado. Esta opción suele ser obligatoria al montar un segmento en el que se ha habilitado la función Pagos del solicitante. Valor de cadena que representa un ID de proyecto. ""
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. Para usar gRPC con Cloud Storage FUSE, te recomendamos que utilices Cloud Storage FUSE 2.10.0 o versiones posteriores.
http1
Especifica un endpoint personalizado alternativo para obtener datos. El endpoint personalizado debe admitir los mismos recursos y operaciones que el endpoint JSON de Cloud Storage, storage.UNIVERSE_DOMAIN_NAME:443. Si no se especifica ningún endpoint personalizado, Cloud Storage FUSE usa el endpoint global de la API JSON de Cloud Storage, storage.googleapis.com:443. Si la autenticación no se admite en el endpoint personalizado que especifiques, asigna el valor true a la marca --anonymous-access para omitir la autenticación. Un endpoint, por ejemplo: storage.googleapis.com:443.
Especifica cuánto tiempo puede esperar el cliente HTTP de Cloud Storage FUSE 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 especifica que no hay tiempo de espera. 0s, que especifica que no hay tiempo de espera
Especifica el límite de ancho de banda al que Cloud Storage FUSE puede leer datos de Cloud Storage, medido en un periodo de 30 segundos. "-1", que no especifica ningún límite.
Especifica un límite para las operaciones realizadas por segundo, medido en un periodo de 30 segundos. Número de punto flotante. -1 especifica que no hay límite. "-1"
Especifica el número máximo de conexiones TCP permitidas por servidor. Esta opción se aplica cuando --client-protocol se define como http1. 0
Especifica el número máximo de conexiones inactivas permitidas por servidor. Esta opción se aplica cuando --client-protocol se define como http1. Número entero entre 0 y 2147483647. 0 especifica que no hay límite en las conexiones TCP. 0
Especifica el tamaño de los fragmentos de los datos que se van a descargar de Cloud Storage, en megabytes (MB). Número entero entre 1 y 1024. 200
Incluye implícitamente carpetas y carpetas gestionadas. Consulta la documentación de archivos y directorios en GitHub para obtener más información. Valor booleano: true o false false
Habilita la caché de listas y define el tiempo de vida (TTL) en segundos de las entradas de lista almacenadas en caché. La caché de listas se mantiene en la memoria de la caché de páginas, que el kernel controla en función de la memoria disponible.
  • 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 devuelve la respuesta de la lista de la caché cuando está disponible.
0
Indica a Cloud Storage FUSE que ignore las señales de interrupción del sistema, como SIGINT, que se activa con Control+C. De esta forma, se evita que las señales interrumpan las operaciones en curso. Valor booleano: true o false. true
Bits de permisos de directorios en octal. Número entero entre 000 y 777 (ambos inclusive). "755"
Especifica los bits de permisos de los archivos en octal. Número entero entre 000 y 777 (ambos inclusive). "644"
Especifica opciones de montaje adicionales específicas del sistema.
Especifica el propietario del identificador de grupo (GID) de todos los inodos.
  • Número entero que representa un GID.
  • -1: se usa el GID de la persona que llama.
-1
Permite cambiar el nombre de los directorios que contengan menos elementos descendientes que el límite especificado. Número entero entre 0 y 2147483647. 0
Especifica una ruta al directorio temporal en el que se almacenan las escrituras antes de subirse a Cloud Storage. Una ruta de cadena, por ejemplo: "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
Especifica el propietario del identificador de usuario (UID) de todos los nodos de índice.
  • Número entero que representa un UID.
  • -1: se usa el UID de la persona que llama.
-1
Ejecuta el comando gcsfuse en primer plano. Valor booleano: true o false false
Especifica el número máximo de veces que se reintenta una operación si falla, lo que evita bucles de reintentos infinitos.
  • Número entero que representa el número máximo de reintentos. Por ejemplo: 10.
  • 0: permite un número ilimitado de intentos.
0
Especifica la duración máxima que puede permanecer inactivo Cloud Storage FUSE en un bucle de reintentos con retroceso exponencial. Una vez que la duración del tiempo de espera supera la duración máxima especificada, el reintento continúa con la duración máxima especificada. Por ejemplo, la duración: 1h5m50s (1 hora, 5 minutos y 50 segundos) o 60s (60 segundos). 30s
Especifica el multiplicador del tiempo de espera exponencial entre reintentos consecutivos. Número de punto flotante "2"

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

.
Número entero que representa un valor en segundos. Por ejemplo, 10 (10 segundos). 0 especifica que no se exporte nada. 0

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

Número entero que representa el puerto que quieres especificar. 0
Imprime mensajes de depuración cuando se mantiene un mutex durante demasiado tiempo. Si se especifica esta opción, el nivel de gravedad de los registros se define automáticamente como trace, que incluye registros de seguimiento, de depuración, de información, de advertencia y de error. Valor booleano: true o false. false
Sale del programa cuando se detectan infracciones de variantes internas. Valor booleano: true o false. false
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 almacenarlos por completo de forma local y subirlos al close() o al fsync(). Para obtener más información sobre las escrituras de streaming, consulta la documentación de GitHub de Cloud Storage FUSE. Valor booleano: true o false. true

Especifica el número máximo de fragmentos de datos disponibles para la transmisión de escritura en todos los archivos. Cada archivo usa un fragmento de datos de 32 MiB de forma predeterminada.

  • Entero
  • 0: inhabilita las escrituras de streaming.
  • -1: asigna el valor de fragmentos ilimitados.
  • Valor predeterminado para máquinas con especificaciones bajas y recursos limitados: 4
  • Valor predeterminado para máquinas de altas especificaciones con una gran cantidad de recursos: 1600
Especifica la prefetched asíncrona de partes de un objeto de Cloud Storage en un búfer en memoria, lo que permite que las lecturas posteriores se sirvan desde el búfer en lugar de requerir llamadas de red. Valor booleano: true o false false

Especifica el número máximo de bloques disponibles para lecturas almacenadas en búfer en todos los controladores de archivos.

.
  • Entero
  • 0: inhabilita las lecturas almacenadas en búfer.
  • -1: asigna el valor a un número ilimitado de bloques.
40

Volver al principio