Linux-ヘルプ、iノードが不足しています!


16

小さなファイルがたくさんあるファイルシステムがあります。現在、iノードの約80%が使用されています(チェックしましたdf -i)が、使用されているディスク領域は60%のみです。iノード数を「増やす」にはどうすればよいですか?ディスクスペースだけの場合は、ディスクのサイズを増やすことができます(このディスクはLVM上にあります)。ディスクのサイズを大きくすると、iノードが増えますか?

それが助けになれば、このディスクが置かれているファイルシステムを拡大したいと思います。

回答:


14

男mke2fs

iノードの数に-Nが表示されます。

そのため、新しいパーティションをフォーマットするときに指定できます。今はあまり役に立ちませんよね?

ファイルシステムを調整するtune2fsには、iノードを追加する方法がないようです。

しかし、おそらくext3または4がこれを行い、他の誰かが知っている…。?

そのため、バックアップ、パーティションの再フォーマット、復元のオプションがあります。


1
ええ、それは良いですが、それはreiserfsだからではなく、動的なiノード割り当てをサポートしているためです(すべての新しいファイルシステムでサポートされています)

1
Reiserは、大量の小さな小さなファイルに最適です。私はそれで行きます。
-Xorlev

ただし、Reiserを使用する場合は、バックアップがあることを確認します。私(自分)と他の人は、以前のreiserFSによりデータを失いました。それ以来、私はそれを信用していません。
アノニムース

ext3には方法がないようです
kagaliさん14年

15

元の質問に答えるために、質問者にとってはおそらく遅れていますが、はい、LVM2でEXT2 / 3を増やすと、iノードの制限も増えます。

65Kのiノード制限がある1Gサイズのパーティションがありました。後

lvextend -L+1G /dev/vg/var
umount /var
resize2fs /dev/vg/var
mount /var

...私のiノードの制限は128kです。


1
うわー、私はほとんど必死でしたが、あなたの答えを見つけて、試してみることにしました、そして、それは働きました。これは間違いなく受け入れられる答えであるはずです!仮想マシンだけでなくLVMでも動作します:)
vadipp

12

小さなファイルがディスク容量を消費することがわかっている場合は、EXT2 / 3/4(これを使用していると仮定します)の代わりに、ReiserFSまたは新しい最新のFS(XFS、JFS)などの動的iノード割り当てのあるFSを使用する必要があります、あなたはそれを言っていない)。

ファイルシステムの移行は、おそらくあなたの状況で良い選択です。


1
小さなファイルがディスク容量を消費することがわかっている場合は、チューニング行う必要があります。各ファイルシステムには長所と短所があります。
フランクリン

3

一時停止として、新しいファイルシステムをマウントし、そこにfs階層の一部をcp / rm / ln-sします。これで、予備のiノードがいくつかできました!2つのfses間でファイルをmvすることはできません。そのため、必要なことを壊すことに注意してください。しかし、多くのアプリではこれは透過的です。

次に、Paulのアドバイスに従って新しいfsを作成し、それに移行します。


1
もちろん、2つのファイルシステム間でファイルをmvできます。mvは、cp + rmのセマンティックシュガーです。2つのファイルシステム間でハードリンクすることはできません。別の意味ですか?
ダニエルローソン

@ダニエル:私はrename()システムコールを意味し、シンボリックリンクに関するセマンティクスの問題のために、cp / rmの砂糖としてmvを使用するのはずさんな練習だと思います。この答えを編集する必要があります-それは美しく明確ではないいくつかの場所があります。
チャールズスチュワート

2

Ext4でも同じ問題が発生します。小さなパーティションを作成し、小さなファイルが大量にある場合はiノードが不足しflex_bg、機能があればtune2fsinodeを増やすことはできません。

個人的には、どのバージョンのrieserfsよりもext4を使用します。フォーマットするときは次のようにします。

mkfs.ext4 -I 512 /dev/foo
tune2fs -i0 -c0 -o journal_data_writeback /dev/foo

この方法でフォーマットすると、512Mブートパーティションで33160 iノードが得られます。

私はこれを長年reiserfsを使っていた人と言います。カーネルのサポートはext *ほど良くなく、ファイルシステムは時間の経過とともに断片化し、遅くなります。


-1

iniser制限のないresiserfsまたはその他のfsを探します。特にログファイルに関しては、かなりの量のiノードを解放するために、いくつかの小さな未使用ファイルを1つの大きなtarファイルにパックすることができます。

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.