ディスクに書き込めませんが、ディスクがいっぱいではありません


36

私はUbuntu 12.04を使用していますが、rootとしてもファイルに書き込むことができず、書き込みが必要な他の操作を実行できません。書き込む必要があるプロセスもできないため、すべて失敗します。df私は十分なスペースがあると言います:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       30G   14G   15G  48% /
udev            984M  4.0K  984M   1% /dev
tmpfs           399M  668K  399M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            997M     0  997M   0% /run/shm

「ディスクに書き込むことができません」で私が見つけた結果はすべて、正当なフルディスクに関するものです。ここからどこから始めればいいのかさえ分かりません。問題は今朝どこからともなく現れた。

PHPの最後のログエントリは次のとおりです。

失敗:デバイスにスペースが残っていません(28)

Vimのコメント:

書き込み用に(ファイル)を開けません

他のアプリケーションでも同様のエラーが発生します。

念のため〜1gbを削除しても、問題は残ります。私も再起動しました。

df -i 言う

Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/xvda1     1966080 1966080      0  100% /
udev            251890     378 251512    1% /dev
tmpfs           255153     296 254857    1% /run
none            255153       4 255149    1% /run/lock
none            255153       1 255152    1% /run/shm

14
「df -i」の出力を投稿してください。
EEAA

1
@EEAAが編集されました。そうです、df -iは100%と言います。これは何を意味するのでしょうか?なぜ違うのでしょうか?
felwithe

3
IIRC、単一のディレクトリ内のファイルが多すぎると、同一ではないにしても類似の症状が現れます。「多すぎる」とは、ファイルシステムによって異なります。
MSalters

回答:


59

iノードが不足しています。多くの非常に小さなファイルがあるディレクトリがある可能性があります。


9
失敗するrm 可能性があることすら知らなかったことを付け加えたかっただけです。これは教育です。
felwithe

2
@felwithe、私はそれfind . -name sess\* -exec rm {} +がうまくいくと想像できます。
カールステンS

3
@felwithe他の人が提案したこと。rm おそらく正常に動作しましたが、シェルは*グロブを非常に多くのデータに拡張し、rm を呼び出すポイントに到達する前にバーフしました。
CVn

8
@CarstenS:またはfind . -name sess\* -delete覚えやすく、一般的に効率的です。
–MSalters

2
@Kaslai RAMの制限はありませんが、システムの制限はARG_MAXです。POSIX標準では、残念ながらコマンドライン引数がARG_MAXに対してどのように測定されるかを正確に指定していません。一部の実装には制限がないため、ARG_MAXを定義していませんが、これはあまりにも多くのプログラムがコンパイルに失敗するため、一般的なオプションではありません。
ジェームズヤングマン

7

どうやら、OPには特定の問題に対する答えがあります。ただし、完全を期すために、ファイルシステムが読み取り専用で再マウントされた場合にもOPの症状が発生する可能性があります。これは、ストレージがクラスター化されたディスクシステムにあり、まれに断続的な障害が発生しているLinux VMを使用しているときに起こりました。障害により、ファイルシステムが読み取り専用で再マウントされる場合があります。最終的に観測可能な外部症状は、RAMがいっぱいになると(フラッシュ不可能なディスク書き込みで)さまざまなサービスが応答しなくなることでした。

当時の唯一の解決策は、システムを再起動することでした(書き込まれていないログはすべて失われます)。RWの再マウントに失敗しました。(残念ながら、これらの再マウントを試行したときに返されるエラーメッセージは思い出せません。)

したがって、...、OPの問題ではなく、このページに到着した他の誰かがこの情報の恩恵を受ける可能性があります。


5
いいえ。ファイルシステムが読み取り専用で再マウントされると、ファイルシステムが読み取り専用であり、スペース不足ではないことを示すエラーが表示されます。
psusi

1
@psusi:しませんでした。「ファイルシステムがいっぱいです」など、さまざまなエラーが発生しました。過去2、3年でそれが変わった場合、それは良いことです。
エリックタワーズ

1
先日、Linuxでファイルを読み取り専用のZFSファイルシステムに移動しようとしました。エラーには、「読み取り専用ファイルシステム」とはっきりと記載されていました。
CVn

いや; 30年以上もそうでした。読み取り専用fsへの書き込みは-EROFSを返します。フルfsへの書き込みは-ENOSPCを返します。
-psusi

4
@psusi:プログラマーは自分のエラーメッセージを作成するのではなく、常に正しいことをするというファンタジーの世界に住んでいるようです。私はそこに住んでいないようです。
エリックタワーズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.