Remarques :

Déplacement de données vers les services OCI Cloud Storage à l'aide d'OCI Object Storage Sync et de l'outil s5cmd

Introduction

Voici le tutoriel 3 d'une série de quatre tutoriels qui vous montre différentes façons de migrer des données vers les services de stockage cloud Oracle Cloud Infrastructure (OCI). La série est configurée pour vous permettre de consulter le tutoriel 1 : Utilisation des outils de migration pour déplacer des données vers les services OCI Cloud Storage afin d'acquérir une connaissance approfondie des différents outils, puis de passer aux tutoriels ou documents associés correspondant à vos besoins en matière de migration. Ce tutoriel se concentrera sur l'utilisation d'OCI Object Storage Sync (synchronisation de système de fichiers) et de s5cmd pour migrer les données de système de fichiers (y compris OCI File Storage) vers et depuis OCI Object Storage.

OCI fournit aux clients des options de calcul haute performance et de stockage cloud à faible coût. Grâce au stockage local, d'objets, de fichiers, de blocs et d'archives à la demande, Oracle répond aux exigences et aux cas d'emploi clés en matière de charge globale de stockage.

Les services de stockage cloud OCI offrent des options de stockage cloud rapides, sécurisées et durables pour tous vos besoins d'entreprise. A partir d'options hautes performances telles qu'OCI File Storage avec Lustre et le service OCI Block Volumes, de systèmes de fichiers entièrement gérés à l'échelle d'exaoctets du service OCI File Storage avec des cibles de montage hautes performances, à OCI Object Storage hautement durable et évolutif. Nos solutions peuvent répondre à vos demandes, allant des applications exigeantes en performances telles que les workloads d'IA/ML aux lacs de données à l'échelle des exaoctets.

Déterminez la quantité de données à migrer et le temps d'inactivité disponible pour le basculement vers la nouvelle plate-forme de stockage OCI. Les migrations par lots sont un bon choix pour décomposer la migration en incréments gérables. Les migrations par lots vous permettent de planifier un temps d'arrêt pour des applications spécifiques dans différentes fenêtres. Certains clients ont la possibilité d'effectuer une migration ponctuelle sur une fenêtre de maintenance programmée sur 2 à 4 jours. OCI FastConnect peut être utilisé pour créer une connexion privée dédiée entre OCI et votre environnement, avec des vitesses de port de 1G à 400G pour accélérer le processus de transfert de données. OCI FastConnect peut être intégré à des solutions partenaires telles que Megaport et ConsoleConnect pour créer une connexion privée à votre centre de données ou une interconnexion cloud à cloud afin de déplacer les données plus directement d'un autre fournisseur cloud vers le service de stockage cloud OCI. Pour plus d'informations, reportez-vous à FastConnect integration with Megaport Cloud Router.

Public

DevOps ingénieurs, développeurs, administrateurs et utilisateurs de stockage cloud OCI, responsables informatiques, super utilisateurs OCI et administrateurs d'applications.

Objectif

Découvrez comment copier et/ou synchroniser des données de système de fichiers vers/depuis OCI Object Storage à l'aide de l'interface de ligne de commande OCI avec la synchronisation os et l'outil s5cmd.

Prérequis

Synchroniser le système de fichiers réseau et les données de système de fichiers local vers/depuis OCI Object Storage

OCI Object Storage Sync fait partie de l'interface de ligne de commande OCI qui synchronise un répertoire de système de fichiers avec les objets d'un bucket. La commande parcourt les sous-répertoires copiant des fichiers ou des objets nouveaux et modifiés de la source vers la destination et, éventuellement, supprime ceux qui ne sont pas présents dans la source. Il s'agit d'un outil pratique permettant de maintenir la synchronisation des données de système de fichiers et des buckets OCI Object Storage. Notre environnement de test a constaté qu'OCI Object Storage Sync fonctionnait bien pour les ensembles de données mixtes et mieux que les autres outils pour les fichiers volumineux (1 To ou plus).

