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"
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 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
app-name El nombre de la aplicación de la activación.
create-empty-file Un valor booleano que especifica si se debe crear o no un archivo de cero bytes en Cloud Storage cuando comienzas a escribir en un archivo nuevo del bucket activado. Si no se especifica este campo, el valor predeterminado es false.
file-path La ruta de acceso al archivo de registro en el que se escribirán los registros, especificados como una cadena. Por ejemplo, /var/log. 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 syslog cuando Cloud Storage FUSE se ejecuta en modo en segundo plano.
format El formato en el que se generan los registros, expresados como una enumeración. Los valores son text o json. Si no se especifica este campo, el valor predeterminado es json.
severity

La gravedad de los registros que deseas que Cloud Storage FUSE genere, expresado como una enumeración. Los niveles de gravedad se ordenan desde la gravedad más baja a la más alta:

  • trace
  • debug
  • info
  • warning
  • error

Cuando especificas un nivel de gravedad, Cloud Storage FUSE genera registros con una gravedad igual o superior. Por ejemplo, cuando especificas warning, Cloud Storage FUSE genera registros para advertencias y errores. También puedes especificar off para desactivar todo el registro. Por lo general, recomendamos usar el nivel de gravedad info.

El nivel de gravedad se establece automáticamente en trace si se especifica alguna de las siguientes opciones como parte de tu comando:

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

Si no se especifica este campo, el valor predeterminado es info.

Nota: El uso de los niveles de gravedad trace o debug cuando el almacenamiento en caché de archivos está habilitado puede provocar una degradación del rendimiento debido a la sobrecarga de registro y solo debe usarse de forma temporal o durante la solución de problemas.

max-file-size-mb El tamaño máximo en megabytes (MB) que pueden alcanzar los archivos de registro antes de que se roten. El valor mínimo es 1. Si no se especifica este campo, el valor predeterminado es 512.
backup-file-count La cantidad máxima de archivos de registro rotados que se conservarán, sin incluir el archivo activo en el que se escriben. Cuando el valor se establece en 0, se conservan todos los archivos de registro rotados. Si no se especifica este campo, el valor predeterminado es 10.
compress U valor booleano que especifica si los archivos de registro rotados se comprimen con gzip. Si no se especifica este campo, el valor predeterminado es 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.

  • Especifica -1 para usar toda la capacidad disponible de la caché en el directorio que especificas para cache-dir.
  • Especifica 0 para inhabilitar la caché del archivo.

Si no se especifica este campo, el valor predeterminado es -1.

cache-file-for-range-read

Un valor booleano que determina 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 una compensación distinta de cero. Esto debe configurarse como true si planeas realizar varias lecturas aleatorias o parciales. Si no se especifica este campo, el valor predeterminado es false.

Ten en cuenta que si realizas una lectura parcial que comienza en el desplazamiento 0, Cloud Storage FUSE siempre descarga y almacena en caché el objeto completo de forma asíncrona.

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. El valor predeterminado es false.


Para usar descargas paralelas, debes habilitar el almacenamiento en caché de archivos. Para obtener más información sobre las descargas en paralelo y configurar sus propiedades compatibles, consulta Mejora el rendimiento de lectura con descargas en paralelo.
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. El valor predeterminado es 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. El valor predeterminado es el doble de la cantidad de núcleos de CPU en la máquina. Para omitir un límite, especifica un valor de -1.

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. El valor predeterminado es 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é. El valor predeterminado es false.
stat-cache-max-size-mb

El tamaño máximo en MiB que puede usar la caché de estadísticas. La caché de estadística siempre se mantiene por completo en la memoria.

  • Especifica 32 si tu carga de trabajo involucra 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, que es un promedio de alrededor de 1,500 bytes por archivo.
  • Especifica -1 para permitir que la caché de estadísticas use tanta memoria como sea necesario.
  • Especifica 0 para inhabilitar la caché de estadísticas.

Si no se especifica este campo, el valor predeterminado es 32.

ttl-secs

