Stratégies pour transférer des ensembles de données volumineux

Document mis à jour le 11 octobre 2017

Cet article décrit brièvement les différentes manières de transférer vos données vers Cloud Storage pour vous aider à choisir la méthode qui vous convient le mieux. Il couvre également les bonnes pratiques en matière de transfert via un réseau numérique avec l'outil gsutil.

Lorsque vous effectuez la migration d'une activité existante vers Google Cloud Platform (GCP), vous êtes souvent amené à transférer de grandes quantités de données vers Cloud Storage. Cloud Storage est un service de stockage d'objets durable et à disponibilité élevée ne présentant aucune limitation quant au nombre de fichiers pouvant être stockés dans un bucket. Toutefois, la taille maximale de chaque fichier est de 5 To. Optimisé pour fonctionner avec d'autres services GCP tels que BigQuery et Cloud Dataflow, Cloud  Storage vous permet de procéder facilement à l'ingénierie et à l'analyse de données cloud avec une architecture GCP plus large.

Pour tirer le meilleur parti des informations de cet article, vous devez être en mesure de donner des réponses approximatives aux questions suivantes :

  • Quelle quantité de données devez-vous transférer ?
  • Où se trouvent vos données ? Par exemple, se trouvent-elles dans un centre de données ou résident-elles chez un autre fournisseur cloud ?
  • Quelle est la bande passante réseau disponible depuis l'emplacement des données ?
  • Avez-vous besoin de transférer vos données une seule fois ou de manière régulière ?

Estimer les coûts

À ce jour, lorsque vous déplacez des données vers Cloud Storage, vous ne payez aucuns frais de trafic entrant. L'outil gsutil et le service de transfert de stockage sont proposés gratuitement. Consultez la page Tarification du réseau GCP pour obtenir les informations tarifaires les plus récentes.

Une fois vos données transférées, le service Cloud Storage vous est facturé en fonction de l'espace de stockage, du réseau et du nombre d'opérations utilisés. Vous devez également tenir compte des implications en termes de coûts pour différentes classes de stockage et choisir celle adaptée à votre cas d'utilisation. L'interface de l'API Cloud Storage fonctionne indépendamment de ces classes, ce qui permet à la même API d'accéder à toutes les classes de stockage. Reportez-vous aux tarifs de Cloud Storage pour plus de détails.

La tarification de Transfer Appliance comprend les frais d'utilisation, les frais d'expédition et éventuellement des frais de retard. L'ingestion depuis le serveur Transfer Appliance vers Cloud Storage est proposée gratuitement. Une fois les données transférées avec Transfer Appliance, les taux d'utilisation normaux de Cloud Storage vous sont facturés. Reportez-vous aux règles de tarification de Transfer Appliance pour plus de détails.

Votre solution de transfert de données peut également entraîner des coûts externes à Google. Voici une liste non exhaustive de ces coûts :

  • Frais de sortie et d'opération du fournisseur source
  • Frais de service tiers pour les transferts en ligne ou hors connexion
  • Frais de réseau tiers

Choisir la bonne méthode de transfert de données

Le schéma suivant illustre chacune des méthodes de transfert de données vers Cloud Storage.

Ajouter des données à Cloud Storage

  • L'axe des abscisses indique l'accessibilité de la source de données ou sa proximité avec GCP. Dans ce contexte, une source disposant d'une excellente connexion Internet est située à une courte distance, tandis qu'une source sans connexion Internet est très éloignée.
  • L'axe des ordonnées représente la quantité de données à transférer.

Le schéma suivant vous oriente vers la section de cet article la plus pertinente en fonction de votre cas d'utilisation et vous guidera dans la sélection d'outils.

Choisir votre outil

Définir la notion de "proximité"

Il n'existe pas de définition concrète pouvant décrire la "proximité" de vos données par rapport à GCP. Cette proximité doit en effet être déterminée par la taille des données, la bande passante réseau et la nature du cas d'utilisation.

Le schéma suivant vous aidera à estimer le temps de transfert des données en fonction de leur taille et de la bande passante réseau. Analysez toujours le temps de transfert dans le contexte d'un cas d'utilisation particulier. Dans un workflow donné, il peut être inacceptable de transférer 1 To de données en trois heures, mais acceptable de transférer la même quantité de données sur 30 heures dans un autre workflow.

Estimer le temps de transfert

Rapprocher vos données de GCP

Cette section décrit différentes manières d'améliorer la proximité de vos données en utilisant les deux leviers principaux : la taille des données et la bande passante réseau.

Réduire la taille des données

