GlusterFSには2種類のヒール(修復)機能があり、サーバーサイドヒールとクライアントサイドヒールがあります。
サーバーサイドヒールは、すべてのGlusterサーバーノード上でself-healデーモンによって自動的に実行されます。これは、ブリックパス上の.glusterfsディレクトリからファイルやディレクトリ情報をクロールして修復を行います。そのため、ファイルデータやメタデータをサーバー側で一貫性のある状態に保ちます。
一方、クライアントサイドヒールは異なり、クライアントがマウントパスからファイルにアクセスしたとき(ファイルディスクリプタでの操作時)に、その特定のファイルに対してヒールをトリガーします。これにより、各ファイルアクセス時に追加の関数呼び出しが発生し、パフォーマンスに影響を与える場合があります。 クライアントサイドヒールはデフォルトで有効になっており、以下のコマンドで無効化できます。
ファイルデータ
|
|
エントリデータ(ディレクトリの内容やエントリ)
|
|
メタデータ
|
|
クライアントサイドヒールを無効にしても、データの整合性や一貫性が損なわれるわけではありません。ファイルの読み取り時には、レプリカコピーのpending xattrが評価され、正しいコピーからのみ読み取りが行われます。ファイルの書き込み時には、新しいデータが両方のレプリカブリックに書き込まれ、Glusterノード上のself-healデーモンが必要に応じて修復を行います。