File Storage Parallel Tools verwenden

Die Parallel File Tools-Suite stellt parallele Versionen von tar, rm und cp bereit. Diese Tools können Anforderungen in großen Dateisystemen parallel ausführen. Dadurch wird die Performance für Datenschutzvorgänge maximiert.

Das Toolkit enthält:

  • partar: Mit diesem Befehl können Sie tarballs parallel erstellen und extrahieren.
    Hinweis

    Das Tool partar unterstützt die Extraktion von tar-Dateien, die im Format GNU Basic tar POSIX 1003.1-1990 erstellt wurden. In anderen Archivformaten erstellte Dateien wie PAX werden nicht unterstützt.
  • parrm: Mit diesem Befehl können Sie ein Verzeichnis rekursiv im Parallelverfahren entfernen.
  • parcp: Mit diesem Befehl können Sie ein Verzeichnis rekursiv im Parallelverfahren kopieren.

Parallel File Tools installieren

Die Toolsuite wird als RPM für Oracle Linux, Red Hat Enterprise Linux und CentOS verteilt.

So installieren Sie Parallel File Tools auf Linux

So installieren Sie Parallel File Tools auf einer Oracle Linux-Instanz:

  1. Öffnen Sie ein Terminalfenster auf der Zielinstanz.
  2. Geben Sie folgenden Befehl ein:
    sudo yum install -y fss-parallel-tools
So installieren Sie Parallel File Tools auf Oracle Linux 8

So installieren Sie Parallel File Tools auf einer Oracle Linux 8-Instanz:

  1. Öffnen Sie ein Terminalfenster auf der Zielinstanz.
  2. Installieren Sie bei Bedarf mit dem folgenden Befehl das Oracle Linux-Entwickler-Repository:
    dnf install oraclelinux-developer-release-el8
  3. Installieren Sie mit dem folgenden Befehl die Parallel File Tools aus dem Entwickler-Repository:
    dnf --enablerepo=ol8_developer install fss-parallel-tools
So installieren Sie Parallel File Tools auf CentOS und Red Hat 6. x

So installieren Sie Parallel File Tools auf CentOS und Red Hat 6. x:

  1. Öffnen Sie ein Terminalfenster auf der Zielinstanz.
  2. Geben Sie folgenden Befehl ein:
    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
So installieren Sie Parallel File Tools auf CentOS und Red Hat 7. x
  1. Öffnen Sie ein Terminalfenster auf der Zielinstanz.
  2. Geben Sie folgenden Befehl ein:
    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

Tools verwenden - Grundlegende Beispiele

Nachfolgend finden Sie einige einfache Beispiele für die typische Verwendung der verschiedenen Tools in Oracle Cloud Infrastructure File Storage.

So kopieren Sie alle Dateien und Ordner aus einem Verzeichnis in ein anderes Verzeichnis

In diesem Beispiel wird parcp verwendet, um das Verzeichnis "folder" aus /source in /destination zu kopieren. Mit der Option -P wird die Anzahl der parallelen Threads festgelegt, die verwendet werden sollen.

$parcp -P 16 /source/folder /destination

Im folgenden Beispiel wird parcp verwendet, um den content des Verzeichnisses "folder" in /source in /destination zu kopieren. Das Verzeichnis "folder" selbst wird nicht kopiert.

$parcp -P 16 /source/folder/. /destination
So erstellen Sie ein TAR-Archiv eines Verzeichnisses
Der folgende Befehl erstellt ein .tar-Archiv des Inhalts des angegebenen Verzeichnisses und speichert es als tarball im Verzeichnis. Im folgenden Beispiel lautet der Name des Verzeichnisses, das zum Erstellen des Tarballs verwendet wird, example.
$partar pcf example.tar example -P 16
Sie können auch einen Tarball erstellen und an ein anderes Verzeichnis senden. Im folgenden Beispiel lautet der Name des Verzeichnisses, das zum Erstellen des Tarballs verwendet wird, example. Der Tarball wird im Verzeichnis /test erstellt.
$partar pcf example.tar example -P 16 -C /test

Tools verwenden - Erweiterte Beispiele

Im Folgenden finden Sie einige Beispiele für die Verwendung der verschiedenen Tools in erweiterten Szenarios.

