Dépannage

Cette page décrit les étapes de dépannage qui pourraient vous être utiles si vous rencontrez des problèmes lors de l'utilisation de Filestore.

Performances ralenties

  1. Vérifiez que vous utilisez le type de machine recommandé pour la VM cliente.
  2. Si votre VM cliente exécute Linux, assurez-vous que les options d'installation par défaut sont définies.

  3. Assurez-vous que la VM cliente se trouve dans la même région que l'instance Filestore. Procéder à l'installation dans plusieurs régions entraîne non seulement une réduction des performances, mais également des coûts de mise en réseau.

  4. Testez les performances de votre instance Filestore à l'aide de l'outil fio.

    Si les résultats du test montrent que les performances sont anormalement lentes, contactez votre responsable de compte. En revanche, si les résultats présentent des performances semblables ou supérieures à celles attendues, passez à la section suivante.

Cas d'utilisation entraînant un ralentissement des performances

Voici quelques cas d'utilisation et scénarios entraînant des performances médiocres :

Charges de travail impliquant des volumes élevés de petits fichiers

Les partages de fichiers Filestore assurent la sécurité des données et la conformité du protocole NFS à l'aide de l'option d'exportation sync. Cela signifie que pour la plupart des opérations de modification de données, l'instance Filestore attend que les données soient stockées avant de répondre aux requêtes de la VM cliente. Lorsque de nombreux fichiers sont impliqués dans une opération, le client effectue toute une série d'opérations synchrones et la latence cumulée augmente.

Par exemple, vous pouvez extraire une archive du partage de fichiers, telle que des fichiers TAR. TAR effectue un grand nombre d'opérations synchrones dans une série lors de l'extraction d'une archive contenant de nombreux fichiers. Par conséquent, les performances sont considérablement réduites.

Si vous essayez de copier un grand nombre de petits fichiers dans un partage de fichiers, essayez de créer des fichiers en parallèle avec un outil tel que gsutil :

mkdir -p /mnt/nfs/many_files_rsync/
time gsutil -m -q rsync -rp many_files /mnt/nfs/many_files_rsync/

Copie des données entre Cloud Storage et Filestore

À l'heure actuelle, la copie de données de Cloud Storage vers une instance Filestore à l'aide de gsutil est incontestablement lente. Il n'existe pas de mesure d'atténuation connue.

Latence lors de l'installation et de la désinstallation d'un partage de fichiers

Une latence de trois secondes survient lors de l'installation d'un partage de fichiers à l'aide des options d'installation par défaut, causée par la tentative de la commande d'installation pour détecter la méthode de transport compatible avec l'instance Filestore.

Le daemon mountd tente d'abord d'utiliser UDP, qui n'est pas compatible avec Filestore. Une fois que le délai d'essai initial expire, il reviendra au protocole TCP. Pour contourner ce processus de découverte et éliminer la latence ajoutée, vous pouvez spécifier l'option d'installation tcp, par exemple :

sudo mount -o tcp 10.0.0.2:/vol1 /mnt/nfs

Ceci est particulièrement important si vous vous servez d'une installation automatique avec autofs.

Filestore ne répond pas

Maintenance planifiée

Si Filestore ne répond pas pendant quelques minutes, puis redevient actif, le délai de réponse est probablement dû à un événement de maintenance programmé. Pour en savoir plus sur le contrat de niveau de service de Filestore, consultez la page Contrat de niveau de service.

Filestore n'est pas compatible avec les intervalles de maintenance définis par le client. La planification des intervalles de maintenance pour Filestore n'est également pas disponible pour les clients.

L'instance a été supprimée alors qu'elle était toujours installée sur le client

Si une opération sur un fichier ou une commande Unix telle que df, ls ou toute opération de lecture/écriture cesse de répondre, l'instance Filestore a probablement été supprimée alors qu'elle était installée sur le client.

Vérifiez si l'instance existe encore :

    gcloud filestore instances list

Si l'instance n'est plus répertoriée, vous pouvez reprendre le contrôle en créant une instance avec la même adresse IP et le même nom de partage de fichiers que l'instance supprimée. Une fois l'instance créée, l'opération qui ne répond pas s'exécute et renvoie une erreur. Vous pouvez désinstaller le partage de fichiers et supprimer l'instance Filestore si elle n'est pas nécessaire.

Pour éviter qu'un tel incident ne se reproduise, assurez-vous de désinstaller l'instance Filestore avant de la supprimer.

