## Name

gfarm2.conf — Gfarm設定ファイル

## DESCRIPTION

gfarm2.confファイルは、gfarmプログラムの設定ファイルです。 サーバー・プロセスであるgfsdは、デフォルトでは、 この%%SYSCONFDIR%%/gfarm2.confを設定ファイルとして参照します。 メタデータサーバー・プロセスであるgfmdは、%%SYSCONFDIR%%/gfmd.confを 読み込みます。gfmd.confの形式は、gfarm2.confと同一です。 なお、設定内容が読み込まれるのは起動時だけなので、 設定内容を変更した場合、サーバーを再起動する必要があります。

アプリケーションプログラムは、環境変数GFARM_CONFIG_FILEで 指定したファイルと、%%SYSCONFDIR%%/gfarm2.confを、設定ファイル として参照します。この二つのファイルでは、環境変数GFARM_CONFIG_FILEで 指定したファイルの設定の方が先に読み込まれます。 どちらの設定ファイルも、同一の文法で記述します。 同一の指定文が複数あった場合には、先に指定されていた方が優先されます。 環境変数GFARM_CONFIG_FILEが設定されてない場合、代わりに ユーザのホームディレクトリにある.gfarm2rcファイルを使用します。

gfarm2.confは、一行に一文の形式で設定します。 ただし、行末に文字``\''を記述することによって、行を継続させることが できます。また、文字``#''から行末までは、コメントとして扱われ、無視 されます。

## ホスト指定

引数として、`ホスト指定`を記述できる文がいくつかありますが、 この場合、ホスト指定には、下記のいずれかを記述できます。

`III.JJJ.KKK.LLL`

  "."で区切られた0〜255までの数字4つで、IPアドレスを指定します。

`III.JJJ.KKK.LLL`/`MM`

  IPアドレスと、"/"で区切られた0〜31までの数字で、ネットワークを 指定します。"/"以降の数字はnetmaskのビット長です。

`domain.name`

  ホスト名をドメイン名で指定します。

.`domain.name`

  ドメイン名の先頭が"."ではじまる場合、このドメイン名に所属する全ての ホストを意味します。

*

  "*"と記述されている場合、全てのホストを意味します。

LISTENER

  全て大文字で"LISTENER"と記述すると、通信する相手に関係なく、 サーバー側(着呼側)のソケットを意味します。

## 文

文には、下記の種類があります。

include `パス名`

  パス名で指定された設定ファイルを読み込みます。

  例:

  include /etc/gfarm2.common.conf

include_nesting_limit `制限値`

  include 文のネスティングの上限を指定します。 デフォルトの制限値は 20 です。

  例:

  include_nesting_limit 30

spool `gfsdスプール・ディレクトリ`

  gfsdが、gfarmファイルの実体を保持するディレクトリ名を 指定します。 複数回（最大5回まで）指定することで複数のディレクトリを指定可能です。

  例:

  spool /var/spool/gfarm

spool_server_listen_address `IPアドレス`

  gfsdがTCPおよびUDPの要求を受け付けるIPアドレスを指定します。 省略時は、そのホストの全てのIPアドレスで受け付けます。 このオプションは、一つのノードで複数のスプールを提供する場合に、 それぞれのスプールごとに、別々のIPアドレスを使ってgfsdを起動する ために用います。

  例:

  spool_server_listen_address 192.168.121.1

spool_server_listen_backlog `数`

  gfsd が listen(2) システムコールの第二引数に渡すバックログ・パラメータの数を指定します。 デフォルト値は、<sys/socket.h> に SOMAXCONN 定数が定義されているOSではその値 (OSに依存しますが、典型的な値は 128)、定義されてないOSでは 5 となります。

  クライアント数の多い環境では、システム制限値を上げた上で、この値を増やしておくことを推奨します。

  この文はgfarm2.confのみで有効であり、gfmd.confでは無視されます。

  例:

  spool_server_listen_backlog 128

