Gérer les tâches de transfert sur site

Avant de pouvoir commencer un transfert, vous devez créer une tâche de transfert et un ou plusieurs agents doivent être installés et connectés à cette tâche. Ce document décrit la configuration initiale et explique comment créer une tâche de transfert, installer des agents de transfert et gérer les tâches de transfert.

Prérequis

Pour utiliser le transfert sur site, vous avez besoin des éléments suivants :

  • Une source compatible avec POSIX.

  • Une connexion réseau 300 Mbit/s au minimum.

  • Un serveur ou une machine virtuelle Linux 64 bits compatible avec Docker qui peut accéder aux données que vous prévoyez de transférer.

    Docker Community Edition, compatible avec les systèmes d'exploitation CentOs, Debian, Fedora et Ubuntu.

    Pour utiliser d'autres systèmes d'exploitation Linux, consultez la page sur Docker Enterprise.

  • Terminez la configuration initiale du transfert sur site.

Avant de commencer un transfert, vérifiez les points suivants :

  • Les ports TCP 80 (HTTP) et 443 (HTTPS) sont ouverts pour les connexions sortantes.
  • Tous les processus d'agent d'un même projet Google Cloud ont le même système de fichiers installé au même point d'installation.

Restrictions liées au scaling des tâches et des agents

Le transfert sur site présente les restrictions de scaling suivantes pour les agents et les tâches de transfert :

  • Le nombre de fichiers par tâche doit être inférieur à un milliard.
  • Le nombre d'agents par projet de transfert ne doit pas dépasser 100.
  • La limite de bande passante doit être supérieure à 1 Mbit/s.

Configuration initiale

La première fois que vous créez une tâche de service de transfert des données sur site, vous devez activer les API requises et vous assurer que les autorisations appropriées sont accordées.

Si vous recevez des messages d'erreur lors de la configuration initiale, vérifiez que l'utilisateur avec lequel vous vous êtes connecté dispose des autorisations nécessaires pour effectuer la configuration. Dans de nombreux cas, ces autorisations ne sont pas disponibles pour tous les utilisateurs et vous devrez peut-être contacter un administrateur de projet pour obtenir de l'aide.

