gfarm2.conf(5) 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"と記述すると、通信する相手に関係なく、 サーバー側(着呼側)のソケットを意味します。

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

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_check_level レベル

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

例:

        spool_check_level disable

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の場合、デフォルトのスタックサイズは10MBです ので、このパラメータでスタックサイズを256KBに抑えると、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のジョブキューのキュー長を指定します。 一度に接続する最大クライアントの数くらいに設定すると効果的です。 デフォルト値は16000です。

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

例:

        metadb_server_job_queue_length 160

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

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

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_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です。

例:

        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を指定 することで、それぞれ1kバイト/1Mバイト/1Gバイト/1Tバイトを単位とする ことができます。 デフォルトは512Mバイトです。

このパラメータは、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

simultaneous_replication_receivers 同時処理数

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

例:

        simultaneous_replication_receivers 40

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_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 秒数

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

例:

        gfmd_authentication_timeout 20

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

client_digest_check 有効性

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

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

例:

        client_digest_check enable

client_file_bufsize バイト数

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

この文は、クライアントが参照する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 MBytes)です。

この文は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機能が ファイル複製の数と配置を自動的にチェックし、修復します。 replica_checkは必要なときにだけ動作します。 デフォルトはenableです。

gfrepcheckコマンドを使うと、 この挙動をオンライン状態で変更できます。

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

例:

        replica_check disable

replica_check_remove 有効性

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

gfrepcheck removeコマンドを使うと、 この挙動をオンライン状態で変更できます。

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

例:

        replica_check_remove disable

replica_check_reduced_log 有効性

enableと指定した場合、 replica_check機能が出力するログメッセージが抑制されることがあります。 デフォルトはenableです。

gfrepcheck reduced_logコマンドを使うと、 この挙動をオンライン状態で変更できます。

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

例:

        replica_check_reduced_log disable

replica_check_host_down_thresh 秒数

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

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

例:

        replica_check_host_down_thresh 3600

replica_check_sleep_time ナノ秒

この値を増やすと、replica_checkはgfmdが忙しい場合に限り、ゆっくり動作します。 gfmdが忙しくない場合、replica_checkは全力で動作します。 replica_check内でスリープする時間をナノ秒で指定します。 デフォルトは100000ナノ秒(0.1ミリ秒)です。 最大値は1000000000ナノ秒(1秒)です。

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

例:

        replica_check_sleep_time 0

replica_check_minimum_interval

replica_checkが動作するための最小間隔(秒)を指定します。 デフォルトは10秒です。 つまり、replica_checkは10秒間に最大1回動作することができます。

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

例:

        replica_check_minimum_interval 5

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

GRAMMAR

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

