先週末、同僚の一人が共有コンピューティング サーバーの 1 つに異常があることに気づきました。
ls -l
サイズが 132G のファイルが含まれていると表示されるディレクトリがあります。
しかし、実行すると、df -h
ディスク上で使用されているスペースの合計量は128Gと表示されます。さらに、du -h --max-depth=1
ドライブのルートで実行すると、128Gと表示されます。.
当初、この問題は、開いているファイル ハンドルなどが原因で、これらのバイナリが異なる情報を報告しているのではないかと考えました。しかし、ディスクのアンマウントと再マウントを試みたところ、すべてのバイナリが以前と同じ結果を報告しました。
ドライブの構成についてもう少し詳しく説明します。
- ボリュームは、LUKS 暗号化に加えて EXT4 を使用してフォーマットされます。
- ディスクは NFS などを介して共有されません。
- 問題のファイルを確認しましたが、リンクされていないようです。
- ボリュームをアンマウントして再マウントするときに、
fsck -f
ボリューム上で実行してディスク チェックを強制しましたが、問題は返されませんでした。 - ディスクが配置されているサーバーは仮想化ホストではなく、OS として 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! qemu-img
utilで確認してみましょう:
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
サーバーが仮想化ホストでない場合は、次のトピックを参照してください。