Pour effectuer la configuration initiale, procédez comme suit :

  1. Activez l'API Pub/Sub :

    1. Accédez à la page Bibliothèque d'API de Google Cloud Console.

    Accéder à la page Bibliothèque d'API

    1. Dans le champ de recherche, saisissez Pub/Sub API.

    2. Sélectionnez API Pub/Sub.

      La page "API Pub/Sub" s'affiche.

    3. Cliquez sur Activer.

      La présentation de l'API Pub/Sub s'affiche.

  2. Utilisez l'administrateur de projet Google Cloud, qui est un utilisateur disposant des droits resourcemanager.projects.setIamPolicy, pour attribuer des autorisations ou des rôles Identity and Access Management aux ressources suivantes :
    • Comptes administrateur (admin) de transfert sur site : comptes super-utilisateur apportant une assistance aux collaborateurs qui effectuent les transferts. Les administrateurs gèrent les agents de transfert sur site et définissent les limites d'utilisation de la bande passante.
    • Comptes utilisateur de transfert sur site : comptes permettant de créer et d'effectuer des transferts. Ces comptes ne sont généralement pas autorisés à supprimer des tâches de transfert.
    • Compte de service de transfert sur site : compte de service permettant d'effectuer des transferts sur site.
    • Identité d'agent de transfert sur site : identité permettant d'exécuter l'agent de transfert sur site. Il peut s'agir d'un compte de service ou d'un compte utilisateur qui configure les agents sur site.

    Le compte administrateur du projet Google Cloud n'est nécessaire que pour configurer les utilisateurs du transfert et accorder les autorisations requises au compte de service de transfert sur site. Il n'est pas nécessaire pour démarrer des tâches de transfert.

    Pour en savoir plus sur l'octroi d'autorisations Identity and Access Management, consultez la page Accorder, modifier et révoquer les accès à des ressources.

    1. Pour configurer un compte administrateur de transfert sur site, attribuez à ce compte les autorisations et les rôles IAM suivants :
      Rôle/Autorisation Utilisation Notes
      resourcemanager.projects.getIamPolicy Cette autorisation permet de vérifier que le compte de service de transfert sur site dispose des autorisations requises pour effectuer un transfert.
      roles/storagetransfer.admin Permet d'effectuer des actions d'administration dans le projet de transfert, telles que la configuration du projet et la surveillance de l'agent. Pour obtenir la liste détaillée des autorisations accordées, consultez la section Rôles prédéfinis.
    2. Pour configurer un compte utilisateur de transfert sur site, attribuez à ce compte les autorisations et les rôles suivants :
      Rôle/Autorisation Utilisation Notes
      resourcemanager.projects.getIamPolicy Permet de vérifier que le compte de service de transfert sur site dispose des autorisations Pub/Sub requises pour effectuer un transfert.
      roles/storagetransfer.user Permet à l'utilisateur de créer, d'obtenir, de mettre à jour et de répertorier des transferts. Pour obtenir la liste détaillée des autorisations accordées, consultez la section Rôles prédéfinis.
      roles/storage.objectAdmin Permet à l'utilisateur de créer, de mettre à jour et de supprimer des objets Cloud Storage dans le cadre d'un transfert. Ce rôle doit être accordé à chaque bucket Cloud Storage que le compte utilisera lors des transferts.

      Pour obtenir la liste détaillée des autorisations accordées, consultez la section Rôles prédéfinis.
    3. Pour autoriser le compte de service de transfert sur site à accéder aux ressources nécessaires pour effectuer des transferts, attribuez les rôles suivants ou des autorisations équivalentes au compte de service de transfert sur site cloud-ingest-dcp@cloud-ingest.iam.gserviceaccount.com :
      Rôle/Autorisation Utilisation Notes
      roles/storage.objectCreator Permet au transfert sur site de créer des journaux de transfert dans le bucket Cloud Storage de destination. Ce rôle doit être accordé à tous les buckets Cloud Storage utilisés lors d'un transfert. Le cas échéant, vous pouvez l'accorder au projet à partir duquel le transfert sur site est exécuté.

      Pour obtenir la liste détaillée des autorisations attribuées par ces rôles, consultez la section Rôles prédéfinis.
      roles/storage.objectViewer Permet au transfert sur site de déterminer si un fichier a déjà été importé dans Cloud Storage.
      roles/pubsub.editor Permet au transfert sur site de créer et de modifier automatiquement des sujets Pub/Sub pour la communication entre Google Cloud et les agents de transfert sur site. Ce rôle doit être appliqué au projet à partir duquel le transfert sur site est exécuté.

      Pour obtenir la liste détaillée des autorisations accordées par ce rôle, consultez la section Rôles.
      storage.buckets.get Cette autorisation permet de lire les métadonnées des buckets Cloud Storage.
    4. Pour configurer un compte de service ou un compte utilisateur d'agent de transfert sur site qui exécutera les agents de transfert sur site, attribuez-lui les autorisations et les rôles suivants :
      Rôle/Autorisation Utilisation Notes
      roles/storage.objectAdmin Permet aux agents de transfert sur site de créer, de mettre à jour et de supprimer des objets Cloud Storage dans le cadre d'un transfert. Ce rôle doit être accordé à tous les buckets Cloud Storage utilisés lors d'un transfert. Le cas échéant, vous pouvez l'accorder au projet à partir duquel le transfert sur site est exécuté.

      Pour obtenir la liste détaillée des autorisations accordées par ce rôle, consultez la section Rôles.
      roles/pubsub.publisher Permet aux agents de transfert sur site de partager des informations avec Google Cloud à l'aide de sujets Pub/Sub. Pour obtenir la liste détaillée des autorisations accordées par ce rôle, consultez la section Rôles.
      roles/pubsub.subscriber Permet à Google Cloud de partager des informations avec les agents de transfert sur site à l'aide de sujets Pub/Sub. Pour obtenir la liste détaillée des autorisations accordées par ce rôle, consultez la section Rôles.
      pubsub.subscriptions.create Cette autorisation permet aux agents de transfert sur site de créer des abonnements Pub/Sub dans le sujet Pub/Sub utilisé pour la communication entre Google Cloud et les agents de transfert sur site.
      pubsub.subscriptions.delete Cette autorisation permet aux agents de transfert sur site qui se ferment correctement de nettoyer les abonnements Pub/Sub qu'ils créent.
  3. Installez et exécutez des agents sur site sur chacune de vos machines.

