Btrfs 檔案系統使用術語subvolume
、root-volume
、snapshot
、top-level
,default subvolume
這讓我有些困惑。
一個例子是關於子卷的 btrfs wiki 頁面其中指出
新建立的檔案系統也是一個子卷,稱為頂級,內部有一個 id 5。
但是,隨著使用諸如btrfs-progs
命令之類的工具
- btrfs 子磁碟區列表
- btrfs 子卷顯示
如圖所示,術語子卷並不真正適用於根卷(請參見這另一個問題)。此外,該術語top-level
(如上述命令的輸出中所示)並不真正限於子卷 ID 為 5 的子卷/根卷btrfs send
。定義形成對比) 。
有什麼幫助嗎?
答案1
解釋這一點的最簡單方法就是與 ZFS 進行類比。 BTRFS 中的子磁碟區在功能上等同於 ZFS 中的 zvol,只不過它們本質上植根於檔案系統本身的某個位置。
更一般地說,子卷由一組檔案系統內部資料結構組成,這些資料結構大多獨立於樹的其餘部分。根據這個定義以及程式碼本身的內部結構,頂級或根子卷(subvolid 5)在技術上是一個子卷,但它通過顯示有關子卷資訊的命令進行特殊處理,因為您無法使用您可以對常規子卷進行快照(例如,您無法對根子磁碟區進行快照,也無法刪除它)。從使用者的角度來看,唯一需要注意的是根子卷是子卷是在安裝時-o subvolid=5
繞過預設子卷設定。