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 strumentopartar
supporta l'estrazione dei filetar
creati nel formatotar
POSIX 1003.1-1990 di base GNU. I file creati in altri formati di archivio, ad esempioPAX
, 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 un'istanza di Oracle Linux:
- Aprire una finestra di terminale sull'istanza di destinazione.
- Digitare il comando seguente:
sudo yum install -y fss-parallel-tools
Per installare Parallel File Tools su un'istanza di Oracle Linux 8:
- Aprire una finestra di terminale sull'istanza di destinazione.
- Installare il repository per sviluppatori Oracle Linux, se necessario, utilizzando il seguente comando:
dnf install oraclelinux-developer-release-el8
- 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:
- Aprire una finestra di terminale sull'istanza di destinazione.
- 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
- Aprire una finestra di terminale sull'istanza di destinazione.
- 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.
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
.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
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.
È 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
eFile4.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
Tutti i file o le directory che corrispondono al pattern
--exclude
nel percorso della directory di origine verranno esclusi dall'archivio partar
.È 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
eFile3.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
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
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
efifo
$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