Note:

Traslado de datos a OCI Cloud Storage Services mediante Fpsync y Rsync

Introducción

Este es el tutorial 4 de una serie de cuatro tutoriales en los que se muestran varias formas de migrar datos a los servicios de almacenamiento en la nube de Oracle Cloud Infrastructure (OCI). La serie está configurada para que pueda revisar el Tutorial 1: Uso de herramientas de migración para mover datos a los servicios de almacenamiento en la nube de OCI para obtener una amplia comprensión de las distintas herramientas y, a continuación, continuar con los tutoriales o documentos relacionados relevantes para sus necesidades de migración. Este tutorial se centrará en el uso de fpsync y rsync para migrar datos del sistema de archivos a OCI File Storage.

OCI proporciona a los clientes recursos informáticos de alto rendimiento y opciones de almacenamiento en la nube de bajo costo. A través del almacenamiento local, de objetos, de archivos, de bloques y de archivos bajo demanda, Oracle aborda los requisitos y casos de uso de la carga de trabajo de almacenamiento de claves.

Los servicios de almacenamiento en la nube de OCI ofrecen opciones de almacenamiento en la nube rápidas, seguras y duraderas para todas las necesidades de su empresa. A partir de las opciones de alto rendimiento, como OCI File Storage con el servicio Lustre y OCI Block Volumes; sistemas de archivos de escala de exabytes totalmente gestionados desde el servicio OCI File Storage con destinos de montaje de alto rendimiento; hasta OCI Object Storage altamente duradero y escalable. Nuestras soluciones pueden satisfacer sus demandas, desde aplicaciones de alto rendimiento como cargas de trabajo de IA/AA hasta lagos de datos a escala de exabytes.

Determina la cantidad de datos que se deben migrar y el tiempo de inactividad disponible para la transición a la nueva plataforma de almacenamiento de OCI. Las migraciones por lotes son una buena opción para desglosar la migración en incrementos gestionables. Las migraciones por lotes le permitirán programar el tiempo de inactividad de aplicaciones específicas en diferentes ventanas. Algunos clientes tienen la flexibilidad de realizar una migración única durante un período de mantenimiento programado de 2 a 4 días. OCI FastConnect se puede utilizar para crear una conexión dedicada y privada entre OCI y su entorno, con velocidades de puerto de 1G a 400G para acelerar el proceso de transferencia de datos. OCI FastConnect se puede integrar con soluciones de partners como Megaport y ConsoleConnect para crear una conexión privada a su centro de datos o interconexión de nube a nube para mover los datos más directamente de otro proveedor en la nube al servicio de almacenamiento en la nube de OCI. Para obtener más información, consulte la integración de FastConnect con Megaport Cloud Router.

Diferencia entre Rsync y Fpsync

Público Objetivo

DevOps ingenieros, desarrolladores, administradores y usuarios de OCI Cloud Storage, responsables de TI, usuarios avanzados de OCI y administradores de aplicaciones.

Objetivo

Descubra cómo utilizar rsync y fpsync para copiar y sincronizar datos en los servicios de almacenamiento en la nube de OCI:

Requisitos

Migración de datos a OCI File Storage

