Note :

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.

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

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 :

Préalables

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

  1. 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/
    
  2. Exécutez plusieurs processus de synchronisation 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 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.

  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.

    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.

Diagramme architectural de composant

Procédez de la façon suivante :

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

  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
    

    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.

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

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

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 :

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.