Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
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.
-
OCI Object Storage Sync (os sync) fait partie de l'interface de ligne de commande d'Oracle Cloud Infrastructure 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.
-
L'outil s5cmd est un projet à code source libre. s5cmd permet de parcourir et de transférer des données vers/depuis des magasins d'objets compatibles avec S3 (y compris le stockage d'objets OCI) vers/depuis des données de système de fichiers (y compris le stockage de fichiers OCI). Il est écrit en langue Go.
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.
-
Utilisez la commande
os sync
avec divers paramètres et options. -
Différentes façons d'exécuter l'outil s5cmd pour la migration et la synchronisation des données.
Préalables
-
Un compte OCI.
-
Instance de machine virtuelle sur OCI pour déployer les outils de migration ou un système où vous pouvez déployer et utiliser des outils de migration.
-
L'interface de ligne de commande OCI est installée avec un fichier de configuration de travail dans votre répertoire de base dans un sous-répertoire nommé
.oci
. Pour plus d'informations, voir Définition du fichier de configuration. -
Accès à un seau de stockage d'objets pour OCI.
-
Les autorisations d'utilisateur dans OCI permettent d'utiliser le service de stockage d'objets pour OCI, d'accéder à la gestion des seaux et des objets ou de gérer la famille d'objets pour au moins 1 seau ou compartiment. Pour plus d'informations, voir Politiques communes et Informations de référence sur les politiques.
-
Autorisation de l'utilisateur pour créer, exporter et monter le service de stockage de fichiers OCI, ou pour accéder à une cible de montage du service de stockage de fichiers OCI qui est déjà montée sur une machine virtuelle, ou à un autre montage de système de fichiers réseau (NFS) ou à un système de fichiers local à utiliser pour copier des données vers et depuis. Pour plus d'informations, voir Gérer la politique de stockage de fichiers.
-
Connaissance de l'utilisation d'un terminal ou d'une interface shell sur Mac OS, Linux, Berkeley Software Distribution (BSD), ou sur Windows PowerShell, invite de commande ou bash.
-
Consultez les éléments essentiels de migration pour déplacer des données dans le stockage en nuage pour OCI pour installer l'interface de ligne de commande OCI avec la synchronisation par système d'exploitation et l'outil s5cmd.
-
Pour connaître les outils de migration que nous pouvons utiliser, voir le tutoriel 1 : Utiliser les outils de migration pour déplacer des données vers les services de stockage en nuage OCI.
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
-
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.
-
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.
-
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.
-
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
-
-
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. -
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
-
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.
-
-
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>
-
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.
-
-
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.
-
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
-
Jeu de données 1 :
Taille totale Nombre de fichiers Intervalle de taille de fichier 3TB 3 1TB Méthode À : De Temps Commande Indicateurs synchronisation os NFS/File PHX vers l'IAD d'objet 123m17.102s S.O. --parallel-operations-count 100
s5cmd NFS/File PHX vers l'IAD d'objet 239m20.625s copie run commands.txt
, exécuter par défaut--numworkers 256
rclone NFS/File PHX vers l'IAD d'objet 178m27.101s copie --transfers=100 --oos-no-check-bucket --fast-list --checkers 64 --retries 2 --no-check-dest
Note : Nos tests ont montré que
os sync
exécutait le jeu de données le plus rapide. -
Jeu de données 2 :
Taille totale Nombre de fichiers Intervalle de taille de fichier 9.787Go 20 000 1 Mo Méthode À : De Temps Commande Indicateurs s5cmd NFS/File PHX vers l'IAD d'objet 1m12.746s copie exécution par défaut --numworkers 256
synchronisation os NFS/File PHX vers l'IAD d'objet 2m48.742s S.O. --parallel-operations-count 1000
rclone NFS/File PHX vers l'IAD d'objet 1m52.886s copie --transfers=500 --oos-no-check-bucket --no-check-dest
Note : Nos tests ont montré que s5cmd offrait les meilleures performances pour ce jeu 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
-
Jeu de données 1 :
14 répertoires principaux avec le nombre et la taille de fichiers suivants.
Répertoire du jeu de données Taille Nombre de fichiers Taille de chaque fichier Répertoire 1 107.658 Gio 110,242 1 Mio Répertoire 2 1.687 Gio 110,569 15 Mio Répertoire 3 222 Gio 111 2 Gio Répertoire 4 1.265 Tio 1,295 1 Gio Répertoire 5 26.359 Gio 1,687 16 Mio Répertoire 6 105.281 Mio 26,952 4 Kio Répertoire 7 29.697 Mio 30,410 1 Kio Répertoire 8 83.124 Gio 340,488 256 Kio Répertoire 9 21.662 Gio 354,909 64 Kio Répertoire 10 142.629 Gio 36,514 4 Mio Répertoire 11 452.328 Mio 57,898 8 Mio Répertoire 12 144 Gio 72 2Gio Répertoire 13 208.500 Gio 834 256 Mio Répertoire 14 54.688 Gio 875 64 Mio Note :
- Les 14 répertoires ont été fractionnés entre les 2 instances de machine virtuelle.
- Chaque machine virtuelle exécutait 7 commandes/processus, 1 pour chaque répertoire, sauf indication contraire.
Méthode À : De Temps Commande Indicateurs/notes s5cmd NFS/File PHX vers l'IAD d'objet 54m41.814s copie --numworkers 74
synchronisation os NFS/File PHX vers l'IAD d'objet 65m43.200s S.O. --parallel-operations-count 50
rclone NFS/File PHX vers l'IAD d'objet 111m59.704s copie --oos-no-check-bucket --no-check-dest --ignore-checksum --oos-disable-checksum --transfers 50
Note : Nos tests ont montré que s5cmd fonctionnait le plus rapidement, la synchronisation os se faisant assez bien par rapport à Rclone.
É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 :
-
À l'aide de Rclone, voir le tutoriel 2 : Déplacer des données vers les services de stockage en nuage pour OCI à l'aide de Rclone.
-
À l'aide de Fpsync et de Rsync pour les migrations de données de système de fichiers, voir Tutoriel 4 : Déplacer des données dans les services de stockage en nuage OCI à l'aide de Fpsync et de Rsync pour les migrations de données de système de fichiers.
Liens connexes
-
Essentiels de migration pour déplacer des données dans le stockage en nuage pour OCI
-
Tutoriel 2 : Déplacer des données vers les services de stockage en nuage pour OCI à l'aide de Rclone
-
Synchronisation du stockage d'objets de l'interface de ligne de commande OCI
Confirmation
- Auteur - Melinda Centeno (gestionnaire principal de produits, stockage d'objets OCI)
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.
Move Data into OCI Cloud Storage Services using OCI Object Storage Sync and the s5cmd Tool
G25641-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.