Configuration avancée de l'agent

Ce document décrit les options de configuration avancées du service de transfert des données sur site, telles que les suivantes :

Copier des données sur des volumes CIFS ou SMB

Les agents de transfert sur site ne sont pas compatibles directement avec les serveurs Windows. Cependant, vous pouvez déplacer des données stockées sur n'importe quel système de fichiers compatible avec POSIX en les installant sur une machine virtuelle (VM) ou sur un serveur Linux, puis en exécutant un agent à partir de la VM ou du serveur Linux pour copier vos données dans Cloud Storage.

Pour transférer des données depuis un volume CIFS ou SMB, procédez comme suit :

  1. Provisionnez une VM ou un serveur Linux.

    Pour connaître les systèmes d'exploitation compatibles, consultez la section Prérequis.

  2. Exécutez la commande suivante sur la VM ou le serveur Linux que vous avez provisionné pour installer le volume :

    sudo mount -t cifs -o
    username=WINDOWS-SHARE-USER,password=WINDOWS-SHARE-PASSWORD //IP-ADDRESS/SHARE-NAME /mnt
    

    Où :

    • IP-ADDRESS : adresse IP du serveur Microsoft Windows sur lequel se trouve le volume CIFS ou SMB
    • SHARE-NAME : nom du partage que vous installez
    • WINDOWS-SHARE-USER : utilisateur autorisé à accéder au volume CIFS ou SMB
    • WINDOWS-SHARE-PASSWORD : mot de passe de l'utilisateur autorisé du volume CIFS ou SMB
  3. Vérifiez que le volume CIFS est bien installé en exécutant la commande suivante :

    findmnt -l
    
  4. Vérifiez que l'utilisateur qui exécutera l'agent peut répertorier et copier des fichiers sur le volume installé en exécutant les commandes suivantes :

    sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
    

    Où :

    • USERNAME : utilisateur qui exécutera l'agent
    • FILE1 : fichier à copier
    • FILE2 : nom du fichier vers lequel effectuer la copie
  5. Installez l'agent de transfert sur site.

Utiliser les identifiants du compte de service

Vous pouvez utiliser les identifiants du compte de service pour exécuter l'agent. L'utilisation des identifiants du compte de service vous permet d'authentifier l'agent de transfert sans compter sur un seul compte utilisateur. Pour plus d'informations sur les types de compte, consultez la page Comptes principaux.

Avant d'utiliser les identifiants du compte de service avec vos agents, assurez-vous que le service de transfert des données sur site est prêt en vérifiant que les conditions suivantes sont remplies :

  1. La configuration initiale est terminée.

  2. Une tâche de transfert existe.

Pour utiliser les identifiants du compte de service avec vos agents, procédez comme suit :

  1. Arrêtez tous les conteneurs d'agents.

  2. Créez des clés de compte de service. Pour plus d'informations, consultez la page Créer et gérer les clés de comptes de service.

  3. Démarrez le conteneur Docker de l'agent en exécutant la commande suivante :

    sudo docker run --ulimit memlock=64000000 -d --rm -v /:/transfer_root
    gcr.io/cloud-ingest/tsop-agent:latest
    --enable-mount-directory
    --project-id=PROJECT-ID
    --creds-file=CREDENTIAL-FILE
    --hostname=$(hostname)
    --agent-id-prefix=AGENT-ID-PREFIX

    où :

  • PROJECT-ID est l'ID du projet qui héberge le transfert, et où les ressources Pub/Sub sont créées et facturées.

  • CREDENTIAL-FILE est un fichier d'identifiants de compte de service au format JSON. Pour plus d'informations sur la génération d'un fichier d'identifiants de compte de service, consultez la page Créer et gérer les clés de comptes de service.

  • ID-PREFIX est un préfixe ajouté à l'ID de l'agent pour aider à identifier cet agent ou sa machine dans Google Cloud Console. Lorsqu'un préfixe est utilisé, l'ID de l'agent possède le format suivant : prefix + hostname + Docker container ID.

Ajuster la mémoire maximale de l'agent

