Fichier de configuration Cloud Storage FUSE

Cette page explique comment utiliser le fichier de configuration Cloud Storage FUSE pour configurer le comportement de Cloud Storage FUSE de manière persistante. Pour utiliser le fichier de configuration, spécifiez le chemin d'accès au fichier de configuration dans l'option --config-file lors de votre commande d'installation.

Le fichier de configuration est un fichier YAML qui utilise le format et les champs suivants. Certains champs peuvent également être spécifiés à l'aide d'options de ligne de commande.

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

Champs de configuration

Le tableau suivant décrit les champs que vous pouvez spécifier dans votre fichier de configuration. Sauf indication contraire, tous les champs sont facultatifs.

Champ Description
app-name Nom de l'application de l'installation.
create-empty-file Valeur booléenne qui indique s'il faut créer un fichier de zéro octet dans Cloud Storage lorsque vous commencez à écrire dans un nouveau fichier, sur le bucket installé. Si ce champ n'est pas spécifié, la valeur par défaut est false.
file-path Chemin d'accès au fichier journal dans lequel les journaux seront écrits, spécifié sous forme de chaîne. Par exemple, /var/log. Si ce champ n'est pas spécifié, les journaux sont acheminés vers stdout lorsque Cloud Storage FUSE s'exécute en mode premier plan et vers syslogs lorsque Cloud Storage FUSE s'exécute en mode arrière-plan.
format Format dans lequel les journaux sont générés, exprimé sous la forme d'une énumération. Les valeurs sont : text ou json. Si ce champ n'est pas spécifié, la valeur par défaut est json.
severity

Gravité des journaux que Cloud Storage FUSE doit générer, exprimée sous forme d'énumération. Les niveaux de gravité ci-après sont classés du moins grave au plus grave :

  • trace
  • debug
  • info
  • warning
  • error

Lorsque vous spécifiez un niveau de gravité, Cloud Storage FUSE génère les journaux présentant une gravité égale à ce niveau, ou supérieure. Par exemple, lorsque vous spécifiez warning, Cloud Storage FUSE génère des journaux pour les avertissements et les erreurs. Vous pouvez également spécifier off pour désactiver toute journalisation. Si l'une des trois options suivantes est également spécifiée dans votre commande, le niveau de gravité est automatiquement défini sur trace :

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

Si ce champ n'est pas spécifié, la valeur par défaut est info.

max-file-size-mb Taille maximale en mégaoctets (Mo) que les fichiers journaux peuvent atteindre avant d'être alternés. La valeur minimale est 1. Si ce champ n'est pas spécifié, la valeur par défaut est 512.
backup-file-count Nombre maximal de fichiers journaux alternés à conserver, à l'exclusion du fichier actif dans lequel les journaux sont écrits. Lorsque la valeur est définie sur 0, tous les fichiers journaux alternés sont conservés. Si ce champ n'est pas spécifié, la valeur par défaut est 10.
compress Valeur booléenne qui indique si les fichiers journaux alternés sont compressés à l'aide de gzip. Si ce champ n'est pas spécifié, la valeur par défaut est true.
max-size-mb

Taille maximale en Mio que le cache de fichiers peut utiliser. Si cette option est présente, max-size-mb active la mise en cache des fichiers dans Cloud Storage FUSE et est utile si vous souhaitez limiter la capacité totale que le cache Cloud Storage FUSE peut utiliser dans son répertoire installé.

  • Spécifiez -1 pour utiliser toute la capacité disponible du cache dans le répertoire que vous spécifiez pour cache-dir.
  • Spécifiez 0 pour désactiver le cache de fichiers.

Si ce champ n'est pas spécifié, la valeur par défaut est -1.

cache-file-for-range-read

Valeur booléenne qui détermine si l'objet complet doit être téléchargé de manière asynchrone et stocké dans le répertoire de cache Cloud Storage FUSE lorsque la première lecture est effectuée à partir d'un décalage différent de zéro. Cette valeur doit être définie sur true si vous prévoyez d'effectuer plusieurs lectures aléatoires ou partielles. Si ce champ n'est pas spécifié, la valeur par défaut est false.

Notez que si vous effectuez une lecture partielle commençant au décalage 0, Cloud Storage FUSE télécharge et met toujours en cache l'objet complet de manière asynchrone.

enable-parallel-downloads

Accélère les lectures de fichiers volumineux en utilisant le répertoire de cache de fichiers comme tampon de préchargement utilisant plusieurs nœuds de calcul afin de télécharger des fichiers volumineux en parallèle. La valeur par défaut est false.


Pour utiliser les téléchargements parallèles, vous devez activer la mise en cache de fichiers. Pour en savoir plus sur les téléchargements parallèles et configurer les propriétés de compatibilité, consultez la page Améliorer les performances de lecture en utilisant les téléchargements parallèles.
parallel-downloads-per-file

Spécifie le nombre maximal de goroutines à générer par fichier pour télécharger l'objet de Cloud Storage vers le cache de fichiers. La valeur par défaut est 16.

