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.

Présentation du fichier de configuration Cloud Storage FUSE

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.

Format et champs du fichier de configuration Cloud Storage FUSE

L'exemple de configuration YAML suivant montre le format et les champs disponibles dans 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-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

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 Valeur valide Valeur par défaut
Nom de l'application de l'installation. Valeur de chaîne, par exemple : "my-bucket-mount". ""
Chemin d'accès au fichier journal dans lequel les journaux seront écrits. 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. Valeur de chaîne, par exemple : "/var/log". ""
Spécifie le format du fichier journal.
  • text
  • json
json

Niveau de gravité pour lequel vous souhaitez que Cloud Storage FUSE génère des journaux. Les niveaux de gravité ci-après sont classés du moins grave au plus grave. Par exemple, lorsque vous spécifiez warning, Cloud Storage FUSE génère des journaux pour les avertissements et les erreurs. En général, nous vous recommandons d'utiliser le niveau de gravité info.

  • off : désactive toute la journalisation.
  • error : contient des messages concernant des problèmes graves qui empêchent Cloud Storage FUSE de terminer une opération ou qui indiquent un échec, comme des échecs de montage, des erreurs d'autorisation et des erreurs d'entrée/sortie (E/S) critiques.
  • warning : contient des messages indiquant des problèmes potentiels non critiques, mais qui peuvent en entraîner d'autres s'ils ne sont pas résolus. Les problèmes potentiels incluent les problèmes de connexion non fatals, les avertissements de suppression, la contention des ressources qui peut entraîner une légère dégradation des performances et les nouvelles tentatives en cas d'échecs temporaires. Ce niveau de gravité inclut également les informations fournies dans le niveau de gravité error.
  • info : contient des informations de journalisation telles que les messages de démarrage et d'arrêt, ou des informations sur les opérations de montage réussies, les mises à jour de progression et les paramètres de configuration. Ce niveau de gravité inclut également des informations sur les niveaux de gravité warning et error.
  • debug : contient des informations de journalisation telles que les messages de démarrage et d'arrêt, ou des informations sur les opérations de montage réussies, les mises à jour de progression et les paramètres de configuration. Ce niveau de gravité inclut également les informations fournies dans les niveaux de gravité info, warning et error.
  • trace : contient des informations détaillées sur chaque opération et appel de fonction Cloud Storage FUSE, décrivant l'interaction gcsFUSE avec le pilote FUSE du noyau et Cloud Storage. Ce niveau de gravité inclut également les détails fournis dans les niveaux de gravité debug, info, warning et error.
info
Taille maximale en mégaoctets (Mo) que les fichiers journaux peuvent atteindre avant d'être alternés. Entier. La valeur minimale est 1. 512
Nombre maximal de fichiers journaux alternés à conserver, à l'exclusion du fichier actif dans lequel les journaux sont écrits.
  • Integer
  • 0 : conserve tous les fichiers journaux permutés.
10
Indique si les fichiers journaux alternés sont compressés à l'aide de gzip. Valeur booléenne : true, false true

Active le cache de fichiers et spécifie le répertoire où stocker les données du cache de fichiers.

Un chemin d'accès, par exemple : "/tmp/gcsfuse-cache-path". Une valeur vide indique que ce champ est désactivé. Ce champ est désactivé par défaut.

Spécifie la taille maximale en Mio que le cache de fichiers peut utiliser et vous permet de limiter la capacité totale que le cache de fichiers peut utiliser dans son répertoire installé.

  • Integer
  • -1 : spécifie l'utilisation de toute la capacité disponible du cache dans le répertoire que vous spécifiez pour cache-dir. Il s'agit de la valeur par défaut uniquement si cache-dir est transmis.
  • 0 : désactive le cache de fichiers.
-1
Indique 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 option doit être définie sur true si vous prévoyez d'effectuer plusieurs lectures aléatoires ou partielles. Valeur booléenne : true, false false

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 plusieurs parties d'un fichier en parallèle.

Les téléchargements parallèles sont automatiquement activés lorsque vous activez la mise en cache de fichiers. Pour en savoir plus sur la mise en cache de fichiers, consultez Utiliser la mise en cache de fichiers Cloud Storage FUSE.

