btrfs 檔案系統的根/子磁碟區是什麼?

btrfs 檔案系統的根/子磁碟區是什麼?

Btrfs 檔案系統使用術語subvolumeroot-volumesnapshottop-leveldefault 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繞過預設子卷設定。

相關內容