ファイル・ストレージのパラレル・ツールの使用

パラレル・ファイル・ツール・スイートは、tarrmおよびcpのパラレル・バージョンを提供します。これらのツールは大きなファイル・システムに対するリクエストをパラレル実行できるため、データ保護操作のパフォーマンスを最大化できます。

ツールキットには次のものが含まれています:

  • partar: tarballsをパラレルで作成および抽出するには、このコマンドを使用します。
    ノート

    partarツールは、GNU基本 tar POSIX 1003.1- 1990形式で作成された tarファイルの抽出をサポートします。PAXなどのほかのアーカイブ形式で作成されたファイルはサポートされていません。
  • parrm: このコマンドを使用して、ディレクトリをパラレルで再帰的にremoveできます。
  • parcp: ディレクトリをパラレルに再帰的にcopyするには、このコマンドを使用します。

Parallel File Toolsのインストール

ツール・スイートは、Oracle Linux、Red Hat Enterprise LinuxおよびCentOSのRPMとして配布されます。

Linuxにパラレル・ファイル・ツールをインストールするには

Oracle Linuxインスタンスにパラレル・ファイル・ツールをインストールするには:

  1. 宛先インスタンスでターミナル・ウィンドウを開きます。
  2. 次のコマンドを入力します。
    sudo yum install -y fss-parallel-tools
Oracle Linuxにパラレル・ファイル・ツールをインストールするには 8

Oracle Linux 8インスタンスにパラレル・ファイル・ツールをインストールするには:

  1. 宛先インスタンスでターミナル・ウィンドウを開きます。
  2. 次のコマンドを使用して、必要に応じて Oracle Linux開発者リポジトリをインストールします。
    dnf install oraclelinux-developer-release-el8
  3. 次のコマンドを使用して、開発者リポジトリからパラレル・ファイル・ツールをインストールします。
    dnf --enablerepo=ol8_developer install fss-parallel-tools
CentOSおよびRed Hat 6.xにパラレル・ファイル・ツールをインストールするには

CentOSおよびRed Hat 6.xにパラレル・ファイル・ツールをインストールするには:

  1. 宛先インスタンスでターミナル・ウィンドウを開きます。
  2. 次のコマンドを入力します。
    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
CentOSおよびRed Hat 7.xにパラレル・ファイル・ツールをインストールするには
  1. 宛先インスタンスでターミナル・ウィンドウを開きます。
  2. 次のコマンドを入力します。
    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

ツールの使用-簡単な例

Oracle Cloud Infrastructure File Storageでの様々なツールの一般的な使用方法の簡単な例をいくつか示します。

あるディレクトリから別のディレクトリにすべてのファイルとフォルダをコピーするには

この例では、parcpを使用して、/source内のディレクトリ「フォルダ」を /destinationにコピーします。-Pオプションは、使用する並列スレッドの数を設定するために使用します。

$parcp -P 16 /source/folder /destination

次の例では、parcpを使用して、/source内のディレクトリ「フォルダ」の contents/destinationにコピーします。"folder"ディレクトリ自体はコピーされません。

$parcp -P 16 /source/folder/. /destination
ディレクトリの.TARアーカイブを作成するには
次のコマンドは、指定されたディレクトリの内容の.tarアーカイブを作成し、ディレクトリにtarballとして格納します。次の例では、tarballの作成に使用されるディレクトリの名前は exampleです。
$partar pcf example.tar example -P 16
tarballを作成して別のディレクトリに送信することもできます。次の例では、tarballの作成に使用されるディレクトリはです。tarballを/testディレクトリに作成しています。
$partar pcf example.tar example -P 16 -C /test

ツールの使用-高度な例

より高度なシナリオで様々なツールがどのように使用されるかの例を次に示します。

選択したファイルまたはフォルダを.TARアーカイブにコピーし、他のファイルまたはフォルダを除外するには

partarを使用して.tarアーカイブを作成するときに、どのファイルおよびフォルダを含めるかを指定できます。次のようなディレクトリがあるとします。

[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

次のコマンドは、次の.tarアーカイブを作成します。

  • 指定したmydirディレクトリが含まれます。
  • File1.txtFile2.txtFile3.txt、および File4.txtが含まれます。
  • すべての.logおよび.errorファイルを除外します。
  • .tarボールを/sourcedirから/mnt/destinationdirに送信します
  • .tarアーカイブを抽出します
[opc@example sourcedir]$ sudo partar cf - mydir --exclude '*.log*' --exclude '*.err*' | sudo partar xf - -C /mnt/destinationdir

/mnt/destinationdir/mytarls -lを実行すると、目的のファイルのみがコピーされていることが示されます。

[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

アーカイブからディレクトリまたはファイルを除外する場合は、ディレクトリまたはファイルの名前のみを指定します。--excludeオプションは絶対パスの使用をサポートしていません。--excludeオプションの絶対パスを使用すると、指定されたディレクトリまたはファイルが .tarアーカイブから除外されることはありません。たとえば、ソースディレクトリのパスから testingというディレクトリを除外する必要がある場合は、次のようなコマンドでこれを指定します。

sudo partar pczf name_of_tar_file.tar.gz /<path_source_directory> --exclude=testing
ノート

ソース・ディレクトリのパスの下にある--excludeパターンに一致するすべてのファイルまたはディレクトリは、partarアーカイブから除外されます。
選択したファイルまたはフォルダをディレクトリ間でコピーするには

parcpを使用してディレクトリ間でコピーするときに含めるファイルおよびフォルダを指定できます。次のようなディレクトリがあるとします。

[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

まず、除外するファイルのリストを含む.txtファイルを作成します。この例では、/home/opc/list.txtです。

次のコマンドは、sourcedirから /mnt/destinationdirに内容をコピーします。

  • File1.txt、File2.txtおよびFile3.txtをコピーします。
  • File4.txt、 .logおよび.errorファイルを除外します(/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
/mnt/destinationdirls -lを実行すると、目的のファイルのみがコピーされていることが示されます。
[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
RSYNCの有効な代替手段としてPARCPをパラレルで使用するには

parcp--restoreオプションは、rsync-a -r -xおよび-Hオプションの使用に似ています。rsync (1) - Linuxのマニュアルページを参照してください。)-Pオプションは、使用するパラレル・スレッドの数を設定するために使用します。

restoreオプションには、次の動作が含まれます。

  • ディレクトリ内を再帰
  • ファイルシステム境界で停止
  • ハード・リンク、シンボリック・リンク、権限、変更時間、グループ、所有者、およびnamed socketsファイルやfifoファイルなどの特殊ファイルを保持します。
$parcp -P 16 --restore /source/folder/ /destination

parcp--restoreおよび--deleteオプションとともに使用して、ソース・フォルダとターゲット・フォルダ間でファイルを同期できます。これは、rsyncを並行して使用する場合に適しています。ソース・ディレクトリに対してファイルが追加または削除されると、このコマンドを定期的に実行して、宛先ディレクトリに対して同じファイルを追加または削除できます。cronジョブでこのコマンド・オプションを使用すると、同期を自動化できます。

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