Pour en savoir plus sur les téléchargements parallèles et sur la configuration des propriétés associées, consultez Téléchargements parallèles.

Valeur booléenne : true, false. true
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. Integer 16
Nombre maximal de goroutines pouvant être lancées à un même moment pour tous les jobs de téléchargement de fichiers.
  • Integer
  • -1 : spécifie un nombre illimité de téléchargements parallèles.
  • 0 : désactive les téléchargements parallèles. Ne peut être utilisé que si --enable-parallel-downloads n'est pas transmis ou est transmis en tant que false.
  • >0 : ne spécifie aucune limite supérieure. Cloud Storage FUSE limite en interne la valeur en fonction du nombre maximal de goroutines pouvant être générées, spécifié par la configuration de votre machine.
Le double du nombre de cœurs de processeur de votre machine ou 16, selon la valeur la plus élevée.
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. Integer 200
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. Valeur booléenne : true, false false
Taille maximale de la mémoire que le cache de statistiques peut utiliser, en Mio. Le cache de statistiques est toujours entièrement conservé en mémoire.
  • Entier. Nous vous recommandons de suivre les conseils suivants :
    • 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, sachant que le cache d'état utilise en moyenne 1 500 Mio par fichier.
  • -1 : ne définit aucune limite et permet au cache de statistiques d'utiliser autant de mémoire que nécessaire.
  • 0 : désactive le cache de statistiques.
32

Définit la valeur TTL (Time To Live) en secondes des entrées du cache de statistiques négatives, qui stockent les résultats des fichiers inexistants dans le cache.

  • Nombre entier représentant des secondes, par exemple : 10 (10 secondes).
  • 0 : désactive la mise en cache des statistiques négatives.
  • -1 : autorise la mise en cache illimitée des statistiques négatives et désactive l'expiration de la valeur TTL.
5
Définit la valeur TTL (Time To Live), en secondes, des entrées de métadonnées mises en cache.
  • Nombre entier représentant des secondes, par exemple : 30 (30 secondes).
  • -1 : contourne le délai d'expiration de la valeur TTL et diffuse les fichiers à partir du cache chaque fois qu'ils sont disponibles.
  • 0 : utilisez le fichier le plus récent. 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.
60
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.
  • Entier. Nous vous recommandons de suivre les conseils suivants :
    • 4 si le nombre maximal de fichiers dans un seul répertoire 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).
  • -1 : ne spécifie aucune limite et permet au cache de type d'utiliser autant de mémoire que nécessaire.
  • 0 : désactive le cache de types.
4
Installe uniquement un répertoire spécifique dans un bucket. Un chemin d'accès, par exemple : "/etc/gcsfuse.yaml".
Désactive l'authentification pour les requêtes. Cette option doit être définie si vous utilisez un point de terminaison personnalisé qui n'est pas compatible avec l'authentification. Cette option doit également être définie si vous utilisez Cloud Storage FUSE avec des buckets publics. Valeur booléenne : true, false false
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. Une URL. Si cette option n'est pas définie, les Identifiants par défaut de l'application sont utilisés.
Indique si le jeton acquis à partir de --token-url doit être réutilisé. Valeur booléenne : true, false true
Spécifie une URL permettant d'obtenir un jeton d'accès lorsque le fichier --key-file est absent. Une URL.
Spécifie un projet à utiliser pour la facturation lorsque le bucket installé est accessible. Cette option est souvent requise lors de l'installation d'un bucket activé à l'aide des Paiements par le demandeur. Valeur de chaîne représentant un ID de projet. ""
Spécifie le protocole utilisé pour communiquer avec le backend Cloud Storage. http1
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.s3nsapis.fr/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.s3nsapis.fr/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. Un point de terminaison, par exemple : "http://localhost:443/storage/v1".
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. Durée, par exemple : 1h10m10s pour 1 heure, 10 minutes et 10 secondes. 0s indique l'absence de délai d'expiration. 0s, qui spécifie l'absence de délai d'inactivité
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. "-1", qui ne spécifie aucune limite.
Spécifie une limite relative aux opérations effectuées par seconde, mesurée sur une période de 30 secondes. Nombre à virgule flottante. -1 ne spécifie aucune limite. "-1"
Indique le nombre maximal de connexions TCP autorisées par serveur. Cela devient effectif lorsque --client-protocol est défini sur http1. 0
Indique le nombre maximal de connexions inactives autorisées par serveur. Cela devient effectif lorsque --client-protocol est défini sur http1. Nombre entier compris entre 0 et 2147483647. 0 ne spécifie aucune limite pour les connexions TCP. 0
Spécifie la taille de segment des données à télécharger depuis Cloud Storage, en mégaoctets (Mo). Nombre entier compris entre 1 et 1024. 200
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. Valeur booléenne : true, false false
Active le cache de liste et définit la valeur TTL (Time To Live) en secondes des entrées de liste mises en cache. Le cache de listes est conservé en mémoire dans le cache de pages, qui est contrôlé par le noyau en fonction de la mémoire disponible.
  • Nombre entier représentant des secondes, par exemple : 10 (10 secondes).
  • 0 : désactive la mise en cache des listes.
  • -1 : contourne l'expiration de l'entrée et renvoie toujours la réponse de la liste à partir du cache lorsqu'elle est disponible.
