文件系統會影響可用儲存空間嗎?
我聽過一些小組討論文件系統(btrfs 與 ext4 之類的),以便在磁碟空間較少的電腦(如 32GB 的ideapad、筆記本等)上使用 Linux。
文件系統的選擇真的會影響同一個文件的使用嗎?我的意思是我們可以通過選擇不同的文件系統來獲得更多可用的磁碟空間嗎?完全相同的結果。
是的,它可以產生很大的不同……通常它在具有大量較小文件的文件系統上產生最大的不同。因此,它可能不會對您的影片收藏(主要是 GB 文件)甚至您的音樂收藏(主要是 MB 文件)產生影響。但是一個包含許多文件的文件系統,只有幾 KB,肯定會有所不同。
每個文件所需的元數據存在一些差異。這裡的元數據是指文件數據中不包含的所有內容,例如文件名、權限、時間戳和自定義文件系統屬性。
它實際上取決於文件系統的功能,有時還取決於配置方式,但無論文件大小如何,每個文件的數據都可以是字節到千字節。
文件不儲存為單個字節,而是字節塊。在 ext4 上,對於超過 512MB 的文件系統,一個塊預設為 4 KiB。因此,一個 4096 字節的文件將在磁碟上佔用 4096 個字節,但一個 4095 字節甚至只有 1 個字節的文件也是如此。4097 字節的文件將再次佔用 8192。這稱為填充。
可以使用自定義(較小)塊大小格式化許多文件系統。這可以減少填充,但也可能有副作用。一些現代硬碟驅動器在使用較小的塊時性能很差。從理論上講,它實際上可以減少容量,因為需要使用更多空間來標記分配了哪些塊,儘管我自己從未見過這種情況。
現在並非所有文件系統都會浪費填充塊。一些文件系統,包括 btrfs,會為一個塊分配多個文件。請參閱塊子分配。
然後還有一個更明顯的特徵。一些文件系統可以透明地壓縮文件的內容。不能保證這會成功壓縮文件內容,但它可以非常成功。
這裡的一個範例文件系統是 zfs。請參閱在 zfs 中啟用壓縮。