Uso degli strumenti paralleli di storage di file

La suite Parallel File Tools fornisce versioni parallele di tar, rm e cp. Questi strumenti possono eseguire richieste su file system di grandi dimensioni in parallelo, massimizzando le prestazioni per le operazioni di protezione dei dati.

Il toolkit include:

  • partar: utilizzare questo comando per creare ed estrarre tarball in parallelo.
    Nota

    Lo strumento partar supporta l'estrazione dei file tar creati nel formato tar POSIX 1003.1-1990 di base GNU. I file creati in altri formati di archivio, ad esempio PAX, non sono supportati.
  • parrm: è possibile utilizzare questo comando per rimuovere in modo ricorsivo una directory in parallelo.
  • parcp: utilizzare questo comando per copiare in modo ricorsivo una directory in parallelo.

Installazione degli strumenti di file paralleli

La suite di strumenti viene distribuita come RPM per Oracle Linux, Red Hat Enterprise Linux e CentOS.

Per installare Parallel File Tools su Linux

Per installare Parallel File Tools su un'istanza di Oracle Linux:

  1. Aprire una finestra di terminale sull'istanza di destinazione.
  2. Digitare il comando seguente:
    sudo yum install -y fss-parallel-tools
Per installare Parallel File Tools su Oracle Linux 8

Per installare Parallel File Tools su un'istanza di Oracle Linux 8:

  1. Aprire una finestra di terminale sull'istanza di destinazione.
  2. Installare il repository per sviluppatori Oracle Linux, se necessario, utilizzando il seguente comando:
    dnf install oraclelinux-developer-release-el8
  3. Installare Parallel File Tools dal repository di sviluppatori utilizzando il seguente comando:
    dnf --enablerepo=ol8_developer install fss-parallel-tools
Per installare Parallel File Tools su CentOS e Red Hat 6.x

Per installare Parallel File Tools su CentOS e Red Hat 6.x:

  1. Aprire una finestra di terminale sull'istanza di destinazione.
  2. Digitare il comando seguente:
    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
Per installare Parallel File Tools su CentOS e Red Hat 7.x
  1. Aprire una finestra di terminale sull'istanza di destinazione.
  2. Digitare il comando seguente:
    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 degli strumenti - Esempi di base

Ecco alcuni semplici esempi di come i diversi strumenti vengono comunemente utilizzati in Oracle Cloud Infrastructure File Storage.

Per copiare tutti i file e le cartelle da una directory a un'altra

In questo esempio, parcp viene utilizzato per copiare la directory "folder" in /source in /destination. L'opzione -P viene utilizzata per impostare il numero di thread paralleli che si desidera utilizzare.

$parcp -P 16 /source/folder /destination

Nell'esempio seguente, parcp viene utilizzato per copiare i contenuti della directory "folder" in /source in /destination. La stessa directory "folder" non viene copiata.

$parcp -P 16 /source/folder/. /destination
Per creare un archivio .TAR di una directory
Il comando seguente crea un archivio .tar del contenuto della directory specificata e lo memorizza come tarball nella directory. Nell'esempio seguente, il nome della directory utilizzata per creare il tarball è example.
$partar pcf example.tar example -P 16
Puoi anche creare un tarball e inviarlo a una directory diversa. Nell'esempio seguente, la directory utilizzata per creare il tarball è example. Il tarball viene creato nella directory /test.
$partar pcf example.tar example -P 16 -C /test

Uso degli strumenti - Esempi avanzati

Ecco alcuni esempi di come i diversi strumenti vengono utilizzati in scenari più avanzati.

Per copiare i file o le cartelle selezionati in un archivio .TAR ed escluderne altri

È possibile specificare i file e le cartelle da includere quando si crea un archivio .tar utilizzando partar. Si supponga di disporre di una directory simile alla seguente:

[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

Il comando seguente crea un archivio .tar che:

  • Contiene una directory mydir denominata come specificato.
  • Include File1.txt, File2.txt, File3.txt e File4.txt.
  • Esclude tutti i file .log e .error.
  • Invia la palla .tar da /sourcedir a /mnt/destinationdir
  • Estrae l'archivio .tar.
[opc@example sourcedir]$ sudo partar cf - mydir --exclude '*.log*' --exclude '*.err*' | sudo partar xf - -C /mnt/destinationdir

L'esecuzione di ls -l su /mnt/destinationdir/mytar mostra che sono stati copiati solo i file desiderati.

[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

Quando si esclude una directory o un file dall'archivio, specificare solo il nome della directory o del file. L'opzione --exclude non supporta l'uso di un percorso assoluto. L'uso di un percorso assoluto nell'opzione --exclude non esclude la directory o i file specificati dall'archivio .tar. Ad esempio, se è necessario escludere una directory denominata testing dal percorso della directory di origine, è necessario specificare che in un comando simile al seguente:

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

Tutti i file o le directory che corrispondono al pattern --exclude nel percorso della directory di origine verranno esclusi dall'archivio partar.
Per copiare i file o le cartelle selezionati da una directory a un'altra

È possibile specificare i file e le cartelle da includere quando si utilizza parcp per eseguire la copia da una directory a un'altra. Si supponga di disporre di una directory simile alla seguente:

[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

In primo luogo, creare un file .txt contenente un elenco di file che si desidera escludere. In questo esempio, è /home/opc/list.txt.

Il comando seguente copia il contenuto da sourcedir in /mnt/destinationdir e:

  • Copia File1.txt, File2.txt e File3.txt.
  • Esclude i file File4.txt e .log e .error, elencati in /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
L'esecuzione di ls -l su /mnt/destinationdir mostra che sono stati copiati solo i file desiderati.
[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
Utilizzare PARCP come alternativa efficace per RSYNC in parallelo

L'opzione --restore in parcp è simile a quella utilizzata per le opzioni -a -r -x e -H in rsync. Vedere rsync(1)- Pagina man Linux. L'opzione -P viene utilizzata per impostare il numero di thread paralleli che si desidera utilizzare.

L'opzione restore include il seguente comportamento:

  • Ricorsivo nelle directory
  • Arrestarsi ai limiti del file system
  • Conserva collegamenti fisici, collegamenti simbolici, autorizzazioni, tempi di modifica, gruppo, proprietari e file speciali come i file named sockets e fifo
$parcp -P 16 --restore /source/folder/ /destination

È possibile utilizzare parcp con le opzioni --restore e --delete per sincronizzare i file tra una cartella di origine e una cartella di destinazione. Questo è un buon sostituto per l'utilizzo di rsync in parallelo. Quando i file vengono aggiunti o rimossi dalla directory di origine, è possibile eseguire questo comando a intervalli regolari per aggiungere o rimuovere gli stessi file dalla directory di destinazione. È possibile automatizzare la sincronizzazione utilizzando questa opzione di comando in un job cron.

sudo parcp -P 32 --restore --delete /source/folder/ /destination