Ce document explique comment identifier et résoudre les problèmes liés au transfert et aux agents de transfert. Il indique également où trouver les journaux des agents, qui vous aideront dans le dépannage de ces problèmes.
Errors
Le tableau suivant décrit les messages d'erreur liés au transfert et indique comment les résoudre :
Message d'erreur | Type d'erreur | Explication | Méthode de dépannage |
---|---|---|---|
Modifié lors du transfert | FILE_MODIFIED_FAILURE | Le fichier source a été modifié lors du transfert chaque fois que le service de transfert de stockage a tenté de copier le fichier source. | Empêche les écritures dans le fichier spécifié lors de la prochaine opération du service de transfert de stockage. |
Échec du transfert | PRECONDITION_FAILURE | L'objet Cloud Storage associé au fichier source a été modifié chaque fois que le service de transfert de stockage a tenté d'importer le fichier. | Empêchez les différentes tâches de transfert d'écrire le même fichier dans le même bucket Cloud Storage en utilisant des préfixes d'objet Cloud Storage uniques lorsque vous créez des tâches de transfert. |
Répertoire source introuvable | SOURCE_DIR_NOT_FOUND | Soit le chemin source spécifié est incorrect, soit il est correct, mais les agents n'y ont pas tous accès. | Vérifiez la configuration de la tâche de transfert et vérifiez que :
|
Impossible de trouver le répertoire source ou de destination du job | ROOT_DIR_NOT_FOUND | Soit le chemin source/dest spécifié est incorrect, soit il est correct, mais les agents n'y ont pas tous accès. | Vérifiez la configuration de la tâche de transfert et vérifiez que :
|
Fichier introuvable | FILE_NOT_FOUND_FAILURE | Le fichier source a été trouvé, mais il a été supprimé avant de pouvoir être transféré vers Cloud Storage. | Si le fichier a été supprimé par erreur, restaurez-le afin que la prochaine tâche de transfert puisse l'importer. |
Bucket de destination introuvable | BUCKET_NOT_FOUND | Le bucket de destination n'existe pas dans Cloud Storage. | Vérifiez qu'il n'y a pas d'erreur de nommage et que le bucket de destination existe. |
Objet de métadonnées interne introuvable | METADATA_OBJECT_ NOT_FOUND_FAILURE |
Le service de transfert de stockage stocke les métadonnées dans le bucket de destination avec le préfixe storage-transfer . Si les fichiers de métadonnées sont supprimés avant la fin des opérations de transfert correspondantes, cette erreur s'affiche.
|
Évitez de supprimer des objets ayant le préfixe storage-transfer/ dans le bucket de destination tant que toutes les tâches de transfert ne sont pas terminées. |
Échec en raison d'un nom de fichier non valide | INVALID_FILE_NAME | Le chemin d'accès à un fichier source n'est pas valide. | Vérifiez et corrigez le chemin d'accès au fichier spécifié. Vérifiez que le chemin d'accès ne comporte que des caractères acceptés par Cloud Storage. |
Échec en raison d'une classe de stockage non valide | INVALID_FILE_STORAGE_CLASS | La classe de stockage de la source donnée n'autorise pas les lectures. | Consultez la documentation de votre fournisseur de services cloud pour déterminer comment placer les données dans une classe de stockage permettant de les copier. |
Échec en raison d'un URI de session d'importation avec reprise non valide | SESSION_URI_INVALID | L'ID d'importation avec reprise ou l'URI de la session est arrivé à expiration ou a été annulé. | L'échec est réessayé de manière incorrecte. Veuillez contacter l'assistance. |
Échec en raison d'une taille de fichier non valide | INVALID_FILE_SIZE | La taille du fichier n'est pas valide. | Vérifiez que la taille du fichier est supérieure ou égale à 0 et inférieure ou égale à 5 Tio (taille maximale des objets Cloud Storage) pour les transferts vers Cloud Storage. |
Échec dû aux autorisations | PERMISSION_FAILURE et UNAUTHENTICATED | Un agent de transfert ne dispose pas des autorisations nécessaires pour effectuer une opération. Cette erreur recouvre les deux cas suivants :
|
Effectuez les vérifications suivantes :
|
L'objet est soumis aux règles de conservation des buckets et ne peut pas être supprimé, écrasé ou archivé | PERMISSION_FAILURE | Une règle de conservation est appliquée au bucket, et l'objet existe déjà dans le bucket. Le service de transfert de stockage ne peut pas écraser les objets existants dans le bucket. Cette erreur peut s'afficher si le fichier a été modifié à la source ou si le service de transfert de stockage tente d'importer deux fois en raison des conditions du réseau et que la première importation a réussi. | Vérifiez que les données de votre bucket Cloud Storage correspondent à vos attentes. Vous pouvez vérifier que la taille et l'heure de modification des fichiers sources correspondent à leurs équivalents d'objet Cloud Storage en exécutant à nouveau la tâche et en confirmant qu'il n'y a pas d'erreur. |
Le service ne disposait pas des autorisations nécessaires | SERVICE_PERMISSION_FAILURE | Le service de transfert de stockage ne dispose pas des autorisations nécessaires pour effectuer l'opération. |
Le service de transfert de stockage utilise un compte de service géré par Google, généralement au format project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com , pour accéder aux ressources.
Pour déterminer votre numéro de projet PROJECT_NUMBER spécifique, utilisez l'appel d'API googleserviceaccounts.get .
Vérifiez que le compte de service dispose des rôles suivants:
|
Agent non compatible | AGENT_UNSUPPORTED_VERSION | La version de l'agent n'est plus compatible avec le service de transfert de stockage. | Il s'agit d'une erreur temporaire, due à une mise à jour défectueuse de l'agent. Si cette erreur se produit, procédez comme suit :
|
Échec causé par l'inadéquation du hachage | HASH_MISMATCH_FAILURE | Chaque fois que le service de transfert de stockage a tenté d'importer ce fichier, les octets téléchargés étaient corrompus. Par conséquent, le hachage du fichier sur site ne correspondait pas à celui de l'objet Cloud Storage obtenu. | Cette erreur peut être due à un certain nombre de problèmes potentiels. Si le taux d'échecs dus à l'inadéquation du hachage est faible (moins de 1 %) et le volume du transfert important, réessayez de transférer les fichiers ayant échoué. Si le taux d'échecs dus à l'inadéquation du hachage (1 % ou plus) est élevé, nous vous recommandons de rechercher sur la machine de l'agent l'existence de défaillances matérielles potentielles affectant la mémoire, le processeur, ou autres. |
Échec causé par un mode de fichier non compatible | UNSUPPORTED_FILE_MODE | Le service de transfert de stockage a rencontré un fichier dont le mode n'est pas compatible, tel qu'un appareil, un socket, un pipeline nommé ou un fichier irrégulier. | Supprimez ces types de fichiers particuliers du répertoire source. |
Échec causé par une erreur dans le système de fichiers | FILESYSTEM_ERROR | Un agent a rencontré une erreur du système de fichiers ou du système d'exploitation lors de l'exécution d'une opération sur le système de fichiers, telle que "read", "seek" ou "stat". | Lisez la description de l'échec pour comprendre quelle opération du système de fichiers a échoué. Assurez-vous que le système de fichiers est accessible à l'agent sur site et qu'il réalise sans problème les opérations de base sur les fichiers. |
Échec en raison d'une erreur inconnue | UNKNOWN_FAILURE | Une erreur inattendue s'est produite. | Lisez la description de l'échec. Si la description de l'échec ne contient pas suffisamment d'informations pour résoudre le problème, veuillez contacter l'assistance. |
Échec causé par une spécification non valide | INVALID_SPEC | L'agent a reçu une spécification interne corrompue. | Vérifiez la corruption des données sur les hôtes de l'agent et contactez l'assistance si vous n'en trouvez aucune. |
Échec en raison d'un fichier manifeste vide ou non valide | CONFORMANCE_FAILURE | L'agent ne peut pas lire ni obtenir d'octets CSV valides en raison d'un formattage ou d'entrées CSV non valides. | Assurez-vous que les entrées du fichier manifeste sont des chemins de fichier valides. Si la description de l'échec ne contient pas suffisamment d'informations pour résoudre le problème, veuillez contacter l'assistance. |
Retour à des importations avec reprise plutôt qu'à des importations en plusieurs parties en raison de erreur "Autorisation refusée" | PERMISSION_FAILURE | Les importations multiparties ont été activées pour ce transfert, mais les autorisations appropriées n'ont pas été définies sur le bucket. | Pour connaître les autorisations requises, consultez la section Importations multiparties de la page Autorisations du système de fichiers. |
Afficher les journaux des agents
Les journaux des agents contiennent des informations sur les processus des agents. Ils peuvent vous aider à résoudre les problèmes de connexion des agents. Si les agents sont répertoriés comme connectés dans Google Cloud Console mais que des transferts échouent, consultez la section Afficher les erreurs pour voir quelques-unes des erreurs de transfert. Pour afficher les journaux qui contiennent un enregistrement pour chaque fichier que le service de transfert de stockage a traité lors d'un transfert, consultez la section Afficher les journaux de transfert.
Par défaut, les journaux des agents sont stockés dans le répertoire /tmp
. Vous pouvez modifier l'emplacement de stockage à l'aide de l'option de ligne de commande --log-dir=logs-directory
.
Les journaux sont nommés de la façon suivante :
agent.hostname.username.log.log-level.timestamp
Où :
hostname
est le nom de l'hôte sur lequel l'agent est exécuté.username
est le nom de l'utilisateur exécutant l'agent.log-level
a l'une des valeurs suivantes :INFO
: messages d'informationERROR
: erreurs rencontrées lors du transfert, mais qui n'empêchent pas la tâche de transfert de se poursuivreFATAL
: erreurs rencontrées qui empêchent la tâche de transfert de se poursuivre
timestamp
est l'horodatage au formatYYYYMMDD-hhmmss.thread-id
.
Le répertoire des journaux contient les liens symboliques suivants vers les journaux les plus récents pour chacun des niveaux de priorité :
agent.ERROR
agent.FATAL
agent.INFO
Lenteur du transfert
Si le transfert de vos données prend beaucoup de temps, vérifiez les points suivants :
Le débit de lecture de votre système de fichiers doit être environ 1,5 fois supérieur à la vitesse d'importation souhaitée. Vous pouvez utiliser FIO pour tester le débit en lecture de votre système de fichiers.
Installez fio :
sudo apt install -y fio
Créez un répertoire
fiotest
:TEST_DIR=/mnt/mnt_dir/fiotest
sudo mkdir -p $TEST_DIR
Testez le débit en lecture :
sudo fio --directory=$TEST_DIR --direct=1 --rw=randread --randrepeat=0 --ioengine=libaio --bs=1M --iodepth=8 --time_based=1 --runtime=180 --name=read_test --size=1G
Une fois que vous avez exécuté les commandes ci-dessus, Fio génère un rapport. La ligne intitulée "bw" représente la bande passante totale cumulée de tous les threads et peut être utilisée comme valeur représentative du débit en lecture.
Vérifiez votre bande passante Internet disponible vers le service de transfert de stockage à l'aide de l'outil iPerf3.
Assurez-vous que chacun de vos agents de transfert dispose d'au moins quatre processeurs virtuels et de 8 Go de mémoire.
Si vous avez validé les conditions ci-dessus et que vous rencontrez toujours des temps de transfert élevés, vous pouvez ajouter des agents supplémentaires pour augmenter le nombre de connexions simultanées au système de fichiers de vos données.
Pour plus d'informations sur la façon d'optimiser les performances de vos agents de transfert, consultez la section Bonnes pratiques concernant les agents.
Résoudre les erreurs liées aux agents
Les sections suivantes expliquent comment identifier et résoudre les erreurs liées aux agents de transfert:
Les agents ne sont pas connectés
Si les agents de transfert ne sont pas affichés comme étant connectés dans Google Cloud Console:
Vérifiez que les agents peuvent se connecter aux API Cloud Storage :
Pour tester la connexion d'un agent aux API Cloud Storage, exécutez la commande suivante à partir de la machine sur laquelle il est installé :
gcloud storage cp test.txt gs://my-bucket
Remplacez :
my-bucket
par le nom de votre bucket Cloud Storage.
Si votre projet utilise VPC Service Controls, affichez les journaux des agents pour consulter les erreurs. Si VPC Service Controls est mal configuré, les journaux des agents
INFO
contiennent l'erreur suivante :Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: id
Dans ce résultat :
Les agents sont connectés, mais les tâches échouent
Si les agents sont affichés comme étant connectés mais que les tâches de transfert échouent, examinez les détails des erreurs concernant les tâches ayant échoué.
Le proxy refuse les adresses IP
Si vous exécutez votre application derrière un proxy tel que Squid et que vous utilisez une liste d'autorisation, vous pouvez constater que des requêtes sont refusées en raison de l'utilisation d'adresses IP au lieu d'hôtes.
Pour résoudre ce problème, utilisez la commande docker run pour exécuter les agents et ajoutez l'indicateur suivant :
--transfer-service-endpoint=storagetransfer.googleapis.com:443
Si vous utilisez un autre point de terminaison pour atteindre googleapis.com
(par exemple,
Private Service Connect), remplacez googleapis.com
par le
point de terminaison alternatif.