Vous pouvez réduire la taille de vos données en éliminant tout doublon et en les compressant à la source. La compression des données et l'élimination des doublons permettent de minimiser la quantité de données à transférer sur le réseau, et donc de réduire la durée du transfert et les coûts de stockage. Si vos données sont constituées de nombreux petits fichiers, vous pouvez les compresser et les regrouper à l'aide d'un outil tel que tar -cvzf afin de réduire considérablement le temps de transfert via gsutil ou le service de transfert de stockage.

La compression des données représente un compromis : elle peut demander du temps et conduire à un usage intensif du processeur. Si vous stockez des fichiers à des fins d'archivage, envisagez de les compresser avant de les transférer vers Cloud Storage. Si vous prévoyez d'utiliser les fichiers transférés dans une application, vous pourriez être amené à décompresser les données dans Cloud Storage. Dans ce cas, vous devriez transférer les fichiers non compressés.

En règle générale, on obtient un taux de compression de 4:1 pour les données textuelles. Les algorithmes de compression avec perte pour les données binaires et multimédias, tels que JPEG ou MP3, représentent souvent le meilleur moyen de réduire la taille de ces données.

Privilégiez les formats de fichiers compacts dans la mesure du possible. Les fichiers Avro, par exemple, sont intrinsèquement compacts.

Augmenter la bande passante réseau

Les méthodes utilisées pour augmenter la bande passante de votre réseau dépendent de la manière dont vous choisissez de vous connecter à GCP. Vous pouvez vous connecter de trois manières principales :

  • Connexion à l'Internet public
  • Appairage direct
  • Cloud Interconnect

Se connecter avec une connexion Internet publique

Lorsque vous utilisez une connexion à l'Internet public, le débit du réseau est imprévisible, car vous êtes limité par la capacité et le routage du fournisseur d'accès à Internet (FAI). Celui-ci peut proposer un contrat de niveau de service limité, voire aucun. En revanche, ce type de connexion donne lieu à des coûts relativement bas.

Se connecter par appairage direct

Vous pouvez utiliser l'appairage direct pour accéder au réseau Google et minimiser ainsi le nombre de sauts effectués sur le réseau. Cette option permet l'échange de trafic Internet entre votre réseau et les points de présence périphériques de Google. Cela réduit le nombre de sauts entre votre réseau et le réseau de Google.

Se connecter avec Cloud Interconnect

Cloud Interconnect propose une connexion directe à GCP via l'un des fournisseurs de services Cloud Interconnect. Cette solution offre un débit plus cohérent pour les transferts de données volumineux, et inclut généralement un contrat de niveau de service garantissant une certaine disponibilité et un certain niveau de performance du réseau. Prenez contact avec un fournisseur de services directement pour en savoir plus.

Transférer des données vers GCP

Vous souhaitez peut-être transférer des données depuis un autre service cloud ou depuis un centre de données sur site. La méthode de transfert à utiliser dépend de la proximité de vos données avec GCP. Cette section vous présente les options suivantes :

  • Transférer des données depuis le cloud (à très grande proximité)
  • Transférer des données depuis un espace de stockage hébergé en colocation ou sur site (à proximité)
  • Transférer des données depuis un emplacement distant

Transférer des données depuis le cloud

Si votre source de données est un bucket Amazon S3, un emplacement HTTP/HTTPS ou un bucket Cloud Storage, vous pouvez utiliser le service de transfert de stockage pour transférer vos données.

Transférer des données depuis un espace de stockage hébergé en colocation ou sur site

Si vous opérez depuis une installation hébergée en colocation ou un centre de données sur site se trouvant à une proximité relative de GCP, transférez vos données à l'aide de gsutil ou d'un outil tiers.

gsutil

L'outil gsutil est un utilitaire de ligne de commande Open Source disponible pour Windows, Linux et Mac.

  • Mode multithread/traité : utile pour le transfert d'un grand nombre de fichiers.
  • Importations parallèles composites : divise les fichiers volumineux, transfère des fragments en parallèle et recompose le tout à destination.
  • Nouvelle tentative : s'applique aux échecs temporaires de connexion au réseau et aux codes d'erreur HTTP/429 et 5xx.
  • Possibilité de reprise : reprend le transfert après une erreur.
Limites

L'outil gsutil n'intègre pas la limitation de bande passante. Vous devez l'associer à un outil tel que Trickle pour contrôler le trafic au niveau de la couche réseau. Si vous disposez de droits d'utilisateur au niveau du système d'exploitation et que vous savez effectuer des réglages précis, vous pourriez améliorer le temps de transfert en ajustant les paramètres TCP et/ou en augmentant le débit de transfert.