Le service de transfert des agents de données sur site utilise par défaut une mémoire système maximale de 8 Gio. Vous pouvez ajuster la mémoire maximale utilisée par les agents en fonction de votre environnement en transmettant --max-physical-mem=MAXIMUM-MEMORY, et en remplaçant MAXIMUM-MEMORY par une valeur adaptée à votre environnement.

Voici les exigences de mémoire pour les agents du service de transfert des données sur site :
  • Mémoire minimale : 1 Gio
  • Mémoire minimale pour effectuer des importations hautes performances : 6 Gio

Nous recommandons une valeur par défaut de 8 Gio.

Le tableau suivant décrit des exemples de formats acceptables pour MAXIMUM-MEMORY :

Valeur max-physical-memory Paramètre de mémoire maximale
6g 6 gigaoctets
6gb 6 gigaoctets
6GiB 6 gibioctets

Restreindre l'accès au répertoire des agents

Pour spécifier les répertoires auxquels l'agent peut accéder lors d'un transfert, transmettez -v HOST-DIRECTORY:CONTAINER-DIRECTORY à l'agent, où :

  • HOST-DIRECTORY est le répertoire de la machine hôte à partir duquel vous souhaitez effectuer la copie.
  • CONTAINER-DIRECTORY est le répertoire mappé dans le conteneur de l'agent.

Vous pouvez utiliser plusieurs options -v pour préciser davantage les répertoires à partir desquels effectuer la copie. Exemple :

sudo docker run --ulimit memlock=64000000 -d -rm --volumes-from gcloud-config \
-v /usr/local/research:/usr/local/research \
-v /usr/local/billing:/usr/local/billing \
-v /tmp:/tmp \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT-ID \
--hostname=$(hostname) \
--agent-id-prefix=ID-PREFIX

Si vous utilisez un compte de service, veillez à installer le fichier d'identifiants dans le conteneur et à transmettre --creds-file=CREDENTIAL-FILE. Exemple :

sudo docker run --ulimit memlock=64000000 -d -rm \
-v HOST-DIRECTORY:container-directory \
-v /tmp:/tmp
-v FULL-CREDENTIAL-FILE-PATH:FULL-CREDENTIAL-FILE-PATH
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT-ID \
--creds-file=CREDENTIAL-FILE \
--hostname=$(hostname) \
--agent-id-prefix=AGENT-PREFIX

Coordonner les agents avec Kubernetes

Docker est un environnement d'exécution de conteneur compatible avec Kubernetes. Vous pouvez utiliser Kubernetes pour orchestrer le démarrage et l'arrêt de nombreux agents simultanément. Du point de vue de Kubernetes, le conteneur de l'agent est considéré comme une application sans état. Vous pouvez donc suivre les instructions Kubernetes concernant le déploiement d'une application sans état.

Utiliser des points de terminaison d'API privées dans Cloud Interconnect

Pour utiliser des points de terminaison d'API privées dans Cloud Interconnect, procédez comme suit :

  1. Connectez-vous à l'hôte sur site sur lequel vous souhaitez exécuter l'agent.

  2. Configurez l'accès privé à Google. Pour plus d'informations, consultez la section Configurer l'accès privé à Google pour les hôtes sur site.

  3. Vérifiez que vous pouvez vous connecter aux API Cloud Storage et Pub/Sub :

    1. Pour les API Cloud Storage, exécutez la commande suivante à partir de la même machine que l'agent de transfert pour tester le déplacement d'un fichier dans votre bucket Cloud Storage : gsutil cp test.txt gs://MY-BUCKET, où MY-BUCKET est le nom de votre bucket Cloud Storage. Si le transfert fonctionne, le test est réussi.
    2. Pour les API Pub/Sub, exécutez la commande suivante à partir de la même machine que l'agent de transfert pour vérifier que vous pouvez trouver des sujets Pub/Sub existants : gcloud pubsub topics list --project=PROJECT-ID, où PROJECT-ID est le nom du projet Google Cloud. Si la liste des sujets Pub/Sub s'affiche, le test est réussi.