max-parallel-downloads

Nombre maximal de goroutines pouvant être lancées à un même moment pour tous les jobs de téléchargement de fichiers. La valeur par défaut est le double du nombre de cœurs de processeur de la machine. Pour contourner une limite, spécifiez la valeur -1.

download-chunk-size-mb

Spécifie la taille en Mio de chaque requête de lecture que chaque goroutine envoie à Cloud Storage lors du téléchargement de l'objet dans le cache de fichiers. La valeur par défaut est 50.

enable-nonexistent-type-cache Crée une entrée de cache de types NonexistentType si un fichier est introuvable dans Cloud Storage. Si le fichier est créé dans Cloud Storage, mais que l'entrée NonexistentType du fichier est mise en cache, Cloud Storage FUSE ne peut pas demander ce fichier tant que l'entrée NonexistentType n'est pas supprimée du cache du type. La valeur par défaut est false.
stat-cache-max-size-mb

Taille maximale en Mio que le cache de statistiques peut utiliser. Le cache de statistiques est toujours entièrement conservé en mémoire.

  • Spécifiez 32 si votre charge de travail implique jusqu'à 20 000 fichiers. Si votre charge de travail dépasse 20 000 fichiers, augmentez la taille par incréments de 10 pour chaque tranche supplémentaire de 6 000 fichiers (soit une moyenne d'environ 1 500 octets par fichier).
  • Spécifiez -1 pour permettre au cache de statistiques d'utiliser autant de mémoire que nécessaire.
  • Spécifiez 0 pour désactiver le cache de statistiques.

Si ce champ n'est pas spécifié, la valeur par défaut est 32.

ttl-secs

Définit la valeur TTL (Time To Live) des entrées de métadonnées mises en cache, exprimée en secondes.

  • Spécifiez -1 pour contourner le délai d'expiration TTL et diffuser le fichier à partir du cache chaque fois qu'il est disponible.
  • Spécifiez 0 pour vous assurer que le fichier le plus récent est lu. L'utilisation de cette valeur émet un appel de métadonnées Get pour s'assurer que la génération d'objets pour le fichier dans le cache correspond à ce qui est stocké dans Cloud Storage. Pour en savoir plus, consultez Configurer l'invalidation du cache.

Si ce champ n'est pas spécifié, la valeur par défaut est 60s.

type-cache-max-size-mb