L'outil gsutil est idéal pour les transferts ponctuels ou initiés manuellement. Si vous devez établir un pipeline de transfert continu de données, vous devez exécuter gsutil en tant que tâche Cron ou utiliser d'autres outils de gestion de workflow comme Airflow pour orchestrer la tâche.

Chiffrer les données

L'outil gsutil chiffre le trafic en transit à l'aide du chiffrement de la couche de transport (HTTPS). Cloud Storage stocke les données sous forme chiffrée et vous permet d'utiliser vos propres clés de chiffrement. Pour obtenir des recommandations de sécurité détaillées, reportez-vous aux considérations sur la sécurité et la confidentialité .

Procéder au traitement multithread du transfert

Lorsque vous utilisez un processus gsutil monothread pour transférer plusieurs fichiers sur un réseau, il est possible que vous n'utilisiez pas toute la bande passante disponible. Le schéma suivant illustre un transfert monothread de quatre fichiers. Chaque fichier doit attendre la fin du transfert du fichier précédent, ce qui gaspille la bande passante inutilisée.

Transfert monothread

Vous pouvez utiliser davantage de bande passante disponible et accélérer le transfert des données en copiant des fichiers en parallèle. Le schéma suivant illustre un transfert multithread de quatre fichiers.

Transfert multithread

Par défaut, l'outil gsutil transfère plusieurs fichiers à l'aide d'un seul thread. Pour activer la copie multithread, utilisez le paramètre -m lorsque vous exécutez la commande cp.

La commande suivante copie tous les fichiers d'un répertoire source dans un bucket Cloud Storage. Remplacez [SOURCE_DIRECTORY] par votre répertoire et [BUCKET_NAME] par le nom de votre bucket Cloud Storage.

gsutil -m cp -r [SOURCE_DIRECTORY] gs://[BUCKET_NAME]
Composer des importations parallèles

Si vous prévoyez d'importer des fichiers volumineux, gsutil propose des importations composites parallèles. Cette fonctionnalité divise chaque fichier en plusieurs composants plus petits, puis les importe tous en parallèle. Les schémas suivants montrent la différence entre l'importation d'un fichier volumineux et l'importation du même fichier à l'aide de la méthode composite parallèle.

Importer un fichier volumineux

Importation composite parallèle

Pour plus d'informations sur les avantages et les inconvénients liés à l'utilisation d'importations composites parallèles, consultez la documentation de la commande cp.

Régler les paramètres TCP

Vous pouvez améliorer les performances du transfert TCP en réglant les paramètres TCP suivants. Lisez la documentation de votre système d'exploitation et consultez un expert au préalable.

  • Ajustement dynamique de la fenêtre TCP (RFC 1323)

    Ce paramètre permet à la taille de la fenêtre TCP de dépasser 16 bits grâce à un facteur d'ajustement dynamique. Ce paramètre peut potentiellement permettre aux transferts de données d'utiliser davantage de bande passante disponible. Pour que cela fonctionne, l'émetteur et le destinataire doivent tous deux accepter l'ajustement dynamique des fenêtres TCP.

  • Horodatages TCP (RFC 1323)

    Ce paramètre permet une mesure précise du délai aller-retour pour des performances TCP plus efficaces.

  • Acquittement sélectif (RFC 2018)

    Ce paramètre indique que l'émetteur ne peut retransmettre que les données manquantes pour le destinataire.

  • Tailles des tampons d'envoi et de réception

    Ces paramètres déterminent la quantité de données que vous pouvez envoyer ou recevoir avant d'envoyer un acquittement à l'autre partie. Vous pouvez essayer d'augmenter ces paramètres si vous pensez qu'ils limitent votre utilisation de la bande passante.

Augmenter le débit de transfert

En augmentant votre bande passante réseau effective, vous pouvez potentiellement augmenter le débit de votre transfert de données. Vous pouvez tester la latence du réseau en exécutant la commande suivante de l'outil de diagnostic des performances gsutil. Remplacez [BUCKET_NAME] par le nom de votre bucket Cloud Storage.

gsutil perfdiag gs://[BUCKET_NAME]

Vous pouvez utiliser gsutil pour tester différentes combinaisons de processus de système d'exploitation, de threads, etc. L'outil gsutil vous permet de mieux comprendre quelles sont les options de configuration optimales pour votre réseau et de déterminer, par exemple, si vous devez plutôt transférer beaucoup de petits fichiers ou seulement quelques gros.

Utilisez les options suivantes pour définir le débit de votre réseau.

  • L'option -c définit le nombre de processus.
  • L'option -k définit le nombre de threads par processus.
  • L'option -n définit le nombre d'objets.
  • L'option -s définit la taille de chaque objet.
  • L'option -t wthru_file lit les fichiers du disque local pour évaluer ses performances de lecture.

