gfprep

## Name

gfprep — replicate Gfarm files in parallel

## Synopsis

`gfprep` [-nqvdpPBU] [-mx] [-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`] [-N `num-of-replicas`] `path`

## DESCRIPTION

gfprep creates replicas of Gfarm files in parallel.

When the `path` specifies a directory, files under the directory will be replicated recursively.

`Path` can be specified by a Gfarm URL or a path on a mount point of gfarm2fs.

A set of source/destination hosts can be specified by a domain name and/or a hostlist file. When both a domain name and a hostlist file are specified, a set of hosts is determined by both conditions. When a set of source hosts is specified, only files stored on the source hosts are replicated.

Less busy file system nodes will be selected for source or destination. The maximum number of parallel replications/copies per host is the number of CPUs. Please see the manual page of gfhost for information about the number of CPUs.

gfprep also retrieves the directory entries in parallel.

## GFPREP OPTIONS

These are options only for gfprep.

`-N` `num-of-replicas`

  Specifies the required number of file replicas. If there are a sufficient number of replicas in the destination hosts, neither any copying nor any removal will be done.

  If this option is not specified, -N 1 is assumed.

`-x`

  Removes extra file replicas when a set of destination nodes has more file replicas than specified by the -N option.

`-m`

  Migrates file replicas from a set of source nodes to destination nodes. When specifying twice like -mm, it leaves the source file replica.

  This option requires at least one of -S, -h, -D, and -H options.

  This option and the -N option are mutually exclusive.

## COMMON OPTIONS

The following options are common options for gfprep and gfpcopy.

`-X` `regexp`

  Skips files matched by the pattern of `regexp`. When multiple patterns need to be specified, specify -X options multiple times.

`-S` `source-domainname`

  Creates file replicas or copies files only stored on the hosts in the specified domain name.

`-h` `source-hostfile`

  Creates file replicas or copies files only stored on the hosts listed in the specified hostfile. The `source-hostfile` consists of a file system node name on each line.

  If ``-'' is specified, standard input is used to read the host list.

`-L`

  Creates file replicas or copies files from the hosts specified by the -S or -h option.

`-D` `destination-domainname`

  Specifies the domain name for destination.

  If neither this nor the `-H` option is specified, replicas may be copied to any available host.

`-H` `destination-hostfile`

  Specifies a file which describes hostnames for destination. The `destination-hostfile` consists of a file system node name on each line.

  If ``-'' is specified, standard input is used to read the host list.

`-j` `num-of-processes`

  Specifies the maximum number of processes to create file replicas (or copy files) simultaneously.

  The default value is the parameter of client_parallel_copy in gfarm2.conf. (see man gfarm2.conf)

  The maximum number of process per file system node for source or destination is the number of CPUs (see man gfhost).

`-J` `num-of-processes`

  Specifies the number of processes to retrieve directory entries in parallel.

  The default value is 8.

`-M` `total-byte`

  Specifies the total file size in bytes to replicate or copy. This option is useful to increase the available capacity by moving the specified bytes of files.

  The default value is unlimited.

`-z` `minimum-byte`

  Specifies the minimum file size in bytes to replicate or copy. This option is useful not to replicate or copy small files.

  The default value is unlimited.

`-Z` `maximum-byte`

  Specifies the maximum file size in bytes to replicate or copy. This option is useful not to replicate or copy large files.

  The default value is unlimited.

`-w` `way-of-scheduling`

  Specifies a scheduling method. ``noplan'' replicates/copies while finding files. ``greedy'' schedules greedily the order of replication/copy beforehand.

  The default behavior is ``noplan''.

  ``greedy'' scheduling cannot use with the -N option and -m option.

`-W` `kibibytes`

  Specifies a threshold size/cost(KiB) to flat costs of Connections. A Connection means a scheduling information to assign files per a child-process

  This option is effective with -w greedy.

  The default value is 50*1024 KiB (50 MiB).

`-I` `sec-to-update`

  Specifies the interval in seconds to collect load average and available capacity.

  Default is 300 seconds.

`-B`

  Gfarm 2.6.16 or later does not select high loaded file system nodes. This option disables this feature.

  High loaded node is defined by having more CPU load than schedule_busy_load_thresh * number of CPUs. For details of schedule_busy_load_thresh, refer to a manual page of gfarm2.conf.

`-U`

  Disables checking the available disk space of the selected node every time.

`-F` `num-of-dirents`

  Specifies the number of readahead entries to retrieve the directory entries.

  The default value is 10000.

`-s` `kilobytes-per-second`

  Specifies a throughput(KB/s) to simulate the replication/copy, and does nothing (gets file information only).

`-n`

  Does nothing.

`-p`

  Reports the total performance information.

`-P`

  Reports the performance information for each file and all files.

`-q`

  Suppresses non-error messages.

`-v`

  Displays verbose output.

`-d`

  Displays debug output.

`-?`

  Displays a list of command options.

## EXAMPLES

To replicate files under the directory recursively.

$ gfprep -N 3 gfarm:///dir

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

To replicate a file or remove surplus replicas of the file.

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

To migrate replicas from gfsd1.example.com to other nodes.

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

## NOTES

When the -L or -m option is not specified, a source node is not always selected within a set of specified source file system nodes.

It is better to execute gfprep command near the metadata server. When you need to execute gfprep command far from the metadata server, increase the parallelism by the -j and -J options.

## SEE ALSO

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