du / dfとlsが異なるディスク使用量を報告する

du / dfとlsが異なるディスク使用量を報告する

先週末、私の同僚の1人が共有コンピューティングサーバーの1つで奇妙なことが起こったことを発見しました。

ls -lサイズ132Gのファイルを含むと思われるディレクトリがあります。

ただし、実行すると、df -h使用されている合計ディスク容量が128Gであることがわかります。また、du -h --max-depth=1ドライブルートで実行すると、128Gが報告されます。.

最初は、問題が開かれたファイルハンドルまたはそれに似ているため、これらのバイナリが他の情報を報告するのかどうか疑問に思いました。ただし、ディスクの取り外しと再インストールに疲れ、すべてのバイナリは以前と同じ結果を報告します。

ドライブ構成に関する追加情報を提供します。

  • ボリュームは、LUKS暗号化に加えてEXT4を使用してフォーマットされます。
  • ディスクは NFS などで共有されません。
  • 問題のファイルを確認してみましたが、リンクがないようです。
  • ボリュームをアンマウントして再マウントしたときにボリュームから実行して強制的にディスクチェックを実行しましたが、fsck -f問題は返されませんでした。
  • ディスクを持つサーバーは仮想化ホストではなく、オペレーティングシステムとしてUbuntu 14.04を実行しています。

ベストアンサー1

あなたのサーバーは仮想化ホストですか?

物理ファイルとディスク領域のサイズが異なることは、動的に拡張される仮想ディスクの一般的な動作です。ディスクは実際のファイルサイズとヘッダファイルサイズのデータ​​が異なります。

はい:

おそらくqemu仮想ディスク(qcow2拡張子など)を使用しています。以下で見つけることができます。

find / -regex '.*\.qcow.*$'

/var/lib/vz/images/105/vm-105-disk-1.qcow2
...

vm-105-disk-1.qcow2寸法を確認してみましょうstat

stat vm-105-disk-1.qcow2

  File: vm-100-disk-1.qcow2
  Size: 68745560064

79728541696 - 約64GB

調査するwc

wc -c <vm-105-disk-1.qcow2

68745560064

同じ結果...確認du

du -sh vm-105-disk-1.qcow2

15G        vm-105-disk-1.qcow2

たった15GB! utilを使って確認してみましょうqemu-img

qemu-img info vm-105-disk-1.qcow2

image: vm-105-disk-1.qcow2
file format: qcow2
virtual size: 64G (68719476736 bytes)
disk size: 14G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

次の2行に注意することで、すべてが明確になります。

virtual size: 64G (68719476736 bytes)
disk size: 14G

サーバーが仮想化ホストでない場合は、次のトピックを参照してください。

おすすめ記事