アフィリエイト広告を利用しています

広告

posted by fanblog

filefrag

e2fsprogsに含まれる、filefragコマンドについて説明します。


filefragコマンドはファイルのフラグメント等を表示するコマンドです。

ユーザー空間からFS_IOC_FIEMAP ioctlをつかって、ディスクからファイルのエクステントの数を取得し、表示します。
FIEMAPはext4固有ではなく、VFS層のioctlであるため、色々なファイルシステムに対して
実行出来ます。例えばxfsでもFS_IOC_FIEMAPをサポートしています。


エクステント数はフラグメント数と等しい為、その数を数えることでファイルの
フラグメントを知ることができます。

下記は実行例です。-vオプションをつけることで詳細な情報を得られます。


[root@linux mnt]# filefrag -v /mnt/mp1/file1
Filesystem type is: ef53
File size of /mnt/mp1/file1 is 31457280 (7680 blocks, blocksize 4096)
ext logical physical expected length flags
0 0 34816 7680 eof
/mnt/mp1/file1: 1 extent found



出力されている情報は下記のものです。


Filesystem type  ファイルシステムのマジック番号です。ext2/3/4共通です
ext        エクステントの番号を示します。0から数えます。
logical      論理ブロック番号(ファイル相対のブロック番号)です。
physical     物理番号 (ファイルシステム相対のブロック番号)です。
length      ブロック長です。
flags       最後のextentや未初期化extentなどのステータスを示します



manualをみると-vオプションのみ記載されていますが、
ソースコードをみると下記のオプションも実装されています。
マニュアルはそのうち更新されるでしょう



B force_bitmap indirect block管理で情報を表示する
b ファイルのブロックサイズではなく、1K blocksizeで表現する
s syncしてから情報を取得する(ディスク上の最新の情報をとってくる)
x 拡張属性のマッピングを取得する



以前はdebugfsコマンドでファイルの物理ブロック番号等を取得していましたが、
こちらの方が手軽でかつ柔軟な利用が可能です。
ファイルの読み込みが遅いと感じた場合はfilefragコマンドを利用し、
フラグメントの状態を確認してみると良いかもしれません。

この記事へのコメント

   

WWW を検索 Linux Blue を検索
プロフィール

uni
仙台でLinuxのエンジニアをしています。 忘備録もかねて主にLinuxについて載せています。 ここからの情報が何かの役に立てば幸いです。
リンク集
Links

<< 2013年01月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
カテゴリアーカイブ
月別アーカイブ
最新記事
×

この広告は30日以上新しい記事の更新がないブログに表示されております。