Créer une tâche de transfert

Avant de pouvoir commencer un transfert, vous devez créer une tâche de transfert. La tâche de transfert coordonne et contrôle vos agents sur site lorsqu'ils déplacent vos données.

Pour créer une tâche de transfert, procédez comme suit :

  1. Accédez à la console Web du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page du service de transfert des données sur site

  2. Cliquez sur Créer une tâche de transfert.

    La page Créer une tâche de transfert s'affiche.

  3. Décrivez la tâche de transfert. Saisissez une brève description de votre transfert qui vous aidera à le suivre.

  4. Spécifiez une source en saisissant le chemin d'accès complet du répertoire du système de fichiers source.

  5. Spécifiez un bucket de destination Cloud Storage. Vous pouvez saisir un nom de bucket Cloud Storage ou créer un bucket.

    Pour créer et sélectionner un bucket, procédez comme suit :

    1. Cliquez sur Parcourir.

    2. Cliquez sur Nouveau bucket.

      Le formulaire Créer un bucket s'affiche.

    3. Remplissez le formulaire et cliquez sur Créer, puis sur Sélectionner.

  6. Facultatif : saisissez un préfixe d'objet. Sans préfixe d'objet, les objets sont transférés vers Cloud Storage avec le chemin de la source, à l'exclusion du chemin racine, avant le nom du fichier sur le système de fichiers. Par exemple, si vous disposez des fichiers suivants :

    • /source_root_path/file1.txt
    • /source_root_path/dirA/file2.txt
    • /source_root_path/dirA/dirB/file3.txt
    Les noms d'objet dans Cloud Storage sont les suivants :
    • file1.txt
    • dirA/file2.txt
    • dirA/dirB/file3.txt
    Le préfixe d'objet est ajouté au nom de destination de l'objet dans Cloud Storage, après le caractère / du nom du bucket de destination et avant tout nom de chemin d'accès à partir duquel l'objet a été transféré, à l'exclusion du chemin racine de la source. Cela peut vous aider à faire la distinction entre les objets transférés et d'autres tâches de transfert.

    Le tableau suivant présente plusieurs exemples de préfixes d'objet et de noms d'objet résultant dans Cloud Storage, si le chemin de l'objet source est /source_root_path/sub_folder_name/object_name :
    Préfixe Nom de l'objet de destination
    Aucun /destination_bucket/sub_folder_name/object_name
    prefix /destination_bucket/prefixsub_folder_name/object_name
    prefix- /destination_bucket/prefix-sub_folder_name/object_name
    prefix/ /destination_bucket/prefix/sub_folder_name/object_name

  7. Facultatif : Créez une planification pour votre tâche.

  8. Cliquez sur Créer.

Si vous ne l'avez pas déjà fait, installez et exécutez les agents de transfert sur site sur chacune de vos machines.

Contrôler l'utilisation de la bande passante pour le service de transfert des données sur site

Les limites de bande passante sont utiles si vous devez limiter la quantité de données que le service de transfert des données sur site exploite pour transférer des données vers Cloud Storage. La définition d'une limite de bande passante permet de s'assurer que :

  • les liaisons ascendantes du réseau ne seront pas saturées suite à l'utilisation du service de transfert des données sur site ;

  • le comportement de l'application existante de votre organisation ne se dégradera pas pendant le transfert ;

  • vos coûts n'augmenteront pas soudainement si la facturation de votre connexion réseau s'effectue sur l'utilisation de la bande passante maximale.

Les limites de bande passante s'appliquent à un projet entier.

Définir une limite de bande passante

