<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">


<refentry id="gfarm2.conf.5">

<refentryinfo><date>17 Sep 2020</date></refentryinfo>

<refmeta>
<refentrytitle>gfarm2.conf</refentrytitle>
<manvolnum>5</manvolnum>
<refmiscinfo>Gfarm</refmiscinfo>
</refmeta>

<refnamediv id="name">
<refname>gfarm2.conf</refname>
<refpurpose>Gfarm configuration file</refpurpose>
</refnamediv>

<!-- body begins here -->

<refsect1 id="description"><title>DESCRIPTION</title>
<para>
gfarm2.conf is a text file that contains a Gfarm configuration.  
Gfarm server processes gfmd and gfsd refer to %%SYSCONFDIR%%/gfmd.conf
and %%SYSCONFDIR%%/gfarm2.conf, respectively, by default.
Since this configuration file is only read at startup, it is necessary
to restart servers when the contents of the configuration file are
updated.
</para>

<para>
Application programs, such as gfls and gfhost, refer to both
%%SYSCONFDIR%%/gfarm2.conf, and a file specified by an environment variable,
GFARM_CONFIG_FILE. If both configuration files exist, the file
specified by the environment variable, GFARM_CONFIG_FILE, is read
first. Both files have the same grammar.
If the environment variable GFARM_CONFIG_FILE doesn't exist,
 ~/.gfarm2rc in a user's home directory is used instead.
</para>

<para>
Each line of gfarm2.conf consists of one statement.  When the
line ends with the character ``\'', the line continues for the next
line.  A word beginning with ``#'' causes that word and all remaining
characters on that line to be ignored.
</para>

</refsect1>

<refsect1 id="hostspecification"><title>Host_specification</title>
<para><parameter moreinfo="none">Host_specification</parameter> has the following
forms.</para>
<variablelist>

<varlistentry>
<term><parameter moreinfo="none">III.JJJ.KKK.LLL</parameter></term>
<listitem>
<para>Specifies an IP address with four octets from 0 to 255, separated
by ".".</para>
</listitem>
</varlistentry>

<varlistentry>
<term><parameter moreinfo="none">III.JJJ.KKK.LLL</parameter>/<parameter moreinfo="none">MM</parameter></term>
<listitem>
<para>Specifies a network address with an IP address and a netmask
from 0 to 31 separated by "/".</para>
</listitem>
</varlistentry>

<varlistentry>
<term><parameter moreinfo="none">domain.name</parameter></term>
<listitem>
<para>Specifies a host name.</para>
</listitem>
</varlistentry>

<varlistentry>
<term> <parameter moreinfo="none">.domain.name</parameter></term>
<listitem>
<para>Specifies all hosts which belong to the domain.name.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><emphasis>*</emphasis></term>
<listitem>
<para>Specifies all hosts.</para>
</listitem>
</varlistentry>

</variablelist>
</refsect1>

<refsect1 id="statement"><title>Statement</title>
<para>The following statements are supported.</para>
<variablelist>

<varlistentry>
<term><token>include</token> <parameter moreinfo="none">pathname</parameter></term>
<listitem>
<para>
The file specified by the pathname parameter will be read
as a configuration file.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	include /etc/gfarm2.common.conf
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>include_nesting_limit</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
This directive specifies the upper limit of nesting level of
the <token>include</token> statement.
The default limit is 20 level.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	include_nesting_limit 30
</literallayout>
</listitem>
</varlistentry>


<varlistentry>
<term><token>spool</token> <parameter moreinfo="none">directory</parameter></term>
<listitem>
<para>The <token>spool</token> statement specifies a spool directory
for a Gfarm filesystem on this filesystem node.
This statement can be specified multiple times to specify multiple spool directories up to five.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool /var/spool/gfarm
</literallayout>
</listitem>
</varlistentry>
  
<varlistentry>
<term><token>spool_server_listen_address</token> <parameter moreinfo="none">IP-address</parameter></term>
<listitem>
<para>The <token>spool_server_listen_address</token> statement specifies
the IP address at which the gfsd accepts TCP and UDP requests.
The default address is all IP addresses of the host.
This option is useful when one wants to invoke multiple gfsd
to provide multiple spool directories on the host.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_server_listen_address 192.168.121.1
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_server_listen_backlog</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
This statement specifies the second parameter of the
<citerefentry>
<refentrytitle>listen</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>
system call that gfsd invokes.
The default value is SOMAXCONN (typically 128, but depends on the OS) on OSes which define this symbol in &lt;sys/socket.h&gt;, or 5 if it's undefined.
</para>
<para>
On an environment which has many gfarm clients, it's recommened to increase this value after increasing system limit.
</para>
<para>
This parameter is only available in gfarm2.conf, and ignored in gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_server_listen_backlog 128
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_server_cred_type</token> <parameter moreinfo="none">cred_type</parameter></term>
<listitem>
<para>
This statement specifies the type of credential used by gfsd for GSI
authentication.
This is ignored when you are using <token>sharedsecret</token> 
authentication.
</para>
<para>
If this statement isn't used on the server side, the server uses
a host certificate, if the server is invoked with root privileges.
Or, if the server is invoked as a non-privileged user, the server
uses the user's certificate.
</para>
<para>
If this statement isn't used on the client side, the client assumes
that the server that the client is going to connect is using
a host certificate of the server host. Thus, if the server is not
invoked with root privileges, but invoked with user privileges where
the user is the same as the user who invoked the client, the client
side needs to specify the following one line.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	spool_server_cred_type self
</literallayout>
<para>
The possible types of <parameter moreinfo="none">cred_type</parameter> are
``<token>self</token>'', 
``<token>host</token>'', ``<token>user</token>'' and 
``<token>mechanism-specific</token>''.
And those are used with the <token>spool_server_cred_service</token>
and <token>spool_server_cred_name</token> statements as follows:
</para>
<variablelist>
<varlistentry>
<term><token>self</token></term>
<listitem>
<para>
This keyword specifies that the certificate that the user currently
has is used.
You must not use either the 
<token>spool_server_cred_service</token> or
<token>spool_server_cred_name</token> statement,
if you are using this type.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><token>host</token></term>
<listitem>
<para>
This keyword specifies that a host certificate or a service certificate
is used.
To choose a service certificate, the name of the service may be specified
by the <token>spool_server_cred_service</token> statement.
If ``<token>host</token>'' is specified as the service name, a host certificate
in the file ``<filename moreinfo="none">/etc/grid-security/hostcert.pem</filename>'' will
be used.
If any server name other than ``<token>host</token>'' is specified,
a service certificate in the file
``<filename moreinfo="none">/etc/grid-security/SERVICE/SERVICEcert.pem</filename>''
will be used.
If the service name is omitted, ``<token>host</token>'' will be used as
the service name by default.
Only the Common Name field of a certificate will be used to check
the server's identity for both a host certificate and a service certificate.
And the Common Name field must be in the ``CN=SERVERNAME/HOSTNAME'' format.
Also, the hostname must match the canonical name configured by
the <command moreinfo="none">gfhost</command> command exactly.  Alias hostnames are not allowed.
</para>
<para>
This feature corresponds to the GSS_C_NT_HOSTBASED_SERVICE feature in GSSAPI
(RFC2743/RFC2744).
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	spool_server_cred_type host
	spool_server_cred_service host
</literallayout>
</listitem>
</varlistentry>
<varlistentry>
<term><token>user</token></term>
<listitem>
<para>
This keyword specifies that a user certificate is used.
The account name of the user may be specified by the
<token>spool_server_cred_name</token> statement.
If the account name is omitted, the user who invoked the command
will be used by default.
You must not specify a service name using
the <token>spool_server_cred_service</token> statement, if you are using
a user certificate.
</para>
<para>
To map from the account name to a Distinguished Name of a certificate,
file ``<filename moreinfo="none">/etc/grid-security/grid-mapfile</filename>'' is used.
Thus, if there isn't such a file, or if the user isn't specified in this file,
this feature cannot be used.
</para>
<para>
This feature corresponds to the GSS_C_NT_USER_NAME feature in GSSAPI
(RFC2743/RFC2744).
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	spool_server_cred_type user
	spool_server_cred_name guest
</literallayout>
</listitem>
</varlistentry>
<varlistentry>
<term><token>mechanism-specific</token></term>
<listitem>
<para>
This keyword specifies that <token>spool_server_cred_name</token>
is treated as a raw X.509 Distinguished Name serving as a server's
certificate.
You must not specify a service name using a
<token>spool_server_cred_service</token> statement, if you are using
this type.
</para>
<para>
This feature corresponds to a case where GSS_C_NO_OID is specified
as a Name Type in GSSAPI (RFC2743/RFC2744).
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	spool_server_cred_type mechanism-specific
	spool_server_cred_name "/O=Grid/O=Globus/OU=example.com/CN=John Smith"
