什麼是 ZFS 舊掛載點?

什麼是 ZFS 舊掛載點?

當我做快照時,我試圖理解 ZFS 的工作方式。當我在機器上使用 zfs list 時,我得到一些安裝點和一些路徑。例如我得到類似的東西:

rpool/ROOT/s10x_u10_wos_17b      5.3gb   58.2gb    5.3gb     /

我將 root 作為安裝點/

我的第一個想法是存在實際的文件,當我導航到該/rpool目錄時,沒有 ROOT 目錄。經過一番思考,我發現它/rpool/ROOT實際上是安裝在遺產上的,所以它一定在其他地方。

有人可以解釋一下當它安裝在舊版上時文件在哪裡,也許為什麼要使用這種舊版模式?

答案1

我不明白遺留安裝點的目的。

ZFS 在池內提供資料集的分層結構。在您的情況下,您有一個名為 的池rpool,並且至少有以下資料集:

  • rpool
  • rpool/ROOT
  • rpool/ROOT/s10x_u10_wos_17b

這些資料集通常是一個檔案系統(儘管它可以是磁碟區/區塊裝置)。

正如每個資料集都可能是完整/獨立的檔案系統一樣,每個資料集也可以獨立安裝或不安裝。

預設情況下,ZFS 將在父資料集內的邏輯位置安裝子資料集...如果rpool資料集安裝在/rpool(即:預設),那麼您會發現rpool/ROOT資料集安裝在/rpool/ROOT,等等...

這是由屬性控制的mountpoint- 運行zfs get -rt filesystem mountpoint以查看每個資料集的當前值。

  • 如果該值是路徑,則匯入池時 ZFS 將自動將資料集掛載到該路徑。預設情況(如上所述)是將檔案系統掛載在父級下。
  • 如果值為none,則 ZFS 將不會掛載檔案系統,且檔案系統不能使用任一方式安裝mount
  • 如果值為legacy,則 ZFS 將不會掛載檔案系統,但您可以使用mountumount手動管理檔案系統的掛載點。您也可以使用/etc/fstab它來指導自動安裝。

在您的情況下,rpool/ROOT/s10x_u10_wos_17b資料集安裝在/(即:它是您的根檔案系統)。為了實現這一點,您可以設定mountpoint=/並讓 ZFS 處理事務,或mountpoint=legacy明確設定並掛載它。

由於這是您的根檔案系統,因此讓 ZFS 為您管理它並不是真正的選擇,您需要明確指定掛載點。

因此,rpool/ROOT/s10x_u10_wos_17bmountpoint=legacy.

答案2

當使用 掛載檔案系統時,通常會使用舊掛載點fstab

來自 FreeBSD 手冊頁:

如果需要,也可以使用傳統工具(mount(8)、umount(8)、fstab(5))管理 ZFS 檔案系統。如果檔案系統的掛載點設定為legacy,ZFS 不會嘗試管理檔案系統,並且管理員負責掛載和卸載檔案系統。

相關內容