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'outil partar prend en charge l'extraction des fichiers tar créés au format POSIX 1003.1-1990 tar de base GNU. Les fichiers créés dans d'autres formats d'archive, tels que PAX, 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.

Procédure d'installation des outils de fichiers parallèles sur Linux

Pour installer les outils de fichiers parallèles sur une instance Oracle Linux, procédez comme suit :

  1. Ouvrez une fenêtre de terminal sur l'instance de destination.
  2. Saisissez la commande suivante :
    sudo yum install -y fss-parallel-tools
Pour installer la suite d'outils de fichiers parallèles sur Oracle Linux 8

Pour installer les outils de fichiers parallèles sur une instance Oracle Linux 8, procédez comme suit :

  1. Ouvrez une fenêtre de terminal sur l'instance de destination.
  2. 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
  3. 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

Pour installer la suite d'outils de fichiers parallèles sur CentOS et Red Hat 6.x :

  1. Ouvrez une fenêtre de terminal sur l'instance de destination.
  2. 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
Pour installer la suite d'outils de fichiers parallèles sur CentOS et Red Hat 7.x
  1. Ouvrez une fenêtre de terminal sur l'instance de destination.
  2. 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.

Procédure de copie de tous les fichiers et dossiers d'un répertoire vers un autre

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
Procédure de création d'une archive TAR d'un répertoire
La commande suivante crée une archive .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
Vous pouvez également créer un tarball et l'envoyer dans un autre répertoire. Dans l'exemple ci-dessous, le répertoire utilisé pour créer le tarball est 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.

Procédure de copie et d'exclusion de fichiers ou dossiers sélectionnés dans une archive TAR

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 et File4.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
Remarque

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.
Procédure de copie de fichiers ou dossiers sélectionnés d'un répertoire vers un autre

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 et File3.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
L'exécution de 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
Procédure d'utilisation de PARCP comme alternative efficace à RSYNC en parallèle

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 et fifo
$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