Utilisation des outils parallèles de stockage de fichiers
La boîte à outils pour fichiers parallèles fournit des versions parallèles de tar
, rm
et cp
. Ces outils peuvent exécuter des demandes sur de grands systèmes de fichiers en parallèle, en maximisant la performance pour les opérations de protection des données.
La boîte à outils comprend les éléments suivants :
partar
: Utilisez cette commande pour créer et extraire des archives tar (tarball) en parallèle.Note
L'outilpartar
prend en charge l'extraction des fichierstar
créés dans le 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
: Vous pouvez utiliser cette commande pour retirer (remove) de façon récursive un répertoire en parallèle.parcp
: Utilisez cette commande pour copier (copy) de manière récursive un répertoire en parallèle.
Installation des outils pour fichiers parallèles
La suite d'outils est distribuée sous la forme d'un RPM pour Oracle Linux, Red Hat Enterprise Linux et CentOS.
Pour installer les outils pour fichiers parallèles sur une instance Oracle Linux :
- Ouvrez une fenêtre de terminal sur l'instance de destination.
- Entrez la commande suivante :
sudo yum install -y fss-parallel-tools
Pour installer les outils pour fichiers parallèles sur une instance Oracle Linux 8 :
- Ouvrez une fenêtre de terminal sur l'instance de destination.
- Installez le référentiel Oracle Linux Developer, si nécessaire, à l'aide de la commande suivante :
dnf install oraclelinux-developer-release-el8
- Installez les outils pour fichiers parallèles à partir du référentiel à l'aide de la commande suivante :
dnf --enablerepo=ol8_developer install fss-parallel-tools
Pour installer les outils pour fichiers parallèles sur CentOS et Red Hat 6.x :
- Ouvrez une fenêtre de terminal sur l'instance de destination.
- Entrez 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.
- Entrez 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
Exemples de base
Voici quelques exemples simples d'utilisation courante des différents outils dans le service Stockage de fichiers pour Oracle Cloud Infrastructure.
Dans cet exemple, parcp
est utilisé pour copier le répertoire "folder" dans /source
vers /destination
. L'option -P
permet de définir le nombre d'unités d'exécution parallèles à utiliser.
$parcp -P 16 /source/folder /destination
Dans l'exemple suivant, parcp
est utilisé pour copier le contenu du répertoire "folder" 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 spécifié et la stocke en tant que fichier tarball
dans le répertoire. Dans l'exemple ci-dessous, le nom du répertoire utilisé pour créer le fichier tarball est example
. $partar pcf example.tar example -P 16
example
. Le fichier tarball est en cours de création 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 spécifier quels fichiers et dossiers sont inclus lors de la création d'une archive .tar
à l'aide de partar
. Supposons que vous ayez un répertoire qui ressemble à ceci :
[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 suivante crée une archive .tar
qui :
- Contient un répertoire
mydir
nommé comme spécifié. - Inclut
File1.txt
,File2.txt
,File3.txt
etFile4.txt
. - Exclut tous les fichiers
.log
et.error
. - Envoie la balle
.tar
de/sourcedir
à/mnt/destinationdir
- Extraction de 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
montre 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
Lorsque vous excluez un répertoire ou un fichier de l'archive, indiquez uniquement le nom du répertoire ou du fichier. 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 les fichiers spécifiés de l'archive .tar
. Par exemple, si vous devez exclure un répertoire nommé testing
du chemin du répertoire source, vous devez le spécifier dans une commande comme suit :
sudo partar pczf name_of_tar_file.tar.gz /<path_source_directory> --exclude=testing
Tous les fichiers ou répertoires qui correspondent au modèle
--exclude
sous le chemin du répertoire source seront exclus de l'archive partar
.Vous pouvez spécifier quels fichiers et dossiers sont inclus lorsque vous utilisez parcp
pour effectuer une copie d'un répertoire à un autre. Supposons que vous ayez un répertoire qui ressemble à ceci :
[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
Tout d'abord, créez un fichier .txt
contenant la liste des fichiers à exclure. Dans cet exemple, il s'agit de /home/opc/list.txt
.
La commande suivante copie le contenu de sourcedir
vers /mnt/destinationdir
et :
- Copie
File1.txt
,File2.txt
etFile3.txt
. - Exclut
File4.txt
et les fichiers.log
et.error
, tels qu'ils sont répertoriés 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
montre 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
est similaire à l'utilisation des options -a -r -x
et -H
dans rsync
. (Voir rsync(1)- Page Man Linux.) L'option -P
permet de définir le nombre d'unités d'exécution parallèles à utiliser.
L'option restore
comprend le comportement suivant :
- Récupérer dans les répertoires
- Arrêter aux frontières du système de fichiers
- Conserver les liens physiques, les liens symboliques, les autorisations, les temps de modification, le groupe, les responsables et les fichiers spéciaux tels que
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. Ceci est un bon substitut pour l'utilisation de rsync
en parallèle. Lorsque des fichiers sont ajoutés ou supprimés du répertoire source, vous pouvez exécuter cette commande à intervalles réguliers pour ajouter ou supprimer les mêmes fichiers du répertoire de destination. Vous pouvez automatiser la synchronisation en utilisant cette option de commande dans une tâche cron.
sudo parcp -P 32 --restore --delete /source/folder/ /destination