ファイル・ストレージのパラレル・ツールの使用
パラレル・ファイル・ツール・スイートは、tar
、rm
およびcp
のパラレル・バージョンを提供します。これらのツールは大きなファイル・システムに対するリクエストをパラレル実行できるため、データ保護操作のパフォーマンスを最大化できます。
ツールキットには次のものが含まれています:
partar
: tarballsをパラレルで作成および抽出するには、このコマンドを使用します。ノート
partar
ツールでは、GNUの基本的なtar
POSIX 1003.1-1990形式で作成されたtar
ファイルの抽出がサポートされています。他のアーカイブ形式(PAX
など)で作成されたファイルはサポートされていません。parrm
: このコマンドを使用して、ディレクトリをパラレルで再帰的にremoveできます。parcp
: ディレクトリをパラレルに再帰的にcopyするには、このコマンドを使用します。
パラレル・ファイル・ツールのインストール
ツール・スイートは、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
内のディレクトリ"folder"を/destination
にコピーします。-P
オプションは、使用するパラレル・スレッドの数を設定するために使用します。
$parcp -P 16 /source/folder /destination
次の例では、parcp
を使用して、/source
内のディレクトリ"folder"のコンテンツを/destination
にコピーします。"folder"ディレクトリ自体はコピーされません。
$parcp -P 16 /source/folder/. /destination
.tar
アーカイブを作成し、それをtarball
としてディレクトリに格納します。次の例では、tarballの作成に使用されるディレクトリの名前はexample
です。 $partar pcf example.tar example -P 16
example
です。tarballは/test
ディレクトリ内に作成されます。$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
がコピーされます。/home/opc/list.txt
に示すように、File4.txt
ファイル、.log
ファイル、.error
ファイルが除外されます。
[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/destinationdir
で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のmanページを参照してください。)-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