gfpcopy [-nqvdpPU] [-X regexp] [-S source-domainname] [-h source-hostfile] [-D destination-domainname] [-H destination-hostfile] [-j num-of-processes] [-J num-of-processes] [-M total-byte] [-z minimum-byte] [-Z maximum-byte] [-w way-of-scheduling] [-W kilobytes-for-threshold] [-s KB/s-to-simulate] [-F num-for-readahead] [-f] [-b bufsize] [-e] [-k] source-path destination-path
gfpcopy は、複数のファイルを並列にコピーします。
source-path
がディレクトリの場合は、その下にあるすべてのファイルとディ
レクトリをコピーします。
destination-path が存在しない場合は、
ディレクトリを作成します。
destination-path が存在する場合は、
そのディレクトリの下にsource-path
と同名のディレクトリを作成します。
作成先のホスト群を指定することにより、コピーしたファイルを格納するホス トを指定することができます。ホスト群は、ドメイン名か、ホスト名を行ごと に記述したホストファイルで指定します。ドメイン名とホストファイルを両方 指定した場合は、両方の条件に合うホスト群が選ばれます。また、作成元のホ スト群も指定可能です。その場合、そのホスト群に存在するファイルのみコピー されます。
gfpcopy は、ディレクトリを辿る際に、ディレクトリエントリ情報も並列に 取得します。
source-path には以下を指定できます。
なお、HPSS上のファイルはコピーでき
ません。
パス名ローカルファイルシステム上のパスを絶対パスまたは相対パスで指定しま す。そのパスが gfarm2fs のマウントポイントの場合は、gfarm2fsを経由 せずに Gfarm からコピーします。
gfarm:...Gfarm URL で指定します。
file:...ローカルファイルシステム上のパスを URL で指定します。
destination-path
には以下を指定できます。
パス名ローカルファイルシステム上のディレクトリを絶対パスまたは相対パスで 指定します。そのパスが gfarm2fs のマウントポイントの場合は、 gfarm2fs を経由せずに Gfarm へコピーします。
gfarm:...ディレクトリを Gfarm URL で指定します。
file:...ローカルファイルシステム上のディレクトリを URL で指定します。
hpss:...
HPSS 上に存在するディレクトリを URL で指定します。
その下に source-path
と同名のディレクトリが存在する場合はエラーになります。
HPSS に対して差分コピーはできません。
hpss:. や hpss:dir のように
相対パスで指定することもできます。
以下は gfpcopy 専用のオプションです。
-b bufsizeコピー時に使用するバッファサイズを指定します。 デフォルトは 64 KiByte (64 * 1024) です。
-f-f オプションを指定する場合、コピー先のファイルとコピー元のファイル が、サイズまたは mtime が異なる場合に上書きします。
-f オプションを指定しない場合、コピー先のほうが mtime が古い場合 に、上書きします。
-egfpcopy を複数同時に実行するために、コピー先にファイルが存在すれば 無視します。
-kシンボリックリンクをコピーしません。
gfprep と gfpcopy には、 共通で利用できるオプションがあります。
-X regexp
regexpで指定した正規表現による
パターンと一致するパス名を無視しま
す。
複数個のパターンを指定する場合は、-X オプションを複数回指定し
ます。
-S source-domainname指定されたドメイン名に格納されているファイルだけを複製作成、コピー の対象にします。
-h source-hostfile指定されたホストファイルのホストに格納されているファイルだけを複 製作成、コピーの対象にします。ホストファイルには、ホストを一行ず つ記述します。
``-'' を指定すると、ホスト名のリストを標準入力から読み込みます。
-L-S または -h で指定したホストから複製、コピーを作成します。
-D destination-domainname指定されたドメイン名のホストに複製、コピーを作成します。
このオプションも -H オプションも指定しない場合、利用可能な全ホスト を対象に複製、コピーを作成します。
-H destination-hostfile指定されたホストファイルのホストに複製、コピーを作成します。ホスト ファイルには、ホストを一行ずつ記述します。
``-'' を指定すると、ホスト名のリストを標準入力から読み込みます。
-j num-of-processes同時に複製作成やコピーをする際の最大並列数を指定します。
デフォルト値は gfarm2.conf の client_parallel_copy パラメータです。 最大値は gfarm2.conf の client_parallel_max パラメータです。 詳細 は gfarm2.conf のマニュアルを参照してください。
作成元または作成先のホストごとの最大並列数は、CPU 数です。 CPU 数 については、gfhost のマニュアルを 参照してください。
-J num-of-processes並列にディレクトリを辿るための並列数を指定します。
デフォルト値は 8 です。
-M total-byteファイル複製、またはコピーするファイルの合計のバイト数を指定します。 あるホストに格納されているファイルの容量を、指定バイト数移動して減 らしたいときなどに便利です。
デフォルトでは制限しません。
-z minimum-byteファイル複製、またはコピーするファイルの最低サイズをバイト単位 で指定します。小さいファイルはファイル複製やコピーの対象外とし たいときに便利です。
デフォルトでは制限しません。
-Z maximum-byteファイル複製、またはコピーするファイルの最大サイズをバイト単位 で指定します。大きいファイルはファイル複製やコピーの対象外とし たいときに便利です。
デフォルトでは制限しません。
-w way-of-schedulingスケジューリング方法を指定します。 noplan にすると、ファイルを 見つけながら、複製作成またはコピーします。 greedy にすると、複 製作成やコピーする前に、貪欲法によってスケジューリングします。
デフォルトは noplan です。
greedy にすると、-N や -m オプションを使用することができません。
-W kibibytes各 Connection のコスト(合計ファイルサイズ)を平均とみなすまでの 閾値をキビバイトで指定します。Connection とは、子プロセスごとに ファイルを割り当てるための、計画情報です。
-w greedy オプションを使用した場合のみ効果があります。
デフォルトは 50 * 1024 キビバイト (50 メビバイト) です。
-I sec-to-update各ホストのロードアベレージやディスクの空き容量を定期的に取得する 間隔を秒単位で指定します。
デフォルトは 300 秒です。
-B高負荷なホストも作成先の対象にします。
デフォルトでは高負荷なホストを作成先の対象にしません。そのため、 すべてのホストが高負荷の場合はファイル複製、コピーは行われません。
高負荷なホストとは、(ロードアベレージ / CPU 数) が gfarm2.conf の schedule_busy_load_thresh よりも高いホストです。 schedule_busy_load_thresh のデフォルト値は gfarm2.conf のマニュ アルを参照してください。 CPU 数については gfhost のマニュアルを 参照してください。
-Uホストのディスクの空き容量を毎回チェックしなくなります。
-F num-of-direntsディレクトリエントリの情報を先読みする数を指定します。
デフォルトは 10000 です。
-s kilobytes-per-secondシミュレーションする際の転送速度を KB/s で指定します。 実際にはコピーせず、ファイル情報を取得するのみになります。
-n何もしません。 ディレクトリを辿るだけです。
-p性能の総合結果を報告します。
-P性能に関してファイルごとの結果と総合結果を報告します。
-q警告を表示しません。
-v冗長な情報を出力します。
-dデバッグ情報を出力します。
-?コマンドオプションを出力します。
ディレクトリ以下すべてをコピーします。
$ gfpcopy gfarm:///dir file:///tmp/dir
$ gfpcopy file:///tmp/dir gfarm:///dir
$ gfpcopy gfarm:///dir1 gfarm:///dir2
$ gfpcopy gfarm:///dir hpss:///tmp/dir
$ cd /mnt/gfarm2fs
$ gfpcopy dir /tmp/dir
一つのファイルをコピーします。
$ gfpcopy gfarm:///dir/file file:///dir
$ cd /mnt/gfarm2fs
$ gfpcopy file /tmp/dir