ファイル・ストレージのパラレル・ツールの使用
パラレル・ファイル・ツール・スイートは、tar
、rm
および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として配布されます。
Oracle Linuxインスタンスにパラレル・ファイル・ツールをインストールするには:
- 宛先インスタンスでターミナル・ウィンドウを開きます。
- 次のコマンドを入力します。
sudo yum install -y fss-parallel-tools
Oracle Linux 8インスタンスにパラレル・ファイル・ツールをインストールするには:
- 宛先インスタンスでターミナル・ウィンドウを開きます。
- 次のコマンドを使用して、必要に応じて Oracle Linux開発者リポジトリをインストールします。
dnf install oraclelinux-developer-release-el8
- 次のコマンドを使用して、開発者リポジトリからパラレル・ファイル・ツールをインストールします。
dnf --enablerepo=ol8_developer install fss-parallel-tools
CentOSおよびRed Hat 6.xにパラレル・ファイル・ツールをインストールするには:
- 宛先インスタンスでターミナル・ウィンドウを開きます。
- 次のコマンドを入力します。
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
- 宛先インスタンスでターミナル・ウィンドウを開きます。
- 次のコマンドを入力します。
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
アーカイブを作成し、ディレクトリにtarball
として格納します。次の例では、tarballの作成に使用されるディレクトリの名前は exampleです。
$partar pcf example.tar example -P 16
$partar pcf example.tar example -P 16 -C /test
ツールの使用-高度な例
より高度なシナリオで様々なツールがどのように使用されるかの例を次に示します。
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.txt、File2.txt、File3.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/mytarでls -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
ls -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
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