Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Déplacer des données vers les services de stockage cloud OCI à l'aide de Fpsync et de Rsync
Introduction
Voici le tutoriel 4 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 de fpsync et rsync pour migrer les données de système de fichiers vers OCI File 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.
-
L'outil fpsync est un script wrapper parallèle qui utilise par défaut rsync. Il peut également utiliser Rclone (comme indiqué dans le tutoriel 2 : Déplacer des données vers les services de stockage cloud OCI à l'aide de Rclone), tar, tarify et cpio.
-
Rsync est un utilitaire polyvalent pour le transfert et la synchronisation de fichiers pour les systèmes de fichiers distants et locaux.
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.
Différence entre Rsync et Fpsync
-
Rsync est un utilitaire traditionnel du système d'exploitation (O/S) Linux utilisé pour effectuer une copie ponctuelle ou une synchronisation périodique des données d'une machine à une autre dans le même ou différents emplacements géographiques. Un processus rsync unique peut ne pas être suffisant avec des ensembles de données volumineux pour effectuer le transfert dans le temps souhaité. Rsync dispose d'options pour configurer plusieurs processus rsync, chacun s'exécutant sur un sous-ensemble spécifique de l'ensemble de données, terminant le transfert de l'ensemble de données plus rapidement qu'un seul processus. Cependant, déterminer l'équilibre entre le nombre de processus et les sous-ensembles peut être difficile en fonction de la complexité de la hiérarchie des ensembles de données. Fpsync simplifie ce processus. Fpsync est un orchestrateur qui divise l'ensemble de données en blocs plus petits et génère dynamiquement plusieurs processus rsync 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 processus actif dans laquelle vous pouvez répartir le transfert entre plusieurs noeuds au lieu d'un seul noeud. En plus d'augmenter le nombre de processus rsync parallèles dans le même noeud (augmentation), vous pouvez également augmenter le nombre de noeuds (augmentation) pour exécuter le nombre accru de processus rsync.
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 utiliser rsync et fpsync pour copier et synchroniser des données dans les services de stockage cloud OCI :
-
Découvrez comment utiliser rsync et fpsync ensemble.
-
Comprendre les avantages de l'utilisation de fpsync en termes de performances.
Prérequis
-
Un compte OCI.
-
L'interface de ligne de commande 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 appelé
.oci
. Pour plus d'informations, reportez-vous à la rubrique Configuration du fichier de configuration. -
Droits d'accès utilisateur permettant de créer, d'exporter et de monter OCI File Storage ou d'accéder à une cible de montage OCI File Storage déjà montée sur une machine virtuelle. Pour plus d'informations, reportez-vous à Gestion de la stratégie File Storage.
-
Vous savez comment créer, gérer et monter un stockage en réseau (NAS) et OCI File Storage. Pour plus d'informations, reportez-vous à Configuration d'OCI File System Storage et à Présentation de File Storage.
-
Accès pour créer et lancer des instances OCI Compute ou accès à 3 systèmes pour exécuter fpsync. Pour plus d'informations, reportez-vous à Création d'une instance.
-
Connaissance de :
-
Utiliser SSH, générer des clés SSH et utiliser les fichiers de configuration SSH. Pour plus d'informations, reportez-vous à Création d'une paire de clés SSH sur la ligne de commande Linux pour l'accès OCI.
-
Outils et commandes réseau de base pour vérifier la connectivité entre deux sites ou systèmes.
-
Utilisation d'une interface de terminal ou shell sur Mac OS, Linux, Berkeley Software Distribution (BSD) et sous 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, reportez-vous au Tutoriel 1 : Utilisation des outils de migration pour déplacer des données vers les services OCI Cloud Storage.
Migration de données vers OCI File Storage
Fpsync et rsync peuvent être utilisés pour migrer des données de système de fichiers (service OCI File Storage, service OCI Block Volumes, OCI File Storage avec Lustre, système de fichiers sur site et système de fichiers réseau sur site (NFS) vers d'autres types de stockage de système de fichiers (y compris OCI File Storage).
Utiliser la synchronisation pour migrer des données
-
Utilisez rsync avec la transmission en continu d'instance à instance.
Pour les petits ensembles de données jusqu'à quelques dizaines de Go et quelques milliers de fichiers, la transmission en continu d'instance à instance rsync peut être utilisée. La transmission en continu d'instance à instance à l'aide de NFS local compatible SSH au sein d'un réseau et SSH entre le réseau source et de destination, ce qui permet de réduire la latence de NFS entre deux réseaux. Pour ce faire, 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 traitements rsync 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 le parallèle GNU.
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/
Remarque : dans les deux exemples, 24 processus sont exécutés simultanément, 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.
Exemple :
fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
Remarque : pour plus d'options fpsync et de détails sur les paramètres, reportez-vous à
man fpsync
.
Exécuter la synchronisation à l'aide de trois noeuds de processus actif pour migrer les données des partages de fichiers sur site vers le service OCI File Storage
Suivez les étapes de haut niveau pour exécuter fpsync à l'aide de trois noeuds de processus actif afin de migrer les données des partages de fichiers sur site (disque local, SAN ou NAS) vers le service OCI File Storage.
L'image suivante présente un diagramme d'architecture de composant.
Suivez les étapes décrites:
-
Identifiez trois noeuds de processus actif 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 OCI Compute à des fins de test.
Identifiez une instance de machine virtuelle OCI existante ou créez et lancez-en une nouvelle qui servira 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
Remarque : à des fins de test, vous pouvez utiliser OCI File Storage pour créer, exporter et monter un système de fichiers. Des données de test peuvent être créées dans le montage pour essayer fpsync.
-
Sélectionnez un noeud pour exécuter fpsync et mettez à 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 sur lequel la commandefpsync
est exécutée est appelé noeud d'exécutable.Sur le noeud sur lequel fpsync sera exécuté, utilisez l'éditeur de texte de votre choix pour mettre à jour le fichier
/etc/hosts
avec les trois noeuds de processus actifworker-src-1
,worker-src-2
etworker-src-3
.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 site vers OCI a été établie.
Utilisez des outils de mise en réseau courants tels que
ping
,traceroute
,ssh
, etc., pour vérifier la connectivité entre les systèmes, sur site et OCI. -
Activez SSH sans mot de passe mutuellement 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 de l'utilisateur qui exécutera la commande
fpsync
sur le noeud d'exécuteur. Cette clé se trouve généralement dans le répertoire de base de l'utilisateur, sous le répertoire.ssh
, et est généralement nomméeid_rsa.pub
. Propagez cette clé vers tous les noeuds de processus actif à l'aide de la commandecat
pour afficher son contenu, la copier et la coller dans le fichier$HOME/.ssh/authorized_keys
sur les noeuds de processus actif. Si SSH basé sur un mot de passe est activé, vous pouvez également utiliser la commandessh-copy-id
pour distribuer la clé à chaque noeud de processus actif et au noeud de destination. Exemple :[worker-src-1 ~]$ ssh-copy-id username@worker-src-2
-
Exécutez la commande fpsync dans le noeud d'exécutable.
Remarque : fpsync doit être installé uniquement sur le noeud d'exécutable, qui exécutera les commandes
rsync
vers les noeuds de destination via SSH via les noeuds de processus actif.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/
Remarque : remplacez X et Y par les valeurs des options fpsync
-n
et-f
.-
Déterminez la valeur des travaux de synchronisation simultanés (
-n
).- Sélectionnez la valeur
-n
pour qu'elle soit égale au nombre decpu_cores
de tous les noeuds de processus actif dans la source et conservez autant de noeuds de processus actif de destination de la même UC et de la même mémoire. - Si vous disposez de 3 noeuds de processus actif avec 16 coeurs de processeur chacun, ce sont 3 noeuds de processus actif multipliés par 16
cpu_cores
= 48.
- Sélectionnez la valeur
-
Déterminez la valeur de la quantité de fichiers à transférer par travail de synchronisation, à savoir
-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 moyenne de fichier de 160 Ko.
- Chaque noeud de processus actif 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 processus actif = 64 Go = 64000000 Ko. - Calculez la valeur de
-f
, 4000000KB/160 = 25000.
-
(Facultatif) Environnement de test
Pour simuler la migration sur site vers OCI, le système de fichiers OCI File Storage (Ashburn) avec le jeu de données suivant est utilisé en tant que partage NAS sur site et le système de fichiers OCI File Storage (Phoenix) est utilisé en tant que destination.
Les deux régions sont appairées à distance à l'aide de la passerelle de routage dynamique.
Répertoire d'ensemble 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
, 64 Go de mémoire, 8Gbps de bande passante Linux9 en tant que noeuds de processus actif et 8 machines virtuelles cpu_core
en tant que noeud d'exécutable sont utilisées.
Voici les paramètres TCP de toutes les instances :
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
Le système de fichiers OCI File Storage correspondant est monté sur les deux instances régionales comme indiqué dans la section Exécution de la synchronisation à l'aide de trois noeuds de processus actif pour migrer les données des partages de fichiers sur site vers le service OCI File Storage.
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 indique le temps nécessaire à fpsync pour effectuer les 2,25 To et 1 million de fichiers de transfert de données pour différentes combinaisons SSH et compression X et Y et rsync.
option fpsync | Option de montage NFS sur les noeuds de processus actif source et de destination | Type de performances de la cible de montage File Storage | Temps nécessaire |
---|---|---|---|
-n 30 -f 2000 -e ssh | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mises en correspondance avec des noeuds de processus actif | 237m28s |
-n 48 -f 5000 -e ssh -C | nconnect=16,nordirplus | source et destination avec 1 HPMT 40 chacun | 163m38.887s |
-n 60 -f 20000 | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mises en correspondance avec des noeuds de processus actif | 124m25.435s |
-n 48 -f 400000 -e ssh -C | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mises en correspondance avec des noeuds de processus actif | 122m55.458s |
-n 100 -f 200000 -e ssh | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mises en correspondance avec des noeuds de processus actif | 120m44s |
-n 60 -f 200000 -e ssh | nordirplus seulement, NO nconnect | 3 cibles de montage standard, 1:1 mises en correspondance avec des noeuds de processus actif | 118m41.393s |
-n 60 -f 200000 -e ssh | nconnect=16,nordirplus | 3 cibles de montage standard, 1:1 mises en correspondance avec des noeuds de processus actif | 118m3.845s |
-n 48 -f 20000 -e ssh | nconnect=16,nordirplus | source et destination avec 1 HPMT 40 chacun | 113m34.011s |
-n 48 -f 200000 | nconnect=16,nordirplus | source et destination avec 1 HPMT 40 chacun | 110m15.555s |
-n 48 -f 200000 | nconnect=16,nordirplus | source et destination avec 1 HPMT 40 chacun | 109m3.472s |
Nous pouvons voir que n'importe quelle combinaison de -n
supérieur à 48 et -f
supérieur à 20000 a donné des performances similaires d'environ 2 heures de temps de transfert entre les régions. Même avec la cible de montage hautes performances 40 GBps, le temps nécessaire n'est pas considérablement réduit.
Le résultat signifie que, selon la taille de l'ensemble de données réel à transférer, vous pouvez sélectionner plusieurs cibles de montage standard ou hautes performances pour le système de fichiers. Si l'ensemble de données source est composé principalement de fichiers de grande taille (taille de fichier >= 1M) et que la taille totale de l'ensemble de données est supérieure ou égale à 20 To, la cible de montage hautes performances est une bonne option. Sinon, les cibles de montage standard avec une configuration évolutive peuvent fournir les performances souhaitées et être rentables.
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 :
-
A l'aide de Rclone, reportez-vous au tutoriel 2 : Déplacement de données vers OCI Cloud Storage Services à l'aide de Rclone.
-
A l'aide d'OCI Object Storage Sync et de S5cmd, reportez-vous au tutoriel 3 : déplacement de données vers les services OCI Cloud Storage à l'aide d'OCI Object Storage Sync et de S5cmd.
Liens connexes
-
Notions fondamentales relatives à la migration des données vers OCI Cloud Storage
-
Tutoriel 2 : Déplacement de données vers les services de stockage cloud OCI à l'aide de Rclone
Remerciements
- Auteur : Vinoth Krishnamurthy (principal membre du personnel technique, OCI File Storage)
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.
Move Data into OCI Cloud Storage Services using Fpsync and Rsync
G25648-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.