Remarques :

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.

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

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 :

Prérequis

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

  1. 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/
    
  2. Exécutez plusieurs traitements rsync en parallèle.

    • Vous pouvez utiliser les commandes find et xargs 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.

  1. 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
    
  2. 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.

Diagramme architectural des composants

Suivez les étapes décrites:

  1. 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.

  2. Montez le partage NAS source sur les trois noeuds.

    Utilisez les options de montage nordirplus et nconnect=16, ne spécifiez pas d'autres options de montage nfs.

    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.

  3. 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 commande fpsync 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 actif worker-src-1, worker-src-2 et worker-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
    
  4. 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.

  5. 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.

  6. 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ée id_rsa.pub. Propagez cette clé vers tous les noeuds de processus actif à l'aide de la commande cat 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 commande ssh-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
    
  7. 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 de cpu_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.
    • 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 par cpu_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/

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 :

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.