14 Jan 2017
gfprep 1 Gfarm
gfprep ファイルの複製を並列に作成する
`gfprep` -nqvdpPBU -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 -I sec-to-update -mx -N num-of-replicas path

## DESCRIPTION

`gfprep` は、ファイルの複製を並列に作成します。

path がディレクトリの場合、 その下にあるすべてのファイルに対する複製を 作成します。

path には、 Gfarm URL または gfarm2fs 上のパスを指定できます。

作成先のホスト群を指定することにより、ファイルの複製を作成するホストを 指定することができます。ホスト群は、ドメイン名か、ホスト名を行ごとに記 述したホストファイルで指定します。ドメイン名とホストファイルを両方指定 した場合は、両方の条件に合うホスト群が選ばれます。また、作成元のホスト 群も指定可能です。その場合、そのホスト群に存在するファイルのみ複製が作 成されます。

`gfprep`は、なるべく複製を作成中ではないホストを選択してファイル複製を作 成します。作成元や作成先 1 ホストあたりの最大並列転送数は、ホストごと の CPU数です。 CPU 数については、`gfhost` コマンドのマニュアルを参照して ください。

`gfprep` は、ディレクトリを辿る際に、 ディレクトリエントリ情報も並列に取 得します。

## GFPREP OPTIONS

以下は `gfprep` 専用のオプションです。

`-N` num-of-replicas

  ファイル複製数を指定します。 作成先のホスト群に十分な数の複製が存 在する場合、複製作成も複製削除も、どちらもしません。

  このオプションを指定しない場合は、-N 1 を指定したことになります。

`-x`

  -N オプションで指定された数よりも多くのファイル複製が作成先のホス ト群に存在する場合は、余分なファイル複製を削除します。

`-m`

  作成元から作成先にファイルの複製を移動します。 -mm のように 2 回指 定すると、作成元のファイルの複製を削除しません。

  -S, -h, -D, -H のいずれかのオプションが必要です。

  このオプションと -N オプションは、どちらか一方を使用できます。

## COMMON OPTIONS

`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`

  デバッグ情報を出力します。

`-?`

  コマンドオプションを出力します。

## EXAMPLES

ディレクトリ以下すべてのファイルの複製を作成します。

    $ gfprep -N 3 gfarm:///dir

    $ cd /mnt/gfarm2fs
    $ gfprep -N 3 dir

足りなければ複製を増やし、余分な複製があれば削除します。

    $ gfprep -N 3 -x gfarm:///dir/file

gfsd1.example.com にある複製を別のノードに移動します。

    $ gfprep -m -S gfsd1.example.com gfarm:///

## NOTES

-L または -m オプションを使用しない場合は、指定した作成元の中から ファイルの複製、コピーが行われるとはとは限りません。

`gfprep` コマンドは、 `gfmd` と同じホストで実行するほうがよいです。 `gfmd` と `gfprep` が距離的に離れている場合には、 `gfprep` の動作が遅くなります。 そのような場合には、-j または -J オプションに大きな値を指定すると、 性能が改善するかもしれません。

## SEE ALSO

gfrep 1 , gfpcopy 1 , gfhost 1 , gfarm2.conf 5