Fpsync y rsync se pueden utilizar para migrar datos del sistema de archivos (servicio OCI File Storage, servicio OCI Block Volumes, OCI File Storage with Lustre, sistema de archivos local y sistema de archivos de red local (NFS) a otros tipos de almacenamiento de sistemas de archivos (incluido OCI File Storage).

Uso de Rsync para Migrar Datos

  1. Utilice rsync con transmisión de instancia a instancia.

    Para conjuntos de datos pequeños de hasta unas pocas decenas de GB y unos pocos miles de archivos, se puede utilizar la transmisión de instancia a instancia de rsync. La transmisión de instancia a instancia mediante NFS local activado mediante SSH dentro de una red y SSH entre la red de origen y destino y, por lo tanto, ayuda a reducir la latencia de NFS entre dos redes. Utilice el comando siguiente.

    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. Ejecución de varios procesos de sincronización en paralelo.

    • Puede utilizar los comandos find y xargs para ejecutar varios procesos 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/
      
    • También puede utilizar GNU en paralelo.

      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/
      

    Nota: En ambos ejemplos, se ejecutan 24 procesos a la vez, el parámetro se ha seleccionado según la capacidad de CPU de la instancia utilizada.

Uso de Fpsync para Migrar Datos

La herramienta fpsync es un envoltorio paralelo de rsync. También puede utilizar tar, tarify y cpio, pero el valor por defecto es rsync.

  1. Instale fpsync en su máquina Linux.

    • Ejecute el siguiente comando para Linux 8.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo yum install fpart -y
    
    • Ejecute el siguiente comando para Linux 9.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo yum install fpart -y
    
  2. Ejecute fpsync con el siguiente comando.

    Por ejemplo:

    fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
    

Nota: Para obtener más información sobre las opciones y los parámetros de fpsync, consulte man fpsync.

Ejecución de Fpsync mediante tres nodos de trabajador para migrar datos de recursos compartidos de archivos locales al servicio OCI File Storage

Siga los pasos de alto nivel para ejecutar fpsync mediante tres nodos de trabajador para migrar datos de recursos compartidos de archivos locales (disco local, SAN o NAS) al servicio OCI File Storage.

En la siguiente imagen se muestra un diagrama de arquitectura de componentes.

Diagrama de Arquitectura de Componentes

Realice los pasos:

  1. Identifique tres nodos de trabajador y un nodo de destino.

    Identifique tres sistemas locales a los que tenga acceso para montar el sistema de archivos de origen. También puede crear e iniciar tres instancias de OCI Compute VM con fines de prueba.

    Identifique una instancia de máquina virtual de OCI existente o cree e inicie una nueva para que sirva como nodo de destino.

  2. Monte el recurso compartido NAS de origen en los tres nodos.

    Utilice las opciones de montaje nordirplus y nconnect=16, no especifique otras opciones de montaje nfs.

    Por ejemplo, ejecute el siguiente comando de montaje en un sistema Linux.

    sudo mount -t nfs -o nordirplus,nconnect=16 10.x.x.x:/<EXPORT_PATH_NAME> /mnt/nfs-data
    

    Por ejemplo, ejecute el siguiente comando para verificar el montaje.

    mount | grep /mnt/nfs-data
    

    Nota: con fines de prueba, puede utilizar OCI File Storage para crear, exportar y montar un sistema de archivos. Se pueden crear datos de prueba en el montaje para probar fpsync.

  3. Seleccione un nodo para ejecutar fpsync y actualizar el archivo /etc/hosts.

    Puede seleccionar uno de los tres nodos o un nodo diferente para ejecutar el comando fpsync. El nodo en el que se ejecuta el comando fpsync se denomina nodo ejecutador.

    En el nodo donde se ejecutará fpsync, utilice el editor de texto preferido para actualizar el archivo /etc/hosts con los tres nodos de trabajador como worker-src-1, worker-src-2 y worker-src-3.

    Por ejemplo:

    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. Monte el sistema de archivos de destino en el nodo de destino.

    Identifique el sistema de archivos de destino y móntelo en el nodo de destino. También puede crear y montar OCI File Storage en el nodo de destino.

  5. Asegúrese de que se ha establecido la conectividad local a OCI.

    Utilice herramientas de red comunes como ping, traceroute, ssh, etc., para verificar la conectividad entre sistemas, locales y OCI.

  6. Active SSH sin contraseña entre todos los nodos de origen y de destino y verifique la conexión SSH entre los pares de nodos de origen y de destino.

    Identifique la clave SSH pública para el usuario que ejecutará el comando fpsync en el nodo de ejecutor. Esta clave se encuentra normalmente en el directorio raíz del usuario en el directorio .ssh y normalmente se denomina id_rsa.pub. Propague esta clave a todos los nodos de trabajador mediante el comando cat para mostrar su contenido, copiar la clave y pegarla en el archivo $HOME/.ssh/authorized_keys de los nodos de trabajador. También puede utilizar el comando ssh-copy-id para distribuir la clave a cada nodo de trabajador y al nodo de destino si está activado SSH basado en contraseña. Por ejemplo:

    [worker-src-1 ~]$ ssh-copy-id username@worker-src-2
    
  7. Ejecute el comando fpsync en el nodo ejecutador.

    Nota: es necesario que fpsync se instale solo en el nodo ejecutador que ejecutará los comandos rsync en los nodos de destino mediante SSH a través de los nodos de trabajador.

    Por ejemplo:

    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/
    

    Nota: Sustituya X e Y por los valores de las opciones de fpsync -n y -f.

    • Determine el valor de los trabajos de sincronización simultáneos, que es -n.

      • Seleccione el valor -n para que sea igual al número de cpu_cores de todos los nodos de trabajador del origen y mantenga tantos como nodos de trabajador de destino de la misma CPU y memoria.
      • Si tiene 3 nodos de trabajador con 16 núcleos de CPU en cada uno, es 3 nodos de trabajador por 16 cpu_cores = 48.
    • Determine el valor de la cantidad de archivos que se transferirán por trabajo de sincronización, que es -f.

      • Por ejemplo, si tiene dos carpetas con directorios grandes y un total de 1,1 millones de archivos, las dos carpetas contienen archivos ~700K con un tamaño de archivo medio de 160 KB.
      • Cada nodo de trabajador se configura con: 64 GB = 64000000KB de memoria, 8 OCPU = 16 cpu_cores, con la memoria por cpu_core siendo: 64000000/16 = 400000KB/cpu_core. Memoria en cada nodo de trabajador = 64 GB = 64000000 KB.
      • Calcule el valor de -f, 4000000KB/160 = 25000.

(Opcional) Entorno de prueba

Para simular la migración local a OCI, se utiliza el sistema de archivos de OCI File Storage (Ashburn) con el siguiente juego de datos como recurso compartido NAS local y el sistema de archivos de OCI File Storage (Phoenix) como destino.

Ambas regiones se intercambian de forma remota mediante el gateway de direccionamiento dinámico.

Directorio de juego de datos Tamaño Recuento de Archivos Tamaño de cada archivo
Directorio 1 107.658 GiB 110.242 1 MiB
Directorio 2 1.687 GiB 110.569 15 MiB
Directorio 3 222 GiB 111 2 GiB
Directorio 4 1.265 TiB 1.295 1 GiB
Directorio 5 26.359 GiB 1.687 16 MiB
Directorio 6 105.281 MiB 26.952 4 KiB
Directorio 7 29.697 MiB 30.410 1 KiB
Directorio 8 83.124 GiB 340.488 256 KiB
Directorio 9 21.662 GiB 354.909 64 KiB
Directorio 10 142.629 GiB 36.514 4 MiB
Directorio 11 452.328 MiB 57.898 8 MiB
Directorio 12 144 GiB 72 2GiB
Directorio 13 208.500 GiB 834 256 MiB
Directorio 14 54.688 GiB 875 64 MiB

Instancias de VM: en las regiones Ashburn y Phoenix, se utilizan tres 16 VM cpu_core, 64 GB de memoria, 8Gbps de ancho de banda Linux9 VM como nodos de trabajador y una VM 8 cpu_core como nodo ejecutador.

A continuación se muestran los valores de TCP que tiene toda la instancia:

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

Ambas instancias regionales tienen el sistema de archivos de OCI File Storage respectivo montado como se menciona en la sección Ejecución de Fpsync mediante tres nodos de trabajador para migrar datos de recursos compartidos de archivos locales al servicio OCI File Storage.

Ejecute el siguiente comando fpsync. X e Y son opciones de 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/

En la siguiente tabla se muestra el tiempo que tarda fpsync en completar los archivos de transferencia de datos de 2,25 TB y 1 millón para diferentes combinaciones de compresión y SSH X e Y y rsync.

opción fpsync Opción de montaje nfs en nodos de trabajador de origen y destino Tipo de rendimiento de destino de montaje de almacenamiento de archivos Tiempo Utilizado
-n 30 -f 2000 -e ssh nconnect=16, nordirplus 3 destinos de montaje estándar, 1:1 asignados a nodos de trabajador 237m28s
-n 48 -f 5000 -e ssh -C nconnect=16, nordirplus fuente y destino con 1 HPMT 40 cada uno 163m38.887s
-n 60 -f 20000 nconnect=16, nordirplus 3 destinos de montaje estándar, 1:1 asignados a nodos de trabajador 124m25.435s
-n 48 -f 400000 -e ssh -C nconnect=16, nordirplus 3 destinos de montaje estándar, 1:1 asignados a nodos de trabajador 122m55.458s
-n 100 -f 200000 -e ssh nconnect=16, nordirplus 3 destinos de montaje estándar, 1:1 asignados a nodos de trabajador 120m44s
-n 60 -f 200000 -e ssh nordirplus solamente, NO nconnect 3 destinos de montaje estándar, 1:1 asignados a nodos de trabajador 118m41.393s
-n 60 -f 200000 -e ssh nconnect=16, nordirplus 3 destinos de montaje estándar, 1:1 asignados a nodos de trabajador 118m3.845s
-n 48 -f 20000 -e ssh nconnect=16, nordirplus fuente y destino con 1 HPMT 40 cada uno 113m34.011s
-n 48 -f 200000 nconnect=16, nordirplus fuente y destino con 1 HPMT 40 cada uno 110m15.555s
-n 48 -f 200000 nconnect=16, nordirplus fuente y destino con 1 HPMT 40 cada uno 109m3.472s

Podemos ver que cualquier combinación de -n por encima de 48 y -f por encima de 20000 dio un rendimiento similar alrededor de 2 horas de tiempo de transferencia en toda la región. Incluso, con el destino de montaje de alto rendimiento 40 GBps, no se reduce mucho el tiempo que se tarda.

El resultado significa que, según el tamaño del juego de datos real que se va a transferir, puede seleccionar varios destinos de montaje estándar o de alto rendimiento para el sistema de archivos. Si el juego de datos de origen está compuesto principalmente por archivos de gran tamaño (tamaño de archivo >= 1M) y el tamaño total del juego de datos es de 20 TB y superior, el destino de montaje de alto rendimiento es una buena opción. De lo contrario, los destinos de montaje estándar con una configuración de escala horizontal pueden proporcionar el rendimiento deseado, además de una rentabilidad.

Pasos Siguientes

Vaya a los tutoriales relacionados relevantes para sus necesidades de migración. Para mover datos a los servicios de almacenamiento en la nube de OCI:

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.