Espace insuffisant sur l'appareil

  1. Vérifiez si l'instance Filestore dispose de suffisamment d'inodes en exécutant la commande suivante sur la VM cliente :

    df -i
    

    La commande renvoie un résultat semblable au suivant :

    Filesystem           Inodes        IUsed      IFree         IUse%  Mounted on
    10.0.0.2:/vol1    134217728        13         134217715     1%     /mnt/test
    

    Chaque fichier stocké sur le partage de fichiers consomme un inode. Si la valeur de IUse% est de 100 %, cela signifie qu'il n'y a aucun inode libre et que vous ne pouvez pas stocker d'autres fichiers sur le partage de fichiers, même si vous n'avez pas atteint la capacité maximale allouée. Le nombre d'inodes évolue en fonction de la capacité. Si vous souhaitez ajouter davantage d'inodes, vous devez augmenter la capacité.

  2. S'il vous reste des inodes, vous avez peut-être atteint le nombre maximal d'entrées (fichiers ou sous-répertoires) pour un répertoire. Le nombre maximal d'entrées que vous pouvez placer dans un répertoire dépend de la longueur de leurs noms. Cependant, atteindre cette limite est une probabilité plutôt qu'une limite stricte. Pour résoudre ce problème, vous devez créer une hiérarchie de fichiers plus détaillée en répartissant vos entrées dans des sous-répertoires.

Impossible de créer une instance

Erreur PERMISSION DENIED lors de la création d'une instance Filestore

  1. Vérifiez si l'API Filestore est activée :

    gcloud services enable file.googleapis.com
    
  2. Assurez-vous de disposer du rôle roles/file.editor. Pour en savoir plus, consultez la section Rôles et autorisations IAM.

  3. Si l'erreur persiste, le rôle file.serviceAgent a peut-être été supprimé du compte de service Filestore. Pour le vérifier, exécutez la commande suivante :

    gcloud projects get-iam-policy project-name  \
        --flatten="bindings[].members" \
        --format='table(bindings.role)' \
        --filter="bindings.members:service-project-id@cloud-filer.iam.gserviceaccount.com"
    

    où :

    • project-name est le nom de votre projet Google Cloud ;
    • project-id est le numéro d'identification de votre projet Google Cloud.

    La commande doit renvoyer un résultat semblable au suivant :

    ROLE
    roles/file.serviceAgent
    

    Si le fichier roles/file.serviceAgent n'est pas répertorié, vous pouvez le restaurer en exécutant la commande suivante :

    gcloud projects add-iam-policy-binding project-id --member serviceAccount:service-project-id@cloud-filer.iam.gserviceaccount.com --role roles/file.serviceAgent
    

    project-id est le numéro d'identification de votre projet Google Cloud.

Affichage d'un code d'erreur 13 lors de la création d'une instance

Le code d'erreur 13 peut s'afficher pour différentes raisons lors de la création d'une instance, mais le fait que Filestore atteigne un quota de réseau interne est souvent à l'origine du problème.

Pour chaque réseau VPC sur lequel vous créez une instance Filestore, Filestore doit créer un réseau interne qui est appairé à ce réseau. Ces réseaux internes sont conservés, même lorsque les instances Filestore et les réseaux VPC qui leur sont associés sont supprimés.

Lorsque votre projet dispose de 50 réseaux internes, Filestore ne peut plus en créer, ce qui vous empêchera de créer des instances Filestore sur de nouveaux réseaux VPC. Toute tentative entraîne une erreur :

Error code 13, message: an internal error has occurred

Le seul moyen de supprimer les réseaux internes consiste à désactiver, puis à réactiver l'API Filestore :

gcloud services disable file.googleapis.com

gcloud services enable file.googleapis.com

Si cela n'est pas possible en raison d'instances Filestore dont vous avez besoin et que vous ne pouvez pas supprimer, vous devez contacter votre responsable de compte pour demander la suppression manuelle des réseaux appairés.

Si vous devez supprimer et créer régulièrement des réseaux VPC et des instances Filestore, deux méthodes permettent d'éviter d'atteindre le quota de réseau :

  1. Lorsque vous créez un réseau VPC, utilisez le même nom qu'un ancien réseau utilisé pour la création d'une instance Filestore.

  2. Parcourez un pool comportant au maximum 50 réseaux VPC au lieu de les supprimer et de les recréer.

Impossible d'installer le partage de fichiers

Autorisation refusée lors de l'installation d'un partage de fichiers

Vérifiez si des options d'exportation NFS sont répertoriées pour l'instance :

gcloud filestore instances describe instance-id \
    --zone=zone

où :

  • instance-id est l'ID de l'instance Filestore ;
  • zone est la zone où se trouve l'instance Filestore.

La commande renvoie un résultat semblable au suivant :

createTime: '2019-10-11T17:28:23.340943077Z'
fileShares:
- capacityGb: '1024'
  name: vol1
  nfsExportOptions:
  - accessMode: READ_WRITE
    ipRanges:
    - 128.0.0.0/29
    squashMode: NO_ROOT_SQUASH
name: projects/yourproject/locations/us-central1-c/instances/nfs-server
networks:
- ipAddresses:
  - 10.0.0.2
  modes:
  - MODE_IPV4
  network: default
  reservedIpRange: 10.0.0.0/29
state: READY
tier: BASIC_HDD

Si des options nfsExportOptions sont répertoriées, assurez-vous que l'adresse IP de votre client se trouve dans l'une des plages répertoriées sous ipRanges pour le mode accessMode attendu. Si ce n'est pas le cas, vous devez modifier les options d'exportation NFS. Pour savoir comment procéder, consultez la page Modifier des instances.

Impossible d'installer un partage de fichiers sur App Engine

Filestore n'est pas compatible avec App Engine.