付録C GFS2 トレースポイントおよび debugfs glocks ファイル
本付録では glock の
debugfs
インターフェースおよび GFS2 のトレースポイントの両方について説明しています。ファイルシステムの内部について十分に理解しているユーザーで GFS2 の設計および GFS2 固有の問題のデバッグ方法についての詳細をお探しの上級ユーザーを対象としています。
C.1. GFS2 トレースポイントのタイプ
GFS2 トレースポイントには、glock ("ジーロック" と発音) トレースポイント、bmap トレースポイント、および log トレースポイントの 3 つのタイプがあります。これらのトレースポイントは、実行中の GFS2 ファイルシステムのモニタリングに使用することができ、Red Hat Enterprise Linux の旧リリースで対応していたデバッグオプションで取得できる情報に加え更に詳細な情報を得ることができるようになります。ハングやパフォーマンス上の問題など、再現が可能なため問題となっている動作中にトレースポイントの出力が取得できるような場合にはトレースポイントは大変役に立つ情報になります。GFS2 では glocks が主要なキャッシュ制御メカニズムとなるため、GFS2 の主要となる部分のパフォーマンスを理解する場合に重要となります。bmap (block map) トレースポイントを使用するとブロック割り当てやブロックマッピング (ディスク上のメタデータツリー内に既に割り当てられたブロックの検索) を発生と同時にモニタリングし、アクセスの局所性に関連した問題がないかをチェックすることができます。log トレースポイントはジャーナルに書き込まれるデータおよびジャーナルから解放されるデータを追跡するため、GFS2 のその部分に関する有用な情報を得ることができます。
トレースポイントは可能な限り汎用的となるように設計されています。つまり、Red Hat Enterprise Linux 6 の間は API を変更する必要はないはずです。一方、このインターフェースを使用する上で、これが通常の Red Hat Enterprise Linux 6 API セットの一部ではなくデバッグ用のインターフェースであること、そのため GFS2 トレースポイントインターフェースが変更されないという保証はないことを認識しておく必要があります。
トレースポイントは Red Hat Enterprise Linux 6 の汎用機能であり、GFS2 だけでなく広い範囲を対象としています。特に、
blktrace
インフラストラクチャーの実装に使用され、また blktrace
トレースポイントは GFS2 のトレースポイントとの併用によりシステムパフォーマンスの詳細な状況を把握することができます。トレースポイントが機能するレベルにより、極めて短時間で大量のデータを作成することができます。トレースポイントは有効化された時のシステムへの負荷が最小限となるように設計されていますが、ある程度の影響は避けられません。様々な方法でイベントをフィルタリングすることにより、データ量を削減し、特定の状況を理解するにあたって有用な情報のみの取得にフォーカスすることができます。