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 vers les services de stockage en nuage pour OCI à l'aide de Fpsync et de Rsync
Présentation
Il s'agit du tutoriel 4 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 mettra l'accent sur l'utilisation de fpsync et de rsync pour migrer les données du système de fichiers vers le service de stockage de fichiers 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.
-
L'outil fpsync est un script d'encapsulation parallèle qui utilise par défaut rsync. Il peut également utiliser Rclone (comme décrit dans le tutoriel 2 : Déplacer des données vers les services de stockage en nuage OCI à l'aide de Rclone), tar, tarify et cpio.
-
Rsync est un utilitaire polyvalent pour transférer et synchroniser des fichiers pour les systèmes de fichiers distants et locaux.
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.
Différence entre Rsync et Fpsync
-
Rsync est un utilitaire de système d'exploitation Linux traditionnel utilisé pour effectuer une copie ponctuelle ou une synchronisation périodique des données d'une machine à une autre dans le même emplacement géographique ou dans différents emplacements. Un seul processus de synchronisation peut ne pas être suffisant avec des jeux de données volumineux pour effectuer le transfert dans le délai souhaité. Rsync dispose d'options pour activer plusieurs processus rsync, chacun s'exécutant sur un sous-ensemble spécifique du jeu de données, ce qui permet de transférer le jeu de données plus rapidement qu'un seul processus. Cependant, déterminer l'équilibre entre le nombre de processus et les sous-ensembles qui peuvent être difficiles en fonction de la complexité de la hiérarchie des ensembles de données. Fpsync simplifie ce processus. Fpsync est un orchestrateur qui fractionne l'ensemble du jeu de données en petits fragments et génère dynamiquement plusieurs processus de synchronisation en fonction du parallélisme défini par l'utilisateur. En interne, Fpsync utilise rsync pour effectuer le transfert réel. Les options Cpio et tar sont disponibles en tant qu'options d'outil sous-jacentes pour fpsync, mais rsync est la valeur par défaut.
-
Fpsync dispose d'une option de noeuds de travail dans laquelle vous pouvez répartir le transfert entre plusieurs noeuds au lieu d'un seul noeud. En plus d'augmenter les processus rsync parallèles dans le même noeud (augmentation), vous pouvez également augmenter le nombre de noeuds (réduction) pour exécuter l'augmentation du nombre de processus rsync.
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 utiliser rsync et fpsync pour copier et synchroniser des données dans les services de stockage en nuage OCI :
-
Apprenez à utiliser rsync et fpsync ensemble.
-
Comprendre les avantages de l'utilisation de fpsync en matière de performance.
Préalables
-
Un compte OCI.
-
L'interface de ligne de commande d'Oracle Cloud Infrastructure (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. -
Autorisation de l'utilisateur pour créer, exporter et monter le service de stockage de fichiers OCI ou accéder à une cible de montage du service de stockage de fichiers OCI qui est déjà montée sur une machine virtuelle. Pour plus d'informations, voir Gérer la politique de stockage de fichiers.
-
Vous savez comment créer, gérer et monter le stockage NAS et le stockage de fichiers OCI. Pour plus d'informations, voir Configuration du stockage du système de fichiers pour OCI et Aperçu du stockage de fichiers.
-
Accès pour créer et lancer des instances de calcul OCI ou accès à 3 systèmes pour exécuter fpsync. Pour plus d'informations, voir Création d'une instance.
-
Connaissance de :
-
Utilisation de SSH, génération de clés SSH et utilisation de fichiers de configuration SSH. Pour plus d'informations, voir Création d'une paire de clés SSH sur la ligne de commande Linux pour l'accès OCI.
-
Outils et commandes de réseau de base pour vérifier la connectivité entre deux sites ou systèmes.
-
Utilisation d'une interface de terminal ou d'interpréteur de commandes sur Mac OS, Linux, Berkeley Software Distribution (BSD) et sur Windows PowerShell, invite de commande ou bash.
-
Installation de logiciels sur un système Linux.
-
-
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.
Migrer des données vers le stockage de fichiers OCI
Fpsync et rsync peuvent être utilisés pour migrer les données du système de fichiers (service de stockage de fichiers OCI, service de volumes par blocs OCI, service de stockage de fichiers OCI avec Lustre, système de fichiers sur place et système de fichiers réseau sur place) vers d'autres types de stockage de système de fichiers (y compris le service de stockage de fichiers OCI).
Utiliser Rsync pour migrer des données
-
Utilisez rsync avec la diffusion en continu instance à instance.
Pour les petits ensembles de données, jusqu'à quelques dizaines de Go et quelques milliers de fichiers, la diffusion en continu d'instance à instance rsync peut être utilisée. La diffusion en continu d'instance à instance à l'aide de NFS locaux activés par SSH dans un réseau et de SSH entre le réseau source et le réseau de destination, ce qui contribue à réduire la latence de NFS entre deux réseaux. Utilisez la commande suivante .
rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh /src/path/ root@<destination_instance>:/destination/path/
-
Exécutez plusieurs processus de synchronisation en parallèle.
-
Vous pouvez utiliser les commandes
find
etxargs
pour exécuter plusieurs processus rsync.find /src/path/ -maxdepth 1 | xargs -P 24 -I {} rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --log-file=<logfile_path> -quiet -e ssh {} root@<destination_instance>:/destination/path/
-
Vous pouvez également utiliser GNU parallèle.
find /src/path/ -maxdepth 1 | parallel -P24 rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --exclude=.snapshot --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh {} root@<destination_instance>:/destination/path/
Note : Dans les deux exemples, 24 processus sont exécutés à la fois, le paramètre a été choisi en fonction de la capacité d'UC de l'instance utilisée.
-
Utiliser Fpsync pour migrer des données
L'outil fpsync est un wrapper parallèle de rsync. Il peut également utiliser tar, tarify et cpio, mais la valeur par défaut est rsync.
-
Installez fpsync sur votre ordinateur Linux.
- Exécutez la commande suivante pour Linux 8.
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo yum install fpart -y
- Exécutez la commande suivante pour Linux 9.
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm sudo yum install fpart -y
-
Exécutez fpsync à l'aide de la commande suivante.
Par exemple :
fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
Note : Pour plus d'options fpsync et de détails sur les paramètres, consultez
man fpsync
.
Exécuter Fpsync à l'aide de trois noeuds de travail pour migrer des données de partages de fichiers sur place vers le service de stockage de fichiers OCI
Suivez les étapes de haut niveau pour exécuter fpsync à l'aide de trois noeuds de travail pour migrer des données à partir de partages de fichiers sur place (disque local, SAN ou NAS) vers le service de stockage de fichiers OCI.
L'illustration suivante présente un diagramme d'architecture de composant.
Procédez de la façon suivante :
-
Identifiez trois noeuds de travail et un noeud de destination.
Identifiez trois systèmes locaux auxquels vous avez accès pour monter votre système de fichiers source. Vous pouvez également créer et lancer trois instances de machine virtuelle du service de calcul OCI à des fins de test.
Identifiez une instance de machine virtuelle OCI existante ou créez-en une et lancez-en une nouvelle pour servir de noeud de destination.
-
Montez le partage NAS source sur les trois noeuds.
Utilisez les options de montage
nordirplus
etnconnect=16
, ne spécifiez pas d'autres options de montagenfs
.Par exemple, exécutez la commande de montage suivante sur un système Linux.
sudo mount -t nfs -o nordirplus,nconnect=16 10.x.x.x:/<EXPORT_PATH_NAME> /mnt/nfs-data
Par exemple, exécutez la commande suivante pour vérifier le montage.
mount | grep /mnt/nfs-data
Note : À des fins de test, vous pouvez utiliser le service de stockage de fichiers OCI pour créer, exporter et monter un système de fichiers. Les données de test peuvent être créées dans le montage pour tester fpsync.
-
Sélectionnez un noeud pour exécuter fpsync et mettre à jour le fichier
/etc/hosts
.Vous pouvez choisir l'un des trois noeuds ou un autre noeud pour exécuter la commande
fpsync
. Le noeud où la commandefpsync
est exécutée est appelé noeud d'exécution.Sur le noeud où fpsync sera exécuté, utilisez l'éditeur de texte privilégié pour mettre à jour le fichier
/etc/hosts
avec les trois noeuds de travailworker-src-1
,worker-src-2
etworker-src-3
.Par exemple :
vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.0.4 worker-src-1.subnet.vcn.oraclevcn.com worker-src-1 10.0.0.5 worker-src-2 10.0.0.6 worker-src-3
-
Montez le système de fichiers de destination sur le noeud de destination.
Identifiez le système de fichiers de destination et montez-le sur le noeud de destination. Vous pouvez également créer et monter un stockage de fichiers OCI sur le noeud de destination.
-
Assurez-vous que la connectivité sur place à OCI a été établie.
Utilisez des outils de réseau courants tels que
ping
,traceroute
,ssh
, etc. pour vérifier la connectivité entre les systèmes, sur place et OCI. -
Activez SSH sans mot de passe entre tous les noeuds source et de destination et vérifiez la connexion SSH entre les paires de noeuds source et de destination.
Identifiez la clé SSH publique pour l'utilisateur qui exécutera la commande
fpsync
sur le noeud d'exécuteur. Cette clé est généralement située dans le répertoire de base de l'utilisateur sous le répertoire.ssh
et est généralement nomméeid_rsa.pub
. Propager cette clé vers tous les noeuds de travail à l'aide de la commandecat
pour afficher son contenu, copier la clé et la coller dans le fichier$HOME/.ssh/authorized_keys
sur les noeuds de travail. Sinon, si SSH basé sur un mot de passe est activé, vous pouvez utiliser la commandessh-copy-id
pour distribuer la clé à chaque noeud de travail et au noeud de destination. Par exemple :[worker-src-1 ~]$ ssh-copy-id username@worker-src-2
-
Exécutez la commande fpsync dans le noeud d'exécution.
Note : fpsync doit être installé uniquement sur le noeud d'exécution qui exécutera les commandes
rsync
vers les noeuds de destination au moyen de SSH au moyen des noeuds de travail.Par exemple :
fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \ -w username@worker-src-1 -w username@worker-src-2 -w username@worker-src-3 \ -d /nfs-data/fpsync_wrkr /nfs-data/fpsync_src/ opc@worker-dest:/fpsync-fs/
Note : Remplacez X et Y par des valeurs pour les options fpsync
-n
et-f
.-
Déterminez la valeur des tâches de synchronisation concurrentes, qui est
-n
.- Sélectionnez la valeur
-n
pour qu'elle soit égale au nombre decpu_cores
de tous les noeuds de travail de la source et conservez autant de noeuds de travail de destination que ceux de la même unité centrale et de la même mémoire. - Si vous avez 3 noeuds de travail avec 16 coeurs d'UC, ce sont 3 noeuds de travail fois 16
cpu_cores
= 48.
- Sélectionnez la valeur
-
Déterminez la valeur de la quantité de fichiers à transférer par tâche de synchronisation, qui est
-f
.- Par exemple, si vous avez deux dossiers avec des répertoires volumineux et un total de 1,1 million de fichiers, les deux dossiers contiennent ~700K fichiers avec une taille de fichier moyenne de 160 Ko.
- Chaque noeud de travail est configuré avec : 64 Go = 64000000 Ko de mémoire, 8 OCPU = 16
cpu_cores
, la mémoire parcpu_core
étant : 64000000/16 = 4000000 Ko/cpu_core
. Mémoire dans chaque noeud de travail = 64 Go = 6400000 Ko. - Calculez la valeur de
-f
, 4000000 Ko/160 = 25000.
-
(Facultatif) Environnement de test
Pour simuler la migration de l'environnement sur place vers OCI, le système de fichiers du service de stockage de fichiers OCI (Ashburn) avec le jeu de données suivant est utilisé comme partage NAS sur place et le système de fichiers du service de stockage de fichiers OCI (Phoenix) est utilisé comme destination.
Les deux régions sont appairées à distance à l'aide de la passerelle de routage dynamique.
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 |
Instances de machine virtuelle : Dans les régions Ashburn et Phoenix, trois machines virtuelles de 16 cpu_core
, de 64 Go de mémoire, de bande passante 8Gbps Linux9 en tant que noeuds de travail et de 8 cpu_core
en tant que noeud d'exécution sont utilisées.
Les paramètres TCP de toutes les instances sont les suivants :
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_window_scaling = 1
Les deux instances régionales ont le système de fichiers de stockage de fichiers OCI respectif monté comme indiqué dans la section Exécuter Fpsync à l'aide de trois noeuds de travail pour migrer des données des partages de fichiers sur place vers le service de stockage de fichiers OCI.
Exécutez la commande fpsync
suivante. X et Y sont des options fpsync.
fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
-w opc@worker-src-1 -w opc@worker-src-2 -w opc@worker-src-3 \
-d /fpsync-fs/fpsync_wrkr /fpsync-fs/x_region_fpsync_src/ opc@worker-dest:/fpsync-fs/
-
Déterminez la valeur de
-n
.Select the -n value to be equal to number of cpu_cores of all worker nodes in the source and keep as many as destination worker nodes of same CPU and memory. In this example, it is 3 worker nodes times 16 cpu_cores = 48.
-
Déterminez la valeur de
-f
.In this example, two folders are large directories. Of the total 1.1 million files, the two folders contain ~700K files with an average file size of 160KB. Memory in each worker node = 64GB = 64000000KB. Processes in each worker node = 8 OCPU = 16 cpu_cores. Memory per Process = 64000000/16 = 4000000KB/process. Now, an appropriate value for -f can be calculated as 4000000KB / 160 = 25000.
Le tableau suivant montre le temps nécessaire par fpsync pour terminer les 2,25 To et 1 million de fichiers de transfert de données pour différentes combinaisons X et Y et rsync SSH et compression.
option fpsync | Option de montage nfs sur les noeuds de travail source et de destination | Type de performance de la cible de montage du stockage de fichiers | Temps nécessaire |
---|---|---|---|
-n 30 -f 2000 -e ssh | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mappées aux noeuds de travail | 237m28s |
-n 48 -f 5000 -e ssh -C | nconnect=16,nordirplus | source et dest avec 1 HPMT 40 chacun | 163m38.887s |
-n 60-f 20000 | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mappées aux noeuds de travail | 124m25.435s |
-n 48 -f 400000 -e ssh -C | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mappées aux noeuds de travail | 122m55.458s |
-n 100 -f 200000 -e ssh | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mappées aux noeuds de travail | 120m44s |
-n 60 -f 200000 -e ssh | nordirplus seulement, NO nconnect | 3 cibles de montage standard, 1:1 mappées aux noeuds de travail | 118m41.393s |
-n 60 -f 200000 -e ssh | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mappées aux noeuds de travail | 118m3.845s |
-n 48 -f 20000 -e ssh | nconnect=16,nordirplus | source et dest avec 1 HPMT 40 chacun | 113m34.011s |
-n 48 -f 200000 | nconnect=16,nordirplus | source et dest avec 1 HPMT 40 chacun | 110m15.555s |
-n 48 -f 200000 | nconnect=16,nordirplus | source et dest avec 1 HPMT 40 chacun | 109m3.472s |
Nous pouvons constater que toute combinaison de -n
au-dessus de 48 et de -f
au-dessus de 20000 a donné une performance similaire autour de 2 heures de temps de transfert sur l'ensemble de la région. Même avec la cible de montage haute performance 40 GBps, il n'y a pas de réduction significative du temps nécessaire.
Cela signifie que, selon la taille du jeu de données réel à transférer, vous pouvez sélectionner plusieurs cibles de montage standard ou haute performance pour le système de fichiers. Si le jeu de données source est constitué de fichiers de grande taille (taille de fichier >= 1M) pour la plupart et que la taille totale du jeu de données est de 20 To et plus, la cible de montage haute performance est une bonne option. Sinon, les cibles de montage standard avec configuration évolutive peuvent offrir les performances souhaitées ainsi qu'un excellent rapport qualité-prix.
É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 la synchronisation du service de stockage d'objets pour OCI et de S5cmd, voir le tutoriel 3 : Déplacer des données dans les services de stockage d'objets pour OCI à l'aide de la synchronisation du service de stockage d'objets pour OCI et de S5cmd.
Liens connexes
-
Caractéristiques de performance du service de stockage de fichiers OCI
-
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
Confirmation
- Auteur - Vinoth Krishnamurthy (Membre principal du personnel technique, stockage de fichiers 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 Fpsync and Rsync
G25647-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.