GlusterFSには2種類のヒール(修復)機能があり、サーバーサイドヒールとクライアントサイドヒールがあります。

サーバーサイドヒールは、すべてのGlusterサーバーノード上でself-healデーモンによって自動的に実行されます。これは、ブリックパス上の.glusterfsディレクトリからファイルやディレクトリ情報をクロールして修復を行います。そのため、ファイルデータやメタデータをサーバー側で一貫性のある状態に保ちます。

一方、クライアントサイドヒールは異なり、クライアントがマウントパスからファイルにアクセスしたとき(ファイルディスクリプタでの操作時)に、その特定のファイルに対してヒールをトリガーします。これにより、各ファイルアクセス時に追加の関数呼び出しが発生し、パフォーマンスに影響を与える場合があります。 クライアントサイドヒールはデフォルトで有効になっており、以下のコマンドで無効化できます。

ファイルデータ

1
gluster volume set <volume name> cluster.data-self-heal off

エントリデータ(ディレクトリの内容やエントリ)

1
gluster volume set <volume name> cluster.entry-self-heal off

メタデータ

1
gluster volume set <volume name> cluster.metadata-self-heal off

クライアントサイドヒールを無効にしても、データの整合性や一貫性が損なわれるわけではありません。ファイルの読み取り時には、レプリカコピーのpending xattrが評価され、正しいコピーからのみ読み取りが行われます。ファイルの書き込み時には、新しいデータが両方のレプリカブリックに書き込まれ、Glusterノード上のself-healデーモンが必要に応じて修復を行います。