Pour définir une limite de bande passante, procédez comme suit :

  1. Accédez à la page Paramètres de connexion du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page Paramètres de connexion du service de transfert des données sur site

  2. Cliquez sur Définir une limite de bande passante.

  3. Le volet Définir la limite de bande passante de ce projet s'affiche.

  4. Dans la zone de texte Limite de bande passante, saisissez la limite réseau souhaitée en mégaoctets par seconde (Mo/s), puis cliquez sur Définir une limite de bande passante.

    La limite de bande passante s'affiche pour le projet.

Modifier une limite de bande passante

Pour modifier une limite de bande passante existante, procédez comme suit :

  1. Accédez à la page Paramètres de connexion du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page Paramètres de connexion du service de transfert des données sur site

  2. Dans la limite de bande passante affichée, cliquez sur Modifier.

  3. Dans la zone de texte Limite de bande passante, saisissez la limite réseau souhaitée en mégaoctets par seconde (Mo/s), puis cliquez sur Définir une limite de bande passante.

    La limite de bande passante s'affiche pour le projet.

Supprimer une limite de bande passante

Pour supprimer une limite de bande passante existante, procédez comme suit :

  1. Accédez à la page Paramètres de connexion du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page Paramètres de connexion du service de transfert des données sur site

  2. Dans la limite de bande passante affichée, cliquez sur Utiliser toute la bande passante.

  3. Pour confirmer que vous souhaitez supprimer la limite existante, cliquez sur Confirmer.

Surveiller les tâches

Vous pouvez surveiller les tâches du service de transfert des données sur site afin de vous assurer qu'elles fonctionnent comme prévu.

Pour surveiller vos tâches de transfert, procédez comme suit :

  1. Accédez à la page Tâches de transfert du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page Tâches de transfert du service de transfert des données sur site

    La liste des tâches s'affiche. Cette liste comprend les tâches en cours et terminées.

  2. Pour afficher des informations détaillées sur une tâche de transfert, cliquez sur la description de la tâche qui vous intéresse.

    La page Détails de la tâche s'affiche.

La page Détails de la tâche affiche les informations suivantes :

  • Le volume de données qui a été transféré

  • Les informations de configuration de la tâche de transfert

  • Les informations concernant les tâches planifiées ou récurrentes

  • Les détails d'exécution de la tâche la plus récente

  • L'historique de toutes les tâches exécutées précédemment

Filtrer les tâches

Si vous avez plusieurs tâches et que vous souhaitez en surveiller un sous-ensemble, songez à utiliser des filtres pour trier et afficher uniquement les tâches qui vous intéressent.

Pour filtrer vos tâches de transfert, procédez comme suit :

  1. Cliquez sur Liste des filtres .

  2. Sélectionnez les filtres que vous souhaitez appliquer.

Modifier les configurations de tâches

Vous pouvez modifier les éléments suivants pour une tâche de transfert existante :

  • Description de la tâche
  • Option de synchronisation
  • Programmation

Pour modifier une configuration de tâche, procédez comme suit :

  1. Accédez à la page Tâches de transfert du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page Tâches de transfert du service de transfert des données sur site

  2. Cliquez sur Description de la tâche pour la tâche que vous modifiez.

    La page Détails de la tâche s'affiche.

  3. Cliquez sur Configuration

  4. Cliquez sur à côté de l'élément de configuration que vous souhaitez modifier.

Réexécuter des tâches

Le service de transfert des données sur site permet de réexécuter à une reprise une tâche terminée. Cela peut être utile si vous devez déplacer des données supplémentaires et souhaitez réutiliser une configuration de tâche existante.

Pour réexécuter une tâche, procédez comme suit :

  1. Accédez à la page Tâches de transfert du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page Tâches de transfert du service de transfert des données sur site

  2. Cliquez sur Description de la tâche pour la tâche que vous modifiez.

    La page Détails de la tâche s'affiche.

  3. Cliquez sur  Exécuter à nouveau.

    La tâche démarre.

Afficher les erreurs

