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
- Utiliser les identifiants du compte de service
- Ajuster la mémoire maximale de l'agent
- Restreindre l'accès au répertoire des agents
- Coordonner les agents avec Kubernetes
- Utiliser un proxy de transfert
- Copier dans un bucket avec une règle de conservation
- Options permettant d'obtenir plus de bande passante réseau
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 :
Provisionnez une VM ou un serveur Linux.
Pour connaître les systèmes d'exploitation compatibles, consultez la section Prérequis.
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 SMBSHARE-NAME
: nom du partage que vous installezWINDOWS-SHARE-USER
: utilisateur autorisé à accéder au volume CIFS ou SMBWINDOWS-SHARE-PASSWORD
: mot de passe de l'utilisateur autorisé du volume CIFS ou SMB
Vérifiez que le volume CIFS est bien installé en exécutant la commande suivante :
findmnt -l
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'agentFILE1
: fichier à copierFILE2
: nom du fichier vers lequel effectuer la copie
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.
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.
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.
- 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 :
Connectez-vous à l'hôte sur site sur lequel vous souhaitez exécuter l'agent.
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.
Vérifiez que vous pouvez vous connecter aux API Cloud Storage:
- 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.
- 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 :
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:
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.
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.
Effectuez un transfert de bucket à bucket pour transférer les données vers le bucket avec règle de conservation.
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.