上週末,我的一位同事注意到我們的一台共享計算伺服器上出現了奇怪的情況。
我們有一個目錄,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
注意這兩行,一切都應該很清楚:
virtual size: 64G (68719476736 bytes)
disk size: 14G
如果您的伺服器不是虛擬化主機,請參閱下列主題: