Options avancées

Ce document décrit les options de configuration avancées pour les transferts de système de fichiers, telles que:

Copier des données sur des volumes CIFS ou SMB

Les agents de transfert 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
    

    Remplacez l'élément suivant :

    • 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
    

    Remplacez l'élément suivant :

    • 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.

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.

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

  2. Transmettez l'emplacement de la clé de service à la commande de création de l'agent :

    gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
      --mount-directories=MOUNT_DIRECTORIES \
      --creds-file=RELATIVE_PATH_TO/KEY_FILE.JSON
    

    Le fichier d'identifiants est automatiquement installé par gcloud transfer et n'a pas besoin d'être spécifié avec l'indicateur --mount-directories.

Ajuster la mémoire maximale de l'agent

Les agents de transfert utilisent 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-mem Paramètre de mémoire maximale
6g 6 gigaoctets
6gb 6 gigaoctets
6GiB 6 gibioctets

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

Les utilisateurs autorisés à créer des tâches de transfert peuvent récupérer des données à partir de n'importe quel répertoire de système de fichiers accessible par l'agent et y télécharger des données.

Si les agents sont exécutés en tant que root et qu'ils ont accès à l'ensemble du système de fichiers, un acteur malveillant peut prendre le contrôle de l'hôte. Nous vous recommandons vivement de limiter l'accès des agents aux répertoires nécessaires uniquement.

Pour limiter l'accès d'un agent à des répertoires spécifiques:

gcloud

Pour spécifier les répertoires auxquels l'agent peut accéder sur un système de fichiers, utilisez l'indicateur --mount-directories avec gcloud transfer agents install:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORIES

Spécifiez plusieurs répertoires en les séparant par une virgule, sans espace:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORY_1,MOUNT_DIRECTORY_2

Si vous spécifiez un fichier d'identifiants à l'aide de l'indicateur --creds-file, gcloud transfer installe automatiquement le fichier d'identifiants. Les autres fichiers du même répertoire que le fichier d'identifiants ne sont pas montés.

docker run

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.

HOST_DIRECTORY et CONTAINER_DIRECTORY doivent être identiques pour que l'agent puisse localiser les fichiers à copier.

Lorsque vous utilisez cette option :

  • Ne spécifiez pas --enable-mount-directory.
  • N'ajoutez pas le préfixe /transfer_root au chemin de votre fichier.

L'option --enable-mount-directory installe l'ensemble du système de fichiers dans le répertoire /transfer_root du conteneur. Si l'option --enable-mount-directory est spécifiée, les restrictions du répertoire ne sont pas appliquées.

Vous pouvez utiliser plusieurs options -v pour spécifier d'autres 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=ID_PREFIX

Remplacez l'élément suivant :

  • HOST_DIRECTORY : répertoire de la machine hôte à partir duquel vous souhaitez effectuer la copie.
  • CONTAINER_DIRECTORY : répertoire mappé dans le conteneur de l'agent.
  • FULL_CREDENTIAL_FILE_PATH : chemin d'accès complet au fichier d'identifiants.
  • PROJECT_ID: ID du projet qui héberge les ressources de transfert, et où elles sont créées et facturées.
  • CREDENTIAL_FILE : 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.

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:

    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 : gcloud storage 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.

Utiliser un proxy de transfert

Les agents de transfert sont compatibles avec l'utilisation d'un proxy de transfert sur votre réseau grâce à la transmission de la variable d'environnement HTTPS_PROXY.

Exemple :

sudo docker run -d --ulimit memlock=64000000 --rm \
--volumes-from gcloud-config \
-v /usr/local/research:/usr/local/research \
--env HTTPS_PROXY=PROXY\
gcr.io/cloud-ingest/tsop-agent:latest \
--enable-mount-directory \
--project-id=PROJECT_ID \
--hostname=$(hostname) \
--agent-id-prefix=ID_PREFIX

Remplacez l'élément suivant :

  • PROXY : URL HTTP et port du serveur proxy. Veillez à spécifier l'URL HTTP, et non une URL HTTPS, afin d'éviter l'encapsulation en double des requêtes dans le chiffrement TLS. Les requêtes encapsulées en double empêchent le serveur proxy d'envoyer des requêtes sortantes valides.
  • PROJECT_ID: ID du projet qui héberge les ressources de transfert, et où elles sont créées et facturées.
  • 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.

Copier dans un bucket avec une règle de conservation

Pour effectuer un transfert vers un bucket avec une règle de conservation, nous vous recommandons de procéder comme suit:

  1. Créez un bucket Cloud Storage dans la même région que le bucket final. Assurez-vous que ce bucket temporaire ne dispose pas de règles de conservation.

    Pour en savoir plus sur les régions, consultez la page Emplacements des buckets.

  2. Utilisez le service de transfert de stockage pour transférer vos données vers le bucket temporaire que vous avez créé sans règle de conservation.

  3. Effectuez un transfert de bucket à bucket pour transférer les données vers le bucket avec règle de conservation.

  4. Supprimez le bucket Cloud Storage que vous avez créé pour stocker vos données de manière temporaire.

Options permettant d'obtenir plus de bande passante réseau

Afin d'obtenir plus de bande passante réseau pour les transferts de système de fichiers, plusieurs options s'offrent à vous. L'augmentation de la bande passante réseau contribue à réduire les temps de transfert, en particulier pour les ensembles de données volumineux.

  • Appairage avec Google : l'appairage consiste à établir une interconnexion directe avec Google pour prendre en charge l'échange de trafic. Nous disposons d'emplacements d'appairage direct dans le monde entier. Pour en savoir plus sur les avantages présentés par cette option et sur nos politiques, consultez la page Appairage.

  • Cloud Interconnect : Cloud Interconnect est semblable à l'appairage, mais vous utilisez une interconnexion pour vous connecter à Google. Il existe deux types d'interconnexions :

    • Interconnexion dédiée : vous vous connectez directement depuis votre centre de données à un centre de données Google via une connexion privée dédiée. Pour plus d'informations, consultez la page Présentation de l'interconnexion dédiée.

    • Interconnexion partenaire : vous collaborez avec un fournisseur de services pour établir une connexion à un centre de données Google via le réseau d'un partenaire de services. Pour en savoir plus, consultez la page Présentation de l'interconnexion partenaire.

  • Obtenir de la bande passante auprès de votre FAI : votre fournisseur d'accès à Internet (FAI) peut être en mesure de vous offrir la bande passante supplémentaire nécessaire pour répondre à vos besoins. Pensez à le contacter pour lui demander quelles sont les options disponibles.