Note :

Déplacer des données dans les services de stockage en nuage OCI à l'aide de la synchronisation de stockage d'objets OCI et de l'outil s5cmd

Présentation

Il s'agit du tutoriel 3 d'une série de quatre tutoriels qui vous montre différentes façons de migrer des données dans les services de stockage en nuage Oracle Cloud Infrastructure (OCI). La série est configurée pour que vous puissiez consulter le tutoriel 1 : Utiliser les outils de migration pour déplacer des données vers les services de stockage en nuage OCI pour obtenir une meilleure compréhension des différents outils, puis accéder aux tutoriels ou documents connexes pertinents pour vos besoins de migration. Ce tutoriel se concentrera sur l'utilisation de la synchronisation de stockage d'objets OCI (synchronisation automatique) et de s5cmd pour migrer les données du système de fichiers (y compris le stockage de fichiers OCI) vers et depuis le stockage d'objets OCI.

OCI offre aux clients des options de calcul haute performance et de stockage infonuagique à faible coût. Grâce au stockage sur demande local, d'objet, de fichier, de blocs et d'archives, Oracle répond aux exigences clés en matière de charge de travail de stockage et aux cas d'utilisation.

Les services de stockage en nuage d'OCI offrent des options de stockage en nuage rapides, sécurisées et durables pour tous vos besoins d'entreprise. À commencer par les options de haute performance telles que le service de stockage de fichiers OCI avec Lustre et le service de volumes par blocs d'OCI; les systèmes de fichiers à l'échelle d'un exaoctet entièrement gérés du service de stockage de fichiers OCI avec des cibles de montage haute performance; vers le service de stockage d'objets OCI hautement durable et évolutif. Nos solutions peuvent répondre à vos exigences, allant des applications exigeantes en matière de performance, telles que les charges de travail d'intelligence artificielle et d'apprentissage automatique, aux lacs de données à l'échelle des exaoctets.

Déterminez la quantité de données à migrer et le temps d'arrêt disponible pour la mise en service 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 permettront de programmer des temps d'arrêt pour des applications spécifiques dans différentes fenêtres. Certains clients ont la possibilité d'effectuer une migration unique au cours d'une fenêtre de maintenance programmée sur une période de 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 allant de 1G à 400G pour accélérer le processus de transfert de données. OCI FastConnect peut être intégré à des solutions de partenaires telles que Megaport et ConsoleConnect pour créer une connexion privée à votre centre de données ou une interconnexion entre le nuage et le nuage afin de déplacer des données plus directement d'un autre fournisseur de nuage vers le service de stockage en nuage OCI. Pour plus d'informations, voir Intégration à FastConnect avec le routeur Megaport Cloud.

Public cible

DevOps ingénieurs, développeurs, administrateurs et utilisateurs du stockage en nuage OCI, gestionnaires informatiques, utilisateurs expérimentés OCI et administrateurs d'application.

Objectif

Voyez comment copier ou synchroniser des données de système de fichiers vers ou à partir du stockage d'objets OCI à l'aide de l'interface de ligne de commande OCI avec la synchronisation par système d'exploitation et l'outil s5cmd.

Préalables

Synchroniser les données du système de fichiers réseau et du système de fichiers local vers le stockage d'objets OCI ou à partir de celui-ci

La synchronisation du service de stockage d'objets OCI 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 seau. La commande parcourt les sous-répertoires en copiant les fichiers ou objets nouveaux et modifiés de la source vers la destination et éventuellement en supprimant ceux qui ne sont pas présents dans la source. Il s'agit d'un outil pratique pour garder les données du système de fichiers et les seaux de stockage d'objets OCI synchronisés. Notre environnement de test a constaté que la synchronisation du service de stockage d'objets pour OCI s'est bien déroulée pour les jeux de données mixtes et s'est avérée plus performante que les autres outils pour les fichiers volumineux (1 To ou plus).

Le service de stockage d'objets pour OCI 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 libre et open source. Il permet de parcourir et de transférer des données vers/depuis un magasin d'objets compatible avec S3. Il est écrit dans le langage Go et est optimisé pour un 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 que tous les autres outils ont été utilisés pour déplacer les petits fichiers. L'outil s5cmd fonctionne également bien pour les jeux de données mixtes lors du déplacement des données des systèmes de fichiers vers le stockage d'objets OCI.

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

