gfarm2.conf(5)


NAME

   gfarm2.conf - Gfarm configuration file

DESCRIPTION

   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.

   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.

   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.

HOST_SPECIFICATION

   Host_specification has the following forms.

   III.JJJ.KKK.LLL
       Specifies an IP address with four octets from 0 to 255, separated
       by ".".

   III.JJJ.KKK.LLL/MM
       Specifies a network address with an IP address and a netmask from 0
       to 31 separated by "/".

   domain.name
       Specifies a host name.

   .domain.name
       Specifies all hosts which belong to the domain.name.

   *
       Specifies all hosts.

STATEMENT

   The following statements are supported.

   spool directory
       The spool 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.

       For example,

                spool /var/spool/gfarm

   spool_server_listen_address IP-address
       The spool_server_listen_address 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.

       For example,

                spool_server_listen_address 192.168.121.1

   spool_server_listen_backlog number
       This statement specifies the second parameter of the listen(2)
       system call that gfsd invokes. The default value is SOMAXCONN
       (typically 128, but depends on the OS) on OSes which define this
       symbol in <sys/socket.h>, or 5 if it's undefined.

       On an environment which has many gfarm clients, it's recommened to
       increase this value after increasing system limit.

       This parameter is only available in gfarm2.conf, and ignored in
       gfmd.conf.

       For example,

                spool_server_listen_backlog 128

   spool_server_cred_type cred_type
       This statement specifies the type of credential used by gfsd for
       GSI authentication. This is ignored when you are using sharedsecret
       authentication.

       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.

       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.

       Example:

                spool_server_cred_type self

       The possible types of cred_type are ``self'', ``host'', ``user''
       and ``mechanism-specific''. And those are used with the
       spool_server_cred_service and spool_server_cred_name statements as
       follows:

       self
           This keyword specifies that the certificate that the user
           currently has is used. You must not use either the
           spool_server_cred_service or spool_server_cred_name statement,
           if you are using this type.

       host
           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
           spool_server_cred_service statement. If ``host'' is specified
           as the service name, a host certificate in the file
           ``/etc/grid-security/hostcert.pem'' will be used. If any server
           name other than ``host'' is specified, a service certificate in
           the file ``/etc/grid-security/SERVICE/SERVICEcert.pem'' will be
           used. If the service name is omitted, ``host'' 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 gfhost command exactly. Alias hostnames are
           not allowed.

           This feature corresponds to the GSS_C_NT_HOSTBASED_SERVICE
           feature in GSSAPI (RFC2743/RFC2744).

           Example:

                    spool_server_cred_type host
                    spool_server_cred_service host

       user
           This keyword specifies that a user certificate is used. The
           account name of the user may be specified by the
           spool_server_cred_name 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
           spool_server_cred_service statement, if you are using a user
           certificate.

           To map from the account name to a Distinguished Name of a
           certificate, file ``/etc/grid-security/grid-mapfile'' 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.

           This feature corresponds to the GSS_C_NT_USER_NAME feature in
           GSSAPI (RFC2743/RFC2744).

           Example:

                    spool_server_cred_type user
                    spool_server_cred_name guest

       mechanism-specific
           This keyword specifies that spool_server_cred_name is treated
           as a raw X.509 Distinguished Name serving as a server's
           certificate. You must not specify a service name using a
           spool_server_cred_service statement, if you are using this
           type.

           This feature corresponds to a case where GSS_C_NO_OID is
           specified as a Name Type in GSSAPI (RFC2743/RFC2744).

           Example:

                    spool_server_cred_type mechanism-specific
                    spool_server_cred_name "/O=Grid/O=Globus/OU=example.com/CN=John Smith"

   spool_server_cred_service cred_service
       This statement specifies the service name of a service certificate
       used by gfsd for GSI authentication, when ``host'' is specified in
       spool_server_cred_type statement. This is ignored when you are
       using sharedsecret authentication. Please read the description of
       the spool_server_cred_type statement for details.

   spool_server_cred_name cred_name
       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 spool_server_cred_type statement. This is ignored
       when you are using sharedsecret authentication. Please read the
       description of the spool_server_cred_type statement for details.

   spool_server_back_channel_rcvbuf_limit size_limit
       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
       disable keyword is specified as the parameter, no limit is applied.
       The default limit is 4096 bytes.

       This parameter is only available in gfarm2.conf which is referred
       by gfsd, and ignored clients, and ignored in gfmd.conf.

       For example,

                spool_server_back_channel_rcvbuf_limit 16384

   spool_check_level level
       This statement enables the consistency check of files stored in the
       spool directory at start-up of gfsd. The level 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.

       For example,

                spool_check_level disable

   spool_base_load load-average
       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.

       For example,

                spool_base_load 1.0

   spool_digest_error_check validity
       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.

       This option is only available for a gfsd node (or a file system
       node). The default is enable.

       For example,

                spool_digest_error_check disable

   metadb_server_host hostname
       The metadb_server_host statement specifies the host name on which
       gfmd is running.

       This statement cannot be omitted.

       For example,

                metadb_server_host ldap.example.com

   metadb_server_port port
       The metadb_server_port statement specifies the tcp port number the
       gfmd is listening on. The default port number is 601.

       For example,

                metadb_server_port 601

   metadb_server_cred_type cred_type
       This statement specifies the type of credential used by gfmd for
       GSI authentication. This is ignored when you are using sharedsecret
       authentication. Please read the description of the
       spool_server_cred_type statement on the configuration of this
       statement.

   metadb_server_cred_service cred_service
       This statement specifies the service name of a service certificate
       used by gfmd for GSI authentication, when ``host'' is specified in
       metadb_server_cred_type statement. This is ignored when you are
       using sharedsecret authentication. Please read the description of
       the spool_server_cred_type statement on the configuration of this
       statement.

   metadb_server_cred_name cred_name
       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 metadb_server_cred_type statement. This is ignored
       when you are using sharedsecret authentication. Please read the
       description of the spool_server_cred_type statement on the
       configuration of this statement.

   metadb_server_listen_backlog number
       This statement specifies the second parameter of the listen(2)
       system call that gfmd invokes. The default value is SOMAXCONN
       (typically 128, but depends on the OS) on OSes which define this
       symbol in <sys/socket.h>, or 5 if it's undefined.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                metadb_server_listen_backlog 128

   metadb_server_max_descriptors number
       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.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                metadb_server_max_descriptors 262144

   metadb_server_stack_size bytes
       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.

       For example, the default stack size on CentOS 5/i386 is 10MB, thus,
       you can decrease the size of the virtual memory space of gfmd to
       1/40, by specifying 256KB as this parameter.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                metadb_server_stack_size 262144

   metadb_server_thread_pool_size size
       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.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                metadb_server_thread_pool_size 16

   metadb_server_job_queue_length length
       This directive specifies the length of job queue in the gfmd. It is
       effective to specify around the maximum number of clients that
       access the Gfarm file system at the same time. Default is 16000.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                metadb_server_job_queue_length 160

   metadb_server_heartbeat_interval seconds
       This directive specifies the interval of heartbeat in seconds for
       gfmd to check availability of each gfsd. Default is 180 seconds.

       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.

       For example,

                metadb_server_heartbeat_interval 180

   metadb_server_dbq_size size
       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.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                metadb_server_dbq_size 65536

   metadb_server_back_channel_sndbuf_limit size_limit
       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 disable keyword is specified as
       the parameter, no limit is applied. The default limit is 4096
       bytes.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                metadb_server_back_channel_sndbuf_limit 16384

   metadb_server_nfs_root_squash_support validity
       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.

       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.

       This parameter is only available in gfmd.conf.

       Example:

                metadb_server_nfs_root_squash_support disable

   ldap_server_host hostname
       The ldap_server_host 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.

       For example,

                ldap_server_host ldap.example.com

   ldap_server_port port
       The ldap_server_port statement specifies the tcp port number of the
       LDAP server.

       This statement cannot be omitted if ldap_server_host is specified.

       For example,

                ldap_server_port 602

   ldap_base_dn LDAP_base_distinguished_name
       The ldap_base_dn statement specifies the base-distinguished name of
       the LDAP database.

       This statement cannot be omitted if ldap_server_host is specified.

       For example,

                ldap_base_dn "dc=example, dc=com"

   ldap_bind_dn LDAP_bind_distinguished_name
       The ldap_bind_dn statement specifies the distinguished name for the
       bind operation which is used for authentication to the LDAP
       database.

       For example,

                ldap_bind_dn "cn=gfarmuser, dc=example, dc=com"

   ldap_bind_password password
       The ldap_bind_password statement specifies the password for the
       bind operation which is used for authentication to the LDAP
       database.

       For example,

                ldap_bind_password "secret-ldap-password"

   postgresql_server_host hostname
       The postgresql_server_host 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.

       For example,

                postgresql_server_host postgresql.example.com

   postgresql_server_port port
       The postgresql_server_port statement specifies the tcp port number
       of the PostgreSQL server.

       This statement cannot be omitted if postgresql_server_host is
       specified.

       For example,

                postgresql_server_port 602

   postgresql_dbname dbname
       The postgresql_dbname statement specifies the database name of the
       PostgreSQL database.

       This statement cannot be omitted if postgresql_server_host is
       specified.

       For example,

                postgresql_dbname gfarm

   postgresql_user user
       The postgresql_user statement specifies the username used to
       connect the PostgreSQL database.

       For example,

                postgresql_user gfarm

   postgresql_password password
       The postgresql_password statement specifies the password used to
       connect the PostgreSQL database.

       For example,

                postgresql_password gfarm

   postgresql_conninfo connection_info
       The postgresql_conninfo statement specifies the connection option
       used to connect the PostgreSQL database.

       For example,

                postgresql_conninfo "sslmode=require connect_timeout=30"

   auth validity method Host_specification
       This statement specifies the authentication method when
       communicating with the host(s) specified by the third argument.

       The first argument should be either the enable or disable keyword.
       The second argument, auth method, should be the gsi, gsi_auth, or
       sharedsecret keyword. The third argument specifies the host(s) by
       using Host specification.

       The auth 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 enable
       keyword. When there is no corresponding entry, or when the first
       corresponding entry has the disable keyword, the authentication
       method does not become a candidate.

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

       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 sharedsecret, gsi_auth, and then gsi.

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

       This statement cannot be omitted.

       For example,

                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 *

       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
       sharedsecret and gsi; all hosts which belong to the network address
       10.0.0.0/8 will be tested for authentication by both gsi_auth and
       gsi; and all other hosts will be authenticated by gsi. Note that
       two hosts, 192.168.0.100 and 192.168.0.101, will be tested for
       authentication by gsi only.

   shared_key_file pathname
       The shared_key_file statement specifies a pathname of the shared
       secret key file in sharedsecret authentication.

   digest digest_type
       The digest 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 client_digest_check is enabled, the digest_type has to be
       supported on clients as well.

       Specifying "disable" as digest_type disables the checksum
       calculation.

       This directive is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       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 direct_local_access statement, or
       enable the client-side checksum calculation feature by the
       client_digest_check statement.

       For example,

                digest md5

   sockopt option[=value] [LISTENER | Host_specification]
       The sockopt parameter specifies the socket option option via the
       setsockopt(2) system call.

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

       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).

       If the second argument is omitted, the socket option is applied to
       every socket.

       The following socket options can be specified.

       debug. The SO_DEBUG socket option is specified. A value is not
       necessary.

       keepalive. The SO_KEEPALIVE socket option is specified. A value is
       not necessary.

       sndbuf. The SO_SNDBUF socket option is specified with a value.

       rcvbuf. The SO_RCVBUF socket option is specified with a value.

       tcp_nodelay. The TCP_NODELAY socket option is specified. A value is
       not necessary.

       For example,

                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

   known_network Host_specification
       The known_network 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.

       Multiple networks can be specified as follows.

                known_network 192.168.0.0/25
                known_network 192.168.0.128/25

   network_receive_timeout seconds
       The network_receive_timeout 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.

       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.

       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.

   admin_user user
       This directive specifies an administrator user name, which is
       specified in gfmd.conf.

   admin_user_gsi_dn user_gsi_dn
       This directive specifies a subject DN of an administrator, which is
       specified in gfmd.conf.

   local_user_map user-map-file [hostname:[port]]
       This directive specifies a file name user-map-file 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.

       user-map-file 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
       user-map-file on each filesystem node should have an entry from
       each local user name to a unique global user name.

       Example:

                local_user_map /etc/gfarm/gfarm-usermap

       Each line of the user-map-file consists of two fields separated by
       spaces; the first field is a global user name, and the second field
       is a local user name.

       Example of the user mapping file:

                foobar foo
                quux baz

       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.

       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.

       Example of multiple user mapping file:

                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

       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.

   local_group_map group-map-file [hostname:[port]]
       This directive specifies a file name group-map-file 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.

       Example:

                local_group_map /etc/gfarm/gfarm-groupmap

       Each line of the group-map-file consists of two fields separated by
       spaces; the first field is a global group name, and the second
       field is a local group name.

       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.

   schedule_cache_timeout seconds
       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.

       For example,

                schedule_cache_timeout 60

   schedule_concurrency number
       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.

       For example,

                schedule_concurrency 10

   schedule_concurrency_per_net number
       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.

       For example,

                schedule_concurrency_per_net 3

   schedule_idle_load_thresh load-average
       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.

       For example,

                schedule_idle_load_thresh 0.1

   schedule_busy_load_thresh load-average
       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.

       For example,

                schedule_busy_load_thresh 0.5

   schedule_virtual_load load-average
       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.

       For example,

                schedule_virtual_load 0.3

   schedule_candidates_ratio ratio
       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.

       For example,

                schedule_candidates_ratio 4.0

   schedule_rtt_thresh_diff microseconds
       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.

       For example,

                schedule_rtt_thresh_diff 1000

   schedule_rtt_thresh_ratio ratio
       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.

       For example,

                schedule_rtt_thresh_ratio 4.0

   schedule_rtt_thresh ratio
       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.

       For example,

                schedule_rtt_thresh 4.0

   write_local_priority validity
       Gfarm nearly always chooses localhost, when it selects a filesystem
       node to write a file. By specifyng the disable keyword in this
       directive, Gfarm handles localhost the same as other filesystem
       nodes.  The default is enable.

       For example,

                write_local_priority disable

   write_target_domain domain
       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.  Note that if you specify this directive more than once,
       only the first one will be used and the others are ignored.

       For example,

                write_target_domain example.org

   minimum_free_disk_space bytes
       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'' (kilo bytes), ``M'' (mega
       bytes), ``G'' (giga bytes) and ``T'' (tera bytes). The default size
       is 512M bytes.

       This directive has to be specified in both gfarm2.conf and
       gfmd.conf. After restarting the gfmd and the Gfarm client, it is
       effective.

       For example,

                minimum_free_disk_space 1G

   direct_local_access validity
       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 digest directive for detail.

       The default is enable.

       This directive is only available for clients in gfarm2.conf. Both
       gfsd and gfmd ignore this setting in gfarm2.conf and gfmd.conf.

       For example,

                direct_local_access disable

   simultaneous_replication_receivers number
       This directive specifies maximum number of simultaneous
       gfmd-initiated replications to same host. The default is 20.

       For example,

                simultaneous_replication_receivers 40

   gfsd_connection_cache number
       This directive specifies maximum number of cached gfsd connections.
       The default is 16.

       For example,

                gfsd_connection_cache 32

   xmlattr_size_limit bytes
       This directive specifies maximum size of XML extended attributes.
       The default is 786432, and numbers greater than 983040 are not
       allowed.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                xmlattr_size_limit 786432

   xattr_size_limit bytes
       This directive specifies maximum size of extended attributes. The
       default is 65536, and numbers greater than 983040 are not allowed.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf.

       For example,

                xattr_size_limit 65536

   attr_cache_limit number
       This directive specifies maximum number of cached attributes in
       gfarm library. The default is 40000.

       For example,

                attr_cache_limit 100000

   attr_cache_timeout milliseconds
       This directive specifies maximum time until cached attributes
       expire in milliseconds. The default is 1000, i.e. 1 second.

       For example,

                attr_cache_timeout 3600000

   page_cache_timeout milliseconds
       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.

       For example,

                page_cache_timeout 3600000

   log_level priority_level
       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".

       For example,

                log_level debug

   log_message_verbose_level level
       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.

       For example,

                log_message_verbose_level 1

   log_auth_verbose validity
       When "enable" is specified, verbose messages about authentication
       are logged.

       Example:

                log_auth_verbose enable

   file_trace validity
       When "enable" is specified, an audit log feature for file creation,
       modification and removal is enabled.

       This directive is available in both gfarm2.conf and gfmd.conf.

       Here is an example:

                file_trace enable

   fatal_action action_name
       This parameter specifies the behavior at a fatal error. The default
       action is backtrace_and_abort.

       For example,

                fatal_action backtrace_and_abort

       The following actions are supported:

       backtrace_and_abort
           Print a backtrace, and then call abort(3) .

       backtrace_and_exit
           Print a backtrace, and then call exit(3) .

       abort
           Call abort(3) .

       exit
           Call exit(3) .

   debug_command command_line
       When a Gfarm application program crashes (received SIGSEGV, SIGBUG,
       etc.), a debug command specified in this directive is executed. For
       example,

                debug_command env DISPLAY=:0.0 xterm -e gdb %e %p

       "%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 "%%".

       This directive is available in both gfarm2.conf and gfmd.conf. If
       this directive is omitted, no debug command is executed.

   no_file_system_node_timeout seconds
       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.

       For example,

                no_file_system_node_timeout 30

   gfmd_authentication_timeout seconds
       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.

       For example,

                gfmd_authentication_timeout 45

   gfmd_reconnection_timeout seconds
       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.

       For example,

                gfmd_reconnection_timeout 30

   gfsd_connection_timeout seconds
       This directive specifies the timeout to connect to a gfsd. The
       default is 30 seconds.

       For example,

                gfsd_connection_timeout 30

   atime type
       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".

       This parameter is only available in gfmd.conf.

       For example,

                atime disable

   max_open_files num-of-files
       This directive specifies the maximum number of open files. The
       default is 1024.

       This parameter is only available in gfmd.conf.

       For example,

                max_open_files 1024

   client_digest_check validity
       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.

       The default value is disable.

       This directive is only available for clients in gfarm2.conf. Both
       gfsd and gfmd ignore this setting in gfarm2.conf and gfmd.conf.

       For example,

                client_digest_check enable

   client_file_bufsize bytes
       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.

       This directive is only available for clients in gfarm2.conf. Both
       gfsd and gfmd ignore this setting in gfarm2.conf and gfmd.conf.

       For example,

                client_file_bufsize 65536

   client_parallel_copy num-of-parallel
       This directive specifies the number of parallel for gfprep and
       gfpcopy to work in parallel. When this number is not specified, the
       default number of parallel is 4.

       For example,

                client_palallel_copy 10

   client_parallel_max num-of-parallel
       This directive specifies the maximum number of parallel for gfprep
       and gfpcopy to work in parallel. When this number is not specified,
       the default maximum number of parallel is 16.

       For example,

                client_palallel_max 8

   profile validity
       When "enable" is specified, Gfarm outputs the profile information.

       Example:

                profile enable

   metadb_server_list gfmd-hostname[:port] ...
       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.

       This parameter is only available in gfarm2.conf, and ignored in
       gfmd.conf.

       Example:

                metadb_server_list mds1 mds2:701

   metadb_replication validity
       When "enable" is specified, the redundant metadata feature is
       enabled. The default value is disable.

       This parameter is only available in gfmd.conf.

       Example:

                metadb_replication enable

   synchronous_replication_timeout seconds
       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.

       This parameter is only available in gfmd.conf.

       Example:

                synchronous_replication_timeout 30

   synchronous_journaling validity
       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".

       This parameter is only available in gfmd.conf.

       Example:

                synchronous_journaling disable

   metadb_server_force_slave validity
       When "enable" is specified, even if the gfmd is set to default
       master, it run as slave gfmd forcedly. The default is "disable".

       This parameter is only available in gfmd.conf.

       Example:

                metadb_server_force_slave enable

   metadb_server_slave_max_size number
       This parameter specifies the maximum number of slave gfmds. The
       default is "32".

       This parameter is only available in gfmd.conf.

       Example:

                metadb_server_slave_max_size 40

   metadb_server_slave_replication_timeout seconds
       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.

       This parameter is only available in gfmd.conf.

       Example:

                metadb_server_slave_replication_timeout 180

   metadb_journal_dir directory
       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.

       This parameter is only available in gfmd.conf.

       Example:

                metadb_journal_dir /var/gfarm-metadata/journal

   metadb_journal_max_size file_size
       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 MBytes).

       This parameter is only available in gfmd.conf.

       Example:

                metadb_journal_max_size 8388608

   metadb_journal_recvq_size size
       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.

       This parameter is only available in gfmd.conf.

       Example:

                metadb_journal_recvq_size 100000

   metadb_replica_remover_by_host_sleep_time nanoseconds
       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).

       This parameter is only available in gfmd.conf.

       Example:

                metadb_replica_remover_by_host_sleep_time 20000000

   metadb_replica_remover_by_host_inode_step number
       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.

       This parameter is only available in gfmd.conf.

       Example:

                metadb_replica_remover_by_host_inode_step 1024

   replica_check validity
       When "enable" is specified, the replica_check system in gfmd can
       check and fix the number and placement of file replicas
       automatically. The replica_check works only when necessary. The
       default value is "enable". This behavior can be chagned by the
       gfrepcheck command in online.

       This parameter is only available in gfmd.conf.

       Example:

                replica_check disable

   replica_check_remove validity
       When "enable" is specified, the replica_check system in gfmd can
       remove excessive file rpelicas automatically. As an exception, when
       a file has hard-links (nlink >= 2) and replication attributes
       (gfarm.ncopy or gfarm.replicainfo) in the file itself is not set,
       the excessive file replicas does not remove automatically. The
       default value is "enable". This behavior can be chagned by the
       gfrepcheck remove command in online.

       This parameter is only available in gfmd.conf.

       Example:

                replica_check_remove disable

   replica_check_reduced_log validity
       When "enable" is specified, log messages from the replica_check may
       be reduced. The default value is "enable". This behavior can be
       chagned by the gfrepcheck reduced_log command in online.

       This parameter is only available in gfmd.conf.

       Example:

                replica_check_reduced_log disable

   replica_check_host_down_thresh seconds
       This statement specifies an interval to start replica check after a
       gfsd is down. The default value is 10800 seconds (3 hours).

       This parameter is only available in gfmd.conf.

       Example:

                replica_check_host_down_thresh 3600

   replica_check_sleep_time nanoseconds
       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 parameter is only available in gfmd.conf.

       Example:

                replica_check_sleep_time 0

   replica_check_minimum_interval seconds
       This statement specifies the minimum interval in seconds, to start
       the next replica check. The default value is 10 seconds.

       This parameter is only available in gfmd.conf.

       Example:

                replica_check_minimum_interval 5

   write_verify validity
       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 disable.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf. gfsd uses this setting at its startup by asking gfmd.

       For example,

                write_verify enable

   write_verify_interval seconds
       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).

       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.

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf. gfsd uses this setting at its startup by asking gfmd.

       For example,

                write_verify_interval 21600

   write_verify_retry_interval seconds
       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.

       It's recommended to keep this value smaller enough than the
       write_verify_interval setting. The default value is 600 seconds (10
       minutes).

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf. gfsd uses this setting at its startup by asking gfmd.

       For example,

                write_verify_retry_interval 600

   write_verify_log_interval seconds
       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.

       The default value is 3600 seconds (1 hour).

       This parameter is only available in gfmd.conf, and ignored in
       gfarm2.conf. gfsd uses this setting at its startup by asking gfmd.

       For example,

                write_verify_log_interval 3600

