Utilisation des outils de fichiers parallèles pour File Storage
La suite d'outils de fichiers parallèles fournit des versions parallèles de tar
, rm
et cp
. Ces outils peuvent exécuter des demandes sur des systèmes de fichiers volumineux en parallèle, ce qui permet d'optimiser les performances des opérations de protection des données.
Le toolkit inclut les éléments suivants :
partar
: utilisez cette commande pour créer et extraire tarballs en parallèle.Remarque
L'outilpartar
prend en charge l'extraction des fichierstar
créés au format POSIX 1003.1-1990tar
de base GNU. Les fichiers créés dans d'autres formats d'archive, tels quePAX
, ne sont pas pris en charge.parrm
: utilisez cette commande pour effectuer en parallèle une opération remove de façon récursive sur un répertoire.parcp
: utilisez cette commande pour effectuer en parallèle une opération copy de manière récursive sur un répertoire.
Installation des outils de fichiers parallèles
La suite d'outils est distribuée en tant que RPM pour Oracle Linux, Red Hat Enterprise Linux et CentOS.
Pour installer les outils de fichiers parallèles sur une instance Oracle Linux, procédez comme suit :
- Ouvrez une fenêtre de terminal sur l'instance de destination.
- Saisissez la commande suivante :
sudo yum install -y fss-parallel-tools
Pour installer les outils de fichiers parallèles sur une instance Oracle Linux 8, procédez comme suit :
- Ouvrez une fenêtre de terminal sur l'instance de destination.
- Installez le référentiel de développeur Oracle Linux, si nécessaire, à l'aide de la commande suivante :
dnf install oraclelinux-developer-release-el8
- Installez les outils de fichiers parallèles à partir du référentiel de développeur à l'aide de la commande suivante :
dnf --enablerepo=ol8_developer install fss-parallel-tools
Pour installer la suite d'outils de fichiers parallèles sur CentOS et Red Hat 6.x :
- Ouvrez une fenêtre de terminal sur l'instance de destination.
- Saisissez la commande suivante :
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
- Ouvrez une fenêtre de terminal sur l'instance de destination.
- Saisissez la commande suivante :
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
Utiliser les outils - Exemples de base
Voici quelques exemples simples d'utilisation courante des différents outils dans Oracle Cloud Infrastructure File Storage.
Dans cet exemple, parcp
est utilisé pour copier le répertoire "folder" qui se trouve dans /source
vers /destination
. L'option -P
permet de définir le nombre de threads parallèles à utiliser.
$parcp -P 16 /source/folder /destination
Dans l'exemple suivant, parcp
est utilisé pour copier le contenu du répertoire "folder" qui se trouve dans /source
vers /destination
. Le répertoire "folder" lui-même n'est pas copié.
$parcp -P 16 /source/folder/. /destination
.tar
du contenu du répertoire indiqué et la stocke en tant que tarball
dans le répertoire. Dans l'exemple ci-dessous, le nom du répertoire utilisé pour créer le tarball est example
. $partar pcf example.tar example -P 16
example
. Le tarball est créé dans le répertoire /test
.$partar pcf example.tar example -P 16 -C /test
Utilisation des outils - Exemples avancés
Voici quelques exemples d'utilisation des différents outils dans des scénarios plus avancés.
Vous pouvez indiquer les fichiers et dossiers inclus lorsque vous créez une archive .tar
à l'aide de partar
. Supposons que vous ayez un répertoire qui ressemble à ce qui suit :
[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
La commande ci-après crée une archive .tar
qui présente les caractéristiques suivantes :
- Elle contient un répertoire
mydir
portant le nom indiqué. - Elle inclut
File1.txt
,File2.txt
,File3.txt
etFile4.txt
. - Elle exclut tous les fichiers
.log
et.error
. - Elle envoie le tarball
.tar
de/sourcedir
à/mnt/destinationdir
. - Elle extrait l'archive
.tar
.
[opc@example sourcedir]$ sudo partar cf - mydir --exclude '*.log*' --exclude '*.err*' | sudo partar xf - -C /mnt/destinationdir
L'exécution de ls -l
sur /mnt/destinationdir/mytar
indique que seuls les fichiers souhaités ont été copiés.
[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
Pour exclure un répertoire ou un fichier de l'archive, indiquez uniquement le nom correspondant. L'option --exclude
ne prend pas en charge l'utilisation d'un chemin absolu. L'utilisation d'un chemin absolu dans l'option --exclude
n'exclut pas le répertoire ou le fichier spécifié de l'archive .tar
. Par exemple, si vous devez exclure un répertoire appelé testing
du chemin du répertoire source, spécifiez une commande telle que la suivante :
sudo partar pczf name_of_tar_file.tar.gz /<path_source_directory> --exclude=testing
Tous les fichiers ou répertoires correspondant au modèle
--exclude
et situés sous le chemin du répertoire source seront exclus de l'archive partar
.Vous pouvez indiquer les fichiers et dossiers inclus lorsque vous utilisez parcp
pour effectuer une copie d'un répertoire vers un autre. Supposons que vous ayez un répertoire qui ressemble à ce qui suit :
[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
Commencez par créer un fichier .txt
contenant la liste des fichiers à exclure. Dans cet exemple, il s'agit de /home/opc/list.txt
.
La commande ci-après copie le contenu de sourcedir
vers /mnt/destinationdir
. Elle effectue également l'opération suivante :
- Elle copie
File1.txt
,File2.txt
etFile3.txt
. - Elle exclut
File4.txt
, ainsi que les fichiers.log
et.error
, comme indiqué dans/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
sur /mnt/destinationdir
indique que seuls les fichiers souhaités ont été copiés.[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'option --restore
dans parcp
équivaut à utiliser les options -a -r -x
et -H
dans rsync
. (Reportez-vous à la page de manuel Linux rsync(1).) L'option -P
permet de définir le nombre de threads parallèles à utiliser.
L'option restore
inclut le comportement suivant :
- Récursivité dans les répertoires
- Arrêt aux limites du système de fichiers
- Conservation des hard links, des liens symboliques, des droits d'accès, des heures de modification, du groupe, des propriétaires et des fichiers spéciaux tels que les fichiers
named sockets
etfifo
$parcp -P 16 --restore /source/folder/ /destination
Vous pouvez utiliser parcp
avec les options --restore
et --delete
pour synchroniser des fichiers entre un dossier source et un dossier cible. Il s'agit d'une bonne alternative à l'utilisation de rsync
en parallèle. Vous pouvez exécuter cette commande à intervalles réguliers pour ajouter ou enlever dans le répertoire de destination les fichiers ajoutés ou enlevés dans le répertoire source. Pour automatiser la synchronisation, vous pouvez utiliser cette option de commande dans un travail CRON.
sudo parcp -P 32 --restore --delete /source/folder/ /destination