FUSEファイルシステムには新しい5TBディスクがありますが、デフォルトでは空のようですが、dfはそうではありません。ディスク上のファイルシステムは、mergerfs
4つの5TB Seagate 5400rpm外付けハードドライブで構成され、すべて1つのパーティションにext4
フォーマットされていますfdisk
。ルートに入り、duで確認してみると約500GBのスペースが使われたそうです。
pi@raspberrypi:~ $ df -h /mnt/hdd/disk4
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 4.6T 4.3T 393M 100% /mnt/hdd/disk4
root@raspberrypi:~# du -sh /mnt/hdd/disk4
464G /mnt/hdd/disk4
誰でもこの問題を解決するのに役立ちますか?
答え1
これは私が以前に経験したことですが、私の経験では極端なケースです。これは通常、ディスクから削除されたファイルがあるため報告されませんが、du
実行中のプロセスのどこかにまだ開いている場合に発生するため、df
使用されるスペースを考慮してください。最も一般的な「犯人」は、ログロテートがロギングプロセスを正しく再起動しないため、次のような結果になります。
- ディスクに表示されるログファイルは、書き込まれたり書き込まれたりしない場合があります。
- ログ書き込みプロセスはアクティブログファイル(例:)
app.log
と前日のログファイル(たとえば2022-01-03-app.log
、今日が2022-01-04の場合)に(おそらく)書き込まれていますが、前日のファイルはありますls
(例2022-01-03-app.log.gz
:)。 - 解凍すると、前日のログファイルは多くのスペース(数十GB)を占めます。
この特定の例では、logrotate
デーモンは真夜中に前日のログファイルを回転させ、前日のタイムスタンプを提供しますが、プロセスに記録しても実際にログの再起動をトリガーしません。前日のログファイルを圧縮した後、圧縮されていないファイルを削除しますが、書き込み中にファイルハンドルがまだ開いているため、スペースがすでに占有されているとdf
見なされます。
この問題は通常、logrotate構成ファイルに(SIGHUP)タイプディレクティブを追加することで解決できますが、まれにHUP
HUPに正しく応答しないため、問題のあるプロセスを実際に再起動する必要があります。
このような場合、問題のあるプロセスを見つけて再起動すると、報告された使用スペースがdf
突然急激に減少し、df
出力がdu
一致します。