Zfs

ZFS 是否有類似於 Git 的送出 ID 的“整體校驗和”?

  • January 22, 2018

Git 通過散列各種組件來生成送出 ID,這樣我們基本上可以得到項目整個歷史的標識符。

據我了解,ZFS 對所有內容(數據/元數據/文件系統結構)進行雜湊處理,這可能會在文件系統的根目錄產生一個“頂級”雜湊。

我想知道是否有辦法從 ZFS 文件系統或快照中獲取這樣的雜湊或標識符。

這可能被用來快速可靠地確認“ dataset-x 中的所有數據都匹配 dataset-y 中的所有數據”。

zfs send我對and的內部沒有完全理解zfs recv,但我認為它們處理這些概念,確保發送和接收文件系統都有一個共同的起點。


編輯:我有使用syncoid自動進行的異地備份……如果我要查看跨 n 池的每個相應文件系統上的匹配快照,我希望看到相同的標識符。

查看數據集的快照之間是否存在任何更改也可能很有用,儘管我懷疑快照屬性(名稱、日期等)可能會影響此標識符,因此最好查看“一個”降級”這個。

據我了解,ZFS 中對其他塊的所有引用都包含其他塊應該具有的校驗和,而這些塊又包含帶有校驗和的指針(最終指向數據塊及其校驗和)。在這一切的根源上,您擁有 uberblock 的校驗和,然後隱式覆蓋池中的所有數據。

但是這個校驗和包括實際的塊指針和與物理文件系統佈局相關的東西,所以你不能真正使用它來驗證數據——如果你例如 zfs 發送/接收文件系統,你最終會得到完全不同的校驗和。

引用自:https://serverfault.com/questions/893363