Uso de herramientas paralelas de File Storage

La suite Parallel File Tools proporciona versiones paralelas de tar, rm y cp. Estas herramientas pueden ejecutar solicitudes en sistemas de archivos grandes en paralelo, lo que maximiza el rendimiento para las operaciones de protección de datos.

El toolkit incluye:

  • partar: utilice este comando para crear y extraer tarballs en paralelo.
  • parrm: puede utilizar este comando para eliminar (remove) de forma recursiva un directorio en paralelo.
  • parcp: utilice este comando para copiar (copy ) de forma recursiva un directorio en paralelo.

Instalación de las herramientas de archivos paralelas

La suite de herramientas se distribuye como un RPM para Oracle Linux, Red Hat Enterprise Linux y CentOS.

Para instalar Parallel File Tools en Linux

Para instalar Parallel File Tools en una instancia de Oracle Linux:

  1. Abra una ventana de terminal en la instancia de destino.
  2. Escriba el siguiente comando:
    sudo yum install -y fss-parallel-tools
Para instalar Parallel File Tools en Oracle Linux 8

Para instalar Parallel File Tools en una instancia de Oracle Linux 8:

  1. Abra una ventana de terminal en la instancia de destino.
  2. Instale el repositorio del desarrollador de Oracle Linux, si es necesario, mediante el siguiente comando:
    dnf install oraclelinux-developer-release-el8
  3. Instale Parallel File Tools desde el repositorio del desarrollador con el siguiente comando:
    dnf --enablerepo=ol8_developer install fss-parallel-tools
Para instalar Parallel File Tools en CentOS y Red Hat 6.x

Para instalar Parallel File Tools en CentOS y Red Hat 6.x:

  1. Abra una ventana de terminal en la instancia de destino.
  2. Escriba el siguiente comando:
    sudo wget http://yum.oracle.com/public-yum-ol6.repo -O /etc/yum.repos.d/public-yum-ol6.repo
    sudo wget http://yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    sudo yum --enablerepo=ol6_developer install fss-parallel-tools
Para instalar Parallel File Tools en CentOS y Red Hat 7.x
  1. Abra una ventana de terminal en la instancia de destino.
  2. Escriba el siguiente comando:
    sudo wget http://yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo
    sudo wget http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    sudo yum --enablerepo=ol7_developer install fss-parallel-tools

Uso de Herramientas: Ejemplos Simples

A continuación, se muestran algunos ejemplos sencillos de cómo se utilizan las distintas herramientas en Oracle Cloud Infrastructure File Storage.

Para copiar todos los archivos y carpetas de un directorio a otro

En este ejemplo, se utiliza parcp para copiar la "carpeta" del directorio en /source en /destination. La opción -P se utiliza para definir el número de threads paralelos que desea utilizar.

$parcp -P 16 /source/folder /destination

En el siguiente ejemplo, se utiliza parcp para copiar los contents del directorio "folder" en /source en /destination. No se copia el directorio "folder".

$parcp -P 16 /source/folder/. /destination
Para crear un .Archivo TAR de un directorio
El siguiente comando crea un archivo .tar del contenido del directorio especificado y lo almacena como tarball en el directorio. En el siguiente ejemplo, el nombre del directorio que se está utilizando para crear el tarball es example.
$partar pcf example.tar example -P 16
También puede crear un tarball y enviarlo a un directorio diferente. En el siguiente ejemplo, el directorio que se utiliza para crear el tarball es example. El tarball se está creando en el directorio /test.
$partar pcf example.tar example -P 16 -C /test

Uso de Herramientas - Ejemplos Avanzados

A continuación se muestran algunos ejemplos de cómo se utilizan las distintas herramientas en escenarios más avanzados.

Para copiar archivos o carpetas seleccionados en un .Archivo TAR y exclusión de otros
Puede especificar qué archivos y carpetas se incluyen al crear un archivo .tar con partar. Supongamos que tiene un directorio que tiene el siguiente aspecto:
[opc@example sourcedir]$ ls -l
total 180
-rw-r-----.  1 opc opc          0 Apr 15 02:55 example2020-04-15_02-55-33_217107549.error
-rw-r-----.  1 opc opc         10 Apr 15 03:18 example2020-04-15_02-55-33_217107549.log
-rw-rw-r--.  1 opc opc         12 Apr 15 03:18 example2020-04-15_03-18-13_267771997.error
-rw-rw-r--.  1 opc opc         10 Apr 15 03:18 example2020-04-15_03-18-13_267771997.log
-rwxr-xr-x.  1 opc opc         37 Nov 30  2017 File1.txt
-rwxr-xr-x.  1 opc opc         15 Dec  1  2017 File2.txt
-rwxr-xr-x.  1 opc opc         39 Nov 30  2017 File3.txt
-rwxr-xr-x.  1 opc opc         57 Dec  1  2017 File4.txt
El siguiente comando crea un archivo .tar que:
  • Contiene File1.txt, File2.txt, File3.txt y File4.txt.
  • Excluye todos los archivos .log y .error.
  • Asigna un nombre al archivo .tar mytar
  • Envía la bola .tar de /sourcedir a /mnt/destinationdir
  • Extrae el archivo .tar.