spool_server_cred_type `cred_type`

  GSI認証において、gfsdが用いる証明書の種類を指定します。 sharedsecret利用時には、この指定は単に無視されます。

  サーバ側でこの指定を省略した場合、サーバをroot権限で起動した場合は ホスト証明書を用います。またサーバを一般ユーザ権限で起動した場合は ユーザ証明書を用います。

  クライアント側でこの指定を省略した場合、サーバがホスト証明書を利用している と仮定してサーバ認証を行います。このためサーバをクライアントと同じユーザ 権限で起動している場合、クライアント側では、下記の一行を設定して おく必要があります。

  例:

  spool_server_cred_type self

  指定可能な`cred_type`としては、 「self」、 「host」、「user」、 「mechanism-specific」があり、 spool_server_cred_serviceおよび spool_server_cred_nameと組み合わせて 下記のように用います。

  self

    そのユーザが現在所持しているユーザ証明書を用いることを示します。 この指定を利用する際には、 spool_server_cred_serviceおよび spool_server_cred_nameの 指定を行ってはいけません。

  host

    ホスト証明書あるいはサービス証明書を用いることを示します。 サービス証明書を用いる場合、そのサービスの名前を spool_server_cred_serviceで指定します。 サービス名に「host」を指定した場合、 ファイル```/etc/grid-security/hostcert.pem`''に あるホスト証明書を用います。 それ以外のサービス名を指定した場合、 ファイル```/etc/grid-security/サービス/サービスcert.pem`'' にあるサービス証明書を用います。 サービス名を省略した場合、「host」が指定されたとみなします。 ホスト証明書およびサービス証明書の場合、証明書のCommon Name欄のみを 比較します。Common Nameは、「CN=サービス名/ホスト名」の形式である必要が あります。また、ホスト名は、gfhostコマンドで指定した 正式名と正確に一致している必要があります。ホスト別名は許されません。

    これは、GSSAPI (RFC2743/RFC2744)のGSS_C_NT_HOSTBASED_SERVICEに 対応する機能です。

    例:

    spool_server_cred_type host
    spool_server_cred_service host

  user

    ユーザ証明書を用いることを示します。 ユーザのアカウント名をspool_server_cred_nameで指定します。 アカウント名を省略した場合には、そのコマンドを起動したユーザ名が使われます。 この指定を利用する際には、spool_server_cred_serviceの 指定を行ってはいけません。

    ユーザ名と証明書のDistinguished Nameの対応をとるため、 ```/etc/grid-security/grid-mapfile`''を用います。 このため、このファイルが存在しなかったり、あるいはこのファイルに登録 されてないユーザは、この機能を用いることができません。

    これは、GSSAPI (RFC2743/RFC2744)のGSS_C_NT_USER_NAMEに対応する機能です。

    例:

    spool_server_cred_type user
    spool_server_cred_name guest

  mechanism-specific

    サーバのX.509 Distinguished Nameをspool_server_cred_nameで 直接指定します。 この指定を利用する際には、spool_server_cred_serviceの 指定を行ってはいけません。

    これは、GSSAPI (RFC2743/RFC2744)でName TypeとしてGSS_C_NO_OIDを 指定した場合に対応する機能です。

    例:

    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`

  GSI認証において、spool_server_cred_typeとして 「host」を指定している場合に、gfsdが用いるサービス証明書の 種類を指定します。 sharedsecret利用時には、この指定は単に無視されます。 詳しくはspool_server_cred_typeの項を参照してください。

spool_server_cred_name `cred_name`

  GSI認証において、spool_server_cred_typeで指定した値に 応じて、gfsdが用いる証明書の設定を行います。 sharedsecret利用時には、この指定は単に無視されます。 詳しくはspool_server_cred_typeの項を参照してください。

spool_server_back_channel_rcvbuf_limit `サイズ制限値`

  gfsd の back channel ソケットの、SO_RCVBUF サイズの上限を指定します。 バッファ長を短くすると，メタデータサーバからの要求が過度に溜らなくなり、 gfsd の back channel 接続が切れてしまう問題を緩和できます。 引数にdisableと指定すると、制限がかからなくなります。 デフォルトの制限値は 4096バイトです。

  この文は gfsd が参照する gfarm2.conf のみで有効であり、 クライアントや gfmd.conf では無視されます。

  例:

  spool_server_back_channel_rcvbuf_limit 16384

spool_server_read_only_retry_interval `秒数`

  Gfarmファイルシステムが read only に変更された時、既にオープン され、変更されたファイルがある場合、それらのファイルは Gfarm ファイルシステムがread write 可能となるまでクローズは遅延され ます。 gfsd が Gfarmファイルシステムのモード変更の確認を行う 間隔を秒単位で指定します。

  デフォルトは 60秒 (1分) です。

  この文は gfsd が参照する gfarm2.conf のみで有効であり、 クライアントや gfmd.conf では無視されます。

  例:

  spool_server_read_only_retry_interval 600

spool_check_level `レベル`

  gfsd起動時のスプールチェックを有効にします。スプールチェックでは、 メタデータに登録されている情報との一貫性を検査します。レベルはgfsdの-c オプションを指定する数に相当し、"display"は-cオプション、"delete"は-cc オプション、"lost_found"は-cccオプションと同等です。詳細はgfsdの マニュアルページを参照ください。レベル"disable"にすると、スプールチェックを 行いません。デフォルト値は"lost_found"です。

  例:

  spool_check_level disable

spool_check_parallel `並列度`

  gfsd起動時のスプールチェック並列度を数字で設定します。

  デフォルトでは spool_check_parallel_per_capacity を用いて 並列度を自動的に決定します。

  この文はgfsdが参照するgfarm2.confのみで有効です。

  例:

  spool_check_parallel 16

spool_check_parallel_max `並列度`

  spool_check_parallel_per_capacity を用いて並列度を自動的に決定する際の 上限値を指定します。 自動設定の場合にはこの上限よりも大きな並列度にはなりません。 spool_check_parallel で並列度が指定されていた場合は、 こちらの設定は無視されます。

  デフォルトは64です。

  この文はgfsdが参照するgfarm2.confのみで有効です。

  例:

  spool_check_parallel_max 128

spool_check_parallel_per_capacity `バイト数`

  gfsd のスプール領域のディスク容量を、この設定値で割った値を、 gfsd起動時のスプールチェック並列度として用います。 ただし、spool_check_parallel で並列度が指定されていた場合は、 こちらの設定は無視されます。 指定はバイト単位で行いますが、数字の末尾に空白を開けずにk/M/G/Tを指定 することで、それぞれ1KiB／1MiB／1GiB／1TiBを単位とする ことができます。

  デフォルトは64TiBです。

  この文はgfsdが参照するgfarm2.confのみで有効です。

  例:

  spool_check_parallel_per_capacity 10T

spool_check_parallel_step `数`

  gfsd起動時のスプールチェック並列処理において、 各プロセスが一度に処理する単位を設定します。 通常、この値を調整する必要はありませんが、 gfmd との間の通信遅延が大きい場合は、この値を大きくすることによって 性能が改善する可能性があります。

  デフォルトは 1 です。

  この文はgfsdが参照するgfarm2.confのみで有効です。

  例:

  spool_check_parallel_step 16

spool_base_load `CPU負荷`

  指定されたCPU負荷をgfsdのCPU負荷に加えます。 このオプションはgfsdノード（ファイルシステムノード）でのみ有効です。 デフォルトは0.0です。 このオプションにより、スケジューリングの優先度を変更することができます。

  例:

  spool_base_load 1.0

spool_digest_error_check `有効性`

  digest文によりチェックサム計算が有効となっている場合、 ファイル読込時にチェックサムが計算されます。 チェックサムが異なる場合、つまり、ファイルが損傷している場合は lost+foundディレクトリに移動し、損傷したファイルは自動的に除かれます。 この文でdisableと指定することによって、 この移動を抑制することができます。

  このオプションはgfsdノード（ファイルシステムノード）でのみ有効です。 デフォルトはenableです。

  例:

  spool_digest_error_check disable

metadb_server_host `gfmdホスト名`

  gfmdが動作しているホスト名を指定します。

  この設定は必須です。

  例:

  metadb_server_host ldap.example.com

metadb_server_port `gfmdポート番号`

  gfmdが利用するTCPポートの番号を指定します。 省略時のデフォルト・ポート番号は601番です。

  例:

  metadb_server_port 601

metadb_server_cred_type `cred_type`

  GSI認証において、gfmdが用いる証明書の種類を指定します。 sharedsecret利用時には、この指定は単に無視されます。 設定の意味についてはspool_server_cred_typeの項を 参照してください。

metadb_server_cred_service `cred_service`

  GSI認証において、metadb_server_cred_typeとして 「host」を指定している場合に、gfmdが用いるサービス証明書の 種類を指定します。 sharedsecret利用時には、この指定は単に無視されます。 設定の意味についてはspool_server_cred_typeの項を 参照してください。

metadb_server_cred_name `cred_name`

  GSI認証において、metadb_server_cred_typeで指定した値に 応じて、gfmdが用いる証明書の設定を行います。 sharedsecret利用時には、この指定は単に無視されます。 設定の意味についてはspool_server_cred_typeの項を 参照してください。

metadb_server_listen_backlog `数`

  gfmd が listen(2) システムコールの第二引数に渡すバックログ・パラメータの数を指定します。 デフォルト値は、<sys/socket.h> に SOMAXCONN 定数が定義されているOSではその値 (OSに依存しますが、典型的な値は 128)、定義されてないOSでは 5 となります。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_listen_backlog 128

metadb_server_max_descriptors `数`

  メタデータサーバgfmd用のディスクリプタ・リミット値を指定します。 省略された場合、OSのハード・リミット値と、131072 の、小さい方の値が 使われます。 大規模な構成では、この値を増やす必要がありますし、 小規模な構成では減らした方が良いでしょう。 この値の計算方法については、Gfarm FAQ を御覧ください。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_max_descriptors 262144

metadb_server_stack_size `バイト数`

  メタデータサーバgfmd内の各スレッドが利用するスタックのサイズを 指定します。省略された場合OSのデフォルト値が使われます。 このパラメータは、gfmdの消費する仮想メモリ空間のサイズを節約するために 用います。

  たとえば、CentOS 5/i386の場合、デフォルトのスタックサイズは10 MiBです ので、このパラメータでスタックサイズを256 KiBに抑えると、gfmdのスタック が消費する仮想メモリ空間のサイズを、1/40に減らすことができます。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_stack_size 262144

metadb_server_thread_pool_size `スレッド数`

  メタデータサーバgfmdのスレッドプールのスレッド数を指定します。 メタデータサーバノードのコア数くらいに設定すると効果的です。 デフォルト値は16です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_thread_pool_size 16

metadb_server_job_queue_length `キュー長`

  メタデータサーバgfmdのジョブキューのキュー長を指定します。 一度に接続する最大クライアントの数より多い値に設定すると効果的です。

  この値は metadb_server_remover_queue_length + (simultaneous_replication_receivers + 1) * ファイルシステムノード数 よりも大きな値に設定する必要がありますので、 ファイルシステムノード数が 754 を越えた場合には、設定が必須となります。

  デフォルト値は16000です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_job_queue_length 21664

metadb_server_remover_queue_length `キュー長`

  メタデータサーバgfmdが、gfsdへ複製削除要求を送るジョブキューのキュー長を指定します。 metadb_server_job_queue_length よりは少ない値を設定します。 デフォルト値は160です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_remover_queue_length 40

metadb_server_remove_scan_log_interval `秒数`

  メタデータサーバgfmdの削除キュー処理に関する統計情報ログの、 記録頻度を秒数で指定します。 デフォルト値は3600秒です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_remove_scan_log_interval 86400

metadb_server_remove_scan_interval_factor `数字`

  メタデータサーバgfmdの削除キュー処理が、 CPU時間をどの程度使用してよいかを調整するパラメータを指定します。 削除キュー処理は、最大でCPU時間の 1 / (metadb_server_remove_scan_interval_factor + 1) を使用することになります。 デフォルト値は5です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_remove_scan_interval_factor 2

metadb_server_heartbeat_interval `秒数`

  メタデータサーバgfmdが各ファイルシステムサーバgfsd に対し動作確認を行うハートビートの間隔を秒数で指定します。 デフォルト値は180秒です。

  Gfarm-2.3.0まではこの文はgfmd.confのみで有効であり、gfarm2.confでは 無視されていましたが、Gfarm-2.4.0以降はgfsdもこのパラメータを利用し gfmd停止を検知するため、 gfarm2.confとgfmd.confの両方で指定する必要があります。

  例:

  metadb_server_heartbeat_interval 180

failover_notify_delay `秒数`

  新マスターgfmdが各ファイルシステムサーバのgfsdプロセスに起動を通知する 処理を行なうまでの遅延時間を秒数で指定します。 もしこの時間間隔が0秒だと、それまで動作していたマスターの停止を検知したgfsdの 再接続処理と入れ違いとなる可能性が高く、その場合gfsdがいったん接続を切り もう一度再接続を試みることになり非効率です。 これを避けるためデフォルト値は5秒となっています。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  failover_notify_delay 10

metadb_server_dbq_size `キュー長`

  メタデータサーバgfmdではメタデータの変更をバックエンドDBに 非同期的に反映しますが，そのキューの長さを指定します。 キュー長を長くすると，バックエンドDBの更新速度に律速されにくくなります。 デフォルト値は65536です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_dbq_size 65536

metadb_server_back_channel_sndbuf_limit `サイズ制限値`

  メタデータサーバが gfsd back channel への接続に用いるソケットの SO_SNDBUF サイズの上限を指定します。 バッファ長を短くすると，メタデータサーバからの要求が過度に溜らなくなり、 gfsd の back channel 接続が切れてしまう問題を緩和できます。 引数にdisableと指定すると、制限がかからなくなります。 デフォルトの制限値は 4096バイトです。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  metadb_server_back_channel_sndbuf_limit 16384

metadb_server_nfs_root_squash_support `有効性`

  enable の場合、gfmd はホームディレクトリの .gfarm_shared_key ファイルを 読む際に、そのホームディレクトリのオーナー権限を用います。 disable の場合、root 権限のままで読みます。

  sharedsecret 認証を行なう Gfarm ユーザーのホームディレクトリを、 no_root_squash エクスポート・オプションなしの NFS を用いて共有している場合、 enable にしておく必要があります。 デフォルトはenableですが、利用環境が許すのであれば disableに変更すると、 gfmdのCPU負荷を若干低減できます。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  Example:

  metadb_server_nfs_root_squash_support disable

ldap_server_host `LDAPサーバー・ホスト名`

  gfmdのバックエンド・データベースとして LDAPサーバを選択する場合、 LDAPサーバーが動作しているホスト名を指定します。 この文はgfmd.confで用いられ、gfarm2.confでは用いられません。

  例:

  ldap_server_host ldap.example.com

ldap_server_port `LDAPサーバー・ポート番号`

  LDAPサーバーが利用するTCPポートの番号を指定します。

  ldap_server_hostを指定する場合には、 この設定は必須です。

  例:

  ldap_server_port 602

ldap_base_dn `LDAP_base_distinguished_name`

  LDAPデータベースで保持するデータのキーの根となるノードの 名称、base distinguished nameを指定します。

  ldap_server_hostを指定する場合には、 この設定は必須です。

  例:

  ldap_base_dn "dc=example, dc=com"

ldap_bind_dn `LDAP_bind_distinguished_name`

  LDAPデータベースに接続する際の認証に用いる名称を、distinguished nameで指定します。

  例:

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

ldap_bind_password `password`

  LDAPデータベースに接続する際の認証パスワードを指定します。

  例:

  ldap_bind_password "secret-ldap-password"

postgresql_server_host `PostgreSQLサーバー・ホスト名`

  gfmdのバックエンド・データベースとして PostgreSQLサーバを選択する場合、 PostgreSQLサーバーが動作しているホスト名を指定します。 この文はgfmd.confで用いられ、gfarm2.confでは用いられません。

  例:

  postgresql_server_host postgresql.example.com

postgresql_server_port `PostgreSQLサーバー・ポート番号`

  PostgreSQLサーバーが利用するTCPポートの番号を指定します。

  postgresql_server_hostを指定する場合には、 この設定は必須です。

  例:

  postgresql_server_port 602

postgresql_dbname `dbname`

  PostgreSQLデータベース名を指定します。

  postgresql_server_hostを指定する場合には、 この設定は必須です。

  例:

  postgresql_dbname gfarm

postgresql_user `user`

  PostgreSQLデータベースに接続するデータベース管理下のユーザ名を指定します。

  例:

  postgresql_user gfarm

postgresql_password `password`

  PostgreSQLデータベースに接続するデータベース管理下のユーザのパスワードを指定します。

  例:

  postgresql_password "secret-postgresql-password"

postgresql_conninfo `connection_info`

  PostgreSQLデータベースに接続するときの接続オプションを指定します。

  例:

  postgresql_conninfo "sslmode=require connect_timeout=30"

auth `有効性` `認証方法` `ホスト指定`

  この文は、第3引数で指定したホストとの通信に用いる認証方法を設定します。

  第1引数の`有効性`部には、enableないしdisable キーワードを指定します。 第2引数の`認証方法`部には、gsi、 gsi_authないしsharedsecret キーワードを指定します。 第3引数には、`ホスト指定`を記述します。

  この文は複数指定可能です。各認証方法ごとに、先頭から順にホスト指定に 適合するかどうか調べ、有効であるとの指定に適合した場合、その認証方法が 利用候補になります。有効であるとの指定に適合しない場合や、あるいは 有効であるとの指定に適合するよりも前に無効であるとの指定に適合した 場合、その認証方法は、候補になりません。

  この指定は、サーバー側とクライアント側の両方で解釈され、 双方ともで有効になっている認証方法のみが用いられます。

  認証方法が異なるものに関しては、指定の順序は意味がありません。 複数の認証方法が候補となった場合、sharedsecret、 gsi_auth、gsi認証の順序で試みます。

  Gfarmのコンパイル時にglobusとのリンクを指定しなかった場合、 GSIは利用できません。この場合、gsiおよび gsi_auth認証の指定は単に無視されます。

  この設定は必須です。

  例:

  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 *

  この例では、ホスト192.168.0.100と192.168.0.101の2つのホストを 除いた192.168.0.0/24ネットワークに属すホストには sharedsecretとgsiの両方を、 10.0.0.0/8ネットワークに属すホストにはgsi_authおよび gsiの両方を、 それ以外の全てのホストにはgsi認証のみを試みます。 すなわち、ホスト192.168.0.100と192.168.0.101の2つのホストは、 gsi認証のみを試みることになります。

shared_key_file `パス名`

  sharedsecret認証に用いる秘密鍵ファイルのパス名を指定します。

digest `digestタイプ`

  チェックサム計算を有効にし、 digestタイプで指定されたチェックサムを計算します。 digestタイプとしては、チェックサム計算を実行するファイルシステムノード上の OpenSSL ライブラリがサポートしているタイプを、小文字で、 例えば md5 や sha256 のように指定します。 あるいは client_digest_check文でenableを指定して いる場合は、このdigstタイプをクライアント上の OpenSSL ライブラリもサポート している必要があります。

  digestタイプとして disable と指定した場合は、チェックサム計算を抑制します。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  注: たとえこの設定でチェックサム計算を有効にしても、 ローカルホストの gfsd が管理するファイル複製にクライアントがアクセスする 場合には、そのままではチェックサムが計算されません。 これは、デフォルト設定だと gfsd のみがチェックサム計算を行なうのに対し、 ローカルアクセスについては、クライアントがファイルを直接読み書きするためです。 ローカルアクセスについてもチェックサム計算を行うためには、 direct_local_access文でdisableを指定して、 ローカルアクセスの場合の直接読み書きを抑制するか、 あるいは client_digest_check文でenableを指定して、 チェックサム計算をクライアント側でも行なうようにする必要があります。

  例:

  digest md5

directory_quota_count_per_user_limit `数`

  一ユーザーあたり作成可能な dirset の最大値を指定します。

  デフォルトは 100 です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  directory_quota_count_per_user_limit 1000

directory_quota_check_start_delay `秒`

  directory quota の再集計が必要となったときに、 実際に再集計を開始するまでの遅延時間(秒)を指定します。 再集計が複数回必要になった場合、何秒以内であればそれを集約して一回の集計で 済ませるかを設定します。

  デフォルトは60秒です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  directory_quota_check_start_delay 120

directory_quota_check_retry_interval `秒`

  directory quota の集計がメタデータ更新のために中断した時に、 集計を再開するまでの時間間隔(秒)を指定します。

  メタデータ更新は通常連続して起きるため、間隔をおかずに再開しても すぐにまた中断し結果を捨ててやり直すこととなり集計作業が無駄になります。 また無駄な集計処理のために、並行して動作する replica_check の実行が きわめて遅くなります。 このパラメータに従って再開までに間隔をおくことにより、その問題を緩和します。

  デフォルトは60秒です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  directory_quota_check_retry_interval 120

quota_check_retry_interval `秒`

  quota の集計がメタデータ更新のために中断した時に、 集計を再開するまでの時間間隔(秒)を指定します。

  メタデータ更新は通常連続して起きるため、間隔をおかずに再開しても すぐにまた中断し結果を捨ててやり直すこととなり集計作業が無駄になります。 また無駄な集計処理のために、並行して動作する replica_check の実行が きわめて遅くなります。 このパラメータに従って再開までに間隔をおくことにより、その問題を緩和します。

  デフォルトは60秒です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  quota_check_retry_interval 120

max_directory_depth `数`

  directory の深さとして許される最大値を設定します。 ただし、深さの検査は厳密ではないので、この設定よりも深いディレクトリを 許容する処理もあります。

  デフォルトは100です。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  max_directory_depth 200

sockopt `オプション`[=`値`] [LISTENER | `ホスト指定`]

  通信socket(2)に対して、setsockopt(2)システムコールを使って ソケット・オプションを指定します。

  第2引数に全て大文字でLISTENERを指定した場合、 サーバー側(着呼側)のソケットに指定するオプションになります。 この場合、通信する相手に関係なく、 一律にソケット・オプションが設定されます。

  第2引数にホスト指定を記述した場合、クライアント側(発呼側)の ソケットに指定するオプションになります。この場合、通信する相手毎に ソケット・オプションを変えることができます。 なお、第2引数に"*"と記述すると、クライアント側(発呼側)の全ての ホストを意味することになり、サーバー側(着呼側)には適用されません。

  第2引数を省略した場合、サーバー側とクライアント側の両方で、 全ての通信相手に対して同じソケット・オプションを設定します。

  指定可能なソケット・オプションには次のものがあります。

  debug。setsockopt(2)システムコールで、`SO_DEBUG`ソケット・オプションを指定します。値を記述する必要はありません。

  keepalive。setsockopt(2)システムコールで、`SO_KEEPALIVE` ソケット・オプションを指定します。値を記述する必要はありません。

  sndbuf。setsockopt(2)システムコールで、`SO_SNDBUF` ソケット・オプションを指定します。値の指定が必要です。

  rcvbuf。setsockopt(2)システムコールで、`SO_RCVBUF` ソケット・オプションを指定します。値の指定が必要です。

  tcp_nodelay。setsockopt(2)システムコールで、`TCP_NODELAY` ソケット・オプションを指定します。値を記述する必要はありません。

  例:

  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 `ホスト指定`

  ファイルシステムノードのネットワークを指定します。 本ネットワークは、 ファイルシステムノード選択時のグルーピングに利用されます。 この文で指定したアドレスに適合しないIPアドレスの場合、 IPv4のクラスCネットワークが仮定されます。

  複数のネットワークを指定する場合は、以下のように複数回指定します。

  known_network 192.168.0.0/25
  known_network 192.168.0.128/25

network_receive_timeout `秒数`

  ネットワークを介したデータ受信のタイムアウト時間を秒単位で指定 します。 デフォルト値は60秒です。 この文は gfarm2.conf および gfmd.conf のいずれにおいても有効です。

  Gfarmクライアントプログラムが指定した時間待ったもの、gfsd から のデータがまったく届かなかった場合は、その gfsd との通信を中止し、処理 を継続させるべく他の gfsd サーバとの通信を試みます。

  gfmd が指定した時間待ったもの、gfsd からデータがまったく 届かなかった場合、その gfsd との通信を中止して、その gfsd はダウンした ものとみなします。

admin_user `ユーザ名`

  gfmd.conf内のこの文で指定されたユーザが、 デフォルトの特権ユーザとなります。

admin_user_gsi_dn `DN`

  gfmd.conf内のadmin_user文で指定された特権ユーザのSubject DNを指定します。

local_user_map `ユーザマップファイルパス名` [`ホスト名`:[`ポート番号`]]

  sharedsecret認証において、 グローバルユーザ名とローカルユーザ名の対応関係を記述した ユーザマップファイルパス名を指定します。 この設定は必須ではありませんが、 その場合ローカルユーザ名がグローバルユーザ名に変換されます。

  同一ユーザに対して、 異なるローカルアカウント名を与えているファイルシステムノードがある場合や、 ローカルユーザ名とは異なるグローバルユーザ名を利用したい場合、 このファイルで、各ノードのローカルなユーザ名に対して、単一の グローバルユーザ名を定義します。

  例:

  local_user_map /etc/gfarm/gfarm-usermap

  ユーザマップファイルは、グローバルユーザ名と ローカルユーザ名を、空白で区切って各行に記述します。

  ユーザマップファイルの内容例:

  foobar foo
  quux baz

  この例の1行目の指定では、このノードのローカルユーザ名fooに 対してグローバルユーザ名foobarが定義されています。

  メタデータサーバのホスト名/ポート番号を指定すると、 接続先のサーバごとに異なるユーザマップファイルを適用します。 ポート番号を省略した場合は、デフォルトのポート番号(601)を使用します。 local_user_map は複数回指定可能です。 ローカルユーザ名が同一の定義が複数のファイルに存在する場合、最初の定義が選択されます。

  複数のユーザマップファイルの例:

  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

  この例では server2 に接続するときは gfarm-usermap2-1、gfarm-usermap2-2 の順番に適用します。 server2 以外に接続するときは gfarm-usermap1-1、gfarm-usermap1-2 の順番に適用します。

local_group_map `グループマップファイルパス名` [`ホスト名`:[`ポート番号`]]

  グローバルグループ名とローカルグループ名の対応関係を記述した グループマップファイルパス名を指定します。 このマップファイルは，ローカルシステムのグループIDを利用するgfarm2fsや Globus GridFTPのGfarm DSIなどで利用されます。 この設定は必須ではありませんが、 その場合ローカルグループ名はグローバルグループ名と等しいと仮定されます。

  例:

  local_group_map /etc/gfarm/gfarm-groupmap

  グループマップファイルは、グローバルグループ名と ローカルグループ名を、空白で区切って各行に記述します。

  メタデータサーバのホスト名/ポート番号を指定すると、 接続先のサーバごとに異なるグループマップファイルを適用します。 指定方法は local_user_map と同様です。

schedule_cache_timeout `秒数`

  gfarmライブラリが内部的に保持している、ファイルシステムノード のスケジューリング処理に関わる情報、すなわちロードアベレージ、 ディスク空き容量、認証が通るか否か等のキャッシュの有効期限を秒数で指定します。 停止していたファイルシステムノードが復活したような場合、この期限が 切れるまでは、そのノードがスケジューリングされないことがあります。 デフォルトは600秒すなわち10分です。

  例:

  schedule_cache_timeout 60

schedule_rpc_timeout `秒数`

  gfarmクライアントがファイルシステムノードをスケジューリングする際の RPC通信のタイムアウト時間を秒数で指定します。 ファイルシステムノードの負荷が極めて高く、 ファイルにアクセスできない状況が発生する場合には、 このタイムアウトを伸ばしてください。

  この値は gfhostコマンドが ファイルシステムノードを並行アクセスする際の 通信のタイムアウト時間としても用いられます。

  デフォルトは35秒です。

  例:

  schedule_rpc_timeout 60

schedule_concurrency `並列度`

  ファイルシステムノードを、スケジューリングのために並列検索する際の 並列度を指定します。 この数を増やすと並列度が高まり、スケジューリングが早く終りますが、 ファイルシステムノードの負荷は高くなります。 デフォルトは10です。

  例:

  schedule_concurrency 10

schedule_concurrency_per_net `並列度`

  ファイルシステムノードのスケジューリング時に、 ファイルシステムノードが属する各ネットワークと、クライアントとの間の ネットワーク遅延を計測します。このパラメータは、各ネットワーク毎に 幾つのファイルシステムノードを対象に計測するかを指定します。 停止しているファイルシステムノードが多い場合や、 負荷の高いファイルシステムノードが多く計測誤差が大きい場合には、 このパラメータを増やした方が良いかもしれません。 このパラメータを増やした場合には、 それに応じて schedule_concurrency パラメータについても増やすことを推奨します。 デフォルトは3です。

  例:

  schedule_concurrency_per_net 3

schedule_idle_load_thresh `CPU負荷`

  ファイルシステムノードのスケジューリング時に、 CPU負荷が低いとみなされるCPU負荷を指定します。 ここで指定されるCPU負荷より低いCPU負荷のファイルシステムノードが まずはスケジュール対象となります。 デフォルト値は0.1です。

  例:

  schedule_idle_load_thresh 0.1

schedule_busy_load_thresh `CPU負荷`

  ファイルシステムノードのスケジューリング時に、 CPU負荷が高いとみなされるCPU負荷を指定します。 ここで指定されるCPU負荷より高いCPU負荷のファイルシステムノードは 当初スケジュール対象となりません。 デフォルト値は0.5です。

  この文はクライアントおよびgfmdで有効です。

  例:

  schedule_busy_load_thresh 0.5

schedule_virtual_load `CPU負荷`

  ファイルシステムノードが選択されたとき、 CPU負荷のクライアントキャッシュにここで指定されるCPU負荷が加えられます。 これにより、 一度スケジュールされたファイルシステムノードが何度もスケジュールされることを防いでいます。 デフォルト値は0.3です。

  例:

  schedule_virtual_load 0.3

schedule_candidates_ratio `比率`

  ファイルシステムノードのスケジューリング時に、 ロードアベレージが schedule_busy_load_thresh 以下のノードが、 スケジューリング対象のノード数の何倍見つかったら、 検索を打ち切るかを指定します。 この値を大きくすると、より多くのノードを検索するため、 スケジューリングの精度は上がりますが、処理は遅くなります。 デフォルト値は4.0です。

  例:

  schedule_candidates_ratio 4.0

schedule_rtt_thresh_diff `マイクロ秒`

  ファイルシステムノードのスケジューリング時に、 ファイルシステムノードが属する各ネットワークと、クライアントとの間の ネットワーク遅延が、何マイクロ秒増えたら、そのネットワークに対する スケジューリングの優先度を落すかを指定します。 同様なパラメータに schedule_rtt_thresh_ratio があり、 この2つパラメータによる計算のいずれかに当てはまると優先度が落ちます。 デフォルト値は1000マイクロ秒、すなわち 1ミリ秒です。

  例:

  schedule_rtt_thresh_diff 1000

schedule_rtt_thresh_ratio `比率`

  ファイルシステムノードのスケジューリング時に、 ファイルシステムノードが属する各ネットワークと、クライアントとの間の ネットワーク遅延が、何倍になったら、そのネットワークに対する スケジューリングの優先度を落すかを指定します。 同様なパラメータに schedule_rtt_thresh_diff があり、 この2つパラメータによる計算のいずれかに当てはまると優先度が落ちます。 デフォルト値は4.0です。

  例:

  schedule_rtt_thresh_ratio 4.0

schedule_rtt_thresh `比率`

  このパラメータは schedule_rtt_thresh_ratio と同じ意味となりますので、 そちらを利用してください。 このパラメータは以前のバージョンとの互換性のために残されています。 デフォルト値は4.0です。

  例:

  schedule_rtt_thresh 4.0

write_local_priority `有効性`

  gfarmは、ファイルを書き込むノードを決める際、できる限りローカル ホストを優先するように動作します。この文でdisableと指定することによって、 ローカルホストを他のホストと同様に扱うように変更することができます。 デフォルトはenableです。

  例:

  write_local_priority disable

write_target_domain `ドメイン名`

  gfarmがファイルを書き込むノードを決める際、できる限りここで 指定したドメインを優先するように動作します。 ここで指定したドメインにファイル作成可能なホストが存在しない場合や、 特にこの指定を行なわなかった場合には、全ノードが対象となります。 この指定を複数回行なっても、最初の指定のみが利用され、二番目以降は 単に無視されるので注意してください。

  例:

  write_target_domain example.org

minimum_free_disk_space `バイト数`

  ファイルシステムノードで必要な最小限度のディスク空き容量を指定 します。このサイズ以下の空き容量しかないファイルシステムノードは、 ファイル書き込みを行う可能性のある操作を行う際に、選択されにくくなります。 指定はバイト単位で行いますが、数字の末尾に空白を開けずにk/M/G/Tを指定 することで、それぞれ1KiB／1MiB／1GiB／1TiBを単位とする ことができます。 デフォルトは512MiBです。

  このパラメータは、gfarm2.confとgfmd.confの両方で指定する必要があります。 有効にするためには gfmd および Gfarmクライアントを再起動する必要があります。

  例:

  minimum_free_disk_space 1G

direct_local_access `有効性`

  ローカルホストの gfsd が管理するファイル複製にクライアントがアクセスする場合、 オーバヘッドを削減するため、ファイルの読み書きに関しては、 通常 gfsd をバイパスして直接アクセスします。 この文でdisableと指定することによって、 このバイパスを無効化することができます。 この無効化機能は、ローカルホストのファイルアクセスに対して、 gfsdによるチェックサム計算を行うために用意されています。 詳しくは direct_local_access文の説明を参照してください。 デフォルトはenableです。

  この文は、クライアントが参照するgfarm2.confのみで有効です。 gfsd や gfmd は、gfarm2.conf や gfmd.conf 中のこの文を無視します。

  例:

  direct_local_access disable

replication_at_write_open `有効性`

  既存ファイルを更新する際、その実ファイルが置かれたファイルシステムノードの ディスクに空きがない場合(読込専用状態も含む)、つまり書き込み不可な ファイル複製だとしても更新できるようにします。 enable にすると、その他のファイルシステムノードにファイル複製を自動的に作成 してから、ファイルを更新します。 デフォルトはenableです。

  この文は、Gfarmクライアントが参照するgfarm2.confのみで有効です。

  例:

  replication_at_write_open enable

read_only `有効性`

  Gfarmファイルシステムを read only にします。 デフォルトはdisableです。

  この文はgfmdでのみ有効です。

  例:

  read_only enable

simultaneous_replication_receivers `同時処理数`

  gfmd 主導の複製処理を、単一複製作成ホストに対して、 同時にいくつまで並行して行なうことを許すかを設定します。 デフォルトは 20です。

  例:

  simultaneous_replication_receivers 40

replication_busy_host `有効性`

  gfmd主導の複製先にbusyホストを含むかどうか設定します。 disableにすると、busyホストには複製は作成されません。 デフォルトはenableです。

  例:

  replication_busy_host disable

gfsd_connection_cache `コネクション数`

  gfarmライブラリがgfsdとの通信に用いるコネクションを、いくつ までキャッシュするかを指定します。 デフォルトは16コネクションです。

  例:

  gfsd_connection_cache 32

xmlattr_size_limit `バイト数`

  XML拡張属性の値として、何バイトまで設定可能かを指定します。 デフォルトは786432バイトです。 983040バイトよりも大きな値を指定することはできません。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  xmlattr_size_limit 786432

xattr_size_limit `バイト数`

  拡張属性の値として、何バイトまで設定可能かを指定します。 デフォルトは65536バイトです。 983040バイトよりも大きな値を指定することはできません。

  この文はgfmd.confのみで有効であり、gfarm2.confでは無視されます。

  例:

  xattr_size_limit 65536

attr_cache_limit `個数`

  gfarmライブラリがキャッシュする属性の最大数を指定します。 デフォルトは40000個です。

  例:

  attr_cache_limit 100000

attr_cache_timeout `ミリ秒数`

  gfarmライブラリが属性をキャッシュしている時間を、ミリ秒単位で指定します。 デフォルトは 1000ミリ秒すなわち 1秒です。

  例:

  attr_cache_timeout 3600000

page_cache_timeout `ミリ秒数`

  gfarmカーネルドライバにのみ関連する値で、ファイルデータを キャッシュしている時間を、ミリ秒単位で指定します。 デフォルトは 1000ミリ秒すなわち 1秒です。

  例:

  page_cache_timeout 3600000

log_file `パス名`

  ログファイルを指定します。

log_level `優先度レベル`

  どの優先度レベル以上のログを出力するかを指定します。 ここで指定したレベル未満の優先度のログは、syslogや標準エラーへ 送られません。 レベルは、優先度の高い順に"emerg", "alert", "crit", "err", "warning", "notice", "info", "debug"です。 デフォルトの出力レベルは"info"です。 "crit"以上の優先度を指定することは、お勧めできません。

  例:

  log_level debug

log_message_verbose_level `レベル`

  ログメッセージの冗長度を指定します。 デフォルトは0です。レベル0では、ログIDが出力されます。 レベル1では、レベル0に加えソースコードのファイル名と行番号が出力されます。 レベル2では、レベル1に加え関数名が出力されます。

  例:

  log_message_verbose_level 1

log_auth_verbose `有効性`

  enableと指定した場合、認証処理に関する詳細なログを記録します。

  例:

  log_auth_verbose enable

file_trace `有効性`

  enableと指定した場合、ファイル作成・変更・削除に関する 監査ログの出力機能を有効にします。

  このパラメータは、gfarm2.confとgfmd.confの両方で有効です。

  例:

  file_trace enable

fatal_action `動作名`

  このパラメータでは、致命的なエラーが発生したときの動作を設定します。 デフォルトは `backtrace_and_abort` です。

  例:

  fatal_action backtrace_and_abort

  指定可能な動作名は以下の通りです:

  backtrace_and_abort

    バックトレースを出力した後、 abort(3) を呼びます。

  backtrace_and_exit

    バックトレースを出力した後、 exit(3) を呼びます。

  abort

    abort(3) を呼びます。

  exit

    exit(3) を呼びます。

debug_command `コマンド行`

  Gfarmのアプリケーションプログラムがクラッシュした際 (SIGSEGV, SIGBUGを 受け取る等した場合)、このパラメータに記したデバッグコマンドが実行されます。 記述例を示します。

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

  ここで、"%e", "%p" は実際のプログラム名、プロセスIDにそれぞれ展開されます。 "%" 文字自体をコマンドライン中に記述したい場合は、"%%" と書いて下さい。

  このパラメータは、gfarm2.confとgfmd.confの両方で有効です。 このパラメータを指定しなかった場合、デバッグコマンドは実行されません。

no_file_system_node_timeout `秒数`

  利用可能なファイルシステムノードが存在しない場合， Gfarmクライアントライブラリはファイルシステムノードが利用可能になるまで試行を繰り返しますが、 そのタイムアウト時間を秒単位で指定します。 デフォルトは 30秒です。

  例:

  no_file_system_node_timeout 30

gfmd_authentication_timeout `秒数`

  メタデータサーバへの接続後、認証要求への反応がない場合の タイムアウト時間を秒単位で指定します。 デフォルトは 35秒です。

  例:

  gfmd_authentication_timeout 45

gfmd_reconnection_timeout `秒数`

  メタデータサーバへの接続が切断された場合， メタデータサーバへの再接続を繰り返しますが， そのタイムアウト時間を秒単位で指定します。 デフォルトは 30秒です。

  例:

  gfmd_reconnection_timeout 30

gfsd_connection_timeout `秒数`

  ファイルシステムノードへの接続タイムアウトを指定します。 デフォルトは 30秒です。

  例:

  gfsd_connection_timeout 30

atime `タイプ`

  このオプションがdisableの場合、atime(ファイルアクセス時刻)は更新されま せん。relativeの場合、mtime(ファイル修正時刻)またはctime(ファイル変更時 刻)よりも、既にセットされているatimeが早い時刻のとき、またはatimeが1日 以上更新されていないときだけ、atimeが更新されます。strictの場合、atime は常に更新されます。標準設定はrelativeです。

  この文はgfmd.confのみで有効です。

  例:

  atime disable

max_open_files `ファイル数`

  同時にオープンできるファイル数の最大値を指定します。 デフォルトは1024です。

  この文はgfmd.confのみで有効です。

  例:

  max_open_files 1024

client_digest_check `有効性`

  このオプションがenableの場合、Gfarmクライアントライブラリ (libgfarm)は、 ファイル全体をシーケンシャルにアクセスする際、チェックサムを計算し、 そのファイルのメタデータに設定されているチェックサムと比較して検証します。 また、メタデータにチェックサムが設定されておらず、 書き込みオープンしている場合には、計算したチェックサムをメタデータに設定します。 デフォルトはdiableです。

  この文は、クライアントが参照するgfarm2.confのみで有効です。 gfsd や gfmd は、gfarm2.conf や gfmd.conf 中のこの文を無視します。

  例:

  client_digest_check enable

client_file_bufsize `バイト数`

  Gfarmクライアントライブラリ（libgfarm）で使われるファイルのバッファ サイズをバイト単位で指定します。デフォルトは1048576バイト（= 1MiB）です。 ファイルのバッファサイズは、遠隔ファイルアクセス性能を極端に低下させ ないためにも、デフォルト値以下である必要があります。

  この文は、クライアントが参照するgfarm2.confのみで有効です。 gfsd や gfmd は、gfarm2.conf や gfmd.conf 中のこの文を無視します。

  例:

  client_file_bufsize 65536

client_parallel_copy `並列度`

  gfprepコマンドと gfpcopyコマンドが並列で動作する際の 並列度を指定します。指定しない場合は4並列で動作します。

  例:

  client_parallel_copy 10

client_parallel_max `並列度`

  gfprepコマンドと gfpcopyコマンドが並列で動作する際の 最大並列度を指定します。指定しない場合は、最大16並列です。

  例:

  client_palallel_max 8

profile `有効性`

  このオプションがenableの場合、プロファイル情報を出力します。

  例:

  profile enable

metadb_server_list `gfmdホスト名[:ポート番号]` `...`

  冗長化メタデータサーバの接続先一覧をスペース区切りで指定します。 ポート番号を省略するとデフォルトの601を指定したことになります。

  この文はgfarm2.confのみで有効であり、gfmd.confでは無視されます。

  例:

  metadb_server_list mds1 mds2:701

metadb_replication `有効性`

  このオプションがenableの場合、メタデータ冗長化機能が有効になります。デフォルトは disable です。

  この文はgfmd.confのみで有効です。

  例:

  metadb_replication enable

synchronous_replication_timeout `秒数`

  メタデータの同期レプリケーション実行時のタイムアウト時間を秒単位で設定します。 タイムアウト時間を過ぎた場合、同期先のスレーブgfmdとのgfmd channelの接続は切断されます。 接続が切断したスレーブgfmdへのレプリケーションは、スレーブgfmdが再接続してくるまで中断します。 デフォルトは 10 です。

  この文はgfmd.confのみで有効です。

  例:

  synchronous_replication_timeout 30

synchronous_journaling `有効性`

  このオプションがenableの場合、ジャーナルファイルへ更新情報を保存した後にfdatasyncを実行します。 実行するタイミングは、1つのトランザクションの開始から終了までのレコードを書き込んだ後です。 デフォルトはenableです。

  この文はgfmd.confのみで有効です。

  例:

  synchronous_journaling disable

metadb_server_force_slave `有効性`

  enable のとき、デフォルトのマスターgfmdとして設定されている場合でも、スレーブgfmdとして起動します。 デフォルトはdisableです。

  この文はgfmd.confのみで有効です。

  例:

  metadb_server_force_slave enable

metadb_server_slave_max_size `ノード数`

  スレーブgfmdの最大ノード数を指定します。デフォルトは16です。

  この文はgfmd.confのみで有効です。

  例:

  metadb_server_slave_max_size 40

metadb_server_slave_replication_timeout `秒数`

  gfmd が SIGTERM シグナルを受けて停止する際に、 スレーブ gfmd へのメタデータ・レプリケーション完了を待つ タイムアウト時間を秒単位で設定します。 タイムアウト時間を過ぎた場合、スレーブ gfmd へのレプリケーションを諦めます。 デフォルトは 120 秒です。

  この文はgfmd.confのみで有効です。

  例:

  metadb_server_slave_replication_timeout 180

metadb_journal_dir `ジャーナルディレクトリ`

  ジャーナルファイルの保存ディレクトリを指定します。 このオプションはconfig-gfarmで指定します。 このオプションが指定されていない場合、gfmdは起動しません。

  この文はgfmd.confのみで有効です。

  例:

  metadb_journal_dir /var/gfarm-metadata/journal

metadb_journal_max_size `ファイルサイズ`

  ジャーナルファイルの最大サイズを指定します。 サイズが大きいほど、gfmdが起動完了するまでの時間が長くなることに注意してください。 デフォルトは 33554432 (32 MiB)です。

  この文はgfmd.confのみで有効です。

  例:

  metadb_journal_max_size 8388608

metadb_journal_recvq_size `キュー長`

  スレーブgfmdが、マスターgfmdから受け取るジャーナルデータに関して、 メモリ上に保持する最大レコード数を指定します。 このサイズを越えて保持する必要が生じた場合には、バックエンド・データベース への反映に遅延が生じていると見なし、スレーブとしての動作を諦めて終了します。 デフォルトは100000です。

  この文はgfmd.confのみで有効です。

  例:

  metadb_journal_recvq_size 100000

metadb_replica_remover_by_host_sleep_time `ナノ秒`

  ファイルシステムノード削除時のレプリカ削除処理が、 gfmdが忙しい場合に処理を休む時間をナノ秒で指定します。 この値を増やすと、この処理の優先度が下がり、ゆっくり動作します。 デフォルトは20000000ナノ秒(20ミリ秒)です。 最大値は1000000000ナノ秒(1秒)です。

  この文はgfmd.confのみで有効です。

  例:

  metadb_replica_remover_by_host_sleep_time 20000000

metadb_replica_remover_by_host_inode_step `個数`

  ファイルシステムノード削除時のレプリカ削除処理が、 一度に処理するi-nodeの数を指定します。 この値を減らすと、この処理の優先度が下がり、ゆっくり動作します。 デフォルトは1024個です。

  この文はgfmd.confのみで有効です。

  例:

  metadb_replica_remover_by_host_inode_step 1024

replica_check `有効性`

  enableと指定した場合、gfmd内のreplica_check機能が、必要なときに自動的に ファイル複製の数と配置を監視し、不足しているファイル複製があれば増やします。 デフォルトはenableです。

  下記のイベントが発生するとreplica_checkが開始します。

  - gfsd起動時
  - gfsd停止からreplica_check_host_down_thresh秒後
  - gfncopyで複製数設定を変更時
  - ディレクトリ名変更時、またはファイルを別ディレクトリへ移動時
  (同一ディレクトリ内で改名した場合は開始しない)
  (ファイル自身に複製数が設定されている場合は開始しない)
  - ファイルclose時ファイル複製自動作成要求がエラー時
  - ファイルclose時ファイル複製自動作成処理中にエラー時
  - gfsdが忙しくなくなった場合
  (ロードアベレージがschedule_busy_load_thresh以下に変化時)
  - replica_check処理中にエラーが起きた場合、チェック完了後にリトライ

  gfrepcheck コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。 gfrepcheck enable は即座に開始します。 gfrepcheck disable は即座に停止します。 startはenableと同等、stopはdisableと同等です。

  この文はgfmd.confのみで有効です。

  例:

  replica_check disable

replica_check_remove `有効性`

  replica_check enableの場合に効果があります。enableと指定 した場合、replica_check機能が余剰ファイル複製を自動的に削除します。例 外として、ファイルがハードリンクされていて (nlink >= 2)、そのファイル 自身に複製数の設定 (gfarm.ncopyまたはgfarm.replicainfo)がされていない 場合、そのファイルの余剰ファイル複製は削除されません。デフォルトは enableです。

  gfrepcheck remove コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。

  この文はgfmd.confのみで有効です。

  例:

  replica_check_remove disable

replica_check_remove_grace_used_space_ratio `パーセント`

  replica_check_removeが有効な場合に効果があります。 なるべく余剰ファイル複製を削除せず残しておくために、猶予容量使用率を指 定します。猶予容量使用率は、gfsdごとのディスク使用率を百分率(パーセン ト, 0から100の整数)で指定します。ここで指定した使用率を超えているgfsd上に ある余剰ファイル複製のうち、 replica_check_remove_grace_timeの時間を経過している場合 に削除されます。0を指定すると、ディスク使用率に関わら ずreplica_check_remove_grace_time次第で削除されます。 100を指定すると、replica_check_remove disableと同等にな ります。デフォルトは0です。

  gfrepcheck remove_grace_used_space_ratio コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。

  この文はgfmd.confのみで有効です。

  例:

  replica_check_remove_grace_used_space_ratio 70

replica_check_remove_grace_time `秒数`

  replica_check_removeが有効な場合に効果があります。 猶予容量使用率が replica_check_remove_grace_used_space_ratioを超えた場 合に、余剰ファイル複製が削除されるまでの猶予期間を指定します。 猶予期間としてファイルのアクセス時間(atime)からの経過時間を秒数で指定します。 デフォルトは0です。

  gfrepcheck remove_grace_time コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。

  この文はgfmd.confのみで有効です。

  例:

  replica_check_remove_grace_time 604800

replica_check_reduced_log `有効性`

  enableと指定した場合、 replica_check機能が出力するログメッセージの数を削減することができます。 デフォルトはenableです。

  gfrepcheck reduced_log コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。

  この文はgfmd.confのみで有効です。

  例:

  replica_check_reduced_log disable

replica_check_host_down_thresh `秒数`

  gfsdが停止した場合、ここで指定した秒数までそのgfsdが停止していない(そ のgfsd上のファイル複製は正常である)とreplica_checkがみなします。これは gfsdを保守するために有用です。デフォルトは10800秒(3時間)です。

  gfrepcheck host_down_thresh コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。

  この文はgfmd.confのみで有効です。

  例:

  replica_check_host_down_thresh 3600

replica_check_sleep_time `ナノ秒`

  この値を増やすと、gfmdが忙しい場合に限り、replica_checkがゆっくり動作します。 クライアントからのアクセスへの応答を優先するために有用です。 gfmdが忙しくない場合、replica_checkは全力で動作します。 replica_check以外の処理が多いと検出した場合に、replica_checkの処理を一 時的に停止する時間をナノ秒で指定します。 デフォルトは100000ナノ秒(0.1ミリ秒)です。 最大値は1000000000ナノ秒(1秒)です。

  gfrepcheck sleep_time コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。

  この文はgfmd.confのみで有効です。

  例:

  replica_check_sleep_time 0

replica_check_minimum_interval `秒`

  replica_checkが次回動作するまでの最小間隔(秒)を指定します。 デフォルトは10秒です。

  gfrepcheck minimum_interval コマンドを使うと、 この値を動的に変更したり、statusで現在の値を取得できます。

  この文はgfmd.confのみで有効です。

  例:

  replica_check_minimum_interval 5

replicainfo `有効性`

  enableと指定した場合、 gfarm.replicainfo拡張属性に従って複製を自動的に配置します。 disableと指定した場合、 gfarm.replicainfo拡張属性のホストグループごとの複製数の指定を無視して、 その合計数またはgfarm.ncopy拡張属性の値が大きい方を目標の複製数として 複製を配置します。 gfarm.replicainfo拡張属性については、 gfncopyのマニュアルを参照してください。 デフォルトは enable です。

  gfstatus -Mm 'replicainfo disable' により、一時的に無効にすることができます。

  この文はgfmd.confのみで有効です。

  例:

  replicainfo disable

write_verify `有効性`

  enableと指定した場合、 ファイル書き込み後しばらく後に、gfsd がデータを読み直してチェックサムを 再確認する write_verify 機能が有効になります。 デフォルトは disable です。

  この文は gfmd.conf のみで有効です。 gfarm2.confでは無視されます。 gfsd はその起動時に、gfmd に対して、この設定を問い合わせて動作します。

  例:

  write_verify enable

write_verify_interval `秒数`

  ファイルへの書き込み完了後、どの程度時間をおいて、write_verify を実施するか、 秒数で指定します。 デフォルトは 21600秒 (6時間) です。

  write_verify のための読み込みは、O_DIRECT 機能が存在する OS では、 direct I/O を用います。しかし、ディスクコントローラ内のキャッシュや、 メタデータ・キャッシュのクリアは行ないませんので、write_verify_interval には、十分長い時間を指定することを推奨します。

  この文は gfmd.conf のみで有効です。 gfarm2.confでは無視されます。 gfsd はその起動時に、gfmd に対して、この設定を問い合わせて動作します。

  例:

  write_verify_interval 21600

write_verify_retry_interval `秒数`

  write_verify を試みたが、対象ファイルが書き込みオープンされていて 実施できなかった場合に、どれだけの時間待ってから、再度 write_verify を 試みるかを指定します。

  この設定値は、write_verify_interval で指定した時間より十分短い時間と することを推奨します。 デフォルトは 600秒 (10分) です。

  この文は gfmd.conf のみで有効です。 gfarm2.confでは無視されます。 gfsd はその起動時に、gfmd に対して、この設定を問い合わせて動作します。

  例:

  write_verify_retry_interval 600

write_verify_log_interval `秒数`

  write_verify に関する統計情報をログ出力する間隔を指定します。 設定した値以上の時間が経過して、ファイルシステムノードでファイルが 更新されると、統計情報がそのファイルシステムノードのログに記録されます。

  デフォルトは 3600秒 (1時間) です。

  この文は gfmd.conf のみで有効です。 gfarm2.confでは無視されます。 gfsd はその起動時に、gfmd に対して、この設定を問い合わせて動作します。

  例:

  write_verify_log_interval 3600

ib_rdma `有効性`

  クライアントとgfsd がデータ転送の際にrdmaを用いるかを指定します。 InfiniBand が装備されているノードでのみ有効です。

  デフォルトはconfigureの際に--with-infiniband を指定していれば enable です。 それ以外はdisableで、enable にしても効果はありません。

  環境変数で GFARM_RDMA_DISABLE が設定されていればrdma機能は使用されません。

  例:

  ib_rdma disable

rdma_device `デバイス名`

  クライアントとgfsd とのrdma 転送に使用するデバイスを指定します。 InfiniBand が装備されているノードでのみ有効です。

  デフォルトは ibv_get_device_list() で見つかった最初の有効なデバイスです。

  例:

  rdma_device mlx4_1

rdma_port `ポート番号`

  クライアントとgfsd とのrdma 転送に使用するデバイスのポート番号を指定します。 InfiniBand が装備されているノードでのみ有効です。

  デフォルトは 有効なデバイスの中の最初の有効なポートです。

  例:

  rdma_port 2

rdma_gid_index `gid インデクス番号`

  クライアントとgfsd とのrdma 転送をGRHを用いて行うことを指定すると同時に、 その場合の gid のインデクスを指定します。 InfiniBand が装備されているノードでのみ有効です。

  デフォルトは -1 でGRH を使わずローカルIDで転送します。

  この文は gfsd.conf のみで有効です。 gfarm2.confでは無視されます。

  例:

  rdma_gid_index 0

rdma_min_size `バイト数`

  クライアントとgfsd とのrdma 転送を行う最小の転送サイズを指定します。 InfiniBand が装備されているクライアントノードでのみ有効です。

  デフォルトは65536バイトです。

  例:

  rdma_min_size 4096

rdma_mr_reg_mode `モード`

  クライアントのRDMA転送バッファの登録方法を指定します。 指定可能なモードには次のものがあります。

  static接続したgfsd 毎に一つの転送バッファを登録するモードです。

  dynamic転送の度に登録と解除を繰り返すモードです。

  static のほうが登録の回数が少ないので若干速いメリットはありますが、 登録したバッファがずっとメモリロックされるため、接続gfsdが多いとメモリ負荷が 高くなり、登録に失敗する場合もあります。 両方を指定すると、static バッファを登録したうえで、 そのサイズを越えたIOの場合は dynamic が試みられます。

  デフォルトは static です。

  例:

  rdma_mr_reg_mode static
  rdma_mr_reg_mode static dynamic

rdma_mr_reg_static_min_size `バイト数`

  `rdma_mr_reg_mode` で `static` を 指定した時の初期登録サイズを指定します。

  デフォルトは1 MiBです。

  例:

  rdma_mr_reg_static_min_size 1048576

rdma_mr_reg_static_max_size `バイト数`

  `rdma_mr_reg_mode` で `static` を 指定した時の最大拡張登録サイズを指定します。

  転送を要求されたサイズが登録サイズより大きい時、このサイズまで拡張します。

  デフォルトは16 MiBです。

  例:

  rdma_mr_reg_static_max_size 16777216

## GRAMMAR

gfarm2.confの文法をBNFで記述すると、下記のようになります。

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

## EXAMPLES

以下は sharedsecret認証を使う gfarm2.conf の例です。

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

メタデータの保存にPostgreSQLを使い、IPアドレス192.168.0.0/24の ファイルシステムノードやクライアントに対して、sharedsecret認証を 使う gfmd.conf の例です。

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

メタデータの保存にLDAPを使い、任意のIPアドレスを使う ファイルシステムノードやクライアントに対して、GSI認証を使う gfmd.conf の例です。

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)