So kopieren Sie ausgewählte Dateien oder Ordner in ein TAR-Archiv und schließen andere aus

Beim Erstellen eines .tar-Archivs mit partar können Sie angeben, welche Dateien und Ordner einbezogen werden sollen. Beispiel für ein Verzeichnis wie das folgende:

[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

Der folgende Befehl erstellt ein .tar-Archiv, das:

  • ein mydir-Verzeichnis mit dem angegebenen Namen enthält.
  • File1.txt, File2.txt, File3.txt und File4.txt umfasst.
  • Schließt alle .log- und .error-Dateien aus.
  • Der .tar Ball wird von /sourcedir an /mnt/destinationdir gesendet.
  • das .tar-Archiv extrahiert.
[opc@example sourcedir]$ sudo partar cf - mydir --exclude '*.log*' --exclude '*.err*' | sudo partar xf - -C /mnt/destinationdir

Wenn Sie ls -l auf /mnt/destinationdir/mytar ausführen, sehen Sie, dass nur die gewünschten Dateien kopiert wurden.

[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

Wenn Sie ein Verzeichnis oder eine Datei aus dem Archiv ausschließen, geben Sie nur den Namen des Verzeichnisses oder der Datei an. Die Option --exclude unterstützt nicht die Angabe eines absoluten Pfades. Wenn Sie in der Option --exclude einen absoluten Pfad verwenden, werden das angegebene Verzeichnis oder die angegebenen Dateien nicht aus dem .tar-Archiv ausgeschlossen. Beispiel: Wenn Sie ein Verzeichnis mit dem Namen testing aus dem Pfad des Quellverzeichnisses ausschließen möchten, geben Sie dies wie folgt in einem Befehl an:

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

Alle Dateien oder Verzeichnisse im Quellverzeichnispfad, die dem Muster --exclude entsprechen, werden aus dem partar-Archiv ausgeschlossen.
So kopieren Sie ausgewählte Dateien oder Ordner aus einem Verzeichnis in ein anderes Verzeichnis

Wenn Sie parcp zum Kopieren von einem Verzeichnis in ein anderes Verzeichnis verwenden, können Sie angeben, welche Dateien und Ordner einbezogen werden sollen. Beispiel für ein Verzeichnis wie das folgende:

[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

Erstellen Sie zunächst eine .txt-Datei mit einer Liste der auszuschließenden Dateien. In diesem Beispiel ist es /home/opc/list.txt.

Mit dem folgenden Befehl wird der Inhalt aus sourcedir in /mnt/destinationdir kopiert. Dabei gilt:

  • File1.txt, File2.txt und File3.txt werden kopiert.
  • File4.txt und die .log- und .error-Dateien werden ausgeschlossen, wie in /home/opc/list.txt angegeben.
[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
Wenn Sie ls -l auf /mnt/destinationdir ausführen, sehen Sie, dass nur die gewünschten Dateien kopiert wurden.
[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
So verwenden Sie PARCP als effektive Alternative zu RSYNC im Parallelverfahren

Die Option --restore in parcp ähnelt der Verwendung der Optionen -a -r -x und -H in rsync. (Weitere Informationen finden Sie auf der Linux-Manpage für rsync(1).) Mit der Option -P wird die Anzahl der parallelen Threads festgelegt, die verwendet werden sollen.

Die Option restore umfasst das folgende Verhalten:

  • Verzeichnisse rekursiv durchlaufen
  • An Dateisystemgrenzen stoppen
  • Hardlinks, Symlinks, Berechtigungen, Änderungszeiten, Gruppen, Eigentümer und spezielle Dateien wie named sockets und fifo-Dateien beibehalten
$parcp -P 16 --restore /source/folder/ /destination

Sie können parcp mit den Optionen --restore und --delete verwenden, um Dateien zwischen einem Quell- und einem Zielordner zu synchronisieren. Dies ist ein guter Ersatz für die parallele Verwendung von rsync. Beim Hinzufügen oder Entfernen von Dateien zu bzw. aus dem Quellverzeichnis können Sie diesen Befehl in regelmäßigen Abständen ausführen, um dieselben Dateien zum Zielverzeichnis hinzuzufügen bzw. daraus zu entfernen. Sie können die Synchronisierung mit dieser Befehlsoption in einem Cron-Job automatisieren.

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