Par exemple, la commande suivante importe 100 fichiers de 10 Mo chacun à l'aide de 2 processus et de 10 threads. La commande inclut l'option -m pour le multithread et l'option -p pour les importations composites parallèles. Remplacez [BUCKET_NAME] par le nom de votre bucket Cloud Storage.

gsutil perfdiag -c 2 -p both -t wthru_file -s 10M -n 100 -k 10 gs://[BUCKET_NAME]

Un exemple de résultat de diagnostic est présenté ci-dessous, lequel comprend une valeur de débit d'écriture en Mbits par seconde.

------------------------------------------------------------------------------
                        Write Throughput With File I/O
------------------------------------------------------------------------------
Copied 100 10 MiB file(s) for a total transfer size of 1000 MiB.
Write throughput: 135.15 Mbit/s.
Parallelism strategy: both

Pour vérifier le nombre de sauts entre votre réseau et celui de Google, vous pouvez utiliser l'outil de ligne de commande traceroute en définissant le paramètre du numéro de système autonome (ASN). La commande suivante fonctionne dans un environnement Linux :

traceroute -a test.storage-upload.googleapis.com

Localisez la chaîne de caractères AS15169, qui représente l'ASN de la plupart des services Google, y compris GCP. L'exemple de résultat suivant montre que six sauts sont requis pour accéder au réseau de Google.

traceroute to storage.l.googleusercontent.com (74.125.68.128), 64 hops max, 52 byte packets
     1  [AS0] XXXX.XXXXX.XXX (192.168.2.1)  1.374 ms  1.094 ms  0.982 ms
     2  [AS0] XXXX.XXXXX.XXX (192.168.1.1)  1.582 ms  1.932 ms  1.858 ms
       ...
     6  [AS15169] 108.XXX.XXX.XXX (108.XXX.XXX.XXX)  17.281 ms
       ...

Pour une liste complète des options de l'outil de diagnostic des performances, reportez-vous à la documentation de l'outil gsutil.

Outils tiers

L'outil gsutil convient à de nombreux workflows. Pour une optimisation avancée au niveau du réseau ou pour des workflows de transfert continu, vous devrez peut-être utiliser des outils plus avancés. Pour obtenir des informations complémentaires sur ces outils, accédez au site Web des partenaires Google.

La liste ci-dessous vous présente quelques-unes des nombreuses options disponibles (dans l'ordre alphabétique) :

  • Aspera On Demand pour Google est basé sur le protocole breveté d'Aspera et convient aux workflows à grande échelle. Aspera est disponible à la demande en tant que modèle de licence par abonnement.

  • Bitspeed offre un protocole optimisé, adapté au transfert de fichiers volumineux ou nombreux. Ces solutions sont disponibles sous forme d'appliances physiques et virtuelles que vous pouvez connecter à des réseaux et à des systèmes de fichiers existants.

  • Cloud FastPath de Tervela peut être utilisé pour créer un flux de données géré entrant et sortant de GCP. Pour obtenir des détails supplémentaires, reportez-vous à la page Utiliser Cloud FastPath pour créer des flux de données.

  • Komprise peut être utilisé pour analyser des données dans un espace de stockage sur site afin d'identifier les données inactives et de les déplacer vers Cloud Storage. Pour obtenir des détails supplémentaires, reportez-vous à la page Utiliser Komprise pour archiver des données inactives sur Cloud Storage.

  • Signiant propose Media Shuttle sous forme de solution SaaS (Software as a Server) permettant de transférer n'importe quel fichier vers/depuis n'importe quel emplacement. Signiant propose également Flight, un utilitaire d'autoscaling basé sur un protocole hautement optimisé, et Manager+Agents, un outil d'automatisation pour les transferts à grande échelle sur des sites géographiquement dispersés.

Transférer des données depuis un emplacement distant

Lorsque vos données ne sont pas considérées comme étant à proximité de GCP, le transfert de données hors connexion est la solution à adopter. Vous chargez vos données sur un support de stockage physique, vous les expédiez vers un point d'ingestion offrant une bonne connectivité réseau à GCP, puis vous les importez à partir de là.

Transfer Appliance, tout comme un certain nombre de fournisseurs de services tiers, offre diverses options de transfert que vous pouvez envisager par rapport à vos besoins. Il existe deux principaux critères de sélection :

  • La taille du transfert
  • La nature dynamique des données

Transfer Appliance convient aux transferts de données volumineux. Cependant, si vous avez de grandes quantités de données dynamiques, Zadara Storage peut se révéler une meilleure option.

Contactez votre représentant Google pour qu'il vous aide à choisir la meilleure option.

Étapes suivantes