<statement> ::=

        <spool_statement> |
        <spool_server_listen_address_statement> |
        <spool_server_listen_backlog_statement> |
        <spool_server_cred_type_statement> |
        <spool_server_cred_service_statement> |
        <spool_server_cred_name_statement> |
        <spool_server_back_channel_rcvbuf_limit_statement> |
        <spool_check_level_statement> |
        <spool_base_load_statement> |
        <spool_digest_error_check_statement> |
        <metadb_server_host_statement> |
        <metadb_server_port_statement> |
        <metadb_server_cred_type_statement> |
        <metadb_server_cred_service_statement> |
        <metadb_server_cred_name_statement> |
        <metadb_server_listen_backlog_statement> |
        <metadb_server_max_descriptors_statement> |
        <metadb_server_stack_size_statement> |
        <metadb_server_thread_pool_size_statement> |
        <metadb_server_job_queue_length_statement> |
        <metadb_server_heartbeat_interval_statement> |
        <metadb_server_dbq_size_statement> |
        <metadb_server_back_channel_sndbuf_limit_statement> |
        <metadb_server_nfs_root_squash_support_statement> |
        <ldap_server_host_statement> |
        <ldap_server_port_statement> |
        <ldap_base_dn_statement> |
        <ldap_bind_dn_statement> |
        <ldap_bind_password_statement> |
        <postgresql_server_host_statement> |
        <postgresql_server_port_statement> |
        <postgresql_dbname_statement> |
        <postgresql_user_statement> |
        <postgresql_password_statement> |
        <postgresql_conninfo_statement> |
        <auth_statement> |
        <shared_key_file_statement> |
        <digest_statement> |
        <sockopt_statement> |
        <known_network_statement> |
        <network_receive_timeout_statement> |
        <admin_user_statement> |
        <admin_user_gsi_dn_statement> |
        <local_user_map_statement> |
        <local_group_map_statement> |
        <schedule_cache_timeout_statement> |
        <schedule_concurrency_statement> |
        <schedule_concurrency_per_net_statement> |
        <schedule_idle_load_thresh_statement> |
        <schedule_busy_load_thresh_statement> |
        <schedule_virtual_load_statement> |
        <schedule_candidates_ratio_statement> |
        <schedule_rtt_thresh_diff_statement> |
        <schedule_rtt_thresh_ratio_statement> |
        <schedule_rtt_thresh_statement> |
        <write_local_priority_statement> |
        <write_target_domain_statement> |
        <minimum_free_disk_space_statement> |
        <direct_local_access_statement> |
        <simultaneous_replication_receivers_statement> |
        <gfsd_connection_cache_statement> |
        <xmlattr_size_limit_statement> |
        <xattr_size_limit_statement> |
        <attr_cache_limit_statement> |
        <attr_cache_timeout_statement> |
        <page_cache_timeout_statement> |
        <log_level_statement> |
        <log_message_verbose_level_statement> |
        <log_auth_verbose_statement> |
        <file_trace_statement> |
        <fatal_action_statement> |
        <debug_command_statement> |
        <no_file_system_node_timeout_statement> |
        <gfmd_authentication_timeout_statement> |
        <gfmd_reconnection_timeout_statement> |
        <gfsd_connection_timeout_statement> |
        <atime_statement> |
        <client_digest_check_statement> |
        <client_file_bufsize_statement> |
        <client_parallel_copy_statement> |
        <profile_statement> |
        <metadb_server_list_statement> |
        <metadb_replication_statement> |
        <synchronous_replication_timeout_statement> |
        <synchronous_journaling_statement> |
        <metadb_server_force_slave_statement> |
        <metadb_server_slave_max_size_statement> |
        <metadb_server_slave_replication_timeout_statement> |
        <metadb_journal_dir_statement> |
        <metadb_journal_max_size_statement> |
        <metadb_journal_recvq_size_statement> |
        <metadb_replica_remover_by_host_sleep_time_statement> |
        <metadb_replica_remover_by_host_inode_step_statement> |
        <replica_check_statement> |
        <replica_check_remove_statement> |
        <replica_check_reduced_log_statement> |
        <replica_check_host_down_thresh_statement> |
        <replica_check_sleep_time_statement> |
        <replica_check_minimum_interval_statement> |
        <write_verify_statement> |
        <write_verify_interval_statement> |
        <write_verify_retry_interval_statement> |
        <write_verify_log_interval_statement>

<spool_statement> ::=

"spool" <pathname>

<spool_server_listen_address_statement> ::=

"spool_server_listen_address" <ipv4_address>

<spool_server_listen_backlog_statement> ::=

"spool_server_listen_backlog" <number>

<spool_server_cred_type_statement> ::=

"spool_server_cred_type" <cred_type>

<spool_server_cred_service_statement> ::=

"spool_server_cred_service" <cred_service>

<spool_server_cred_name_statement> ::=

"spool_server_cred_name" <cred_name>

<spool_server_back_channel_rcvbuf_limit_statement> ::=

"spool_server_back_channel_rcvbuf_limit" <size_limit>

<spool_check_level_statement> ::=

"spool_check_level" <spck_level>

<spool_base_load_statement> ::=

"spool_base_load" <load>

<spool_digest_error_check_statement> ::=

"spool_digest_error_check" <validity>

<metadb_server_host_statement> ::=

"metadb_server_host" <hostname>

<metadb_server_port_statement> ::=

"metadb_server_port" <portnumber>

<metadb_server_cred_type_statement> ::=

"metadb_server_cred_type" <cred_type>

<metadb_server_cred_service_statement> ::=

"metadb_server_cred_service" <cred_service>

<metadb_server_cred_name_statement> ::=

"metadb_server_cred_name" <cred_name>

<metadb_server_listen_backlog_statement> ::=

"metadb_server_listen_backlog" <number>

<metadb_server_max_descriptors_statement> ::=

