いくつかのグーグル調査の後、私はおそらくinodeの使用がディレクトリ/ファイルの数に関係していることを理解しました。
ファイルシステムは、inodeを使用してディスク上のファイルの場所を追跡します。 iノードがない場合は、使用可能なファイルがなくなるまで、ファイルシステムにファイルを書き込むことはできません。多くのファイルシステムと同様に、フォーマットする前にファイルシステムに何が存在するかを計画するのが最善です。そこに存在するファイルのサイズに適したiノードのデフォルトサイズを選択できます(つまり、大きいファイルの場合は大きいiノードサイズ、小さい小さいファイルの場合)、ファイルシステムスペースに対してファイルの数を最大化します。
以前の回答のいくつかは、何が起こっているかについての一般的な考えを提供しますが、それについて何かする方法を見つけましょう。私はあなたがこの知識を考えることを知っていますが、ファイルシステムのタイプから始めて、Linuxでそれらを見てきたように、それぞれについて議論しましょう。他の* nixファイルシステムは他の多くのタイプをサポートしているため、質問にLinuxのタグが付いているという事実は重要です。私はこれらの個々のファイルシステムの専門家ではありませんが、重要な部分に触れるのに十分な詳細な記事をすばやく理解できます。
ext2/ext3/ext4
Oliver Diedrichが " Tuning the Linux file system "というタイトルの記事を書きましたが、これはいくつかの非常に重要なポイントになります。まず、これらのファイルシステムは、inodeをディスクの予約済み領域に配置し、それらをキャッシュしてすばやくアクセスできるようにします。このスペースのサイズは、ファイルシステムの作成時にfixedです。つまり、それを増やすには、a)ファイルを別の適切なサイズのファイルシステムにミラーリングして、期間を切り替えるか、b)ファイルシステムをバックアップし、正しく再作成して、ファイルを元に戻す必要があります。
特定のファイルシステム(/ dev/sda1など)での実行状況を確認するには、debuge2fs -h
コマンドを使用して、iノードに関するこれらの行を探します。私のファイルシステムでは、100GBが使用されている226GBファイルシステム(Ubuntuルートディスク)でiノードの約2.4%が使用されています。
Inode count: 15032320
Block count: 60113214
Reserved block count: 3005660
Free blocks: 32794380
Free inodes: 14658480
他の人たちは、iノードがなくなると消えてしまうと言っています。そして、彼らは冗談ではありません。最終的にこの機能を提供するext2resizeと呼ばれるツールを見つけましたが、作者は彼の時間がかかりすぎる興味深い1日の仕事を得ているようです。 [〜#〜] faq [〜#〜] を参照してください。カーネルとファイルシステムコミュニティのほとんどは、非常に興味深い作業はソリッドステートディスクファイルシステムとクラスター化ファイルシステムであると信じているため、ext2/3/4がこの種の成長をサポートするのを気にしないでください。 ext4がかなり新しくても、ext2/3/4のものは古い帽子です。
もう1つの興味深いメモは、多くのファイルを含むディレクトリを最適化しようとすることができるということです。 iノードが不足すると思われる場合、ディレクトリリストが非常に長くなる可能性があります。 tune2fs -O dir_index /dev/sda1
は、標準のリンクリストモデルの代わりにbツリーインデックスを有効にします。 debian-administration.orgにあるtune2fsのマニュアルページまたは Steveの投稿 を参照してください。
より多くのiノードを使用してファイルシステムを再作成する場合は、mke2fsにmke2fs -N ___
オプションを使用する必要があります(マニュアルページを参照し、デフォルトの計算された数にはdebuge2fs
を使用してください。オプションで、 mke2fs -i ___
オプションを使用してファイルシステムをmke2fsに作成したときのiノードとブロックの比率。私のUbuntu 10.04ディストリビューションは、デフォルトの比率16384で出荷されます。これを正しく読んだ場合は、すべてに256バイトのiノード16384個のデータブロック(各4KB)ニュースリーダーのファイルシステムは、4096対1のデフォルトの比率を取得します。これは、iノードの数の4倍です。
その他のファイルシステム
過去3年間で、ファイルシステムの人気が急上昇しました。多くのものがLinuxで利用可能ですが、人気のあるZFSはSunのSolarisおよびFreeBSDでのみ利用可能です。 Linuxでは、 Btrfs 、ReiserFS 3、 [〜#〜] xfs [〜#〜] または [〜#〜] jfs [〜 #〜] 。可用性とスケーラビリティーを重視する市販のファイルシステムもありますが、非常に多くあるため、Wikipediaで ここを参照 する必要があります。
結論
1日目にiノードストライプをファイルカウントを処理するのに十分な大きさにするか、負荷を処理できるファイルシステムに移動します。
iノードの使用率が高い場合は、通常、多くの小さなファイル(またはファイルシステムの破損)を示しています。
iノードが不足すると、追加のファイルを作成できなくなり、実際に使用可能な容量(MB/GB/TB)に関係なく、ディスクは「フル」になります。
場合によっては、sysadminがファイル数に制限を設定することがあります。そのため、その種類のファイルシステムに多数の小さなファイルを置くことはできません。