Utiliser la synchronisation du système d'exploitation pour la synchronisation

  1. Synchronisez les données du système de fichiers local dans le stockage d'objets OCI.

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

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

    Note : Cette même commande peut être utilisée pour les systèmes de fichiers locaux sur place, les systèmes de fichiers NFS sur place et sur une instance de calcul OCI avec montages NFS de stockage de fichiers OCI pour déplacer des données du stockage de fichiers OCI vers un seau de stockage d'objets OCI.

  2. Migrez les données du service de stockage d'objets OCI vers un système de fichiers local.

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

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

    Note : Cette même commande peut être utilisée pour les systèmes de fichiers locaux sur place, les systèmes de fichiers NFS sur place et sur une instance de calcul OCI avec un montage NFS de stockage de fichiers OCI pour déplacer les données du service de stockage de fichiers OCI vers un seau de stockage d'objets OCI.

  3. Augmenter 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 également 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 de bande passante de réseau, 384 Go de mémoire et trouvé 100 opérations parallèles pour fonctionner le mieux pour les vitesses de transfert. Les machines virtuelles plus grandes peuvent faire grimper 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 à 10 opérations et augmenter par incréments de 5 à 10 jusqu'à ce qu'un bon débit soit atteint. Augmentez ou diminuez les opérations parallèles avec l'indicateur suivant.

    --parallel-operations-count <integer range>
    

    Note : Si des erreurs commencent après l'augmentation de l'opération parallèle, en particulier les erreurs avec 429 "TooManyRequests", abaissez les opérations parallèles de 2 jusqu'à ce que les erreurs s'arrêtent.

  4. Filtrez les fichiers correspondants à l'aide de la commande pattern.

    Les modèles peuvent être utilisés pour inclure ou exclure les fichiers correspondants. 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 les fichiers qui correspondent à un modèle, utilisez la commande suivante.

      --exclude
      

    Note :

    • * : Correspond à tout
    • ? : Correspond à un caractère unique
    • [sequence] : Correspond à n'importe quel caractère dans la séquence
    • [!sequence] : Correspond à un caractère qui n'est pas dans la séquence
  5. Utilisez l'indicateur --prefix.

    L'indicateur --prefix utilisé lors du chargement de fichiers dans le stockage d'objets avec la commande --src-dir charge des objets et ajoute le chemin du répertoire au nom de l'objet en tant que préfixe. Lors du téléchargement d'objets à partir du service de stockage d'objets pour OCI, seuls les objets ayant le préfixe spécifié sont téléchargés et ne s'affichent pas comme faisant partie du nom d'objet/de fichier.

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

    Avant de commencer un transfert, vous pouvez déterminer quels fichiers seront chargés/téléchargés vers/depuis le service de stockage d'objets OCI en faisant effectuer une impression uniquement par synchronisation avec le système d'exploitation. Exécutez la ligne de commande avec l'indicateur suivant.

    --dry-run
    

Utiliser s5cmd pour synchroniser

  1. Synchroniser et copier la commande.

    • L'option sync pour s5cmd effectue une synchronisation unidirectionnelle de la source à la destination sans modifier aucun des fichiers sources et ne supprime pas non plus les fichiers de la destination qui n'existent pas sur la source. Ajoutez l'indicateur --delete pour supprimer les fichiers de la destination qui n'existent pas dans la source.

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

  2. Mise en correspondance de modèles.

    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, des 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 globbing, encapsulez-le entre apostrophes pour éviter des résultats inattendus.

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

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

    • Synchronisez les données du système de fichiers local dans le stockage d'objets OCI. Exécutez la commande s5cmd de base suivante pour synchroniser les fichiers d'un répertoire source dans un seau de destination.

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

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

    Note : Les mêmes commandes peuvent être utilisées pour les systèmes de fichiers locaux sur place, les systèmes de fichiers NFS sur place et sur une instance de calcul OCI avec montages NFS de stockage de fichiers OCI pour déplacer des données du stockage de fichiers OCI vers un seau de stockage d'objets OCI.

  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 dans un seau de destination de stockage d'objets OCI.

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

    Copiez les données du service de stockage d'objets OCI vers un système de fichiers local.

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

    Note : Ces commandes peuvent être utilisées pour les systèmes de fichiers locaux sur place, les systèmes de fichiers NFS sur place et sur une instance de calcul OCI avec montages NFS de stockage de fichiers OCI pour déplacer des données du stockage de fichiers OCI vers un seau de stockage d'objets OCI. Nos tests ont principalement utilisé la commande de copie avec s5cmd.

  5. Augmenter le parallélisme.

    L'outil s5cmd exécute 256 travailleurs en parallèle par défaut. Selon la taille de votre machine virtuelle, vous pouvez augmenter ou diminuer le parallélisme. Dans notre environnement de test, nous avons utilisé VM.Standard.E4.Flex avec 24 OCPU, 24Gbps de bande passante de réseau, 384 Go de mémoire et trouvé 1 000 opérations parallèles pour fonctionner le mieux pour les vitesses de transfert. Les machines virtuelles plus grandes peuvent faire grimper 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 à 10 opérations et augmenter par incréments de 5 à 10 jusqu'à ce qu'un bon débit soit atteint. Augmentez ou diminuez les opérations parallèles avec l'indicateur suivant.

    --numworkers <interger>
    

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

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

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

    Note : Nous avons effectué des tests avec un maximum de 1 500 travailleurs et 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 chargements en plusieurs parties et à utiliser un nombre élevé de travailleurs affichait la meilleure performance globale.

(Facultatif) Environnements de test

Les recommandations sont faites en fonction des tests et des interactions avec les clients.

Note : Les résultats de Rclone sont inclus pour fournir plus d'informations. Pour plus de détails sur l'utilisation de Rclone, voir Tutoriel 2 : Déplacer des données dans les services de stockage en nuage pour OCI à l'aide de Rclone.

Environnement de test 1 :

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

Jeux de données

Environnement de test 2 :

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

Jeux de données

Étapes suivantes

Accédez aux tutoriels connexes pertinents pour vos besoins de migration. Pour déplacer des données dans les services de stockage en nuage OCI :

Confirmation

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.