Define el tiempo de actividad (TTL) de las entradas de metadatos almacenadas en caché, expresado en segundos.

  • Especifica -1 para omitir un vencimiento de TTL y entregar el archivo desde la caché cuando esté disponible.
  • Especifica 0 para asegurarte de que se lea el archivo más actualizado. El uso de este valor de 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é.

Si no se especifica este campo, el valor predeterminado es 60s.

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.

  • Especifica 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.
  • Especifica -1 para permitir que el tipo de caché use tanta memoria como sea necesario.
  • Especifica 0 para inhabilitar el tipo de caché.

Si no se especifica este campo, el valor predeterminado es 4.

cache-dir Especifica el directorio para almacenar datos de caché de archivos. Este campo se debe especificar para habilitar el almacenamiento en caché de archivos.
only-dir Activa solo un directorio específico dentro de un bucket.
anonymous-access Inhabilita la autenticación para las solicitudes. Establece este campo si usas un extremo personalizado que no admite la autenticación o si usas Cloud Storage FUSE para activar buckets públicos. El valor predeterminado es 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.
reuse-token-from-url Especifica que se debe usar el token adquirido de token-url. El valor predeterminado es true.
token-url Especifica una URL para obtener un token de acceso cuando key-file está ausente.
billing-project Especifica un proyecto para usarlo en la facturación cuando se accede al bucket activado. Esta marca a menudo es obligatoria cuando se activa un bucket habilitado con los pagos del solicitante. El proyecto predeterminado no es ninguno.
client-protocol Especifica el protocolo que se usa para comunicarse con el backend de Cloud Storage. El valor puede ser http1 para HTTP/1.1 o http2 para HTTP/2. El valor predeterminado es 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.
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. El valor predeterminado es 0s, que indica que no hay 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. El valor límite predeterminado es "-1", que especifica que no hay 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. El valor límite predeterminado es "-1", que especifica que no hay ningún límite.
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. El valor predeterminado es 0, que especifica que no hay un límite en las conexiones de TCP, excepto las limitaciones que define las especificaciones de tu máquina.
max-idle-conns-per-host Especifica la cantidad máxima de conexiones inactivas permitidas por servidor. El valor predeterminado es 100.
sequential-read-size-mb Especifica el tamaño de fragmento de los datos que se descargarán desde Cloud Storage, en megabytes (MB). El valor predeterminado es 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.
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é. El kernel controla la asignación de memoria para la caché de lista según la memoria disponible. El valor predeterminado es 0, que inhabilita el almacenamiento en caché de listas.

Para configurar el campo kernel-list-cache-ttl-secs, especifica un valor positivo en segundos de manera que puedas mantener la respuesta de la lista de directorios en la caché de la página del kernel. Para omitir el vencimiento de la entrada y siempre mostrar la respuesta de lista de la caché cuando esté disponible, ingresa un valor de -1.
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. Los valores son true o false. El valor predeterminado es true.
dir-mode Bits de permisos para directorios, en octal. El valor predeterminado es "755".
file-mode Especifica los bits de permisos para los archivos, en octal. El valor predeterminado es "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. El valor predeterminado del GID es -1.
rename-dir-limit Permite cambiar el nombre de los directorios que contienen menos subordinados que el límite especificado. El valor límite predeterminado es 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. El valor predeterminado es el predeterminado del sistema, como "/tmp".
uid Especifica el propietario del identificador de usuario (UID) de todos los inodos. El valor de UID predeterminado es -1.
foreground Ejecuta el comando gcsfuse en primer plano. El valor predeterminado es 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. El valor límite predeterminado es 30s (30 segundos).
multiplier Especifica la retirada exponencial entre los reintentos, en la que el valor es el multiplicador del tiempo de espera posterior según el tiempo de espera anterior. El valor predeterminado es "2".
stackdriver-export-interval Exporta métricas a Cloud Monitoring con el intervalo especificado. El valor predeterminado es 0s (0 segundos), que no especifica ninguna exportación.
log-mutex Imprime mensajes de depuración cuando una exclusión mutua 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. El valor predeterminado es false.
exit-on-invariant-violation Sale del programa cuando se detectan incumplimientos de variantes internas. El valor predeterminado es false.