Bonnes pratiques pour les transferts de système de fichiers

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 :

  • Maximisez les performances de votre agent de transfert.

  • 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 les dossiers sources individuels à un million de fichiers. Les répertoires contenant des millions de fichiers peuvent ralentir le 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 vous effectuez le transfert à partir d'un système de fichiers POSIX vers Cloud Storage ou entre des systèmes de fichiers POSIX, envisagez d'activer les importations en plusieurs parties. Les importations en plusieurs parties peuvent accélérer les transferts incluant des fichiers volumineux jusqu'à 300 % en divisant les fichiers volumineux (> 1 Gio) en parties plus petites et en important ces parties en parallèle.

Les systèmes de fichiers compatibles avec HDFS et S3 ne sont pas compatibles avec les importations en plusieurs parties.

Activer l'importation en plusieurs parties

Pour activer l'importation 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 préservation d'objets.

Une fois activé, le service de transfert de stockage utilise automatiquement l'importation en plusieurs parties si cette opération est susceptible d'accélérer un transfert.

Configurer des règles de cycle de vie des objets en plusieurs parties

Vous pouvez utiliser la gestion du cycle de vie des objets Cloud Storage pour annuler une importation en plusieurs parties incomplète et supprimer les parties associées. Consultez la section Annuler les importations incomplètes en plusieurs parties dans la documentation Cloud Storage.

Nous vous recommandons de définir une valeur age sur sept jours.

Désactiver les importations en plusieurs parties

Pour désactiver les importations en plusieurs parties, 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 (compte utilisateur ou 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 :

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

  2. Utilisez Cloud Monitoring pour observer le débit global de l'agent.

  3. Attendez que le débit diminue et déterminez si vous êtes limité par votre capacité WAN ou par votre limite de bande passante.

  4. 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 :

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 Docker run.

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