0
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. Valeur booléenne : true, false. true
Bits d'autorisation pour les répertoires, en octal. Nombre entier compris entre 000 et 777 (inclus). "755"
Spécifie les bits d'autorisation pour les fichiers, en octal. Nombre entier compris entre 000 et 777 (inclus). "644"
Spécifie des options d'installation supplémentaires spécifiques au système.
Spécifie le propriétaire de l'identifiant de groupe (GID) de tous les inodes.
  • Entier représentant un GID.
  • -1 : l'ID de groupe de l'appelant est utilisé.
-1
Permet de renommer des répertoires contenant moins de descendants que la limite spécifiée. Nombre entier compris entre 0 et 2147483647. 0
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. Chemin de chaîne, par exemple : "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
Spécifie le propriétaire de l'identifiant utilisateur (UID) de tous les inodes.
  • Entier représentant un UID.
  • -1 : l'UID de l'appelant est utilisé.
-1
Il exécute la commande gcsfuse au premier plan. Valeur booléenne : true, false false
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. Durée, par exemple : 1h5m50s (1 heure, 5 minutes et 50 secondes) ou 60s (60 secondes). 30s
Spécifie le multiplicateur pour l'intervalle exponentiel entre les nouvelles tentatives consécutives. Nombre à virgule flottante "2"

Exporte les métriques vers Cloud Monitoring avec l'intervalle spécifié.

Nombre entier représentant une valeur en secondes, par exemple : 10 (10 secondes). 0 signifie qu'aucune exportation n'est spécifiée. 0

Expose le point de terminaison des métriques Prometheus sur le port spécifié et le chemin d'accès /metrics.

Entier représentant le port que vous souhaitez spécifier. 0
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. Valeur booléenne : true, false. false
Quitte le programme lorsque des infractions aux variantes internes sont détectées. Valeur booléenne : true, false. false
Contrôle le flux du chemin d'écriture afin que les données soient importées directement dans Cloud Storage au fur et à mesure de leur écriture, au lieu d'être entièrement mises en scène localement et importées lors de l'exécution de close() ou fsync(). Pour en savoir plus sur les écritures en flux continu, consultez la documentation GitHub de Cloud Storage FUSE. Valeur booléenne : true, false. true

Spécifie le nombre maximal de blocs de données disponibles pour les écritures en flux continu dans tous les fichiers. Par défaut, chaque fichier utilise un bloc de données de 32 Mio.

  • Integer
  • 0 : désactive les écritures de flux.
  • -1 : définit la valeur sur un nombre illimité de blocs.
  • Valeur par défaut pour les machines peu performantes avec des ressources limitées : 4
  • Valeur par défaut pour les machines hautes performances disposant d'une grande quantité de ressources : 1600

Haut de page