[opc@example sourcedir]$ partar cf - mytar '*.log*' --exclude '*.err*' | partar xf - -C /mnt/destinationdir
Al realizar ls -l en /mnt/destinationdir/mytar, se muestra que sólo se han copiado los archivos deseados.
[opc@example mytar]$ ls -l
total 148
-rwxr-xr-x.  1 opc opc         37 Nov 30  2017 File1.txt
-rwxr-xr-x.  1 opc opc         15 Dec  1  2017 File2.txt
-rwxr-xr-x.  1 opc opc         39 Nov 30  2017 File3.txt
-rwxr-xr-x.  1 opc opc         57 Dec  1  2017 File4.txt
Para copiar archivos o carpetas seleccionados de un directorio a otro
Puede especificar qué archivos y carpetas se incluyen al utilizar parcp para copiar de un directorio a otro. Supongamos que tiene un directorio que tiene el siguiente aspecto:
[opc@example sourcedir]$ ls -l
total 180
-rw-r-----.  1 opc opc          0 Apr 15 02:55 example2020-04-15_02-55-33_217107549.error
-rw-r-----.  1 opc opc         10 Apr 15 03:18 example2020-04-15_02-55-33_217107549.log
-rw-rw-r--.  1 opc opc         12 Apr 15 03:18 example2020-04-15_03-18-13_267771997.error
-rw-rw-r--.  1 opc opc         10 Apr 15 03:18 example2020-04-15_03-18-13_267771997.log
-rwxr-xr-x.  1 opc opc         37 Nov 30  2017 File1.txt
-rwxr-xr-x.  1 opc opc         15 Dec  1  2017 File2.txt
-rwxr-xr-x.  1 opc opc         39 Nov 30  2017 File3.txt
-rwxr-xr-x.  1 opc opc         57 Dec  1  2017 File4.txt

En primer lugar, cree un archivo .txt que contenga una lista de archivos que desea excluir. En este ejemplo, es /home/opc/list.txt.

El siguiente comando copia el contenido de sourcedir en /mnt/destinationdir y:
  • Copia File1.txt, File2.txt y File3.txt.
  • Excluye los archivos File4.txt y .log y .error, como se muestra en /home/opc/list.txt.
[opc@example ~]$ cat /home/opc/list.txt
File4.txt
*.log*
*.err*
[opc@example ~]$ date; time sudo parcp --exclude-from=/home/opc/list.txt -P 16 --restore /sourcedir /mnt/destinationdir;
date Mon Jun  1 15:58:30 GMT 2020

real 9m55.820s
user 0m3.602s
sys 1m5.441s

Mon Jun  1 16:08:25 GMT 2020
Al realizar ls -l en /mnt/destinationdir, se muestra que sólo se han copiado los archivos deseados.
[opc@example destinationdir]$ ls -l
total 91
-rwxr-xr-x.  1 opc opc         37 Nov 30  2017 File1.txt
-rwxr-xr-x.  1 opc opc         15 Dec  1  2017 File2.txt
-rwxr-xr-x.  1 opc opc         39 Nov 30  2017 File3.txt
Utilizar PARCP como alternativa eficaz para RSYNC en paralelo

La opción --restore en parcp es similar al uso de las opciones -a -r -x y -H en rsync. (Consulte rsync(1)- Linux Man Page). La opción -P se utiliza para definir el número de threads paralelos que desea utilizar.

La opción restore incluye el siguiente comportamiento:
  • Volver a formar directorios
  • Parar en los límites del sistema de archivos
  • Conservar enlaces físicos, enlaces simbólicos, permisos, horas de modificación, grupo, propietarios y archivos especiales como archivos named sockets y fifo
$parcp -P 16 --restore /source/folder/ /destination
Puede utilizar parcp con las opciones --restore y --delete para sincronizar archivos entre una carpeta de origen y de destino. Esto es un buen sustituto para utilizar rsync en paralelo. A medida que se agregan o eliminan archivos del directorio de origen, puede ejecutar este comando a intervalos regulares para agregar o eliminar los mismos archivos del directorio de destino. Puede automatizar la sincronización mediante esta opción de comando en un trabajo cron.
sudo parcp -P 32 --restore --delete /source/folder/ /destination