2.7.2. 可能な場合は各ノードで独自のファイルを割り当て
GFS2 ファイルシステムで使用するアプリケーションを開発する場合は、可能であれば独自のファイルを各ノードに割り当てることが推奨されます。全ファイルが 1 つのノードにより割り当てられ、その他のノードがこれらのファイルにブロックを追加する必要がある場合には、分散ロックマネージャー (DLM) の動作の仕組みが原因となって、ロック競合が多くなります。
これまで "ロックマスター" という用語を使用して、クラスター内のリモートノードまたはローカルから送信されるロック要求の現在のコーディネーターノードを表していました。ロック要求コーディネーターというこの用語は、ロック要求のキューへの追加、許可または拒否の面からすると実際にはリソース (DLM 用語) を指すので若干誤解を招きます。DLM で使用される用語の意味としては、DLM はピアツーピアシステムであるため、"同等者の中での最初" を指すものと解釈する必要があります。
Linux カーネルの DLM 実装では、ロックを最初に使用するノードが、ロック要求のコーディネーターになり、その時点から、コーディネーターは変更されません。これは、Linux カーネル DLM の実装の説明で、一般的に DLM のプロパティーではありません。今後の更新により、特定のロック要求を連携することでノード間の移行が可能になります。
ロック要求が連携される場所は、ロック要求のイニシエーターに対して透過的です。ただし、要求のレイテンシーからの影響がある場合を除きます。現在の実装で考えられる 1 つの結果として、(I/O コマンドを実行する他のノードよりも前に、1 つのノードがファイルシステム全体をスキャンする場合など) 最初のワークロードでバランスが取れていない場合に、ファイルシステムを最初にスキャンしたノードと比べると、クラスター内の他のノードのロックでレイテンシーが発生する可能性が高くなります。
多くのファイルシステムと同様、GFS2 アロケーターは、ディスクヘッドの動きを抑え、パフォーマンスを向上させるために、同じファイルのブロックを互いに近づけようと試みます。ブロックをファイルに割り当てるノードは、新しいブロックに同じリソースグループを使用してロックする必要があります (そのリソースグループ内のすべてのブロックが使用中の場合を除きます)。ファイルを含むリソースグループのロック要求コーディネーターがデータブロックを割り当てると、ファイルシステムの実行が速くなります (ファイルを最初に開いたノードが新しいブロックの全書き込みを実行する方が速くなります)。