</literallayout>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_server_cred_service</token> <parameter moreinfo="none">cred_service</parameter></term>
<listitem>
<para>
This statement specifies the service name of a service certificate
used by gfsd for GSI authentication, when ``<token>host</token>'' is specified
in <token>spool_server_cred_type</token> statement.
This is ignored when you are using <token>sharedsecret</token> 
authentication.
Please read the description of the <token>spool_server_cred_type</token> 
statement for details.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_server_cred_name</token> <parameter moreinfo="none">cred_name</parameter></term>
<listitem>
<para>
This statement specifies the setting of a certificate used by gfsd
for GSI authentication. What this setting means depends on the type
specified in the <token>spool_server_cred_type</token> statement.
This is ignored when you are using <token>sharedsecret</token> 
authentication.
Please read the description of the <token>spool_server_cred_type</token> 
statement for details.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_server_back_channel_rcvbuf_limit</token> <parameter moreinfo="none">size_limit</parameter></term>
<listitem>
<para>This directive specifies the upper limit of SO_RCVBUF
for the back channel socket of gfsd.
By decreasing this value, the number of outstanding requests from gfmd to gfsd
can be limited, and the problem of gfsd back channel disconnection
will be mitigated.
If <token>disable</token> keyword is specified as the parameter,
no limit is applied.
The default limit is 4096 bytes.
</para>
<para>
This parameter is only available in gfarm2.conf which is referred by gfsd,
and ignored clients, and ignored in gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_server_back_channel_rcvbuf_limit 16384
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_server_read_only_retry_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
If there are files still opened and modified when Gfarm is changed
to a read-only file system, these files cannot be closed until Gfarm is
changed to a read-write file system.  This directive specifies the
interval in second for gfsd to check the gfmd status change.
</para>
<para>
The default time is 60 seconds, i.e. one minute.
</para>
<para>
This parameter is only available in gfarm2.conf which is referred by gfsd,
and ignored by clients, and ignored in gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_server_read_only_retry_interval 600
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_check_level</token> <parameter moreinfo="none">level</parameter></term>
<listitem>
<para>
This statement enables the consistency check of files stored in the
spool directory at start-up of gfsd.  The <parameter moreinfo="none">level</parameter>
name corresponds how many -c command-line options are specified to
gfsd, i.e. the level "display" means the -c option, "delete" means the
-cc option, and "lost_found" means the -ccc option, which is the
default.  For detail about the -c option, refer to the manual page of
gfsd(8).  The level "disable" disables the consistency check.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_check_level disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_check_parallel</token> <parameter moreinfo="none">num-of-parallel</parameter></term>
<listitem>
<para>
This directive specifies number of processes of gfsd spool_check.
</para>
<para>
By default, the number of processes is automatically determined by
the spool_check_parallel_per_capacity directive.
</para>
<para>
This directive is only available for gfsd in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_check_parallel 16
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_check_parallel_max</token> <parameter moreinfo="none">num-of-parallel</parameter></term>
<listitem>
<para>
This directive specifies upper limit of number of processes of gfsd spool_check.
This is only effective when the number is automatically determined.
If the number is specified by the spool_check_parallel directive,
spool_check_parallel_max is ignored.
</para>
<para>
The default value is 64.
</para>
<para>
This directive is only available for gfsd in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_check_parallel_max 128
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_check_parallel_per_capacity</token> <parameter moreinfo="none">bytes</parameter></term>
<listitem>
<para>
If the number of process of gfsd spool_check is not specified by
the spool_check_parallel directive, the number will be
total disk capacity of the gfsd spool partition
divided by this setting.
The bytes value may have a suffix like ``k'' (kibibyte),
``M'' (mebibyte), ``G'' (gibibyte) and ``T'' (tebibyte).
</para>
<para>
The default value is 64 tebibytes.
</para>
<para>
This directive is only available for gfsd in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_check_parallel_per_capacity 10T
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_check_parallel_step</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
This directive specifies number of processing unit of each spool_check process.
This parameter doesn't have to be configured usually,
but if network latency between gfmd is high,
increasing this value may make spool_check performance better.
</para>
<para>
The default value is 1.
</para>
<para>
This directive is only available for gfsd in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_check_parallel_step 16
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_base_load</token> <parameter moreinfo="none">load-average</parameter></term>
<listitem>
<para>
This statement specifies the CPU load adding to the real CPU load.
This option is only available for a gfsd node (or a file system node).
The default base load is 0.0.  This option can be used to pretend to
be busy or idle to change the scheduling priority.
</para>
<para>For example,</para>
<literallayout>
	spool_base_load 1.0
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>spool_digest_error_check</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When digest calculation is enabled by the digest directive, the digest
is calculated when reading a whole replica.  If the digest is
incorrect, i.e. the replica is damaged, the damaged replica is moved
to lost+found directory to automatically fix this problem.  This
statement is used to disable this feature.  When it is disabled, the
damaged raplica remains in the spool directory.
</para>
<para>
This option is only available for a gfsd node (or a file system
node).  The default is <token>enable</token>.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	spool_digest_error_check disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_host</token> <parameter moreinfo="none">hostname</parameter></term>
<listitem>
<para>The <token>metadb_server_host</token> statement specifies the
host name on which gfmd is running.</para>
<para>This statement cannot be omitted.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_host ldap.example.com
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_port</token> <parameter moreinfo="none">port</parameter></term>
<listitem>
<para>The <token>metadb_server_port</token> statement specifies the tcp
port number the gfmd is listening on.  The default port number is
601.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_port 601
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_cred_type</token> <parameter moreinfo="none">cred_type</parameter></term>
<listitem>
<para>
This statement specifies the type of credential used by gfmd
for GSI authentication.
This is ignored when you are using <token>sharedsecret</token> 
authentication.
Please read the description of the <token>spool_server_cred_type</token> 
statement on the configuration of this statement.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_cred_service</token> <parameter moreinfo="none">cred_service</parameter></term>
<listitem>
<para>
This statement specifies the service name of a service certificate
used by gfmd for GSI authentication, when ``<token>host</token>'' is specified
in <token>metadb_server_cred_type</token> statement.
This is ignored when you are using <token>sharedsecret</token> 
authentication.
Please read the description of the <token>spool_server_cred_type</token> 
statement on the configuration of this statement.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_cred_name</token> <parameter moreinfo="none">cred_name</parameter></term>
<listitem>
<para>
This statement specifies the setting of a certificate used by gfmd
for GSI authentication. What this setting means depends on the type
specified in the <token>metadb_server_cred_type</token> statement.
This is ignored when you are using <token>sharedsecret</token> 
authentication.
Please read the description of the <token>spool_server_cred_type</token> 
statement on the configuration of this statement.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_listen_backlog</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
This statement specifies the second parameter of the
<citerefentry>
<refentrytitle>listen</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>
system call that gfmd invokes.
The default value is SOMAXCONN (typically 128, but depends on the OS) on OSes which define this symbol in &lt;sys/socket.h&gt;, or 5 if it's undefined.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_listen_backlog 128
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_max_descriptors</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>This directive specifies the number of file descriptor limit
for the gfmd metadata server process.  If not specified, the default
limit is min(OS's hard limit, 131072).  You may have to increase
this value on a larger configuration, or decrease on a smaller
configuration.  See Gfarm FAQ to see how to calculate this value.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_max_descriptors 262144
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_stack_size</token> <parameter moreinfo="none">bytes</parameter></term>
<listitem>
<para>This directive specifies the size of each thread in the gfmd 
metadata server process.  If not specified, the default size of the OS
is used.
This parameter is used to cut down the size of virtual memory space
used by gfmd.
</para>
<para>
For example, the default stack size on CentOS 5/i386 is 10 MiB, thus,
you can decrease the size of the virtual memory space of gfmd to 1/40,
by specifying 256 KiB as this parameter.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_stack_size 262144
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_thread_pool_size</token> <parameter moreinfo="none">size</parameter></term>
<listitem>
<para>This directive specifies the maximum number of threads in a
thread pool in the gfmd.  It is effective to specify around the
number of CPU cores of the metadata server node.  Default is 16.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_thread_pool_size 16
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_job_queue_length</token> <parameter moreinfo="none">length</parameter></term>
<listitem>
<para>This directive specifies the length of job queue in the gfmd.
</para>
<para>
It is effective to specify a value which is greater than the maximum number
of clients that access the Gfarm file system at the same time.
</para>
<para>
Because this value has to be greater than
metadb_server_remover_queue_length +
 (simultaneous_replication_receivers + 1) * (number of filesystem nodes)
, you have to configure this setting,
if number of filesystem nodes exceeds 754.
</para>
<para>
Default is 16000.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_job_queue_length 21664
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_remover_queue_length</token> <parameter moreinfo="none">length</parameter></term>
<listitem>
<para>This directive specifies the length of job queue which gfmd uses
for sending replica removal requests to gfsd.
This value should be less than metadb_server_job_queue_length.
Default is 160.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_remover_queue_length 40
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_remove_scan_log_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>This directive specifies the log output interval in seconds
about gfmd removal queue processing.
Default is 3600 seconds.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_remove_scan_log_interval 86400
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_remove_scan_interval_factor</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>This directive specifies the parameter about how much CPU time
can be used for gfmd removal queue processing.
The processing can use 1 / (metadb_server_remove_scan_interval_factor + 1)
of the CPU time at most.
Default is 5.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_remove_scan_interval_factor 2
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_heartbeat_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>This directive specifies the interval of heartbeat in seconds
for gfmd to check availability of each gfsd.  Default is 180 seconds.
</para>
<para>
Until gfarm-2.3.0, this parameter was only available in gfmd.conf, 
and ignored in gfarm2.conf. But since gfarm-2.4.0, gfsd also uses
this parameter to detect whether gfmd is down or not, this parameter
has to be specified in both gfarm2.conf and gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_heartbeat_interval 180
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>failover_notify_delay</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This directive specifies the delay (in seconds) that
new master gfmd notifies its start to gfsd processes on each
filesystem node.
If this delay is 0 seconds, it's highly possible that some gfsd process
detects a stop of previous master gfmd and connects to the new master gfmd
just before the notification, and in that case, the gfsd process will
disconnect and retry connecting to the new gfmd again.
To avoid such inefficiency, the default of this delay is 5 seconds.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	failover_notify_delay 10
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_dbq_size</token> <parameter moreinfo="none">size</parameter></term>
<listitem>
<para>This directive specifies the queue length of metadata updates
for a backend database in gfmd.  Longer queue length may avoid slow
down due to waiting backend database updates in case of frequent
metadata operations.
Default is 65536.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_dbq_size 65536
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_back_channel_sndbuf_limit</token> <parameter moreinfo="none">size_limit</parameter></term>
<listitem>
<para>This directive specifies the upper limit of SO_SNDBUF
for the socket that the metadata server connects to the gfsd back channel.
By decreasing this value, the number of outstanding requests from gfmd to gfsd
can be limited, and the problem of gfsd back channel disconnection
will be mitigated.
If <token>disable</token> keyword is specified as the parameter,
no limit is applied.
The default limit is 4096 bytes.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	metadb_server_back_channel_sndbuf_limit 16384
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_nfs_root_squash_support</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When gfmd tries to read .gfarm_shared_key file in a home directory,
gfmd will use the privilege of the owner of the home directory,
if this configuration setting is "enable".
If "disable" is specified, it will use the root privilege to do so.
</para>
<para>
If any gfarm users is using sharedsecret authentication,
and the user's home directory is shared by NFS
which is not using the no_root_squash export option,
this setting has to be "enable".
The default is "enable", but you can slightly decrease the CPU load of
gfmd by setting this parameter to "disable" if situation allows.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_server_nfs_root_squash_support disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>ldap_server_host</token> <parameter moreinfo="none">hostname</parameter></term>
<listitem>
<para>The <token>ldap_server_host</token> statement specifies the host
name on which an LDAP server is running.  This statement is required
when the LDAP server is used for a backend database of gfmd.  This
statement is used in gfmd.conf not gfarm2.conf.</para>

<para>For example,</para>
<literallayout format="linespecific" class="normal">
	ldap_server_host ldap.example.com
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>ldap_server_port</token> <parameter moreinfo="none">port</parameter></term>
<listitem>
<para>The <token>ldap_server_port</token> statement specifies the tcp
port number of the LDAP server.</para>
<para>This statement cannot be omitted
  if <token>ldap_server_host</token> is specified.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	ldap_server_port 602
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>ldap_base_dn</token> <parameter moreinfo="none">LDAP_base_distinguished_name</parameter></term>
<listitem>
<para>The <token>ldap_base_dn</token> statement specifies the
base-distinguished name of the LDAP database.</para>
<para>This statement cannot be omitted
  if <token>ldap_server_host</token> is specified.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	ldap_base_dn "dc=example, dc=com"
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>ldap_bind_dn</token> <parameter moreinfo="none">LDAP_bind_distinguished_name</parameter></term>
<listitem>
<para>The <token>ldap_bind_dn</token> statement specifies the
distinguished name for the bind operation which is used for authentication
to the LDAP database.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	ldap_bind_dn "cn=gfarmuser, dc=example, dc=com"
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>ldap_bind_password</token> <parameter moreinfo="none">password</parameter></term>
<listitem>
<para>The <token>ldap_bind_password</token> statement specifies the
password for the bind operation which is used for authentication
to the LDAP database.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	ldap_bind_password "secret-ldap-password"
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>postgresql_server_host</token> <parameter moreinfo="none">hostname</parameter></term>
<listitem>
<para>The <token>postgresql_server_host</token> statement specifies the host
name on which a PostgreSQL server is running.  This statement is required
when the PostgreSQL server is used for a backend database of gfmd.  This
statement is used in gfmd.conf not gfarm2.conf.</para>

<para>For example,</para>
<literallayout format="linespecific" class="normal">
	postgresql_server_host postgresql.example.com
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>postgresql_server_port</token> <parameter moreinfo="none">port</parameter></term>
<listitem>
<para>The <token>postgresql_server_port</token> statement specifies the tcp
port number of the PostgreSQL server.</para>
<para>This statement cannot be omitted
  if <token>postgresql_server_host</token> is specified.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	postgresql_server_port 602
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>postgresql_dbname</token> <parameter moreinfo="none">dbname</parameter></term>
<listitem>
<para>The <token>postgresql_dbname</token> statement specifies the
  database name of the PostgreSQL database.</para>
<para>This statement cannot be omitted
  if <token>postgresql_server_host</token> is specified.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	postgresql_dbname gfarm
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>postgresql_user</token> <parameter moreinfo="none">user</parameter></term>
<listitem>
<para>The <token>postgresql_user</token> statement specifies the
  username used to connect the PostgreSQL database.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	postgresql_user gfarm
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>postgresql_password</token> <parameter moreinfo="none">password</parameter></term>
<listitem>
<para>The <token>postgresql_password</token> statement specifies the
  password used to connect the PostgreSQL database.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	postgresql_password gfarm
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>postgresql_conninfo</token> <parameter moreinfo="none">connection_info</parameter></term>
<listitem>
<para>The <token>postgresql_conninfo</token> statement specifies the
  connection option used to connect the PostgreSQL database.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	postgresql_conninfo "sslmode=require connect_timeout=30"
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>auth</token> <parameter moreinfo="none">validity</parameter>
<parameter moreinfo="none">method</parameter> <parameter moreinfo="none">Host_specification</parameter></term>
<listitem>
<para>This statement specifies the authentication method when
communicating with the host(s) specified by the third argument.</para>

<para>The first argument should be either the <token>enable</token> or
<token>disable</token> keyword.
The second argument, <parameter moreinfo="none">auth method</parameter>, should be
the <token>gsi</token>, <token>gsi_auth</token>, or <token>sharedsecret</token>
keyword.
The third argument specifies the host(s) by using <parameter moreinfo="none">Host
specification</parameter>.</para>

<para>The <token>auth</token> statement may be specified any number of
times.  For each authentication method, it becomes a candidate when
the first entry whose host_specification matches the target host has
the <token>enable</token> keyword.  When there is no corresponding
entry, or when the first corresponding entry has the
<token>disable</token> keyword, the authentication method does not
become a candidate.</para>

<para>This process takes place on both client and server sides.
Candidates for authentication method on both sides will be
tried.</para>

<para>The order of statements with different authentication methods is
not relevant.  When there are several candidates for the authentication
method for the host, the order of the authentication trial is
<token>sharedsecret</token>, <token>gsi_auth</token>,
and then <token>gsi</token>.
</para>

<para>The GSI methods are available if and only if the
--with-globus option is specified at configuration.  When the methods are
not available, an <token>auth</token> statement with
<token>gsi</token> or <token>gsi_auth</token> will be ignored.</para>

<para>This statement cannot be omitted.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	auth disable sharedsecret 192.168.0.100
	auth disable sharedsecret 192.168.0.101
	auth enable sharedsecret 192.168.0.0/24
	auth enable gsi_auth 10.0.0.0/8
	auth enable gsi *
</literallayout>

<para>In this example, all hosts which belong to the network address
192.168.0.0/24, except for two hosts, 192.168.0.100 and 192.168.0.101,
will be tested for authenticated by both <token>sharedsecret</token>
and <token>gsi</token>;
all hosts which belong to the network address 10.0.0.0/8 will be
tested for authentication by both
<token>gsi_auth</token> and <token>gsi</token>;
and all other hosts will be authenticated by
<token>gsi</token>.  Note that two hosts, 192.168.0.100 and
192.168.0.101, will be tested for authentication by gsi only.</para>

</listitem>
</varlistentry>

<varlistentry>
<term><token>shared_key_file</token> <parameter moreinfo="none">pathname</parameter></term>
<listitem>
<para>The <token>shared_key_file</token> statement specifies a
  pathname of the shared secret key file in sharedsecret
  authentication.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>digest</token> <parameter moreinfo="none">digest_type</parameter></term>
<listitem>
<para>
The <token>digest</token> statement enables the checksum
calculation, and specifies the digest type of the checksum.
The digest_type parameter is a lower-case name which is supported
by the OpenSSL library on the filesystem nodes.
For example, "md5", "sha256".
Or, if <token>client_digest_check</token> is enabled,
the digest_type has to be supported on clients as well.
</para>
<para>
Specifying "disable" as digest_type disables the checksum calculation.
</para>
<para>
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>
NOTE:
Even if checksum calculation is enabled by this directive,
the digest checksum is not calculated when a client accesses a file replica
which is managed by a local gfsd.
This is because only gfsd calculates the checksum by default, but
the client directly reads/writes the file replica in the local access case.
To calculate the checksum of local files,
You have to either disable the direct access feature by
the <token>direct_local_access</token> statement,
or enable the client-side checksum calculation feature by
the <token>client_digest_check</token> statement.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	digest md5
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>directory_quota_count_per_user_limit</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
The <token>directory_quota_count_per_user_limit</token> statement
limits maximum number of dirset per user.
</para>
<para>
The default limit is 100.
</para>
<para>
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	directory_quota_count_per_user_limit 1000
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>directory_quota_check_start_delay</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
The <token>directory_quota_check_start_delay</token> statement
specifies the delay until starting re-calculation of directory quota,
when such re-calculation becomes necessary.
This parameter is to reduce number of multiple re-calculation to once
during the delay period.
</para>
<para>
The default value is 60 seconds.
</para>
<para>
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	directory_quota_check_start_delay 120
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>directory_quota_check_retry_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
The <token>directory_quota_check_retry_interval</token> statement
specifies interval until restarting directory quota re-calculation
which was interrupted by a metadata update.
</para>
<para>
Because metadata updates usually occur continuously,
restarting without interval will make re-calculation interrupted immediately,
thus the re-calculation will be wasted.
In addition, the wasted re-calculation makes replia_check processing
too slow.
This parameter mitigates the problem by leaving an interval before restart.
</para>
<para>
The default value is 60 seconds.
</para>
<para>
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	directory_quota_check_retry_interval 120
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>quota_check_retry_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
The <token>quota_check_retry_interval</token> statement
specifies interval until restarting quota re-calculation
which was interrupted by a metadata update.
</para>
<para>
Because metadata updates usually occur continuously,
restarting without interval will make re-calculation interrupted immediately,
thus the re-calculation will be wasted.
In addition, the wasted re-calculation makes replia_check processing
too slow.
This parameter mitigates the problem by leaving an interval before restart.
</para>
<para>
The default value is 60 seconds.
</para>
<para>
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	quota_check_retry_interval 120
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>max_directory_depth</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
The <token>max_directory_depth</token> statement
specifies the maximum depth of directories.
Note that this setting is not always strict, and some processing
allows deeper than this setting.
</para>
<para>
The default value is 100.
</para>
<para>
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	max_directory_depth 500
</literallayout>
</listitem>
</varlistentry>

<!--
<varlistentry>
<term><token>netparam</token> <parameter moreinfo="none">parameter</parameter><emphasis>=</emphasis><parameter moreinfo="none">value</parameter> <emphasis>[</emphasis><parameter moreinfo="none">Host_specification</parameter><emphasis>]</emphasis></term>
<listitem>
<para>The <token>netparam</token> statement specifies several
communication parameters listed below.</para>

<para><token>parallel_streams</token>.  This parameter specifies the
number of tcp streams.  The default is a single stream.  The
<token>parallel_streams</token> parameter may improve the file
transfer performance, especially when connecting to a distant site
(i.e., a high bandwidth-delay product network) such that the tcp congestion
window size will not increase sufficiently.  This parameter is only
effective on a client node where the gfrep(1) command is executed.
<parameter moreinfo="none">Host_specification</parameter> specifies the source host(s)
for file replication instead of the destination host(s).</para>

<para><token>stripe_unit_size</token>.  This parameter specifies how
to divide the data when utilizing multiple tcp streams.  Without this
parameter, the data will be divided into
<token>parallel_streams</token> of contiguous blocks with almost even
size.  When this parameter is specified, the data is divided in
round-robin fashion with the specified block size in bytes.  Generally
speaking, the performance of file transfer is improved using this
parameter.</para>

<para>This parameter is effective only when two or more is specified
as the <token>parallel_streams</token> parameter.  This parameter is
only effective on a client node where the gfrep(1) command is executed.
<parameter moreinfo="none">Host_specification</parameter> specifies the source host(s)
for file replication instead of the destination host(s).</para>

<para><token>rate_limit</token>.  This parameter specifies the maximum
transfer rate (bps; bit per second) for a single connection, and is
introduced experimentally.  The parameter on a source filesystem node
is effective during parallel file replication.  <parameter moreinfo="none">Host
specification</parameter> specifies the destination host(s) for file
replication.  Note that this parameter has to be specified on a
source filesystem node, not on a client host, unlike the other
parameters.</para>

<para>For example,</para>
<literallayout format="linespecific" class="normal">
	netparam parallel_streams=2	10.0.0.0/8
	netparam stripe_unit_size=8192	10.0.0.0/8
	netparam rate_limit=750000	192.168.0.0/24
</literallayout>
</listitem>
</varlistentry>
 -->

<varlistentry>
<term><token>sockopt </token><parameter moreinfo="none">option</parameter><emphasis>[=</emphasis><parameter moreinfo="none">value</parameter><emphasis>] [<token>LISTENER</token> | <parameter moreinfo="none">Host_specification</parameter>]</emphasis></term>
<listitem>
<para>The <token>sockopt</token> parameter specifies the socket option
<parameter moreinfo="none">option</parameter> via the setsockopt(2) system call.</para>

<para>When <token>LISTENER</token> (all capital letters) is specified
by the second argument, the socket option is applied to any socket
on the server side (accepting side).</para>

<para>When the host_specification is specified by the second argument,
the socket option is applied to sockets that connect to the specified host(s).
If the second argument is "*", the socket option is applied to any
hosts on the client side (connecting side).
</para>

<para>If the second argument is omitted, the socket option is applied
to every socket.</para>

<para>The following socket options can be specified.</para>

<para><token>debug</token>.  The <constant>SO_DEBUG</constant> socket
option is specified.  A <parameter moreinfo="none">value</parameter> is not
necessary.</para>

<para><token>keepalive</token>.  The <constant>SO_KEEPALIVE</constant>
socket option is specified.  A <parameter moreinfo="none">value</parameter> is not
necessary.</para>

<para><token>sndbuf</token>.  The <constant>SO_SNDBUF</constant> socket
option is specified with a <parameter moreinfo="none">value</parameter>.</para>

<para><token>rcvbuf</token>.  The <constant>SO_RCVBUF</constant> socket
option is specified with a <parameter moreinfo="none">value</parameter>.</para>

<para><token>tcp_nodelay</token>.  The <constant>TCP_NODELAY</constant>
socket option is specified.  A <parameter moreinfo="none">value</parameter> is not
necessary.</para>

<para>For example,</para>
<literallayout format="linespecific" class="normal">
	sockopt tcp_nodelay 192.168.0.0/24
	sockopt sndbuf=1048576 10.0.0.0/8
	sockopt sndbuf=1048576 LISTENER
	sockopt rcvbuf=1048576 10.0.0.0/8
	sockopt rcvbuf=1048576 LISTENER
</literallayout>
</listitem>
</varlistentry>

<!--
<varlistentry>
<term><token>address_use</token> <parameter moreinfo="none">Host_specification</parameter></term>
<listitem>
<para>The <token>address_use</token> statement specifies an IP address
or a network address that is given preference for connection when the
target host has several IP addresses.</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	address_use 192.168.0.0/24
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>client_architecture</token> <parameter moreinfo="none">architecture</parameter> <parameter moreinfo="none">Host_specification</parameter></term>
<listitem>
<para>This directive specifies the default architecture name that may be used
when a client node accesses an executable file.
This directive only affects client nodes.
For filesystem nodes, architecture names registered in
the metadata server are used.
</para>
<para>
On the other hand, the environment variable, GFARM_ARCHITECTURE,
which specifies the default architecture name, just as in this directive,
affects both client nodes and filesystem nodes.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	client_architecture i386-redhat8.0-linux linux-1.example.com
	client_architecture i386-redhat8.0-linux linux-2.example.com
	client_architecture sparc-sun-solaris8 solaris-1.example.com
</literallayout>
</listitem>
</varlistentry>
 -->

<varlistentry>
<term><token>known_network</token> <parameter moreinfo="none">Host_specification</parameter></term>
<listitem>
<para>The <token>known_network</token> statement specifies a network
address for file system nodes.  It is used to group file system nodes
at file systen node scheduling.
File system nodes that are not specified in this directive are assumed
to be in an IPv4 class C network.</para>
<para>Multiple networks can be specified as follows.</para>
<literallayout format="linespecific" class="normal">
	known_network 192.168.0.0/25
	known_network 192.168.0.128/25
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>network_receive_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>The <token>network_receive_timeout</token> directive specifies
the time, in seconds, to wait for data reception via network.
The default value is 60 seconds.
This directive is effective in both gfarm2.conf and gfmd.conf.
</para>
<para>When a Gfarm application program receives no data from a gfsd 
filesystem server during the timeout period, it aborts the communication
with the server, and then it tries to communicate with another server
to continue the operation.</para>
<para>When a gfmd metadata server receives no data from a gfsd filesystem
server during the timeout period, it aborts the communication with
the gfsd server and gfmd considers the gfsd server is down.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>admin_user</token> <parameter moreinfo="none">user</parameter></term>
<listitem>
<para>
This directive specifies an administrator user name, which is
specified in gfmd.conf.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>admin_user_gsi_dn</token> <parameter moreinfo="none">user_gsi_dn</parameter></term>
<listitem>
<para>
This directive specifies a subject DN of an administrator, which is
specified in gfmd.conf.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>local_user_map</token> <parameter moreinfo="none">user-map-file</parameter> [<parameter moreinfo="none">hostname</parameter>:[<parameter moreinfo="none">port</parameter>]]</term>
<listitem>
<para>This directive specifies a file name
<parameter moreinfo="none">user-map-file</parameter> for mapping local user names to
global user names.  This map file is used only for sharedsecret
authentication.  When this file is not specified, a global user name
is assumed to be same as the local user name.</para>

<para>
<parameter moreinfo="none">user-map-file</parameter> is needed when you have to use
the sharedsecret authentication method in the case where you have
different unix account names on different filesystem nodes.  In such a
case, the <parameter moreinfo="none">user-map-file</parameter> on each filesystem node
should have an entry from each local user name to a unique global user
name.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	local_user_map /etc/gfarm/gfarm-usermap
</literallayout>

<para>Each line of the <parameter moreinfo="none">user-map-file</parameter> consists
of two fields separated by spaces; the first field is a global user
name, and the second field is a local user name.</para>

<para>Example of the user mapping file:</para>
<literallayout format="linespecific" class="normal">
	foobar foo
	quux baz
</literallayout>
<para>According to the first line of this mapping file, a global user
name, "foobar", is mapped to a local user name,  "foo", on this node.
</para>
<para>
When hostname/port of the meta data server is specified,
user mapping files different in each server are applied.
When the port is omitted, default port (601) is used.
local_user_map can be specified two or more times.
When the same definitions of local user name exist,
the first definition is selected.
</para>
<para>Example of multiple user mapping file:</para>
<literallayout format="linespecific" class="normal">
	local_user_map /etc/gfarm/gfarm-usermap1-1
	local_user_map /etc/gfarm/gfarm-usermap1-2
	local_user_map /etc/gfarm/gfarm-usermap2-1 server2
	local_user_map /etc/gfarm/gfarm-usermap2-2 server2
</literallayout>
<para>
In this example, when connecting to server2,
it applies in order of gfarm-usermap2-1 and gfarm-usermap2-2.
When connecting to excluding server2,
it applies in order of gfarm-usermap1-1 and gfarm-usermap1-2.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>local_group_map</token> <parameter moreinfo="none">group-map-file</parameter> [<parameter moreinfo="none">hostname</parameter>:[<parameter moreinfo="none">port</parameter>]]</term>
<listitem>
<para>This directive specifies a file name
<parameter moreinfo="none">group-map-file</parameter> for mapping global group names to
local group names.  This map file is used by legacy clients that use
local group id such as gfarm2fs and gfarm dsi for Globus GridFTP to
display mapped local groups.  When this file is not specified, a
local group name is assumed to be same as the global group
name.</para>

<para>Example:</para>
<literallayout format="linespecific" class="normal">
	local_group_map /etc/gfarm/gfarm-groupmap
</literallayout>

<para>Each line of the <parameter moreinfo="none">group-map-file</parameter> consists
of two fields separated by spaces; the first field is a global group
name, and the second field is a local group name.</para>
<para>
When hostname/port of the meta data server is specified,
group mapping files different in each server are applied.
The specification method is similar to local_user_map.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_cache_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>This directive specifies the time (in seconds) until the cache used for
filesystem node scheduling expires.
The cache holds information on each filesystem node, e.g. load average,
disk free space, and whether authentication succeeds or not.
The default time is 600 seconds, i.e. ten minutes.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_cache_timeout 60
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_rpc_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>This directive specifies the timeout value (in seconds)
of RPCs for filesystem node scheduling.
Increase this value, if some files cannot be accessed
due to high load average of filesystem nodes.
</para>
<para>
This value is also used for timeout value of
the <command moreinfo="none">gfhost</command> command
when it accesses filesystem nodes concurrently.
</para>
<para>
The default time is 35 seconds.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_rpc_timeout 60
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_concurrency</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
This directive specifies the number how many filesystem nodes will be
searched concurrently at filesystem scheduling.
If this parameter is increased, the scheduling will finish quicker,
but the load to filesystem nodes will increase.
The default number is 10 nodes.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_concurrency 10
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_concurrency_per_net</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
This directive specifies the number how many filesystem nodes will
be used in same network at measuring network latency
for each network of filesystem nodes.
It may be better to increase this parameter,
if many filesystem nodes are stopping,
or many filesystem nodes are under higher load.
If this parameter is increased,
it's recommened to increase schedule_concurrency parameter too.
The default number is 3.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_concurrency_per_net 3
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_idle_load_thresh</token> <parameter moreinfo="none">load-average</parameter></term>
<listitem>
<para>This directive specifies the threshold of CPU load average to be
considered idle.  The file system nodes whose CPU load average
is equal to or below the specified CPU load average are to be
scheduled at first.
The default load average is 0.1.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_idle_load_thresh 0.1
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_busy_load_thresh</token> <parameter moreinfo="none">load-average</parameter></term>
<listitem>
<para>This directive specifies the threshold of CPU load average to be
considered busy.  The file system nodes whose CPU load average
is above the specified CPU load average are to be scheduled lastly.
The default load average is 0.5.
</para>
<para>
This directive is available for clients and gfmd.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_busy_load_thresh 0.5
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_virtual_load</token> <parameter moreinfo="none">load-average</parameter></term>
<listitem>
<para>This directive specifies the virtual CPU load average.  The
virtual CPU load is added when the host is scheduled to avoid
scheduling the same host multiple times.  The default load average is
0.3.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_virtual_load 0.3
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_candidates_ratio</token> <parameter moreinfo="none">ratio</parameter></term>
<listitem>
<para>
This parameter specifies the threshold ratio of number of filesystem nodes
from number of scheduling nodes,
to decide to discontinue to search more filesystem nodes
which load averages are less or equal to
the schedule_busy_load_thresh parameter.
If this parameter is increased,
the accuracy of scheduling will be increased,
but scheduling process will become slower.
The default ratio is 4.0.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_candidates_ratio 4.0
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_rtt_thresh_diff</token> <parameter moreinfo="none">microseconds</parameter></term>
<listitem>
<para>
This parameter specifies the threshold time of network latency
which divides the domains of scheduling priority.
If a network latency difference from nearer network is larger than this value,
the network's scheduling priority is lowered.
There is a similar parameter schedule_rtt_thresh_ratio,
and the scheduling priority is lowered if the network latency exceeds
one of the parameters.
The default is 1000 microseconds. i.e. 1 millisecond.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_rtt_thresh_diff 1000
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_rtt_thresh_ratio</token> <parameter moreinfo="none">ratio</parameter></term>
<listitem>
<para>
This parameter specifies the threshold ratio of network latency
which divides the domains of scheduling priority.
If a network latency is larger than this ratio from nearer network,
the network's scheduling priority is lowered.
There is a similar parameter schedule_rtt_thresh_diff,
and the scheduling priority is lowered if the network latency exceeds
one of the parameters.
The default ratio is 4.0.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_rtt_thresh_ratio 4.0
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>schedule_rtt_thresh</token> <parameter moreinfo="none">ratio</parameter></term>
<listitem>
<para>
This directive is just an alias of
the schedule_rtt_thresh_ratio directive since gfarm-2.5.8.
Please use that directive instead.
This directive remains for compatibility with older versions.
The default ratio is 4.0.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	schedule_rtt_thresh 4.0
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>write_local_priority</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>Gfarm nearly always chooses localhost, when it selects a filesystem
node to write a file. By specifyng the <token>disable</token> keyword in
this directive, Gfarm handles localhost the same as other
filesystem nodes.
<!--
The same thing can be achieved by specifying <token>disable</token>
as the value of the GFARM_WRITE_LOCAL_PRIORITY environment variable.
When both this directive and the environment variable are specified,
the value specified by the environment variable will be used.
 -->
The default is <token>enable</token>.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	write_local_priority disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>write_target_domain</token> <parameter moreinfo="none">domain</parameter></term>
<listitem>
<para>Gfarm tries to choose a filesystem node in the domain specified by
this directive, when it selects a node to write a file.
If there is no suitable node for writing in this domain, or if this
directive is not specified, the filesystem node will be chosen from
among all nodes.
<!--
You can specify this domain with the GFARM_WRITE_TARGET_DOMAIN environment
variable too.
When both this directive and the environment variable are specified,
the value specified by the environment variable will be used.
 -->
Note that if you specify this directive more than once, only the first one
will be used and the others are ignored.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	write_target_domain example.org
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>minimum_free_disk_space</token> <parameter moreinfo="none">bytes</parameter></term>
<listitem>
<para>This directive specifies free disk space (in bytes) which is
required on filesystem nodes. The Gfarm scheduler excludes filesystem nodes
which have less free space than this parameter, when it
schedules nodes for jobs which may write files.
The free space value may have a suffix like ``k'' (kibibyte),
``M'' (mebibyte), ``G'' (gibibyte) and ``T'' (tebibyte).
The default size is 512 MiB.
</para>
<para>
This directive has to be specified in both gfarm2.conf and gfmd.conf.
After restarting the gfmd and the Gfarm client, it is effective.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	minimum_free_disk_space 1G
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>direct_local_access</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When a Gfarm client accesses a file replica which is stored by the local gfsd,
the client bypasses the gfsd and directly accesses the file replica
for reading/writing the file contents to reduce the overhead.
This directive is used to disable this feature.
It is useful to make the local gfsd calculate the checksum of
the local file replica.
Please see the <token>digest</token> directive for detail.
</para>
<para>
The default is <token>enable</token>.
</para>
<para>
This directive is only available for clients in gfarm2.conf.
Both gfsd and gfmd ignore this setting in gfarm2.conf and gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	direct_local_access disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replication_at_write_open</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When all file replicas of a file are stored at read-only filesystem
nodes, it cannot be updated.  When this directive is enabled, it is
replicated to a read-write filesystem node before opening in the
write mode to make it possible to open in the write mode.
The default is <token>enable</token>.
</para>
<para>
This directive is only available for clients in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
       replication_at_write_open enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>read_only</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
This directive makes Gfarm file system read only.
The default is <token>disable</token>.
</para>
<para>
This directive is only available in gfmd configuration files.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	read_only enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>simultaneous_replication_receivers</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>This directive specifies maximum number of simultaneous
gfmd-initiated replications to same host.
The default is 20.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	simultaneous_replication_receivers 40
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replication_busy_host</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>This directive specifies whether destination of gfmd-initiated
  replication includes busy hosts or not.  When it is disabled, a file
  replica is not created to busy hosts.  The default is enabled.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	replication_busy_host disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>gfsd_connection_cache</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>This directive specifies maximum number of cached gfsd connections.
The default is 16.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	gfsd_connection_cache 32
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>xmlattr_size_limit</token> <parameter moreinfo="none">bytes</parameter></term>
<listitem>
<para>This directive specifies maximum size of XML extended attributes.
The default is 786432, and numbers greater than 983040 are not allowed.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	xmlattr_size_limit 786432
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>xattr_size_limit</token> <parameter moreinfo="none">bytes</parameter></term>
<listitem>
<para>This directive specifies maximum size of extended attributes.
The default is 65536, and numbers greater than 983040 are not allowed.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	xattr_size_limit 65536
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>attr_cache_limit</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>This directive specifies maximum number of cached attributes in
gfarm library.
The default is 40000.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	attr_cache_limit 100000
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>attr_cache_timeout</token> <parameter moreinfo="none">milliseconds</parameter></term>
<listitem>
<para>This directive specifies maximum time until cached attributes expire
in milliseconds.
The default is 1000, i.e. 1 second.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	attr_cache_timeout 3600000
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>page_cache_timeout</token> <parameter moreinfo="none">milliseconds</parameter></term>
<listitem>
<para>This directive specifies maximum time until cached pages expire
in milliseconds only related to linux kernel driver.
The default is 1000, i.e. 1 second.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	page_cache_timeout 3600000
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>log_file</token> <parameter moreinfo="none">pathname</parameter></term>
<listitem>
<para>
This directive specifies a log file.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>log_level</token> <parameter moreinfo="none">priority_level</parameter></term>
<listitem>
<para>This directive specifies a level of log priority.
The log output, which priority is inferior to this level, will not be
sent to syslog or standard error.
The priority levels are "emerg", "alert", "crit", "err", "warning", "notice",
"info" and "debug" in highest first order.
The default level is "info".
It's not recommended to specify a level higher or equal to "crit".
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	log_level debug
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>log_message_verbose_level</token> <parameter moreinfo="none">level</parameter></term>
<listitem>
<para>This directive specifies how verbose the log message is.
The default value is 0, which outputs the log message id.  The level 1
additionally outputs the file name and the line of source code.  The
level 2 additionally outputs the function name.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	log_message_verbose_level 1
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>log_auth_verbose</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When "enable" is specified, verbose messages about authentication are logged.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	log_auth_verbose enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>file_trace</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When "enable" is specified, an audit log feature for file creation,
modification and removal is enabled.
</para>
<para>
This directive is available in both gfarm2.conf and gfmd.conf.
</para>
<para>Here is an example:</para>
<literallayout format="linespecific" class="normal">
	file_trace enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>fatal_action</token> <parameter moreinfo="none">action_name</parameter></term>
<listitem>
<para>
This parameter specifies the behavior at a fatal error.
The default action is <replaceable>backtrace_and_abort</replaceable>.
</para>
<para>
<!-- If you write this paragraph after a below <variablelist>,
     a indent of this section in a man page will be disabled. -->
For example,
</para>
<literallayout format="linespecific" class="normal">
	fatal_action backtrace_and_abort
</literallayout>
<para>
The following actions are supported:
</para>
<variablelist>
<varlistentry>
<term><token>backtrace_and_abort</token></term>
<listitem>
<para>
Print a backtrace, and then call
<citerefentry>
<refentrytitle>abort</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><token>backtrace_and_exit</token></term>
<listitem>
<para>
Print a backtrace, and then call
<citerefentry>
<refentrytitle>exit</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><token>abort</token></term>
<listitem>
<para>
Call
<citerefentry>
<refentrytitle>abort</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><token>exit</token></term>
<listitem>
<para>
Call
<citerefentry>
<refentrytitle>exit</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
.
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>

<varlistentry>
<term><token>debug_command</token> <parameter moreinfo="none">command_line</parameter></term>
<listitem>
<para>
When a Gfarm application program crashes (received SIGSEGV, SIGBUG, etc.),
a debug command specified in this directive is executed.
For example,
</para>
<literallayout format="linespecific" class="normal">
	debug_command env DISPLAY=:0.0 xterm -e gdb %e %p
</literallayout>
<para>
"%e" and "%p" are expanded to an actual program name and a process ID,
respectively.
If you'd like to use "%" character itself in the command line,
type "%%".
</para>
<para>
This directive is available in both gfarm2.conf and gfmd.conf.
If this directive is omitted, no debug command is executed.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><token>no_file_system_node_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>If there is no file system node available,
Gfarm client library periodically tries to find a file system node.
This directive specifies the timeout to try in seconds.
The default is 30 seconds.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	no_file_system_node_timeout 30
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>gfmd_authentication_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>After the connection to the metadata server is established,
Gfarm client library starts an authentication procedure,
but gives up the procedure, if this timeout period is passed
without any response from the metadata server.
This unit of this directive is second, and the default value is 35.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	gfmd_authentication_timeout 45
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>gfmd_reconnection_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>If the connection to the metadata server is disconnected,
Gfarm client library periodically tries to reconnect.
This directive specifies the timeout to try in seconds.
The default is 30 seconds.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	gfmd_reconnection_timeout 30
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>gfsd_connection_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This directive specifies the timeout to connect to a gfsd.  The
default is 30 seconds.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	gfsd_connection_timeout 30
</literallayout>
</listitem>
</varlistentry>

<!--
<varlistentry>
<term><token>record_atime </token><parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>When "enable" is specified, Gfarm records last access time strictly.
When "disabled" is specified, the access time becomes inaccurate, but
such setting reduces the load of metadata updates, and may improve
performance.
The "disable" setting corresponds to "noatime" setting in usual filesystem.
</para>

<para>Example:</para>
<literallayout format="linespecific" class="normal">
	record_atime disable
</literallayout>
</listitem>
</varlistentry>
 -->

<varlistentry>
<term><token>atime</token> <parameter moreinfo="none">type</parameter></term>
<listitem>
<para>
When "disable" is specified, atime (access time) is not updated.  When
"relative" is specified, atime is only updated if the previous atime
is earlier than the current mtime (modify time) or ctime (change
time), or if the previous atime is more than 1 day old.  When "strict"
is specified, atime is always updated.  The default setting is
"relative".
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	atime disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>max_open_files</token> <parameter moreinfo="none">num-of-files</parameter></term>
<listitem>
<para>
This directive specifies the maximum number of open files.  The
default is 1024.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	max_open_files 1024
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>client_digest_check</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>When "enable" is specified, the Gfarm client library (libgfarm)
calculates checksum while accessing a whole file sequentially,
and verify the result against a value which is set in the metadata of the file.
Also, libgfarm sets the calculated checksum to the metadata,
if checksum isn't set in the metadata, and the file is opened for writing.
</para>
<para>
The default value is disable.
</para>
<para>
This directive is only available for clients in gfarm2.conf.
Both gfsd and gfmd ignore this setting in gfarm2.conf and gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	client_digest_check enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>client_file_bufsize</token> <parameter moreinfo="none">bytes</parameter></term>
<listitem>
<para>This directive specifies the file buffer size in bytes used in
  the Gfarm client library (libgfarm).  The default size is 1048576
  bytes (= 1MiB).  The file buffer size should be less than the
  default value not for deterioration of remote access performance.
</para>
<para>
This directive is only available for clients in gfarm2.conf.
Both gfsd and gfmd ignore this setting in gfarm2.conf and gfmd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	client_file_bufsize 65536
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>client_parallel_copy</token> <parameter moreinfo="none">num-of-parallel</parameter></term>
<listitem>
<para>This directive specifies the number of parallel
for <command moreinfo="none">gfprep</command>
and <command moreinfo="none">gfpcopy</command> to work in parallel.
When this number is not specified, the default number of parallel is
4.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	client_palallel_copy 10
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>client_parallel_max</token> <parameter moreinfo="none">num-of-parallel</parameter></term>
<listitem>
<para>This directive specifies the maximum number of parallel
for <command moreinfo="none">gfprep</command>
and <command moreinfo="none">gfpcopy</command> to work in parallel.
When this number is not specified, the default maximum number of
parallel is 16.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	client_palallel_max 8
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>profile </token><parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>When "enable" is specified, Gfarm outputs the profile information.
</para>

<para>Example:</para>
<literallayout format="linespecific" class="normal">
	profile enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_list</token> <parameter moreinfo="none">gfmd-hostname[:port]</parameter> <parameter moreinfo="none">...</parameter></term>
<listitem>
<para>This parameter specifies connection destinations of redundant metadata servers delimited by space.
If port is not specified, port will be 601 which is the default value.
</para>
<para>
This parameter is only available in gfarm2.conf, and ignored in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_server_list mds1 mds2:701
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_replication</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>When "enable" is specified, the redundant metadata feature is enabled.
The default value is disable.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_replication enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>synchronous_replication_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>This parameter specifies timeout for executing synchronous replication in seconds.
If the timeout period passed, the connection to the slave gfmd where replicates to
will disconnect.
The replication process in the master gfmd for the disconnected slave gfmd stops until
the slave gfmd connects.
The default is 10.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	synchronous_replication_timeout 30
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>synchronous_journaling</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>When "enable" is specified, fdatasync is called
after update information is saved to the journal file.
The timing of calling fdatasync is after writing the records from transaction-begin
to transaction-end in one transaction.
The default is "enable".
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	synchronous_journaling disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_force_slave</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>When "enable" is specified, even if the gfmd is set to default master,
it run as slave gfmd forcedly.
The default is "disable".
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_server_force_slave enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_slave_max_size</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>This parameter specifies the maximum number of slave gfmds.
The default is "32".
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_server_slave_max_size 40
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_server_slave_replication_timeout</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>This parameter specifies timeout in seconds to wait for completion of
  metadata replication at gfmd shutdown caused by a SIGTERM signal.
If the timeout period passed,
master gfmd gives up metadata replication to slave gfmd.
The default is 120 seconds.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_server_slave_replication_timeout 180
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_journal_dir</token> <parameter moreinfo="none">directory</parameter></term>
<listitem>
<para>This parameter specifies the directory for the journal file.
The value of this parameter is specified at config-gfarm execution .
When this parameter is not specified, the gfmd does not start.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_journal_dir /var/gfarm-metadata/journal
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_journal_max_size</token> <parameter moreinfo="none">file_size</parameter></term>
<listitem>
<para>This parameter specifies the max size of the journal file in bytes.
Beware that the larger the size is, the longer it takes time for the gfmd to complete starting.
The default is 33554432 (32 MiB).
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_journal_max_size 8388608
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_journal_recvq_size</token> <parameter moreinfo="none">size</parameter></term>
<listitem>
<para>This parameter specifies the maximum number of on-memory records of
the journal data that the slave gfmd receives from the master gfmd.
If it reaches this value, the slave gfmd gives up and exits,
because the gfmd thinks that it's too slow to apply the journal data
to the backend database.
The default value is 100000.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_journal_recvq_size 100000
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_replica_remover_by_host_sleep_time</token> <parameter moreinfo="none">nanoseconds</parameter></term>
<listitem>
<para>
This statement specifies the sleep time of replica remover,
which is invoked by a removal of a filesystem node,
in nanoseconds when gfmd is busy.
If this value is increased, the processing runs more slowly.
The default value is 20000000 nanoseconds (20 milliseconds).
The maximum value is 1000000000 nanoseconds (1 second).
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_replica_remover_by_host_sleep_time 20000000
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>metadb_replica_remover_by_host_inode_step</token> <parameter moreinfo="none">number</parameter></term>
<listitem>
<para>
This statement specifies the number of i-node that replica remover,
which is invoked by a removal of a filesystem node,
processes in each step.
If this value is decreased, the remover runs more slowly.
The default value is 1024.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	metadb_replica_remover_by_host_inode_step 1024
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
A replica check patrols the file system when it is necessary, and
creates missing file replicas.  The default is enable.  This feature
can be dynamically enabled or disabled by
the <command moreinfo="none">gfrepcheck</command> command.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check_remove</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
This directive is effective when replica_check is enabled.  When
replica_check_remove is enabled, the replica check removes unnecessary
file replicas unless it has two or more link counts.  It leaves file
replicas for files without replica information such as gfarm.ncopy and
gfarm.replicainfo.  The default is enable.  This feature can be
dynamically enabled or disabled by
the <command moreinfo="none">gfrepcheck remove</command> command.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check_remove disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check_remove_grace_used_space_ratio</token> <parameter moreinfo="none">percentage</parameter></term>
<listitem>
<para>
This directive is effective when replica_check_remove is enabled.
Unnecessary file replicas are removed only when a percentage of the
used capacity is more than the specified percent value.  The
percentage can be specified by an integer value between 0 and 100.
When 100 is specified, unnecessary file replicas are not removed.
The default is 0.
</para>
<para>
The percentage can be dynamically changed by the gfrepcheck command.
The following example changes to 50%.
</para>
<literallayout format="linespecific" class="normal">
	% gfrepcheck remove_grace_used_space_ratio 50
</literallayout>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check_remove_grace_used_space_ratio 70
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check_remove_grace_time</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This directive is effective when replica_check_remove is enabled.
Unnecessary file replicas are removed only when it is not accessed for
more than the specified seconds.  The default is 0.
</para>
<para>
The grace time can be dynamically changed by the gfrepcheck command.
The following example changes to 1 week (= 604800 seconds).
</para>
<literallayout format="linespecific" class="normal">
	% gfrepcheck remove_grace_time 604800
</literallayout>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check_remove_grace_time 604800
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check_reduced_log</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When "enable" is specified, log messages from the replica_check may be
reduced.  The default value is "enable".  This behavior can be
dynamically chagned by the
<command moreinfo="none">gfrepcheck reduced_log</command> command.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check_reduced_log disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check_host_down_thresh</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This statement specifies an interval to start replica check after a
gfsd is down.  The default value is 10800 seconds (3 hours).
This behavior can be dynamically chagned by the
<command moreinfo="none">gfrepcheck host_down_thresh</command> command.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check_host_down_thresh 3600
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check_sleep_time</token> <parameter moreinfo="none">nanoseconds</parameter></term>
<listitem>
<para>
This statement specifies the sleep time in nanoseconds during the
replica check when gfmd is busy.  The default value is 100000
nanoseconds (0.1 millisecond).  The maximum value is 1000000000
nanoseconds (1 second).
This behavior can be dynamically chagned by the
<command moreinfo="none">gfrepcheck sleep_time</command> command.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check_sleep_time 0
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replica_check_minimum_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This statement specifies the minimum interval in seconds, to start the
next replica check.  The default value is 10 seconds.
This behavior can be dynamically chagned by the
<command moreinfo="none">gfrepcheck minimum_interval</command> command.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replica_check_minimum_interval 5
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>replicainfo</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
When "enable" is specified, the extended attribute of
gfarm.replicainfo is used in automatic file replication.
When "disable" is specified, the hostgroups in gfarm.replicainfo is
not used, but the total number of replicas in gfarm.replicainfo is
used, if the total number is larger than gfarm.ncopy.
For detail about the extended attribute of gfarm.replicainfo, refer to
the manual page of <command moreinfo="none">gfncopy</command>.
The default is <token>enable</token>.
</para>
<para>
gfstatus -Mm 'replicainfo disable' can disable this temporarily.
</para>
<para>
This parameter is only available in gfmd.conf.
</para>
<para>Example:</para>
<literallayout format="linespecific" class="normal">
	replicainfo disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>write_verify</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
This statement enables gfsd's write_verify feature that compares file data
checksum by re-reading the contents of the file sometime after the file
is written.
The default is <token>disable</token>.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
gfsd uses this setting at its startup by asking gfmd.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	write_verify enable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>write_verify_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This statement specifies how long to wait before starting the write_verify
feature after a file is written.
The default value is 21600 seconds (6 hours).
</para>
<para>
The write_verify feature uses direct I/O on OSes which have the O_DIRECT flag.
But it does not flush caches on disk controllers and kernel metadata.
Thus, it's recommended to specify long enough period in this parameter.
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
gfsd uses this setting at its startup by asking gfmd.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	write_verify_interval 21600
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>write_verify_retry_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This statement specifies how long to wait until retring the write_verify
feature, if previous try was postponed, because the file was opened
for writing at that time.
</para>
<para>
It's recommended to keep this value smaller enough than
the write_verify_interval setting.
The default value is 600 seconds (10 minutes).
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
gfsd uses this setting at its startup by asking gfmd.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	write_verify_retry_interval 600
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>write_verify_log_interval</token> <parameter moreinfo="none">seconds</parameter></term>
<listitem>
<para>
This statement specifies interval to record write_verify statistics in log.
When this interval passes and then a file is updated on a filesystem node,
statistics information will be recorded in the log on the filesystem node.
</para>
<para>
The default value is 3600 seconds (1 hour).
</para>
<para>
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
gfsd uses this setting at its startup by asking gfmd.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	write_verify_log_interval 3600
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>ib_rdma</token> <parameter moreinfo="none">validity</parameter></term>
<listitem>
<para>
Specify to disable the RDMA data transfer between client and gfsd.
</para>
<para>
Only when --with-infiniband is specified at configure it is valid.
The default value is enable.
</para>
<para>
If the environment variable GFARM_RDMA_DISABLE is set, RDMA is disabled.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	ib_rdma disable
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>rdma_device</token> <parameter moreinfo="none">device name</parameter></term>
<listitem>
<para>
Specify the device to use the RDMA data transfer between client and gfsd.
</para>
<para>
The default device is the first found valid device on ibv_get_device_list().
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	rdma_device mlx4_1
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>rdma_port</token> <parameter moreinfo="none">port</parameter></term>
<listitem>
<para>
Specify the port number of the device to use the RDMA data transfer
between client and gfsd.
</para>
<para>
The default port is the first found valid port on the device.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	rdma_port 2
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>rdma_gid_index</token> <parameter moreinfo="none">gid index</parameter></term>
<listitem>
<para>
Specify that the rdma transfer is to be performed using GRH and specify the gid index in that case.
</para>
<para>
The default is -1 that means RDMA transfers with lid.
</para>
<para>
This parameter is only available in gfsd.conf.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	rdma_gid_index 0
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>rdma_min_size</token> <parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Specify the minimum data size to select the RDMA data transfer.
</para>
<para>
The default size is 65536 bytes.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	rdma_min_size 4096
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>rdma_mr_reg_mode</token> <parameter moreinfo="none">mode</parameter></term>
<listitem>
<para>
Specify the registration method of the RDMA transfer buffer of the client.
</para>
<para><token>static</token> mode registers one transfer buffer for every connection with a gfsd.
</para>
<para><token>dynamic</token> mode repeats registration and deregistration
at every transfer.
</para>
<para>
Although the static mode is faster than dynamic mode,
memory load becomes higher and may fail in registration because the memories are locked through the connections.
</para>
<para>
The default mode is static.
</para>

<para>For example,</para>
<literallayout format="linespecific" class="normal">
	rdma_mr_reg_mode static
	rdma_mr_reg_mode static dynamic
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>rdma_mr_reg_static_min_size</token> <parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Specify the initial buffer size when the static mode is selected
with rdma_mr_reg_mode.
</para>
<para>
The default size is 1 MiB.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	rdma_mr_reg_static_min_size 1048576
</literallayout>
</listitem>
</varlistentry>

<varlistentry>
<term><token>rdma_mr_reg_static_max_size</token> <parameter moreinfo="none">size</parameter></term>
<listitem>
<para>
Specify the maximum expansion buffer size when the static mode is selected
with rdma_mr_reg_mode.
</para>
<para>
The default size is 16 MiB.
</para>
<para>For example,</para>
<literallayout format="linespecific" class="normal">
	rdma_mr_reg_static_max_size 16777216
</literallayout>
</listitem>
</varlistentry>


</variablelist>
</refsect1>

<refsect1 id="grammar"><title>GRAMMAR</title>
<para>This is a grammar of gfarm2.conf described by the BNF notation.</para>
<variablelist>
<varlistentry>
<term>&lt;statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">
	&lt;include_statement&gt; |
	&lt;include_nesting_limit_statement&gt; |
	&lt;spool_statement&gt; |
	&lt;spool_server_listen_address_statement&gt; |
	&lt;spool_server_listen_backlog_statement&gt; |
	&lt;spool_server_cred_type_statement&gt; |
	&lt;spool_server_cred_service_statement&gt; |
	&lt;spool_server_cred_name_statement&gt; |
	&lt;spool_server_back_channel_rcvbuf_limit_statement&gt; |
	&lt;spool_server_read_only_retry_interval_statement&gt; |
	&lt;spool_check_level_statement&gt; |
	&lt;spool_check_parallel_statement&gt; |
	&lt;spool_check_parallel_max_statement&gt; |
	&lt;spool_check_parallel_per_capacity_statement&gt; |
	&lt;spool_check_parallel_step_statement&gt; |
	&lt;spool_base_load_statement&gt; |
	&lt;spool_digest_error_check_statement&gt; |
	&lt;metadb_server_host_statement&gt; |
	&lt;metadb_server_port_statement&gt; |
	&lt;metadb_server_cred_type_statement&gt; |
	&lt;metadb_server_cred_service_statement&gt; |
	&lt;metadb_server_cred_name_statement&gt; |
	&lt;metadb_server_listen_backlog_statement&gt; |
	&lt;metadb_server_max_descriptors_statement&gt; |
	&lt;metadb_server_stack_size_statement&gt; |
	&lt;metadb_server_thread_pool_size_statement&gt; |
	&lt;metadb_server_job_queue_length_statement&gt; |
	&lt;metadb_server_remover_queue_length_statement&gt; |
	&lt;metadb_server_remove_scan_log_interval_statement&gt; |
	&lt;metadb_server_remove_scan_interval_factor_statement&gt; |
	&lt;metadb_server_heartbeat_interval_statement&gt; |
	&lt;metadb_server_failover_notify_delay_statement&gt; |
	&lt;metadb_server_dbq_size_statement&gt; |
	&lt;metadb_server_back_channel_sndbuf_limit_statement&gt; |
	&lt;metadb_server_nfs_root_squash_support_statement&gt; |
	&lt;ldap_server_host_statement&gt; |
	&lt;ldap_server_port_statement&gt; |
	&lt;ldap_base_dn_statement&gt; |
	&lt;ldap_bind_dn_statement&gt; |
	&lt;ldap_bind_password_statement&gt; |
	&lt;postgresql_server_host_statement&gt; |
	&lt;postgresql_server_port_statement&gt; |
	&lt;postgresql_dbname_statement&gt; |
	&lt;postgresql_user_statement&gt; |
	&lt;postgresql_password_statement&gt; |
	&lt;postgresql_conninfo_statement&gt; |
	&lt;auth_statement&gt; |
	&lt;shared_key_file_statement&gt; |
	&lt;digest_statement&gt; |
	&lt;directory_quota_count_per_user_limit_statement&gt; |
	&lt;directory_quota_check_start_delay_statement&gt; |
	&lt;directory_quota_check_retry_interval_statement&gt; |
	&lt;quota_check_retry_interval_statement&gt; |
	&lt;max_directory_depth_statement&gt; |
<!--	&lt;netparam_statement&gt; | -->
	&lt;sockopt_statement&gt; |
<!--	&lt;address_use_statement&gt; | -->
<!--	&lt;client_architecture_statement&gt; | -->
<!--	&lt;option_statement&gt; | -->
	&lt;known_network_statement&gt; |
	&lt;network_receive_timeout_statement&gt; |
	&lt;admin_user_statement&gt; |
	&lt;admin_user_gsi_dn_statement&gt; |
	&lt;local_user_map_statement&gt; |
	&lt;local_group_map_statement&gt; |
	&lt;schedule_cache_timeout_statement&gt; |
	&lt;schedule_rpc_timeout_statement&gt; |
	&lt;schedule_concurrency_statement&gt; |
	&lt;schedule_concurrency_per_net_statement&gt; |
	&lt;schedule_idle_load_thresh_statement&gt; |
	&lt;schedule_busy_load_thresh_statement&gt; |
	&lt;schedule_virtual_load_statement&gt; |
	&lt;schedule_candidates_ratio_statement&gt; |
	&lt;schedule_rtt_thresh_diff_statement&gt; |
	&lt;schedule_rtt_thresh_ratio_statement&gt; |
	&lt;schedule_rtt_thresh_statement&gt; |
	&lt;write_local_priority_statement&gt; |
	&lt;write_target_domain_statement&gt; |
	&lt;minimum_free_disk_space_statement&gt; |
	&lt;direct_local_access_statement&gt; |
	&lt;replication_at_write_open_statement&gt; |
	&lt;read_only_statement&gt; |
	&lt;simultaneous_replication_receivers_statement&gt; |
	&lt;replication_busy_host_statement&gt; |
	&lt;gfsd_connection_cache_statement&gt; |
	&lt;xmlattr_size_limit_statement&gt; |
	&lt;xattr_size_limit_statement&gt; |
	&lt;attr_cache_limit_statement&gt; |
	&lt;attr_cache_timeout_statement&gt; |
	&lt;page_cache_timeout_statement&gt; |
	&lt;log_file_statement&gt; |
	&lt;log_level_statement&gt; |
	&lt;log_message_verbose_level_statement&gt; |
	&lt;log_auth_verbose_statement&gt; |
	&lt;file_trace_statement&gt; |
	&lt;fatal_action_statement&gt; |
	&lt;debug_command_statement&gt; |
	&lt;no_file_system_node_timeout_statement&gt; |
	&lt;gfmd_authentication_timeout_statement&gt; |
	&lt;gfmd_reconnection_timeout_statement&gt; |
	&lt;gfsd_connection_timeout_statement&gt; |
<!--	&lt;record_atime_statement&gt; | -->
	&lt;atime_statement&gt; |
	&lt;max_open_files_statement&gt; |
	&lt;client_digest_check_statement&gt; |
	&lt;client_file_bufsize_statement&gt; |
	&lt;client_parallel_copy_statement&gt; |
	&lt;profile_statement&gt; |
	&lt;metadb_server_list_statement&gt; |
	&lt;metadb_replication_statement&gt; |
	&lt;synchronous_replication_timeout_statement&gt; |
	&lt;synchronous_journaling_statement&gt; |
	&lt;metadb_server_force_slave_statement&gt; |
	&lt;metadb_server_slave_max_size_statement&gt; |
	&lt;metadb_server_slave_replication_timeout_statement&gt; |
	&lt;metadb_journal_dir_statement&gt; |
	&lt;metadb_journal_max_size_statement&gt; |
	&lt;metadb_journal_recvq_size_statement&gt; |
	&lt;metadb_replica_remover_by_host_sleep_time_statement&gt; |
	&lt;metadb_replica_remover_by_host_inode_step_statement&gt; |
	&lt;replica_check_statement&gt; |
	&lt;replica_check_remove_statement&gt; |
	&lt;replica_check_remove_grace_used_space_ratio_statement&gt; |
	&lt;replica_check_remove_grace_time_statement&gt; |
	&lt;replica_check_reduced_log_statement&gt; |
	&lt;replica_check_host_down_thresh_statement&gt; |
	&lt;replica_check_sleep_time_statement&gt; |
	&lt;replica_check_minimum_interval_statement&gt; |
	&lt;ib_rdma_statement&gt; |
	&lt;rdma_device_statement&gt; |
	&lt;rdma_port_statement&gt; |
	&lt;rdma_gid_index_statement&gt; |
	&lt;rdma_min_size_statement&gt; |
	&lt;rdma_mr_reg_mode_statement&gt; |
	&lt;rdma_mr_reg_static_min_size_statement&gt; |
	&lt;rdma_mr_reg_static_max_size_statement&gt; |
	&lt;replicainfo_statement&gt; |
	&lt;write_verify_statement&gt; |
	&lt;write_verify_interval_statement&gt; |
	&lt;write_verify_retry_interval_statement&gt; |
	&lt;write_verify_log_interval_statement&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;include_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"include" &lt;pathname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;include_nesting_limit_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"include_nesting_limit" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool" &lt;pathname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_server_listen_address_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_server_listen_address" &lt;ipv4_address&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_server_listen_backlog_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_server_listen_backlog" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_server_cred_type_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_server_cred_type" &lt;cred_type&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_server_cred_service_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_server_cred_service" &lt;cred_service&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_server_cred_name_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_server_cred_name" &lt;cred_name&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_server_back_channel_rcvbuf_limit_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_server_back_channel_rcvbuf_limit" &lt;size_limit&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_server_read_only_retry_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_server_read_only_retry_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_check_level_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_check_level" &lt;spck_level&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_check_parallel_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_check_parallel" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_check_parallel_max_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_check_parallel_max" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_check_parallel_per_capacity_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_check_parallel_per_capacity" &lt;size&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_check_parallel_step_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_check_parallel_step" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_base_load_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_base_load" &lt;load&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spool_digest_error_check_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"spool_digest_error_check" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_host_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_host" &lt;hostname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_port_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_port" &lt;portnumber&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_cred_type_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_cred_type" &lt;cred_type&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_cred_service_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_cred_service" &lt;cred_service&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_cred_name_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_cred_name" &lt;cred_name&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_listen_backlog_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_listen_backlog" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_max_descriptors_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_max_descriptors" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_stack_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_stack_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_thread_pool_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_thread_pool_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_job_queue_length_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_job_queue_length" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_remover_queue_length_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_remover_queue_length" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_remove_scan_log_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_remove_scan_log_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_remove_scan_interval_factor_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_remove_scan_interval_factor" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_heartbeat_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_heartbeat_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_failover_notify_delay_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"failover_notify_delay" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_dbq_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_dbq_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_back_channel_sndbuf_limit_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_back_channel_sndbuf_limit" &lt;size_limit&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_nfs_root_squash_support_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_nfs_root_squash_support" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;ldap_server_host_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"ldap_server_host" &lt;hostname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;ldap_server_port_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"ldap_server_port" &lt;portnumber&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;ldap_base_dn_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"ldap_base_dn" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;ldap_bind_dn_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"ldap_bind_dn" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;ldap_bind_password_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"ldap_bind_password" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;postgresql_server_host_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"postgresql_server_host" &lt;hostname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;postgresql_server_port_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"postgresql_server_port" &lt;portnumber&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;postgresql_dbname_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"postgresql_dbname" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;postgresql_user_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"postgresql_user" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;postgresql_password_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"postgresql_password" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;postgresql_conninfo_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"postgresql_conninfo" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;auth_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"auth" &lt;validity&gt; &lt;auth_method&gt; &lt;hostspec&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;auth_command&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"enable" | "disable"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;auth_method&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"gsi" | "gsi_auth" | "sharedsecret"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;shared_key_file_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"shared_key_file" &lt;pathname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;digest_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"digest" &lt;digest_type&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;directory_quota_count_per_user_limit_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"directory_quota_count_per_user_limit" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;directory_quota_check_start_delay_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"directory_quota_check_start_delay" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;directory_quota_check_retry_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"directory_quota_check_retry_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;quota_check_retry_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"quota_check_retry_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;max_directory_depth_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"max_directory_depth" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<!--
<varlistentry>
<term>&lt;netparam_statement&gt; ::=</term>
>
<listitem><literallayout format="linespecific" class="normal">"netparam" &lt;netparam_option&gt;=&lt;number&gt; [&lt;hostspec&gt;]</literallayout></listitem>
</varlistentry>
-->

<!--
<varlistentry>
<term>&lt;netparam_option&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"parallel_streams" | "stripe_unit_size" |
	"rate_limit"</literallayout></listitem>
</varlistentry>
-->

<varlistentry>
<term>&lt;sockopt_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"sockopt" &lt;socket_option&gt;[=&lt;number&gt;] [""LISTENER" | &lt;hostspec&gt;]</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;socket_option&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"debug" | "keepalive" | "sndbuf" | "rcvbuf" |
	"tcp_nodelay"</literallayout></listitem>
</varlistentry>

<!--
<varlistentry>
<term>&lt;address_use_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"address_use" &lt;hostspec&gt;</literallayout></listitem>
</varlistentry>
-->

<!--
<varlistentry>
<term>&lt;client_architecture_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"client_architecture" &lt;architecture&gt; &lt;hostspec&gt;</literallayout></listitem>
</varlistentry>
-->

<!--
<varlistentry>
<term>&lt;option_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"option" &lt;an_option&gt;</literallayout></listitem>
</varlistentry>
-->

<!--
<varlistentry>
<term>&lt;an_option&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"noatime"</literallayout></listitem>
</varlistentry>
!-->

<varlistentry>
<term>&lt;known_network_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"known_network" &lt;hostspec&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;network_receive_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"network_receive_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;admin_user_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"admin_user" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;admin_user_gsi_dn_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"admin_user_gsi_dn" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;local_user_map_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"local_user_map" &lt;local_user_and_group_map_spec&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;local_group_map_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"local_group_map" &lt;local_user_and_group_map_spec&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;local_user_and_group_map_spec&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;pathname&gt; |
		&lt;pathname&gt; &lt;hostname&gt;|
		&lt;pathname&gt; &lt;hostname&gt; ":" &lt;portnumber&gt;</literallayout></listitem>
</varlistentry>

<!--
<varlistentry>
<term>&lt;dir_cache_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"dir_cache_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>
-->

<!--
<varlistentry>
<term>&lt;host_cache_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"host_cache_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>
-->

<varlistentry>
<term>&lt;schedule_cache_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_cache_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_rpc_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_rpc_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_concurrency_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_concurrency" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_concurrency_per_net_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_concurrency_per_net" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_idle_load_thresh_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_idle_load_thresh" &lt;load&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_busy_load_thresh_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_busy_load_thresh" &lt;load&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_virtual_load_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_virtual_load" &lt;load&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_candidates_ratio_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_candidates_ratio" &lt;floating_point_number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_rtt_thresh_diff_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_rtt_thresh_diff" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_rtt_thresh_ratio_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_rtt_thresh_ratio" &lt;floating_point_number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;schedule_rtt_thresh_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"schedule_rtt_thresh" &lt;floating_point_number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;write_local_priority_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"write_local_priority" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;write_target_domain_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"write_target_domain" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;minimum_free_disk_space_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"minimum_free_disk_space" &lt;size&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;direct_local_access_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"direct_local_access" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replication_at_write_open_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replication_at_write_open" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;read_only_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"read_only" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;simultaneous_replication_receivers_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"simultaneous_replication_receivers" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replication_busy_host_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replication_busy_host" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;gfsd_connection_cache_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"gfsd_connection_cache" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;xmlattr_size_limit_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"xmlattr_size_limit" &lt;size&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;xattr_size_limit_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"xattr_size_limit" &lt;size&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;attr_cache_limit_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"attr_cache_limit" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;attr_cache_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"attr_cache_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;page_cache_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"page_cache_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;log_file_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"log_file" &lt;pathname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;log_level_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"log_level" &lt;log_priority&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;log_message_verbose_level_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"log_message_verbose_level" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;log_auth_verbose_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"log_auth_verbose" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;file_trace_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"file_trace" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;fatal_action_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"fatal_action" &lt;fatal_action_name&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;debug_command_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"debug_command" &lt;string_list&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;no_file_system_node_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"no_file_system_node_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;gfmd_authentication_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"gfmd_authentication_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;gfmd_reconnection_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"gfmd_reconnection_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;gfsd_connection_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"gfsd_connection_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<!--
<varlistentry>
<term>&lt;record_atime_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"record_atime" &lt;validity&gt;</literallayout></listitem>
</varlistentry>
 -->

<varlistentry>
<term>&lt;atime_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"atime" &lt;atime_type&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;max_open_files_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"max_open_files" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;client_digest_check_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"client_digest_check" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;client_file_bufsize_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"client_file_bufsize" &lt;size&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;client_parallel_copy_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"client_parallel_copy" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;profile_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"profile" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_list_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_list" &lt;metadb_server_list_spec&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_list_spec&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;hostname_port_spec&gt; |
	&lt;hostname_port_spec&gt; &lt;metadb_server_list_spec&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_replication_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_replication" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;synchronous_replication_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"synchronous_replication_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;synchronous_journaling_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"synchronous_journaling" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_force_slave_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_force_slave" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_slave_max_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_slave_max_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_server_slave_replication_timeout_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_server_slave_replication_timeout" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_journal_dir_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_journal_dir" &lt;pathname&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_journal_max_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_journal_max_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_journal_recvq_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_journal_recvq_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_replica_remover_by_host_sleep_time_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_replica_remover_by_host_sleep_time" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;metadb_replica_remover_by_host_inode_step_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"metadb_replica_remover_by_host_inode_step" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_remove_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check_remove" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_remove_grace_used_space_ratio_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check_remove_grace_used_space_ratio" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_remove_grace_time&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check_remove_grace_time" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_reduced_log_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check_reduced_log" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_host_down_thresh_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check_host_down_thresh" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_sleep_time_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check_sleep_time" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replica_check_minimum_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replica_check_minimum_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;string_list&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;string&gt; |
	&lt;string&gt; &lt;string_list&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;hostspec&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;ipv4_address&gt; | &lt;ipv4_address&gt; "/" &lt;address_mask&gt; |
	&lt;hostname&gt; | "." &lt;domain_name&gt; | "*"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;pathname&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;pathname_character&gt; &lt;pathname_character&gt;*</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;pathname_character&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;hostname_character&gt; | "," | "/" | "_"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;hostname_port_spec&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;hostname&gt;|
	&lt;hostname&gt; ":" &lt;portnumber&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;hostname&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;hostname_character&gt; &lt;hostname_character&gt;*</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;hostname_character&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;alphabet&gt; | &lt;digit&gt; | "-" | "."</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;portnumber&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;size&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;number&gt; [ "k" | "M" | "G" | "T" ]</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;number&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;digit&gt; [&lt;digit&gt;*]</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;digit&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;size_limit&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;number&gt; | "disable" </literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;string&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">""" &lt;double_quoted_character&gt;* """</literallayout></listitem>
</varlistentry>

<!--
<varlistentry>
<term>&lt;string&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;string_component&gt; &lt;string_component&gt;*</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;string_component&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;pathname&gt; |
	"'" &lt;single_quoted_character&gt;* "'" |
	""" &lt;double_quoted_character&gt;* """</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;single_quoted_character&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;any_character_except_single_quotation&gt;</literallayout></listitem>
</varlistentry>
-->

<varlistentry>
<term>&lt;double_quoted_character&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">&lt;any_character_except_backslash_and_double_quotation&gt; |
	"\\" | "\""</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;validity&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"enable" | "disable"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;spck_level&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"disable" | "display" | "delete" | "lost_found"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;atime_type&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"disable" | "relative" | "strict"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;log_priority&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"emerg" | "alert" | "crit" | "err" | "warning" |
	"notice" | "info" | "debug"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;fatal_action_name&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"backtrace_and_abort" | "backtrace_and_exit" |
	"abort" | "exit"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;ib_rdma_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"ib_rdma" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;rdma_device_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"rdma_device" &lt;string&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;rdma_port_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"rdma_port" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;rdma_gid_index_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"rdma_gid_index" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;rdma_min_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"rdma_min_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;rdma_mr_reg_mode_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"rdma_mr_reg_mode" &lt;mr_reg_mode&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;mr_reg_mode&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"static" | "dynamic" | "static" "dynamic"</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;rdma_mr_reg_static_min_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"rdma_mr_reg_static_min_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;rdma_mr_reg_static_max_size_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"rdma_mr_reg_static_max_size" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;replicainfo_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"replicainfo" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;write_verify_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"write_verify" &lt;validity&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;write_verify_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"write_verify_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;write_verify_retry_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"write_verify_retry_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

<varlistentry>
<term>&lt;write_verify_log_interval_statement&gt; ::=</term>
<listitem><literallayout format="linespecific" class="normal">"write_verify_log_interval" &lt;number&gt;</literallayout></listitem>
</varlistentry>

</variablelist>

</refsect1>

<refsect1 id="examples"><title>EXAMPLES</title>
<para>
The following is an example of gfarm2.conf to use sharedsecret authentication.
</para>
<literallayout format="linespecific" class="normal">
metadb_server_host metadb.example.org
metadb_server_port 601
auth enable sharedsecret *
sockopt keepalive
</literallayout>

<para>
The following is an example of gfmd.conf
to use PostgreSQL to store the metadata,
and to allow access from filesystem nodes and clients at IP address
192.168.0.0/24, via sharedsecret authentication.
</para>
<literallayout format="linespecific" class="normal">
metadb_server_host metadb.example.org
metadb_server_port 601
postgresql_server_host metadb.example.org
postgresql_server_port 5432
postgresql_dbname gfarm
postgresql_user gfarm
postgresql_password "secret-postgresql-password"
auth enable sharedsecret 192.168.0.0/24
admin_user john
sockopt keepalive
</literallayout>

<para>
The following is an example of gfmd.conf to use LDAP to store the metadata,
and to allow access from filesystem nodes and clients at any IP address,
via GSI authentication.
</para>
<literallayout format="linespecific" class="normal">
metadb_server_host metadb.example.com
metadb_server_port 601
ldap_server_host metadb.example.com
ldap_server_port 602
ldap_base_dn "dc=example, dc=com"
ldap_bind_dn "cn=gfarmuser, dc=example, dc=com"
ldap_bind_password "secret-ldap-password"
auth enable gsi *
spool_server_cred_type host
spool_server_cred_service gfsd
admin_user john
admin_user_gsi_dn "/C=JP/ST=Tokyo/L=Chuo-ku/O=Example, Inc./OU=Example Division/CN=John Doe"
sockopt keepalive
</literallayout>


</refsect1>

<refsect1 id="files"><title>FILES</title>
<variablelist>

<varlistentry>
<term><filename moreinfo="none">%%SYSCONFDIR%%/gfarm2.conf</filename></term>
<listitem><para></para></listitem>
</varlistentry>

<varlistentry>
<term><filename moreinfo="none">$HOME/.gfarm2rc</filename></term>
<listitem><para></para></listitem>
</varlistentry>

</variablelist>
</refsect1>

<refsect1 id="see-also"><title>SEE ALSO</title>
<para>
  <citerefentry><refentrytitle>gfmd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
  <citerefentry><refentrytitle>gfsd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
  <citerefentry><refentrytitle>setsockopt</refentrytitle><manvolnum>2</manvolnum></citerefentry></para>
</refsect1>
</refentry>

