
我使用的是 ubuntu 21.10,使用 zfs 檔案系統重新安裝。如果我刪除一些文件,然後清空垃圾桶,或將它們移動到另一個(外部)磁碟機),這不會釋放磁碟機上的空間。實際上 df 顯示: rpool/ROOT/ubuntu_zooqq5 35G 4,5G 31G 13% / 其中 35GB 是驅動器大小。
每次我向磁碟添加一些檔案時,磁碟機大小都會減少。
我透過使用腳本刪除 zfs 快照來恢復空間(並且磁碟機大小增加),但這怎麼可能呢?
也許這是一個錯誤?
答案1
已刪除的檔案仍被過去的快照引用,因此您所描述的是預期行為。
正如您已經觀察到的,由於快照,空間仍處於使用狀態;只有在刪除引用已刪除檔案的最後一個快照後,對應的空間才可再次用於新檔案。
注意df
不提供 ZFS 檔案系統中可用空間的準確值。 ZFS 使用一個或多個磁碟(或分割區)來儲存可包含一個或多個資料集(解釋為df
檔案系統)的池,所有這些資料集共用池的可用空間。快照也會填滿池(作為資料集的一部分),進一步影響df
單一檔案系統的「大小」報告。 ZFS 既是一個檔案系統,也是一個磁碟區管理器,並且可以選擇管理 RAID 陣列;例如,它類似於 LVM 上的 ext4(可選的 RAID 上)。
要查看池如何與磁碟或分割區對應,您可以使用zpool status
.在 Ubuntu 中,您可以分別在/dev/disk/by-uuid/
和下找到列出的磁碟或分割區/dev/disk/by-partuuid/
。若要查看池中的可用空間,您可以透過 列出所有池zpool list
。您可以透過 列出所有 ZFS 資料集(「檔案系統」)zfs list
,其中該USED
列表示資料集使用的空間,包括屬於特定資料集的檔案、子資料集和快照;AVAIL
指示池中的剩餘空間,並REFER
指示特定於該檔案系統的檔案的大小,即不是快照或子檔案系統。