人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

unixでパーティションごとに作成できるファイル数上限(inode)が存在する理由を教えて下さい。

●質問者: tomoyuki28jp
●カテゴリ:コンピュータ インターネット
✍キーワード:UNIX パーティション ファイル 作成 存在
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

ファイルを格納する領域を inode 単位で管理しているから。

これは「存在する理由」は無く、単に「仕様上の制限」


ファイルシステムにもよって違うが、Linux でよく使われる ext2/ext3 だと、

inode の数はフォーマット時に決定され、1つの inode に複数のファイルを格納することは出来ない。

このため、inode の数以上にファイルを作成できないという制限になる。

Manpage of MKE2FS


その他のファイルシステムだと、管理方法が違ったりするので必ずしも同じわけではない。

@IT:進化し続けるReiserFS(2/2)


2 ● Mook
●35ポイント

ファイルやフォルダ数の上限、ファイルサイズの上限は、OS が行うファイルシステムによって規定されます。

inode は、ファイル管理を行うインデックスで、このテーブルサイズはカーネル(OSのコアの機能)によって

規定されています。

http://ja.wikipedia.org/wiki/Inode

http://www.atmarkit.co.jp/flinux/rensai/fs01/fs01b.html


このinode はパーティション単位で管理されますので、ファイルの上限もパーティションごとで制約が

あることになります。

inode はパーティションの中で十分なファイルができるサイズであるよう設計されていますが、ファイルサイズ

の小さいファイルをたくさん作ると、ディスク容量はあいていてもファイルが作成できないというのは、これに

よって発生します。

極端な例ですがファイルサイズ0のファイルを作成すると、ディスク容量は消費されなくともinodeは消費され

ますので、inode数だけ0サイズのファイルを作成すると、ディスクはあいているのにファイルが作れなくなります。


これを回避するために inode のサイズを大きくすると、ファイル数は多く作成できますがこのための管理

領域が大きくなってしまい、通常の運用ではディスクの使用効率が悪くなってしまいます。

もっとも、先に書いたようにここはカーネルによって規定されていますので、変更するためにはOSの変更が

必要になります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