Top > Linux > inode と dentry
inode と dentry (ディレクトリ・エントリ)
inode
inode はファイル、ディレクトリや標準入力、標準出力、ソケットなどに使用される管理構造体である。
ファイルシステムではファイルサイズ、ファイルのUID と GID、パーミッション、各種タイムスタンプなどを保持しているがファイル名は保持していない。
ファイルシステムの inode の保持数は上限があり df -i にて参照できる
# df -i
Filesystem Inodes IUsed IFree IUse% マウント位置
/dev/vda1 12959744 137738 12822006 2% /
inode が不足すると新規のファイルが作成できなくなる。inode の消費はファイルサイズではなくファイルの数で消費されるためディスク容量に余裕があっても書き込み出来なくなる。
inode はアクセス高速化のためにキャッシュされる。inode キャッシュは空きメモリが不足すると縮小処理が行われる。⇒ inode キャッシュを手動でクリアする
dentry
dentry はハードリンク、ディレクトリの親子関係やファイル名、ディレクトリ名と inode を関連付ける構造体である。
inode 同様 dentry キャッシュは空きメモリが不足すると縮小処理が行われる。⇒ dentry キャッシュを手動でクリアする
ファイルシステム関連 スラブ・アロケーター
CentOS 6 (kernel 2.6.32-220.17.1.el6.x86_64)
個別アロケーターの詳細までは調べてませんので誤りがあるかもしれません。
bdev_cache
cdev_cache
sysfs_dir_cache
mnt_cache
filp
inode_cache
dentry
names_cache
avc_node
selinux_inode_security
radix_tree_node
key_jar
buffer_head
vm_area_struct
mm_struct
fs_cache
files_cache