OCI Object Storage prend en charge une API de compatibilité Amazon S3. Les clients qui connaissent déjà la variété des outils Amazon S3 peuvent continuer à les utiliser. L'outil s5cmd est un projet open source gratuit. Il permet de parcourir et de transférer des données vers/à partir d'une banque d'objets compatible S3. Il est écrit dans le langage Go et est optimisé pour le débit parallèle. Lors de nos tests, nous avons constaté que l'outil s5cmd fonctionne mieux pour les petits fichiers (fichiers de moins de 1 Mo jusqu'à 30 Mo) et a exécuté tous les autres outils pour déplacer les petits fichiers. L'outil s5cmd fonctionne également bien pour les ensembles de données mixtes lors du déplacement de données de systèmes de fichiers vers OCI Object Storage.

Si vos données peuvent être organisées en sous-ensembles par répertoires ou préfixes, vous pouvez également augmenter la synchronisation de système d'exploitation et l'exécution de s5cmd sur plusieurs machines virtuelles afin d'améliorer les temps de transfert.

Utiliser la synchronisation OS pour synchroniser

  1. Synchronisez les données de système de fichiers local dans OCI Object Storage.

    Exécutez la commande os sync de base suivante pour synchroniser les fichiers d'un répertoire source dans un bucket de destination.

    oci os object sync --src-dir <path to migration-files> --bucket-name <bucket name>
    

    Remarque : cette même commande peut être utilisée pour les systèmes de fichiers locaux sur site, les systèmes de fichiers NFS sur site et sur une instance OCI Compute avec des montages NFS OCI File Storage afin de déplacer des données d'OCI File Storage vers un bucket OCI Object Storage.

  2. Migrez des données d'OCI Object Storage vers un système de fichiers local.

    Exécutez la commande os sync de base suivante pour synchroniser les fichiers/objets à partir d'un bucket source dans un système de fichiers de destination.

    oci os object sync --dest-dir <path to migration-target directory> --bucket-name <bucket name>
    

    Remarque : cette même commande peut être utilisée pour les systèmes de fichiers locaux sur site, les systèmes de fichiers NFS sur site et sur une instance OCI Compute avec un montage NFS OCI File Storage afin de déplacer les données du service OCI File Storage vers un bucket OCI Object Storage.

  3. Augmentez les opérations parallèles.

    Par défaut, seules 10 opérations sont exécutées en parallèle, l'augmentation des opérations en parallèle améliore les vitesses de transfert de données et consomme plus de ressources système et de bande passante. Dans notre environnement de test, nous avons utilisé VM.Standard.E4.Flex avec 24 OCPU, 24Gbps bande passante réseau, 384 Go de mémoire et trouvé 100 opérations parallèles qui fonctionnent le mieux pour les vitesses de transfert. Les machines virtuelles plus grandes peuvent augmenter ce nombre de 10 opérations à la fois jusqu'à ce qu'une vitesse de transfert optimale soit atteinte ou jusqu'à ce que le maximum de 1 000 transferts parallèles soit atteint. Les formes de machine virtuelle plus petites doivent commencer par 10 opérations et augmenter par incréments de 5 à 10 jusqu'à obtenir un débit optimal. Augmentez ou diminuez les opérations parallèles avec l'indicateur suivant.

    --parallel-operations-count <integer range>
    

    Remarque : si des erreurs commencent à se produire après l'augmentation de l'opération parallèle, en particulier les erreurs avec 429 "TooManyRequests", réduisez les opérations parallèles de 2 jusqu'à ce que les erreurs s'arrêtent.

  4. Filtrez les fichiers mis en correspondance à l'aide de la commande pattern.

    Les modèles peuvent être utilisés pour inclure ou exclure des fichiers mis en correspondance. Les commandes de modèle peuvent être utilisées plusieurs fois sur la ligne de commande pour correspondre à plusieurs modèles.

    • Pour inclure des fichiers qui correspondent à un modèle, utilisez la commande suivante.

      --include
      
    • Pour exclure des fichiers qui correspondent à un modèle, utilisez la commande suivante.

      --exclude
      

    Remarque :

    • * : correspond à tous les caractères
    • ? : correspond à n'importe quel caractère unique
    • [sequence] : correspond à n'importe quel caractère dans la séquence.
    • [!sequence] : correspond à tout caractère non séquentiel.
  5. Utilisez l'indicateur --prefix.

    L'indicateur --prefix utilisé lors du téléchargement de fichiers vers le stockage d'objet à l'aide de la commande --src-dir télécharge des objets et ajoute le chemin de répertoire au nom d'objet en tant que préfixe. Lorsqu'ils sont utilisés pour télécharger des objets à partir d'OCI Object Storage, seuls les objets avec le préfixe indiqué sont téléchargés et n'apparaissent pas dans le nom d'objet/de fichier.

  6. Vérifiez un transfert avant une exécution.

    Avant de démarrer un transfert, vous pouvez déterminer les fichiers qui seront téléchargés vers/depuis OCI Object Storage en effectuant une impression uniquement avec la synchronisation os. Exécutez la ligne de commande avec l'indicateur suivant.

    --dry-run
    

Utiliser s5cmd pour synchroniser

  1. Commande de synchronisation et de copie.

    • L'option sync pour s5cmd effectue une synchronisation unidirectionnelle de la source vers la destination sans modifier les fichiers source et ne supprime pas les fichiers sur la destination qui n'existent pas sur la source. Ajoutez l'indicateur --delete pour enlever sur la destination les fichiers qui n'existent pas dans la source.

    • La commande copy copie simplement les objets de la source vers la destination.

  2. Correspondance de modèle.

    L'outil s5cmd prend en charge les caractères génériques à plusieurs niveaux pour les opérations de synchronisation et de copie. Pour ce faire, répertoriez tous les objets avec le préfixe jusqu'au premier caractère générique, puis filtrez les résultats en mémoire.

    Lorsque la source est un système de fichiers, les caractères génériques s'appliquent également. Lorsque vous utilisez le caractère *, il est parfois interprété comme un caractère générique de type globbing et encapsulé entre apostrophes pour éviter les résultats inattendus.

    Par exemple, pour copier tous les fichiers gzippés d'un répertoire dans un bucket, exécutez la commande suivante.

    s5cmd cp '*.gz' s3:/<bucket name>
    
  3. Commande de synchronisation de base.

    • Synchronisez les données de système de fichiers local dans OCI Object Storage. Exécutez la commande s5cmd de base suivante pour synchroniser les fichiers d'un répertoire source dans un bucket de destination.

      s5cmd sync /<path to migration-files> s3://<bucket name>
      
    • Synchronisez les données d'OCI Object Storage vers un système de fichiers local. Exécutez la commande s5cmd de base suivante pour synchroniser les fichiers/objets à partir d'un bucket source dans un système de fichiers de destination.

      s5cmd sync s3:/<bucket name>/* /<path to migration-target directory>
      

    Remarque : les mêmes commandes peuvent être utilisées pour les systèmes de fichiers locaux sur site, les systèmes de fichiers NFS sur site et sur une instance OCI Compute avec des montages NFS OCI File Storage afin de déplacer des données d'OCI File Storage vers un bucket OCI Object Storage.

  4. Commande de copie de base.

    Exécutez la commande s5cmd de base suivante pour copier les fichiers d'un répertoire source de système de fichiers local vers un bucket de destination OCI Object Storage.

    s5cmd cp /<path to migration-files> s3://<bucket name>
    

    Copiez les données d'OCI Object Storage vers un système de fichiers local.

    s5cmd cp "s3:/<bucket name>/*" /<path to migration-target directory>
    

    Remarque : ces commandes peuvent être utilisées pour les systèmes de fichiers locaux sur site, les systèmes de fichiers NFS sur site et sur une instance de calcul OCI avec des montages NFS OCI File Storage afin de déplacer des données d'OCI File Storage vers un bucket OCI Object Storage. Nos tests ont principalement utilisé la commande de copie avec s5cmd.

  5. Augmentez le parallélisme.

    L'outil s5cmd exécute 256 processus actifs en parallèle par défaut. Selon la taille de votre machine virtuelle, vous pouvez augmenter ou réduire le parallélisme. Dans notre environnement de test, nous avons utilisé VM.Standard.E4.Flex avec 24 OCPU, 24Gbps bande passante réseau, 384 Go de mémoire et avons trouvé 1 000 opérations parallèles qui fonctionnent le mieux pour les vitesses de transfert. Les machines virtuelles plus grandes peuvent augmenter ce nombre de 10 opérations à la fois jusqu'à ce qu'une vitesse de transfert optimale soit atteinte ou jusqu'à ce que le maximum de 1 000 transferts parallèles soit atteint. Les formes de machine virtuelle plus petites doivent commencer par 10 opérations et augmenter par incréments de 5 à 10 jusqu'à obtenir un débit optimal. Augmentez ou diminuez les opérations parallèles avec l'indicateur suivant.

    --numworkers <interger>
    

    Remarque : si des erreurs commencent à se produire après l'augmentation du nombre de salariés, en particulier les erreurs avec 429 "TooManyRequests", réduisez le nombre de salariés de 2 jusqu'à ce que les erreurs cessent de se produire.

    Par exemple, copiez tous les objets d'un bucket dans un répertoire de système de fichiers local.

    s5cmd --numworkers 1000 cp "s3://MyBucket/*" /my/directory
    

    Remarque : nous avons testé avec jusqu'à 1 500 salariés et nous n'avons constaté aucune amélioration significative. Comme nos tests ont révélé que l'outil s5cmd fonctionnait mieux pour les petits fichiers, nous n'avons trouvé aucun avantage à utiliser l'indicateur concurrency pour les fichiers nécessitant des téléchargements multipart et l'utilisation d'un nombre élevé de processus actifs a montré les meilleures performances globales.

Environnements de test (facultatif)

Les recommandations sont basées sur les tests et les interactions avec les clients.

Remarque : les résultats de Rclone sont inclus pour fournir plus d'informations. Pour plus d'informations sur l'utilisation de Rclone, reportez-vous au tutoriel 2 : déplacement de données vers OCI Cloud Storage Services à l'aide de Rclone.

Environnement de test 1:

1 instance de machine virtuelle VM.Standard.E4.Flex, 1 OCPU, 1Gbps bande passante réseau, 16 Go de mémoire. Pour simuler une migration sur site vers OCI, les données copiées de NFS PHX vers IAD ont été copiées.

Ensembles de données

Environnement de test 2:

Instances de machine virtuelle : 1 à 2 instances de machine virtuelle ont été utilisées pour chaque test. Nous avons utilisé un élément VM.Standard.E4.Flex avec 24 OCPU, une bande passante réseau 24Gbps et 384 Go de mémoire. Oracle Linux 8 a été utilisé pour les tests Linux.

Ensembles de données

Etapes suivantes

Passez au(x) tutoriel(s) correspondant(s) à vos besoins en matière de migration. Pour déplacer des données vers les services de stockage cloud OCI, procédez comme suit :

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.