Pour afficher un exemple des erreurs rencontrées lors du transfert, procédez comme suit :

  1. Accédez à la page Tâches de transfert du service de transfert des données sur site dans Google Cloud Console.

    Accéder à la page Tâches de transfert du service de transfert des données sur site

  2. Cliquez sur Description de la tâche pour la tâche que vous modifiez.

    La page Détails de la tâche s'affiche.

  3. Cliquez sur Voir les informations sur l'erreur.

    La page Détails de l'erreur s'affiche. Elle contient un exemple des erreurs rencontrées durant le transfert.

Afficher les journaux de transfert

Le service de transfert des données sur site génère des journaux de transfert détaillés qui vous permettent de vérifier les résultats de votre tâche de transfert. Chaque tâche crée une collection de journaux de transfert qui sont stockés dans le bucket Cloud Storage de destination.

Les journaux sont générés pendant l'exécution de la tâche de transfert. Les journaux complets sont généralement disponibles dans les 15 minutes suivant la fin de la tâche.

Vous pouvez afficher les journaux de l'une des manières suivantes :

Afficher les erreurs dans Google Cloud Console

Pour afficher toutes les erreurs rencontrées lors du transfert dans Google Cloud Console, procédez comme suit :

  1. Cliquez sur Afficher les journaux de transfert.

    La page Informations sur le bucket s'affiche. Il s'agit d'une destination dans votre bucket Cloud Storage.

  2. Cliquez sur le journal de transfert qui vous intéresse.

    Les journaux de transfert s'affichent. Pour plus d'informations, consultez la page Format du journal de transfert sur site.

Afficher les journaux dans le bucket de destination

Les journaux de transfert sont stockés dans le bucket de destination au chemin suivant :

destination-bucket-name/storage-transfer/logs/transferJobs/job-name/transferOperations/operation-name

où :

  • destination-bucket-name est le nom du bucket Cloud Storage de destination de la tâche.
  • job-name correspond au nom de la tâche, tel qu'il apparaît dans la liste des tâches.
  • operation-name correspond au nom de l'opération de transfert individuelle, composé de l'horodatage IS08601 et de l'ID généré.

Les journaux sont agrégés et stockés en tant qu'objets. Chaque lot de journaux est nommé en fonction de sa date de création. Exemple :

my bucket/storage-transfer/logs/transferOperations/job1/2019-10-19T10_52_56.519081644-07_00.log

Les journaux de transfert s'affichent. Pour plus d'informations, consultez la page Format du journal de transfert sur site.

Exécuter des requêtes BigQuery sur les journaux de transfert

Pour exécuter des requêtes BigQuery sur vos journaux de transfert, procédez comme suit :

  1. Chargez les données de journal au format CSV dans BigQuery.

  2. Exécutez votre requête BigQuery.

Exemples de requêtes

Afficher le nombre de fichiers ayant fait l'objet d'une tentative de transfert et l'état échec/réussite

select ActionStatus, count(*) as num_files
from big-query-table
where Action="TRANSFER"
group by 1;

big-query-table est le nom de la table BigQuery qui contient le journal de transfert.

Afficher tous les fichiers dont le transfert a échoué

select Src_File_Path  
from big-query-table
where Action="TRANSFER" and ActionStatus="FAILED";

big-query-table est le nom de la table BigQuery qui contient le journal de transfert.

Afficher la somme de contrôle et l'horodatage pour chaque fichier transféré

select Timestamp, Action, ActionStatus, Src_File_Path, Src_File_Size,
Src_File_Crc32C, Dst_Gcs_BucketName, Dst_Gcs_ObjectName, Dst_Gcs_Size,
Dst_Gcs_Crc32C, Dst_Gcs_Md5
from big-query-table
where Action="TRANSFER" and ActionStatus="SUCCEEDED";

big-query-table est le nom de la table BigQuery qui contient le journal de transfert.

Afficher tous les détails des erreurs pour les répertoires dont le transfert a échoué

select FailureDetails_ErrorType, FailureDetails_GrpcCode, FailureDetails_Message
from big-query-table
where Action="FIND" and ActionStatus="FAILED";

big-query-table est le nom de la table BigQuery qui contient le journal de transfert.