GRAMMAR

   This is a grammar of gfarm2.conf described by the BNF notation.

   <statement> ::=

                <spool_statement> |
                <spool_server_listen_address_statement> |
                <spool_server_listen_backlog_statement> |
                <spool_server_cred_type_statement> |
                <spool_server_cred_service_statement> |
                <spool_server_cred_name_statement> |
                <spool_server_back_channel_rcvbuf_limit_statement> |
                <spool_check_level_statement> |
                <spool_base_load_statement> |
                <spool_digest_error_check_statement> |
                <metadb_server_host_statement> |
                <metadb_server_port_statement> |
                <metadb_server_cred_type_statement> |
                <metadb_server_cred_service_statement> |
                <metadb_server_cred_name_statement> |
                <metadb_server_listen_backlog_statement> |
                <metadb_server_max_descriptors_statement> |
                <metadb_server_stack_size_statement> |
                <metadb_server_thread_pool_size_statement> |
                <metadb_server_job_queue_length_statement> |
                <metadb_server_heartbeat_interval_statement> |
                <metadb_server_dbq_size_statement> |
                <metadb_server_back_channel_sndbuf_limit_statement> |
                <metadb_server_nfs_root_squash_support_statement> |
                <ldap_server_host_statement> |
                <ldap_server_port_statement> |
                <ldap_base_dn_statement> |
                <ldap_bind_dn_statement> |
                <ldap_bind_password_statement> |
                <postgresql_server_host_statement> |
                <postgresql_server_port_statement> |
                <postgresql_dbname_statement> |
                <postgresql_user_statement> |
                <postgresql_password_statement> |
                <postgresql_conninfo_statement> |
                <auth_statement> |
                <shared_key_file_statement> |
                <digest_statement> |

                <sockopt_statement> |

                <known_network_statement> |
                <network_receive_timeout_statement> |
                <admin_user_statement> |
                <admin_user_gsi_dn_statement> |
                <local_user_map_statement> |
                <local_group_map_statement> |
                <schedule_cache_timeout_statement> |
                <schedule_concurrency_statement> |
                <schedule_concurrency_per_net_statement> |
                <schedule_idle_load_thresh_statement> |
                <schedule_busy_load_thresh_statement> |
                <schedule_virtual_load_statement> |
                <schedule_candidates_ratio_statement> |
                <schedule_rtt_thresh_diff_statement> |
                <schedule_rtt_thresh_ratio_statement> |
                <schedule_rtt_thresh_statement> |
                <write_local_priority_statement> |
                <write_target_domain_statement> |
                <minimum_free_disk_space_statement> |
                <direct_local_access_statement> |
                <simultaneous_replication_receivers_statement> |
                <gfsd_connection_cache_statement> |
                <xmlattr_size_limit_statement> |
                <xattr_size_limit_statement> |
                <attr_cache_limit_statement> |
                <attr_cache_timeout_statement> |
                <page_cache_timeout_statement> |
                <log_level_statement> |
                <log_message_verbose_level_statement> |
                <log_auth_verbose_statement> |
                <file_trace_statement> |
                <fatal_action_statement> |
                <debug_command_statement> |
                <no_file_system_node_timeout_statement> |
                <gfmd_authentication_timeout_statement> |
                <gfmd_reconnection_timeout_statement> |
                <gfsd_connection_timeout_statement> |

                <atime_statement> |
                <max_open_files_statement> |
                <client_digest_check_statement> |
                <client_file_bufsize_statement> |
                <client_parallel_copy_statement> |
                <profile_statement> |
                <metadb_server_list_statement> |
                <metadb_replication_statement> |
                <synchronous_replication_timeout_statement> |
                <synchronous_journaling_statement> |
                <metadb_server_force_slave_statement> |
                <metadb_server_slave_max_size_statement> |
                <metadb_server_slave_replication_timeout_statement> |
                <metadb_journal_dir_statement> |
                <metadb_journal_max_size_statement> |
                <metadb_journal_recvq_size_statement> |
                <metadb_replica_remover_by_host_sleep_time_statement> |
                <metadb_replica_remover_by_host_inode_step_statement> |
                <replica_check_statement> |
                <replica_check_remove_statement> |
                <replica_check_reduced_log_statement> |
                <replica_check_host_down_thresh_statement> |
                <replica_check_sleep_time_statement> |
                <replica_check_minimum_interval_statement> |
                <write_verify_statement> |
                <write_verify_interval_statement> |
                <write_verify_retry_interval_statement> |
                <write_verify_log_interval_statement>

   <spool_statement> ::=

           "spool" <pathname>

   <spool_server_listen_address_statement> ::=

           "spool_server_listen_address" <ipv4_address>

   <spool_server_listen_backlog_statement> ::=

           "spool_server_listen_backlog" <number>

   <spool_server_cred_type_statement> ::=

           "spool_server_cred_type" <cred_type>

   <spool_server_cred_service_statement> ::=

           "spool_server_cred_service" <cred_service>

   <spool_server_cred_name_statement> ::=

           "spool_server_cred_name" <cred_name>

   <spool_server_back_channel_rcvbuf_limit_statement> ::=

           "spool_server_back_channel_rcvbuf_limit" <size_limit>

   <spool_check_level_statement> ::=

           "spool_check_level" <spck_level>

   <spool_base_load_statement> ::=

           "spool_base_load" <load>

   <spool_digest_error_check_statement> ::=

           "spool_digest_error_check" <validity>

   <metadb_server_host_statement> ::=

           "metadb_server_host" <hostname>

   <metadb_server_port_statement> ::=

           "metadb_server_port" <portnumber>

   <metadb_server_cred_type_statement> ::=

           "metadb_server_cred_type" <cred_type>

   <metadb_server_cred_service_statement> ::=

           "metadb_server_cred_service" <cred_service>

   <metadb_server_cred_name_statement> ::=

           "metadb_server_cred_name" <cred_name>

   <metadb_server_listen_backlog_statement> ::=

           "metadb_server_listen_backlog" <number>

   <metadb_server_max_descriptors_statement> ::=

           "metadb_server_max_descriptors" <number>

   <metadb_server_stack_size_statement> ::=

           "metadb_server_stack_size" <number>

   <metadb_server_thread_pool_size_statement> ::=

           "metadb_server_thread_pool_size" <number>

   <metadb_server_job_queue_length_statement> ::=

           "metadb_server_job_queue_length" <number>

   <metadb_server_heartbeat_interval_statement> ::=

           "metadb_server_heartbeat_interval" <number>

   <metadb_server_dbq_size_statement> ::=

           "metadb_server_dbq_size" <number>

   <metadb_server_back_channel_sndbuf_limit_statement> ::=

           "metadb_server_back_channel_sndbuf_limit" <size_limit>

   <metadb_server_nfs_root_squash_support_statement> ::=

           "metadb_server_nfs_root_squash_support" <validity>

   <ldap_server_host_statement> ::=

           "ldap_server_host" <hostname>

   <ldap_server_port_statement> ::=

           "ldap_server_port" <portnumber>

   <ldap_base_dn_statement> ::=

           "ldap_base_dn" <string>

   <ldap_bind_dn_statement> ::=

           "ldap_bind_dn" <string>

   <ldap_bind_password_statement> ::=

           "ldap_bind_password" <string>

   <postgresql_server_host_statement> ::=

           "postgresql_server_host" <hostname>

   <postgresql_server_port_statement> ::=

           "postgresql_server_port" <portnumber>

   <postgresql_dbname_statement> ::=

           "postgresql_dbname" <string>

   <postgresql_user_statement> ::=

           "postgresql_user" <string>

   <postgresql_password_statement> ::=

           "postgresql_password" <string>

   <postgresql_conninfo_statement> ::=

           "postgresql_conninfo" <string>

   <auth_statement> ::=

           "auth" <validity> <auth_method> <hostspec>

   <auth_command> ::=

           "enable" | "disable"

   <auth_method> ::=

           "gsi" | "gsi_auth" | "sharedsecret"

   <shared_key_file_statement> ::=

           "shared_key_file" <pathname>

   <digest_statement> ::=

           "digest" <digest_type>

   <sockopt_statement> ::=

           "sockopt" <socket_option>[=<number>] [""LISTENER" | <hostspec>]

   <socket_option> ::=

           "debug" | "keepalive" | "sndbuf" | "rcvbuf" |
                "tcp_nodelay"

   <known_network_statement> ::=

           "known_network" <hostspec>

   <network_receive_timeout_statement> ::=

           "network_receive_timeout" <number>

   <admin_user_statement> ::=

           "admin_user" <string>

   <admin_user_gsi_dn_statement> ::=

           "admin_user_gsi_dn" <string>

   <local_user_map_statement> ::=

           "local_user_map" <local_user_and_group_map_spec>

   <local_group_map_statement> ::=

           "local_group_map" <local_user_and_group_map_spec>

   <local_user_and_group_map_spec> ::=

           <pathname> |
                     <pathname> <hostname>|
                     <pathname> <hostname> ":" <portnumber>

   <schedule_cache_timeout_statement> ::=

           "schedule_cache_timeout" <number>

   <schedule_concurrency_statement> ::=

           "schedule_concurrency" <number>

   <schedule_concurrency_per_net_statement> ::=

           "schedule_concurrency_per_net" <number>

   <schedule_idle_load_thresh_statement> ::=

           "schedule_idle_load_thresh" <load>

   <schedule_busy_load_thresh_statement> ::=

           "schedule_busy_load_thresh" <load>

   <schedule_virtual_load_statement> ::=

           "schedule_virtual_load" <load>

   <schedule_candidates_ratio_statement> ::=

           "schedule_candidates_ratio" <floating_point_number>

   <schedule_rtt_thresh_diff_statement> ::=

           "schedule_rtt_thresh_diff" <number>

   <schedule_rtt_thresh_ratio_statement> ::=

           "schedule_rtt_thresh_ratio" <floating_point_number>

   <schedule_rtt_thresh_statement> ::=

           "schedule_rtt_thresh" <floating_point_number>

   <write_local_priority_statement> ::=

           "write_local_priority" <validity>

   <write_target_domain_statement> ::=

           "write_target_domain" <string>

   <minimum_free_disk_space_statement> ::=

           "minimum_free_disk_space" <size>

   <direct_local_access_statement> ::=

           "direct_local_access" <validity>

   <simultaneous_replication_receivers_statement> ::=

           "simultaneous_replication_receivers" <number>

   <gfsd_connection_cache_statement> ::=

           "gfsd_connection_cache" <number>

   <xmlattr_size_limit_statement> ::=

           "xmlattr_size_limit" <size>

   <xattr_size_limit_statement> ::=

           "xattr_size_limit" <size>

   <attr_cache_limit_statement> ::=

           "attr_cache_limit" <number>

   <attr_cache_timeout_statement> ::=

           "attr_cache_timeout" <number>

   <page_cache_timeout_statement> ::=

           "page_cache_timeout" <number>

   <log_level_statement> ::=

           "log_level" <log_priority>

   <log_message_verbose_level_statement> ::=

           "log_message_verbose_level" <number>

   <log_auth_verbose_statement> ::=

           "log_auth_verbose" <validity>

   <file_trace_statement> ::=

           "file_trace" <validity>

   <fatal_action_statement> ::=

           "fatal_action" <fatal_action_name>

   <debug_command_statement> ::=

           "debug_command" <string_list>

   <no_file_system_node_timeout_statement> ::=

           "no_file_system_node_timeout" <number>

   <gfmd_authentication_timeout_statement> ::=

           "gfmd_authentication_timeout" <number>

   <gfmd_reconnection_timeout_statement> ::=

           "gfmd_reconnection_timeout" <number>

   <gfsd_connection_timeout_statement> ::=

           "gfsd_connection_timeout" <number>

   <atime_statement> ::=

           "atime" <atime_type>

   <max_open_files_statement> ::=

           "max_open_files" <number>

   <client_digest_check_statement> ::=

           "client_digest_check" <validity>

   <client_file_bufsize_statement> ::=

           "client_file_bufsize" <size>

   <client_parallel_copy_statement> ::=

           "client_parallel_copy" <number>

   <profile_statement> ::=

           "profile" <validity>

   <metadb_server_list_statement> ::=

           "metadb_server_list" <metadb_server_list_spec>

   <metadb_server_list_spec> ::=

           <hostname_port_spec> |
                <hostname_port_spec> <metadb_server_list_spec>

   <metadb_replication_statement> ::=

           "metadb_replication" <validity>

   <synchronous_replication_timeout_statement> ::=

           "synchronous_replication_timeout" <number>

   <synchronous_journaling_statement> ::=

           "synchronous_journaling" <validity>

   <metadb_server_force_slave_statement> ::=

           "metadb_server_force_slave" <validity>

   <metadb_server_slave_max_size_statement> ::=

           "metadb_server_slave_max_size" <number>

   <metadb_server_slave_replication_timeout_statement> ::=

           "metadb_server_slave_replication_timeout" <number>

   <metadb_journal_dir_statement> ::=

           "metadb_journal_dir" <pathname>

   <metadb_journal_max_size_statement> ::=

           "metadb_journal_max_size" <number>

   <metadb_journal_recvq_size_statement> ::=

           "metadb_journal_recvq_size" <number>

   <metadb_replica_remover_by_host_sleep_time_statement> ::=

           "metadb_replica_remover_by_host_sleep_time" <number>

   <metadb_replica_remover_by_host_inode_step_statement> ::=

           "metadb_replica_remover_by_host_inode_step" <number>

   <replica_check_statement> ::=

           "replica_check" <validity>

   <replica_check_remove_statement> ::=

           "replica_check_remove" <validity>

   <replica_check_reduced_log_statement> ::=

           "replica_check_reduced_log" <validity>

   <replica_check_host_down_thresh_statement> ::=

           "replica_check_host_down_thresh" <number>

   <replica_check_sleep_time_statement> ::=

           "replica_check_sleep_time" <number>

   <replica_check_minimum_interval_statement> ::=

           "replica_check_minimum_interval" <number>

   <string_list> ::=

           <string> |
                <string> <string_list>

   <hostspec> ::=

           <ipv4_address> | <ipv4_address> "/" <address_mask> |
                <hostname> | "." <domain_name> | "*"

   <pathname> ::=

           <pathname_character> <pathname_character>*

   <pathname_character> ::=

           <hostname_character> | "," | "/" | "_"

   <hostname_port_spec> ::=

           <hostname>|
                <hostname> ":" <portnumber>

   <hostname> ::=

           <hostname_character> <hostname_character>*

   <hostname_character> ::=

           <alphabet> | <digit> | "-" | "."

   <portnumber> ::=

           <number>

   <size> ::=

           <number> [ "k" | "M" | "G" | "T" ]

   <number> ::=

           <digit> [<digit>*]

   <digit> ::=

           "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

   <size_limit> ::=

           <number> | "disable"

   <string> ::=

           """ <double_quoted_character>* """

   <double_quoted_character> ::=

           <any_character_except_backslash_and_double_quotation> |
                "\\" | "\""

   <validity> ::=

           "enable" | "disable"

   <spck_level> ::=

           "disable" | "display" | "delete" | "lost_found"

   <atime_type> ::=

           "disable" | "relative" | "strict"

   <log_priority> ::=

           "emerg" | "alert" | "crit" | "err" | "warning" |
                "notice" | "info" | "debug"

   <fatal_action_name> ::=

           "backtrace_and_abort" | "backtrace_and_exit" |
                "abort" | "exit"

   <write_verify_statement> ::=

           "write_verify" <validity>

   <write_verify_interval_statement> ::=

           "write_verify_interval" <number>

   <write_verify_retry_interval_statement> ::=

           "write_verify_retry_interval" <number>

   <write_verify_log_interval_statement> ::=

           "write_verify_log_interval" <number>

EXAMPLES

   The following is an example of gfarm2.conf to use sharedsecret
   authentication.

       metadb_server_host metadb.example.org
       metadb_server_port 601
       auth enable sharedsecret *
       sockopt keepalive

   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.

       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

   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.

       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

FILES

   %%SYSCONFDIR%%/gfarm2.conf

   $HOME/.gfarm2rc

SEE ALSO

   gfmd(8), gfsd(8), setsockopt(2)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.