Taille maximale en Mio par répertoire que le cache de types peut utiliser. Le cache de types est toujours entièrement conservé en mémoire.

  • Spécifiez 4 si le nombre maximal de fichiers dans un seul répertoire à partir du bucket que vous installez contient 20 000 fichiers ou moins. Si le nombre maximal de fichiers dans un même répertoire que vous installez contient plus de 20 000 fichiers, augmentez la valeur de 1 pour chaque tranche de 5 000 fichiers (soit une moyenne d'environ 200 octets par fichier).
  • Spécifiez -1 pour permettre au cache de type d'utiliser autant de mémoire que nécessaire.
  • Spécifiez 0 pour désactiver le cache de types.

Si ce champ n'est pas spécifié, la valeur par défaut est 4.

cache-dir Spécifie le répertoire où stocker les données du cache de fichiers. Ce champ doit être spécifié pour activer la mise en cache des fichiers.
only-dir Installe uniquement un répertoire spécifique dans un bucket.
anonymous-access Désactive l'authentification pour les requêtes. Définissez ce champ si vous utilisez un point de terminaison personnalisé qui n'est pas compatible avec l'authentification ou si vous utilisez Cloud Storage FUSE pour installer des buckets publics. La valeur par défaut est false.
key-file Spécifie un chemin d'accès absolu au fichier de clé JSON des identifiants pour authentifier les requêtes à Cloud Storage. Par défaut, Cloud Storage FUSE utilise les Identifiants par défaut de l'application pour authentifier les requêtes.
reuse-token-from-url Indique que le jeton acquis à partir de token-url doit être utilisé. La valeur par défaut est true.
token-url Spécifie une URL permettant d'obtenir un jeton d'accès lorsque le fichier key-file est absent.
billing-project Spécifie un projet à utiliser pour la facturation lorsque le bucket monté est accessible. Cette option est souvent requise lors de l'installation d'un bucket activé à l'aide des Paiements par le demandeur. Le projet par défaut est "Aucun".
client-protocol Spécifie le protocole utilisé pour communiquer avec le backend Cloud Storage. La valeur peut être http1 pour HTTP/1.1 ou http2 pour HTTP/2. La valeur par défaut est http1.
custom-endpoint Spécifie un autre point de terminaison personnalisé permettant d'extraire des données. Le point de terminaison personnalisé doit accepter les ressources et les opérations équivalentes au point de terminaison JSON Cloud Storage, https://storage.googleapis.com/storage/v1. Si aucun point de terminaison personnalisé n'est spécifié, Cloud Storage FUSE utilise le point de terminaison global de l'API JSON Cloud Storage, https://storage.googleapis.com/storage/v1. Si l'authentification n'est pas disponible sur le point de terminaison personnalisé que vous spécifiez, définissez l'option anonymous-access sur true pour contourner l'authentification.
http-client-timeout Spécifie la durée pendant laquelle le client HTTP Cloud Storage FUSE peut attendre d'obtenir une réponse du serveur avant d'expirer. La valeur par défaut 0s indique l'absence de délai d'expiration.
limit-bytes-per-sec Spécifie la limite de bande passante à laquelle Cloud Storage FUSE peut lire des données depuis Cloud Storage, mesurée sur une période de 30 secondes. La valeur par défaut est "-1", qui ne spécifie aucune limite.
limit-ops-per-sec Spécifie une limite relative aux opérations effectuées par seconde, mesurée sur une période de 30 secondes. La valeur par défaut est "-1", qui ne spécifie aucune limite.
max-conns-per-host Indique le nombre maximal de connexions TCP autorisées par serveur. Cela devient effectif lorsque client-protocol est défini sur http1. La valeur par défaut est 0, ce qui indique qu'il n'y a pas de limite pour les connexions TCP, sauf pour les limites définies par les spécifications de votre machine.
max-idle-conns-per-host Indique le nombre maximal de connexions inactives autorisées par serveur. La valeur par défaut est 100.
sequential-read-size-mb Spécifie la taille de segment des données à télécharger depuis Cloud Storage, en mégaoctets (Mo). La valeur par défaut est 200.
implicit-dirs

Inclut implicitement les dossiers et les dossiers gérés.

Pour en savoir plus, consultez la documentation sur les fichiers et les répertoires dans GitHub.
kernel-list-cache-ttl-secs Active le cache de liste et définit la valeur TTL (Time To Live) en secondes des entrées de liste mises en cache. L'allocation de mémoire pour le cache de liste est contrôlée par le noyau en fonction de la mémoire disponible. La valeur par défaut est 0, ce qui désactive la mise en cache des listes.

Pour définir le champ kernel-list-cache-ttl-secs, spécifiez une valeur positive en secondes afin de conserver la réponse de la liste d'annuaires dans le cache de page du noyau. Pour contourner l'expiration de l'entrée et toujours renvoyer la réponse de la liste à partir du cache lorsqu'elle est disponible, spécifiez la valeur -1.
ignore-interrupts Indique à Cloud Storage FUSE d'ignorer les signaux d'interruption système, tels que les signaux SIGINT déclenchés par Control+C. Cela empêche les signaux d'arrêter les opérations en cours. Les valeurs sont true ou false. La valeur par défaut est true.
dir-mode Bits d'autorisation pour les répertoires, en octal. La valeur par défaut est "755".
file-mode Spécifie les bits d'autorisation pour les fichiers, en octal. La valeur par défaut est "644".
fuse-options Spécifie des options d'installation supplémentaires spécifiques au système.
gid Spécifie le propriétaire de l'identifiant de groupe (GID) de tous les inodes. La valeur par défaut du GID est -1.
rename-dir-limit Permet de renommer des répertoires contenant moins de descendants que la limite spécifiée. La valeur de limite par défaut est 0.
temp-dir Spécifie un chemin d'accès au répertoire temporaire où les écritures sont stockées en préproduction avant leur importation dans Cloud Storage. La valeur par défaut est votre paramètre système par défaut, tel que "/tmp".
uid Spécifie le propriétaire de l'identifiant utilisateur (UID) de tous les inodes. La valeur par défaut de l'UID est -1.
foreground Il exécute la commande gcsfuse au premier plan. La valeur par défaut est false.
max-retry-sleep Spécifie la durée maximale pendant laquelle Cloud Storage FUSE est autorisé à se mettre en veille dans une boucle de nouvelle tentative avec un intervalle exponentiel entre les tentatives. Une fois que l'intervalle entre les tentatives dépasse la durée maximale spécifiée, la nouvelle tentative se poursuit avec la durée maximale spécifiée. La valeur par défaut est 30s (30 secondes).
multiplier Spécifie l'intervalle exponentiel entre les nouvelles tentatives, où la valeur correspond au multiplicateur pour le temps d'attente suivant, en fonction du temps d'attente précédent. La valeur par défaut est "2".
stackdriver-export-interval Exporte les métriques vers Cloud Monitoring avec l'intervalle spécifié. La valeur par défaut est 0s (0 seconde), ce qui indique qu'aucune exportation n'est effectuée.
log-mutex Affiche des messages de débogage lorsqu'un mutex est conservé trop longtemps. Si cette option est spécifiée, le niveau de gravité des journaux est automatiquement défini sur trace, ce qui inclut les journaux trace, les journaux de débogage, les journaux d'informations, les journaux d'avertissement et les journaux d'erreurs. La valeur par défaut est false.
exit-on-invariant-violation Quitte le programme lorsque des infractions aux variantes internes sont détectées. La valeur par défaut est false.