FreeBSD中ZFS的未來
FreeBSD ZFS支援的原始碼目前直接來自Illumos,帶有本地ifdef,以支援FreeBSD的特性, 而Solaris可移植層(SPL)不足。
FreeBSD定期從Illumos中獲取更改並試圖反饋在FreeBSD環境下完成的任何修復和新功能。 在過去的幾年裡,ZFS的絕大多數新開發都在DelphixOS和zfsonlinux(ZoL)中進行。 今年早些時候,Delphix宣佈他們將轉向ZoLhttps://www.delphix.com/blog/kickoff-future-eko-2018 這一轉變意味著Illumos的新開發很少甚至沒有。
通過ZoL的git更新歷史, 我還發現ZoL中已經修復了許多種族和鎖定錯誤, 並且從未對Illumos和FreeBSD進行過修改。
這種狀況導致了我所談到的利益相關者之間的一致意見, 認為在 基於ZoL 重新開發FreeBSD的ZFS是有意義的。
Brian Behlendorfhas鼓勵我將FreeBSD支援直接新增到 ZoL https://github.com/zfsonfreebsd/ZoF, 這樣我們就可以擁有一個單獨的程式碼庫。
可以在https://github.com/miwi-fbsd/zof-port 找到zfs的移植(port)
Before可以提交一些額外的功能需要加入到FreeBSD opencrypto框架中。 這些可以在以下網址找到
這個移植(Port)將為FreeBSD使用者提供多修改器保護, 專案配額, 加密資料集, 分配類, vectorized raidz, 向量化校驗和以及各種命令列改進。
在ZoF可以合併之前回到ZoL需要採取幾個步驟:
將FreeBSD支援整合到ZoL CI中
大多數ZFS測試套件都通過
在iXWe上完成iXWe的額外QA測試
測試需要移植ZoL的EC2 CI指令碼以與FreeBSD一起工作並確保大多數ZFS測試套件(ZTS)通過。 整合到他們的CI將意味著,除了其他事項之外, 大多數整合問題將在PR合併到上游之前被捕獲, 而不是幾個月之後它被MFVed到FreeBSD中。我希望在1月份的某個時間將PR提交給ZoL。
這個移植(Port)將使終端使用者在一系列版本中輕鬆獲得最新版本的ZFS。 儘管如此,從基於Illumos的ZFS過渡不太可能是完全無縫的。 我與之談過的利益相關者都認為這是最好的途徑,但需要在適應當地消費者方面做出一定程度的努力。
目前的計劃是引進ZoF並取消掛鉤4月15日或者iX系統QA認為ZoF穩定後的兩個月內, 基於Illumos的舊版原始碼 將在以後移除,13日前。
這將為使用者提供3個月的時間段,在此期間, 使用者可以使用基於Illumos的移植(Port) 和傳統的ZFS。
Pools應該在ZoF和Lagacy 之間進行互操作 如果使用者未啟用僅在ZoF中可用的任何功能。
我們將努力適應任何下游消費者 如果那樣的話 他們需要推遲日期。
我們要求任何下游消費者 誰對變化特別敏感 開始測試移植(Port) 當正式宣佈時, 報告他們遇到的任何問題
我將盡最大努力確保將此資訊傳達給所有可能關心的人。 但是,我無法確保每個人都閱讀這些列表。
這是-CURRENT使用者的責任。