GFARM2.CONF(5) | Gfarm | GFARM2.CONF(5) |
gfarm2.conf - Gfarm configuration file
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 has the following forms.
III.JJJ.KKK.LLL
III.JJJ.KKK.LLL/MM
domain.name
.domain.name
*
The following statements are supported.
include pathname
For example,
include /etc/gfarm2.common.conf
include_nesting_limit number
For example,
include_nesting_limit 30
spool directory
For example,
spool /var/spool/gfarm
spool_server_listen_address IP-address
For example,
spool_server_listen_address 192.168.121.1
spool_server_listen_backlog number
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
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
host
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
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 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
spool_server_cred_name cred_name
spool_server_back_channel_rcvbuf_limit size_limit
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_server_read_only_retry_interval seconds
The default time is 60 seconds, i.e. one minute.
This parameter is only available in gfarm2.conf which is referred by gfsd, and ignored by clients, and ignored in gfmd.conf.
For example,
spool_server_read_only_retry_interval 600
spool_check_level level
For example,
spool_check_level disable
spool_check_parallel num-of-parallel
By default, the number of processes is automatically determined by the spool_check_parallel_per_capacity directive.
This directive is only available for gfsd in gfarm2.conf.
For example,
spool_check_parallel 16
spool_check_parallel_max num-of-parallel
The default value is 64.
This directive is only available for gfsd in gfarm2.conf.
For example,
spool_check_parallel_max 128
spool_check_parallel_per_capacity bytes
The default value is 64 tebibytes.
This directive is only available for gfsd in gfarm2.conf.
For example,
spool_check_parallel_per_capacity 10T
spool_check_parallel_step number
The default value is 1.
This directive is only available for gfsd in gfarm2.conf.
For example,
spool_check_parallel_step 16
spool_base_load load-average
For example,
spool_base_load 1.0
spool_digest_error_check validity
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
This statement cannot be omitted.
For example,
metadb_server_host ldap.example.com
metadb_server_port port
For example,
metadb_server_port 601
metadb_server_cred_type cred_type
metadb_server_cred_service cred_service
metadb_server_cred_name cred_name
metadb_server_listen_backlog number
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 parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
metadb_server_max_descriptors 262144
metadb_server_stack_size bytes
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.
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 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
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.
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.
Default is 16000.
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
metadb_server_job_queue_length 21664
metadb_server_remover_queue_length length
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
metadb_server_remover_queue_length 40
metadb_server_remove_scan_log_interval seconds
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
metadb_server_remove_scan_log_interval 86400
metadb_server_remove_scan_interval_factor number
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
metadb_server_remove_scan_interval_factor 2
metadb_server_heartbeat_interval 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
failover_notify_delay seconds
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
failover_notify_delay 10
metadb_server_dbq_size size
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 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
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
For example,
ldap_server_host ldap.example.com
ldap_server_port port
This statement cannot be omitted if ldap_server_host is specified.
For example,
ldap_server_port 602
ldap_base_dn LDAP_base_distinguished_name
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
For example,
ldap_bind_dn "cn=gfarmuser, dc=example, dc=com"
ldap_bind_password password
For example,
ldap_bind_password "secret-ldap-password"
postgresql_server_host hostname
For example,
postgresql_server_host postgresql.example.com
postgresql_server_port port
This statement cannot be omitted if postgresql_server_host is specified.
For example,
postgresql_server_port 602
postgresql_dbname dbname
This statement cannot be omitted if postgresql_server_host is specified.
For example,
postgresql_dbname gfarm
postgresql_user user
For example,
postgresql_user gfarm
postgresql_password password
For example,
postgresql_password gfarm
postgresql_conninfo connection_info
For example,
postgresql_conninfo "sslmode=require connect_timeout=30"
auth validity method Host_specification
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
digest digest_type
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
directory_quota_count_per_user_limit number
The default limit is 100.
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
directory_quota_count_per_user_limit 1000
directory_quota_check_start_delay seconds
The default value is 60 seconds.
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
directory_quota_check_start_delay 120
directory_quota_check_retry_interval seconds
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.
The default value is 60 seconds.
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
directory_quota_check_retry_interval 120
quota_check_retry_interval seconds
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.
The default value is 60 seconds.
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
quota_check_retry_interval 120
max_directory_depth number
The default value is 100.
This directive is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
max_directory_depth 500
sockopt option[=value] [LISTENER | Host_specification]
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
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
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
admin_user_gsi_dn user_gsi_dn
local_user_map user-map-file [hostname:[port]]
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]]
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
For example,
schedule_cache_timeout 60
schedule_rpc_timeout seconds
This value is also used for timeout value of the gfhost command when it accesses filesystem nodes concurrently.
The default time is 35 seconds.
For example,
schedule_rpc_timeout 60
schedule_concurrency number
For example,
schedule_concurrency 10
schedule_concurrency_per_net number
For example,
schedule_concurrency_per_net 3
schedule_idle_load_thresh load-average
For example,
schedule_idle_load_thresh 0.1
schedule_busy_load_thresh load-average
This directive is available for clients and gfmd.
For example,
schedule_busy_load_thresh 0.5
schedule_virtual_load load-average
For example,
schedule_virtual_load 0.3
schedule_candidates_ratio ratio
For example,
schedule_candidates_ratio 4.0
schedule_rtt_thresh_diff microseconds
For example,
schedule_rtt_thresh_diff 1000
schedule_rtt_thresh_ratio ratio
For example,
schedule_rtt_thresh_ratio 4.0
schedule_rtt_thresh ratio
For example,
schedule_rtt_thresh 4.0
write_local_priority validity
For example,
write_local_priority disable
write_target_domain domain
For example,
write_target_domain example.org
minimum_free_disk_space 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
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
replication_at_write_open validity
This directive is only available for clients in gfarm2.conf.
For example,
replication_at_write_open enable
read_only validity
This directive is only available in gfmd configuration files.
For example,
read_only enable
simultaneous_replication_receivers number
For example,
simultaneous_replication_receivers 40
replication_busy_host validity
For example,
replication_busy_host disable
gfsd_connection_cache number
For example,
gfsd_connection_cache 32
xmlattr_size_limit bytes
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
xmlattr_size_limit 786432
xattr_size_limit bytes
This parameter is only available in gfmd.conf, and ignored in gfarm2.conf.
For example,
xattr_size_limit 65536
attr_cache_limit number
For example,
attr_cache_limit 100000
attr_cache_timeout milliseconds
For example,
attr_cache_timeout 3600000
page_cache_timeout milliseconds
For example,
page_cache_timeout 3600000
log_file pathname
log_level priority_level
For example,
log_level debug
log_message_verbose_level level
For example,
log_message_verbose_level 1
log_auth_verbose validity
Example:
log_auth_verbose enable
file_trace validity
This directive is available in both gfarm2.conf and gfmd.conf.
Here is an example:
file_trace enable
fatal_action action_name
For example,
fatal_action backtrace_and_abort
The following actions are supported:
backtrace_and_abort
backtrace_and_exit
abort
exit
debug_command command_line
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
For example,
no_file_system_node_timeout 30
gfmd_authentication_timeout seconds
For example,
gfmd_authentication_timeout 45
gfmd_reconnection_timeout seconds
For example,
gfmd_reconnection_timeout 30
gfsd_connection_timeout seconds
For example,
gfsd_connection_timeout 30
atime type
This parameter is only available in gfmd.conf.
For example,
atime disable
max_open_files num-of-files
This parameter is only available in gfmd.conf.
For example,
max_open_files 1024
client_digest_check validity
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 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
For example,
client_palallel_copy 10
client_parallel_max num-of-parallel
For example,
client_palallel_max 8
profile validity
Example:
profile enable
metadb_server_list gfmd-hostname[:port] ...
This parameter is only available in gfarm2.conf, and ignored in gfmd.conf.
Example:
metadb_server_list mds1 mds2:701
metadb_replication validity
This parameter is only available in gfmd.conf.
Example:
metadb_replication enable
synchronous_replication_timeout seconds
This parameter is only available in gfmd.conf.
Example:
synchronous_replication_timeout 30
synchronous_journaling validity
This parameter is only available in gfmd.conf.
Example:
synchronous_journaling disable
metadb_server_force_slave validity
This parameter is only available in gfmd.conf.
Example:
metadb_server_force_slave enable
metadb_server_slave_max_size number
This parameter is only available in gfmd.conf.
Example:
metadb_server_slave_max_size 40
metadb_server_slave_replication_timeout seconds
This parameter is only available in gfmd.conf.
Example:
metadb_server_slave_replication_timeout 180
metadb_journal_dir directory
This parameter is only available in gfmd.conf.
Example:
metadb_journal_dir /var/gfarm-metadata/journal
metadb_journal_max_size file_size
This parameter is only available in gfmd.conf.
Example:
metadb_journal_max_size 8388608
metadb_journal_recvq_size size
This parameter is only available in gfmd.conf.
Example:
metadb_journal_recvq_size 100000
metadb_replica_remover_by_host_sleep_time nanoseconds
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 parameter is only available in gfmd.conf.
Example:
metadb_replica_remover_by_host_inode_step 1024
replica_check validity
This parameter is only available in gfmd.conf.
Example:
replica_check disable
replica_check_remove validity
This parameter is only available in gfmd.conf.
Example:
replica_check_remove disable
replica_check_remove_grace_used_space_ratio percentage
The percentage can be dynamically changed by the gfrepcheck command. The following example changes to 50%.
% gfrepcheck remove_grace_used_space_ratio 50
This parameter is only available in gfmd.conf.
Example:
replica_check_remove_grace_used_space_ratio 70
replica_check_remove_grace_time seconds
The grace time can be dynamically changed by the gfrepcheck command. The following example changes to 1 week (= 604800 seconds).
% gfrepcheck remove_grace_time 604800
This parameter is only available in gfmd.conf.
Example:
replica_check_remove_grace_time 604800
replica_check_reduced_log validity
This parameter is only available in gfmd.conf.
Example:
replica_check_reduced_log disable
replica_check_host_down_thresh seconds
This parameter is only available in gfmd.conf.
Example:
replica_check_host_down_thresh 3600
replica_check_sleep_time nanoseconds
This parameter is only available in gfmd.conf.
Example:
replica_check_sleep_time 0
replica_check_minimum_interval seconds
This parameter is only available in gfmd.conf.
Example:
replica_check_minimum_interval 5
replicainfo validity
gfstatus -Mm 'replicainfo disable' can disable this temporarily.
This parameter is only available in gfmd.conf.
Example:
replicainfo disable
write_verify validity
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
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
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
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
ib_rdma validity
Only when --with-infiniband is specified at configure it is valid. The default value is enable.
If the environment variable GFARM_RDMA_DISABLE is set, RDMA is disabled.
For example,
ib_rdma disable
rdma_device device name
The default device is the first found valid device on ibv_get_device_list().
For example,
rdma_device mlx4_1
rdma_port port
The default port is the first found valid port on the device.
For example,
rdma_port 2
rdma_gid_index gid index
The default is -1 that means RDMA transfers with lid.
This parameter is only available in gfsd.conf.
For example,
rdma_gid_index 0
rdma_min_size size
The default size is 65536 bytes.
For example,
rdma_min_size 4096
rdma_mr_reg_mode mode
static mode registers one transfer buffer for every connection with a gfsd.
dynamic mode repeats registration and deregistration at every transfer.
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.
The default mode is static.
For example,
rdma_mr_reg_mode static rdma_mr_reg_mode static dynamic
rdma_mr_reg_static_min_size size
The default size is 1 MiB.
For example,
rdma_mr_reg_static_min_size 1048576
rdma_mr_reg_static_max_size size
The default size is 16 MiB.
For example,
rdma_mr_reg_static_max_size 16777216
This is a grammar of gfarm2.conf described by the BNF notation.
<statement> ::=
<include_statement> | <include_nesting_limit_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_server_read_only_retry_interval_statement> | <spool_check_level_statement> | <spool_check_parallel_statement> | <spool_check_parallel_max_statement> | <spool_check_parallel_per_capacity_statement> | <spool_check_parallel_step_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_remover_queue_length_statement> | <metadb_server_remove_scan_log_interval_statement> | <metadb_server_remove_scan_interval_factor_statement> | <metadb_server_heartbeat_interval_statement> | <metadb_server_failover_notify_delay_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> | <directory_quota_count_per_user_limit_statement> | <directory_quota_check_start_delay_statement> | <directory_quota_check_retry_interval_statement> | <quota_check_retry_interval_statement> | <max_directory_depth_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_rpc_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> | <replication_at_write_open_statement> | <read_only_statement> | <simultaneous_replication_receivers_statement> | <replication_busy_host_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_file_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_remove_grace_used_space_ratio_statement> | <replica_check_remove_grace_time_statement> | <replica_check_reduced_log_statement> | <replica_check_host_down_thresh_statement> | <replica_check_sleep_time_statement> | <replica_check_minimum_interval_statement> | <ib_rdma_statement> | <rdma_device_statement> | <rdma_port_statement> | <rdma_gid_index_statement> | <rdma_min_size_statement> | <rdma_mr_reg_mode_statement> | <rdma_mr_reg_static_min_size_statement> | <rdma_mr_reg_static_max_size_statement> | <replicainfo_statement> | <write_verify_statement> | <write_verify_interval_statement> | <write_verify_retry_interval_statement> | <write_verify_log_interval_statement>
<include_statement> ::=
"include" <pathname>
<include_nesting_limit_statement> ::=
"include_nesting_limit" <number>
<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_server_read_only_retry_interval_statement> ::=
"spool_server_read_only_retry_interval" <number>
<spool_check_level_statement> ::=
"spool_check_level" <spck_level>
<spool_check_parallel_statement> ::=
"spool_check_parallel" <number>
<spool_check_parallel_max_statement> ::=
"spool_check_parallel_max" <number>
<spool_check_parallel_per_capacity_statement> ::=
"spool_check_parallel_per_capacity" <size>
<spool_check_parallel_step_statement> ::=
"spool_check_parallel_step" <number>
<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_remover_queue_length_statement> ::=
"metadb_server_remover_queue_length" <number>
<metadb_server_remove_scan_log_interval_statement> ::=
"metadb_server_remove_scan_log_interval" <number>
<metadb_server_remove_scan_interval_factor_statement> ::=
"metadb_server_remove_scan_interval_factor" <number>
<metadb_server_heartbeat_interval_statement> ::=
"metadb_server_heartbeat_interval" <number>
<metadb_server_failover_notify_delay_statement> ::=
"failover_notify_delay" <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>
<directory_quota_count_per_user_limit_statement> ::=
"directory_quota_count_per_user_limit" <number>
<directory_quota_check_start_delay_statement> ::=
"directory_quota_check_start_delay" <number>
<directory_quota_check_retry_interval_statement> ::=
"directory_quota_check_retry_interval" <number>
<quota_check_retry_interval_statement> ::=
"quota_check_retry_interval" <number>
<max_directory_depth_statement> ::=
"max_directory_depth" <number>
<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_rpc_timeout_statement> ::=
"schedule_rpc_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>
<replication_at_write_open_statement> ::=
"replication_at_write_open" <validity>
<read_only_statement> ::=
"read_only" <validity>
<simultaneous_replication_receivers_statement> ::=
"simultaneous_replication_receivers" <number>
<replication_busy_host_statement> ::=
"replication_busy_host" <validity>
<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_file_statement> ::=
"log_file" <pathname>
<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_remove_grace_used_space_ratio_statement> ::=
"replica_check_remove_grace_used_space_ratio" <number>
<replica_check_remove_grace_time> ::=
"replica_check_remove_grace_time" <number>
<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"
<ib_rdma_statement> ::=
"ib_rdma" <validity>
<rdma_device_statement> ::=
"rdma_device" <string>
<rdma_port_statement> ::=
"rdma_port" <number>
<rdma_gid_index_statement> ::=
"rdma_gid_index" <number>
<rdma_min_size_statement> ::=
"rdma_min_size" <number>
<rdma_mr_reg_mode_statement> ::=
"rdma_mr_reg_mode" <mr_reg_mode>
<mr_reg_mode> ::=
"static" | "dynamic" | "static" "dynamic"
<rdma_mr_reg_static_min_size_statement> ::=
"rdma_mr_reg_static_min_size" <number>
<rdma_mr_reg_static_max_size_statement> ::=
"rdma_mr_reg_static_max_size" <number>
<replicainfo_statement> ::=
"replicainfo" <validity>
<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>
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
%%SYSCONFDIR%%/gfarm2.conf
$HOME/.gfarm2rc
17 Sep 2020 | Gfarm |