不同檔案系統的空間開銷是多少?

不同檔案系統的空間開銷是多少?

我將檔案系統從 Ubuntu 系統備份/還原到 Fedora 17 系統。我注意到根據df輸出,已用空間增加了 30%。這可能是什麼原因?

Fedora 系統df顯示:已使用 78 GB

Ubuntu系統df顯示:已使用60GB

系統之間的差異:

Ubuntu:ext3(多年前創立)

Fedora 17:ext4(使用普通mkfs.ext4呼叫建立)

恢復到 XFS 檔案系統(在 Fedora 17 上)會產生 78 GB 的已使用空間。

備份和還原是使用 GNU tar 完成的。檔案系統包含各種不同類型的檔案(即從原始碼樹、maildirs 到 ISO 等)。

答案1

首先想到的是「稀疏文件」。傳統上,人們可以建立一個文件,其中的資料位於文件的某個偏移量處,然後尋求更大的偏移量。當將資料寫入更大的偏移量時,檔案系統不會為中間的偏移量分配磁碟區塊。在沒有分配磁碟區塊的情況下讀取這些偏移量的程式讀取零值。

壓縮稀疏檔案會導致未分配磁碟區塊的稀疏檔案在 tar 檔案(或輸出流)和重新建立的檔案中的偏移量分配磁碟區塊。

我記得一些 DBMS 創建了稀疏文件,就像 MSC/NASTRAN(有限元素建模系統)這樣的程式一樣。備份這些稀疏文件最終會使用大量離線存儲,這讓所有相關人員都感到驚訝。

答案2

當您看到空間差異時要注意的另一件事是為 root 保留的空間(通常在 ext{2,3,4} 上為 5%)。即使使用者填滿了磁碟(只要該使用者不是 root),該空間也允許作業系統運行(寫入日誌檔案等)。

您可以使用以下命令查看此設定tune2fs -l

[root@host ]# tune2fs -l /dev/md0 |grep Reserved
Reserved block count:     1279986
Reserved GDT blocks:      1017
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

您可以在 ext 檔案系統上停用此功能tune2fs -m 0 /dev/NAME

從快速查看來看,我不相信 xfs 為 root 保留了空間

相關內容