"metadb_server_max_descriptors" <number>

<metadb_server_stack_size_statement> ::=

"metadb_server_stack_size" <number>

<metadb_server_thread_pool_size_statement> ::=

"metadb_server_thread_pool_size" <number>

<metadb_server_job_queue_length_statement> ::=

"metadb_server_job_queue_length" <number>

<metadb_server_heartbeat_interval_statement> ::=

"metadb_server_heartbeat_interval" <number>

<metadb_server_dbq_size_statement> ::=

"metadb_server_dbq_size" <number>

<metadb_server_back_channel_sndbuf_limit_statement> ::=

"metadb_server_back_channel_sndbuf_limit" <size_limit>

<metadb_server_nfs_root_squash_support_statement> ::=

"metadb_server_nfs_root_squash_support" <validity>

<ldap_server_host_statement> ::=

"ldap_server_host" <hostname>

<ldap_server_port_statement> ::=

"ldap_server_port" <portnumber>

<ldap_base_dn_statement> ::=

"ldap_base_dn" <string>

<ldap_bind_dn_statement> ::=

"ldap_bind_dn" <string>

<ldap_bind_password_statement> ::=

"ldap_bind_password" <string>

<postgresql_server_host_statement> ::=

"postgresql_server_host" <hostname>

<postgresql_server_port_statement> ::=

"postgresql_server_port" <portnumber>

<postgresql_dbname_statement> ::=

"postgresql_dbname" <string>

<postgresql_user_statement> ::=

"postgresql_user" <string>

<postgresql_password_statement> ::=

"postgresql_password" <string>

<postgresql_conninfo_statement> ::=

"postgresql_conninfo" <string>

<auth_statement> ::=

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

<auth_command> ::=

"enable" | "disable"

<auth_method> ::=

"gsi" | "gsi_auth" | "sharedsecret"

<shared_key_file_statement> ::=

"shared_key_file" <pathname>

<digest_statement> ::=

"digest" <digest_type>

<sockopt_statement> ::=

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

<socket_option> ::=

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

<known_network_statement> ::=

"known_network" <hostspec>

<network_receive_timeout_statement> ::=

"network_receive_timeout" <number>

<admin_user_statement> ::=

"admin_user" <string>

<admin_user_gsi_dn_statement> ::=

"admin_user_gsi_dn" <string>

<local_user_map_statement> ::=

"local_user_map" <local_user_and_group_map_spec>

<local_group_map_statement> ::=

"local_group_map" <local_user_and_group_map_spec>

<local_user_and_group_map_spec> ::=

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

<schedule_cache_timeout_statement> ::=

"schedule_cache_timeout" <number>

<schedule_concurrency_statement> ::=

"schedule_concurrency" <number>

<schedule_concurrency_per_net_statement> ::=

"schedule_concurrency_per_net" <number>

<schedule_idle_load_thresh_statement> ::=

"schedule_idle_load_thresh" <load>

<schedule_busy_load_thresh_statement> ::=

"schedule_busy_load_thresh" <load>

<schedule_virtual_load_statement> ::=

"schedule_virtual_load" <load>

<schedule_candidates_ratio_statement> ::=

"schedule_candidates_ratio" <floating_point_number>

<schedule_rtt_thresh_diff_statement> ::=

"schedule_rtt_thresh_diff" <number>

<schedule_rtt_thresh_ratio_statement> ::=

"schedule_rtt_thresh_ratio" <floating_point_number>

<schedule_rtt_thresh_statement> ::=

"schedule_rtt_thresh" <floating_point_number>

<write_local_priority_statement> ::=

"write_local_priority" <validity>

<write_target_domain_statement> ::=

"write_target_domain" <string>

<minimum_free_disk_space_statement> ::=

"minimum_free_disk_space" <size>

<direct_local_access_statement> ::=

"direct_local_access" <validity>

<simultaneous_replication_receivers_statement> ::=

"simultaneous_replication_receivers" <number>

<gfsd_connection_cache_statement> ::=

"gfsd_connection_cache" <number>

<xmlattr_size_limit_statement> ::=

"xmlattr_size_limit" <size>

<xattr_size_limit_statement> ::=

"xattr_size_limit" <size>

<attr_cache_limit_statement> ::=

"attr_cache_limit" <number>

