C.7. bmap トレースポイント
ブロックマッピングとは、どのファイルシステムでも中核となるタスクです。GFS2 は、1 ブロックあたり 2 ビットの従来のビットマップベースのシステムを採用しています。このサブシステムにおけるトレースポイントの主要目的は、ブロックの割り当てとマッピングの所要時間をモニタリングすることです。
gfs2_bmap
トレースポイントは、1 回の bmap 操作につき 2 回 (bmap 要求を表示するために起動時に 1 回と、結果を表示するために終了時に 1 回) 呼び出されます。これにより、要求と結果を容易に照合して、ファイルシステムの異なる部分や、異なるファイルオフセット、あるいは異なるファイルのブロックをマップするのに要した時間を測定することができます。また、返されたエクステントサイズの平均を確認して、要求されたサイズと比較することもできます。
割り当てられたブロックを追跡するためには、割り当てに対してだけでなく、ブロックの解放に対しても
gfs2_block_alloc
が呼び出されます。割り当てはすべて、ブロックの対象の inode に応じて参照されるため、これを利用して、どの物理ブロックがライブファイルシステム内のどのファイルに属しているかをトラッキングすることができます。これは特に blktrace
と併用した場合に有用です。これにより、問題のある I/O パターンが表示され、このトレースポイントによって取得したマッピングを使用して適切な inode に戻って参照することができます。