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

回答の条件
  • 1人2回まで
  • 登録:2008/05/10 13:12:00
  • 終了:2008/05/17 13:15:04

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402008/05/10 13:58:19

ポイント35pt

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

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


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

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

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

Manpage of MKE2FS


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

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

id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912008/05/10 14:02:11

ポイント35pt

ファイルやフォルダ数の上限、ファイルサイズの上限は、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の変更が

必要になります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません