web-dev-qa-db-ja.com

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

私は、RHEL4とLVM2を使用しています。 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のみであることが示されています。

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

23
Kannan Mohan

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

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

lsof +L1 /mount/point

この 開いている、リンクされていないファイルに関する記事 は、これをさらに説明するのに役立ちます。

28
user2472