Gfarm

第3回 Gfarm の replica check について

2013.09.18

Gfarm v2.5.8 から replica check 機能が搭載されています。

replica check とは

replica check 機能は、自動的に Gfarm 上の全ファイルを確認して、設定よりも複製数が足りないファイルがあれば、複製を増やす機能です。

標準で replica check 機能は有効です。

Gfarm には自動複製作成機能も搭載されています。gfncopy コマンドを使って、ファイルやディレクトリに複製数を設定しておくと、ファイル更新後 (close 後) に自動的に複製が作成されます。これが自動複製作成機能です。それとは別の仕組みとして replica check 機能があります。replica check も、この複製数の設定を利用します。

標準では、ファイルやディレクトリに複製数を設定しない限り、自動複製作成機能と replica check 機能が働きません。ディレクトリに複製数を指定すると、下位にあるファイルすべてが、その複製数になります。

一つの gfsd にアクセスが集中したり、ネットワークに異常があると、自動複製作成が失敗することがあります。自動複製作成が失敗した場合は、replica check 機能によって、あとで複製が作成されます。

それ以外の状況でも、何か状態が変化したら、自動的に全ファイルをチェックして、複製を作成します。(作動条件は後述)

設定よりも多くなった複製を必要十分な数へ自動的に減らす機能は未実装です。gfarmroot 権限で gfrep -N 1 -x / と実行すれば、複製数が設定されているファイルは、それ以上複製を減らすことができないエラーとなり、必要十分な数になります。複製数が設定されていないファイルは 1 個になってしまうので注意が必要です。

replica check 処理中は gfmd に負荷がかるので、クライアントへの応答が悪くなるかもしれませんが、クライアントからの要求はなるべく優先的に処理されます。

replica check の作動条件

以下の条件で replica check 機能が作動します。

  • gfmd が起動してから metadb_server_heartbeat_interval (gfmd.conf) 秒後
  • gfsd ホストが停止してから replica_check_host_down_thresh (gfmd.conf) 秒後
  • gfsd ホストが起動してから 10 秒後
  • gfncopy コマンドで自動複製作成の設定を変更してから 10 秒後
  • ファイルやディレクトリを他のディレクトリに移動してから 10 秒後
  • ファイル更新後の自動複製作成が失敗してから 10 秒後
  • replica check 処理中の複製作成が失敗した場合、もう一度チェック
  • replica check 処理中に上記いずれかの条件に該当した場合、そのチェックが完了してから、もう一度チェック

replica check に関する設定

gfmd.conf に、以下の設定を指定できます。詳細は gfarm2.conf の man ページを参照してください。

  • replica_check
  • replica_check_host_down_thresh
  • replica_check_sleep_time
  • replica_check_minimum_interval

特に replica_check_host_down_thresh の検討は必要です。

replica_check_host_down_thresh の設定は、gfsd ホストが停止していても、停止しているとみなさず、複製数として数える際に有効とする時間 (秒) です。標準では 10800 秒 (3 時間) です。

つまり、gfsd を停止してから、メンテナンス作業と起動に 3 時間以上かかる場合は、すべてのファイルに関して複製が増えます。

運用方針として、メンテナンス作業を考慮してこの値を長くするか、安全を重視して短くするかを検討する必要があります。

replica_check_host_down_thresh の設定時間を短くすれば、すぐに複製が作られるので安全ですが、複製が必要数以上に増えやすくなるので、Gfarm 全体のディスク使用量に注意が必要です。

著者プロフィール

takuya

プログラミングが好きです。でも、ラーメンのほうがもっと好きです。

記事一覧Index