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 kit de herramientas incluye:

  • partar: utilice este comando para crear y extraer tarballs en paralelo.
    Nota

    La herramienta partar soporta la extracción de archivos tar creados en el formato básico de GNU tar POSIX 1003.1-1990. Los archivos creados en otros formatos de archivo, como PAX, no están soportados.
  • parrm: puede utilizar este comando para eliminar de forma recursiva un directorio en paralelo.
  • parcp: utilice este comando para copiar de forma recursiva un directorio en paralelo.

Instalación de Parallel File Tools

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 de desarrolladores de Oracle Linux, si es necesario, mediante el siguiente comando:
    dnf install oraclelinux-developer-release-el8
  3. Instale Parallel File Tools desde el repositorio de desarrolladores mediante 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 básicos

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

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

En este ejemplo, parcp se utiliza para copiar el directorio "folder" de /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, parcp se utiliza para copiar los contenidos del directorio "folder" de /source en /destination. El directorio "folder" en sí no se copia.

$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 un tarball (archivo tar) en el directorio. En el siguiente ejemplo, el nombre del directorio que se utiliza para crear el archivo tar es example.
$partar pcf example.tar example -P 16
También puede crear un archivo tar y enviarlo a un directorio diferente. En el siguiente ejemplo, el directorio que se utiliza para crear el archivo tar es example. El archivo 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 diferentes herramientas en escenarios más avanzados.

Para copiar los archivos o las carpetas seleccionados en un archivo .TAR y excluir otros

Puede especificar qué archivos y carpetas se incluyen al crear un archivo .tar mediante partar. Supongamos que tiene un directorio similar al siguiente:

[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 un directorio mydir con el nombre especificado.
  • Incluye File1.txt, File2.txt, File3.txt y File4.txt.
  • No incluye todos los archivos .log y .error.
  • Envía el archivo .tar de /sourcedir a /mnt/destinationdir
  • Extrae el archivo .tar
[opc@example sourcedir]$ sudo partar cf - mydir --exclude '*.log*' --exclude '*.err*' | sudo partar xf - -C /mnt/destinationdir

Al realizar ls -l en /mnt/destinationdir/mytar, se muestra que solo 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

Al excluir un directorio o un archivo del archivo, proporcione solo el nombre del directorio o del archivo. La opción --exclude no soporta el uso de una ruta de acceso absoluta. El uso de una ruta de acceso absoluta en la opción --exclude no excluirá el directorio o los archivos especificados del archivo .tar. Por ejemplo, si necesita excluir un directorio denominado testing de la ruta del directorio de origen, debe especificarlo en un comando como el siguiente:

sudo partar pczf name_of_tar_file.tar.gz /<path_source_directory> --exclude=testing
Nota

Todos los archivos o directorios que coincidan con el patrón --exclude en la ruta del directorio de origen se excluirán del archivo partar.
Para copiar los archivos o las carpetas seleccionados de un directorio a otro

Puede especificar qué archivos y carpetas están incluidos si utiliza parcp para copiar de un directorio a otro. Supongamos que tiene un directorio similar al siguiente:

[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 desee excluir. En este ejemplo, es /home/opc/list.txt.

El siguiente comando copia el contenido de sourcedir a /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 solo 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
Para utilizar PARCP como una alternativa eficaz para RSYNC en paralelo

La opción --restore de 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:

  • Recorrer los 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 una de destino. Este es un buen sustituto del uso de 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