ホストを再起動せずにディスクの空きサイズを更新する


23

私はRHEL4をLVM2とともに使用します。1 GBを超える大きなファイルを削除した後でも、dfコマンドの使用時にパーティションサイズが更新されないことがあります。

-bash-3.00$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/sys-root  3.9G  1.4G  2.3G  39% /
/dev/cciss/c0d0p1     251M   19M  219M   8% /boot
/dev/mapper/sys-home  250G  125G  113G  53% /home
/dev/mapper/sys-tmp   3.9G   41M  3.7G   2% /tmp
/dev/mapper/sys-var   3.9G  3.6G   98M  98% /var

しかし、duを使用してチェックすると、適切なサイズが表示されます

-bash-3.00$ sudo du -sh /var/
 179M   /var/

dfの出力では/ varパーティションが3.6Gb使用されていることが示されていますが、duでは179Mbだけが示されています。

問題は、同期もパートプローブも情報を更新していないことです。ただし、ホストを確実に再起動すると問題は解決します。ただし、これは運用サーバーであるため、再起動できません。ホストを再起動せずにディスク情報を手動で更新する方法はありますか?


1
削除されたファイル(つまり、削除されたファイルを保持しているプロセス)を開いている可能性があります。lsof調べるようなものを試してください。used / availはパーティションテーブルに保存されないため、partprobe(または任意のタイプのパーティションの再読み込み)はまったく役に立ちません。
マット

回答:


28

ファイルが削除/削除/リンク解除されたときに、何らかのプロセスによって開かれたままの場合、ファイルのデータではなく、ファイルのディレクトリエントリのみが消去されます。ファイルがすべてのプロセスによって完全に閉じられると、データは空きスペースプールに返されます。この方法で匿名ファイルを作成できるため、これは機能です。

ファイルシステム上で削除されたファイルが開いているかどうかを確認するには、次のコマンドのいずれかを実行します。/mount/pointマウントポイントは(この/var場合)です。

lsof +L1 /mount/point

開かれた、リンクされていないファイルに関するこの記事は、これについてもう少し説明するのに役立つはずです。


2
ログを削除dfしていましたが、サーバープロセスを再起動するまで空き領域が表示されませんでした。ありがとう!
2014

削除されたファイルを表示する 'lsof + L1'を指定してlsofを呼び出す方が適切です。編集の提案を行った
ヌノペレイラ

それでそれらを閉じる方法は?
-faressoft
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.