Cette page décrit les bonnes pratiques concernant les transferts de systèmes de fichiers.
Bonnes pratiques en matière de performances
Voici quelques bonnes pratiques à suivre pour garantir des performances de transfert satisfaisantes :
Effectuez un benchmark de vos performances en transférant un corpus de données volumineux, généralement d'au moins 100 Go.
Le service de transfert de stockage est un service à grande échelle et à débit optimisé. Par conséquent, les performances obtenues sur de très petits ensembles de données de test ne permettent pas de connaître vos performances sur de vastes ensembles de données en production.
Limitez chaque dossier source à un million de fichiers. Les répertoires contenant des millions de fichiers peuvent ralentir l'ensemble du transfert.
Exécutez les agents sur des machines virtuelles (VM) distinctes afin de pouvoir adapter votre consommation de ressources plus efficacement.
Vérifiez que l'interface réseau sur les machines agents est dimensionnée pour la bande passante en lecture/écriture dont vous avez besoin.
Par exemple, si vous souhaitez utiliser pleinement un réseau étendu (WAN) 20 Gbit/s, l'interface réseau de votre machine agent doit prendre en charge 20 Gbit/s pour la lecture des données de votre système de fichiers en réseau, ainsi que 20 Gbit/s supplémentaires pour le transfert des données vers Cloud Storage, soit un total de 40 Gbit/s de bande passante.
Surveillez l'utilisation du processeur, de la mémoire et du réseau sur les machines agents pour vous assurer qu'elles ne sont pas submergées par d'autres charges de travail, car cela peut affecter négativement les performances. Pour obtenir des suggestions de configurations de mémoire et de processeur, consultez la section Configuration matérielle requise pour les agents.
Importations en plusieurs parties
Si votre transfert s'effectue depuis un système de fichiers POSIX vers Cloud Storage ou entre des systèmes de fichiers POSIX, envisagez d'activer les importations multiparties. Les importations multiparties peuvent accélérer les transferts incluant de gros fichiers jusqu'à 300 % en divisant les fichiers volumineux (> 1 Go) en parties plus petites et en les important en parallèle.
Les systèmes de fichiers HDFS et compatibles S3 ne sont pas compatibles avec les importations en plusieurs parties.
Activer les importations en plusieurs parties
Pour activer les importations en plusieurs parties:
Vous devez accorder les autorisations requises au compte autorisant les agents de transfert, qu'il s'agisse d'un compte utilisateur ou d'un compte de service.
Le bucket de destination ou intermédiaire ne doit pas comporter de règle de conservation ni de mise en attente de l'objet.
Une fois activé, le service de transfert de stockage utilise automatiquement l'importation par parties lorsqu'il est susceptible d'accélérer un transfert.
Configurer des règles de cycle de vie des objets multiparties
Vous pouvez utiliser la gestion du cycle de vie des objets Cloud Storage pour interrompre une importation en plusieurs parties incomplète et supprimer les parties associées. Consultez la section Annuler les importations en plusieurs parties incomplètes dans la documentation Cloud Storage.
Nous vous recommandons de définir une valeur de age
de sept jours.
Désactiver les importations en plusieurs parties
Pour désactiver les importations multiparties, réinstallez les agents de transfert à l'aide de docker run
et transmettez --enable-multipart=false
:
sudo docker run --ulimit memlock=64000000 -d --rm \ -v /usr/local/research:/usr/local/research \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --agent-pool=AGENT_POOL \ --creds-file=CREDENTIAL_FILE \ --hostname=$(hostname) \ --enable-multipart=false
Remplacez les éléments suivants :
PROJECT_ID
spécifie l'ID du projet qui héberge le transfert.CREDENTIAL_FILE
: si l'agent de transfert utilise un compte de service pour l'authentification, spécifiez le chemin d'accès à un fichier d'identifiants de compte de service au format JSON.
Vous pouvez également révoquer les autorisations requises du compte autorisant les agents de transfert, qu'il s'agisse d'un compte utilisateur ou d'un compte de service.
Maximisez les performances de l'agent de transfert
Les performances de transfert sont affectées par les variables suivantes :
Fonctionnalités du système de fichiers.
Limites matérielles sous-jacentes.
Le type de contenu du disque dur, le bus d'entrée/sortie et la connectivité du réseau local (LAN) ont tous un impact sur les performances.
Débit et utilisation du réseau WAN.
Un WAN plus lent ou fortement sollicité entraîne un ralentissement des performances.
Caractéristiques des fichiers.
Par exemple, de nombreux fichiers volumineux présentent un débit de réseau supérieur à celui de nombreux petits fichiers, en raison de la surcharge réseau.
À cause de ces variables, nous ne pouvons pas prédire les performances réelles ni indiquer un nombre optimal d'agents à utiliser.
Au minimum, nous vous recommandons d'utiliser trois agents, si possible sur des machines différentes, afin que votre transfert reste tolérant aux pannes. Vous pouvez ajouter des agents de transfert pendant l'exécution des transferts, car les performances augmentent de manière dynamique.
Pour observer l'impact de l'ajout d'agents et choisir le nombre d'agents le mieux adapté à votre environnement, procédez comme suit :
Démarrez un transfert volumineux dont l'exécution prend au moins une heure. Par exemple, lancez un transfert contenant au minimum 100 000 fichiers et dont la taille totale est d'au moins 100 Go.
Utilisez Cloud Monitoring pour observer le débit global de l'agent.
Attendez que le débit diminue et déterminez si vous êtes limité par votre capacité WAN ou par votre limite de bande passante.
Si votre capacité WAN n'est pas saturée et que vous n'avez pas atteint la limite de transfert souhaitée, ajoutez un autre agent. L'agent supplémentaire augmente automatiquement le débit de transfert. Attendez environ trois minutes que le débit se stabilise dans Cloud Monitoring.
Répétez les étapes 3 et 4 pour ajouter un agent à la fois jusqu'à atteindre la limite souhaitée. Tant que des ressources de calcul, de système de fichiers et de réseau sont disponibles, vous pouvez exécuter jusqu'à 100 agents simultanément par pool d'agent.
Si la bande passante sortante se sature avant que vous n'ayez atteint la limite souhaitée, vous pouvez effectuer l'une des opérations suivantes :
- Contrôlez la bande passante utilisée par le service de transfert de stockage.
- Obtenez davantage de bande passante réseau.
Si vous avez ajouté des agents, mais que le débit n'augmente pas et que votre réseau WAN n'est pas saturé, examinez le débit du système de fichiers. Dans de rares cas, le débit du système de fichiers est saturé, ce qui vous empêche d'améliorer les performances de transfert.
Nommer les agents
Lorsque vous nommez des agents, nous vous recommandons d'effectuer les actions suivantes :
Incluez toujours le nom d'hôte dans votre agent. Cela vous permet d'identifier la machine sur laquelle un agent s'exécute. Nous vous recommandons de transmettre
--hostname=$(hostname)
à la commande Dockerrun
.Choisissez un schéma de préfixe d'agent qui vous aide à identifier les agents dans le contexte de votre processus de surveillance et de votre organisation d'infrastructure. Exemple :
Si vous avez trois projets de transfert distincts, vous pouvez inclure le nom de l'équipe dans votre agent. Par exemple,
logistics
.Si vous exécutez deux projets de transfert différents pour deux centres de données distincts, vous pouvez inclure le nom du centre de données dans le préfixe d'agent. Par exemple,
omaha
.