<attr_cache_timeout_statement> ::=

"attr_cache_timeout" <number>

<page_cache_timeout_statement> ::=

"page_cache_timeout" <number>

<log_level_statement> ::=

"log_level" <log_priority>

<log_message_verbose_level_statement> ::=

"log_message_verbose_level" <number>

<log_auth_verbose_statement> ::=

"log_auth_verbose" <validity>

<file_trace_statement> ::=

"file_trace" <validity>

<fatal_action_statement> ::=

"fatal_action" <fatal_action_name>

<debug_command_statement> ::=

"debug_command" <string_list>

<no_file_system_node_timeout_statement> ::=

"no_file_system_node_timeout" <number>

<gfmd_authentication_timeout_statement> ::=

"gfmd_authentication_timeout" <number>

<gfmd_reconnection_timeout_statement> ::=

"gfmd_reconnection_timeout" <number>

<gfsd_connection_timeout_statement> ::=

"gfsd_connection_timeout" <number>

<atime_statement> ::=

"atime" <atime_type>

<client_digest_check_statement> ::=

"client_digest_check" <validity>

<client_file_bufsize_statement> ::=

"client_file_bufsize" <size>

<client_parallel_copy_statement> ::=

"client_parallel_copy" <number>

<profile_statement> ::=

"profile" <validity>

<metadb_server_list_statement> ::=

"metadb_server_list" <metadb_server_list_spec>

<metadb_server_list_spec> ::=

<hostname_port_spec> |
        <hostname_port_spec> <metadb_server_list_spec>

<metadb_replication_statement> ::=

"metadb_replication" <validity>

<synchronous_replication_timeout_statement> ::=

"synchronous_replication_timeout" <number>

<synchronous_journaling_statement> ::=

"synchronous_journaling" <validity>

<metadb_server_force_slave_statement> ::=

"metadb_server_force_slave" <validity>

<metadb_server_slave_max_size_statement> ::=

"metadb_server_slave_max_size" <number>

<metadb_server_slave_replication_timeout_statement> ::=

"metadb_server_slave_replication_timeout" <number>

<metadb_journal_dir_statement> ::=

"metadb_journal_dir" <pathname>

<metadb_journal_max_size_statement> ::=

"metadb_journal_max_size" <number>

<metadb_journal_recvq_size_statement> ::=

"metadb_journal_recvq_size" <number>

<metadb_replica_remover_by_host_sleep_time_statement> ::=

"metadb_replica_remover_by_host_sleep_time" <number>

<metadb_replica_remover_by_host_inode_step_statement> ::=

"metadb_replica_remover_by_host_inode_step" <number>

<replica_check_statement> ::=

"replica_check" <validity>

<replica_check_remove_statement> ::=

"replica_check_remove" <validity>

<replica_check_reduced_log_statement> ::=

"replica_check_reduced_log" <validity>

<replica_check_host_down_thresh_statement> ::=

"replica_check_host_down_thresh" <number>

<replica_check_sleep_time_statement> ::=

"replica_check_sleep_time" <number>

<replica_check_minimum_interval_statement> ::=

"replica_check_minimum_interval" <number>

<string_list> ::=

<string> |
        <string> <string_list>

<hostspec> ::=

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

<pathname> ::=

<pathname_character> <pathname_character>*

<pathname_character> ::=

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

<hostname_port_spec> ::=

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

<hostname> ::=

<hostname_character> <hostname_character>*

<hostname_character> ::=

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

<portnumber> ::=

<number>

<size> ::=

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

<number> ::=

<digit> [<digit>*]

<digit> ::=

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

<size_limit> ::=

<number> | "disable" 

<string> ::=

""" <double_quoted_character>* """

<double_quoted_character> ::=

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

<validity> ::=

"enable" | "disable"

<spck_level> ::=

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

<atime_type> ::=

"disable" | "relative" | "strict"

<log_priority> ::=

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

<fatal_action_name> ::=

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

<write_verify_statement> ::=

"write_verify" <validity>

<write_verify_interval_statement> ::=

"write_verify_interval" <number>

<write_verify_retry_interval_statement> ::=

"write_verify_retry_interval" <number>

<write_verify_log_interval_statement> ::=

"write_verify_log_interval" <number>

EXAMPLES

以下は 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