df
によって報告された誤ったfsスペースの問題に直面しています。
LVMが管理する/
パーティションを備えたベアメタルUbuntu 14.04サーバーについて話しています。
df
によって報告されるサイズは、fsスーパーブロックによって報告されるサイズとは異なります。また、du -skh
からサイズを計算すると(/
パーティションに関連するディレクトリで)、df
が誤った結果を示していることがわかります。
これはdf
によって報告されたものです:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-lv_root 20G 16G 2.8G 86% /
これがスーパーブロックが報告するものです(3616906*4096/1024**2=14128 MB free)
:
Last mounted on: /
Filesystem magic number: 0xEF53
Filesystem state: clean
Filesystem OS type: Linux
Inode count: 1290240
Block count: 5242880 << exactly 20 GB
Reserved block count: 227170
Free blocks: 3616906 << around 14 GB free
Free inodes: 1201391
First block: 0
Block size: 4096
Fragment size: 4096
私はdf
のstraceを実行し、statfs
syscallを使用して特定のfs (962132*4096/1024**2=3758 MB free)
に関する情報を取得していることがわかりました。
statfs("/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=5129119, f_bfree=**962132**, f_bavail=730866, f_files=1290240, f_ffree=1091851, f_fsid={-456623966, 1549023591}, f_namelen=255, f_frsize=4096}) = 0
おそらくstatfs
の問題か、それがfs情報を取得する方法に問題があります。
それを解決するために、/
パーティション(mount / -orw,remount
)を再マウントしようとしましたが、役に立ちませんでした。
私の質問-再起動したり、このサーバーの通常の動作を妨げたりせずに、df
情報を修正するにはどうすればよいですか?
追伸.
lsof +L1 | grep deleted
)同じ問題で立ち往生している仲間のために:
unmount /dev/mapper/rootvg-lv_root
を発行して解決しました。それは私にエラーを与えました、しかしdf
が正しく報告した後。
umount
のように見え、一部の内部構造体が更新されました。
それが誰かを助けることを願っています。