5月23日發布時,Linux 0.8(ZoL)上的ZFS帶來了許多新功能和性能改進。這是在Delphix 宣布 將於2018年3月將其自身產品遷移到Linux上之後進行的。今天最激動人心的May功能(例如ZFS本地加密)。
有關完整列表(包括此處未涵蓋的新功能和性能改進),您可以訪問 Github上的 ZoL 0.8.0版本。(請注意, ZoL 0.8.1 已於上周發布,但是由於Linux上的ZFS遵循 語義版本控制,因此它僅是一個錯誤修復版本。)
不幸的是,對於Ubuntu愛好者而言,這些新功能將在相當長的一段時間內不會出現在Canonical的存儲庫中-2019年10月即將發布的臨時版本Eoan Ermine在其存儲庫中仍顯示0.7.12。我們可以希望Ubuntu 20.04 LTS(尚未命名)將合併0.8.x分支,但是到目前為止還沒有正式的詞彙。如果您運行的是Ubuntu 18.04(或更高版本),並且絕對不能等待,那麼廣泛使用的 Jonathon F PPA的功能為0.8.1。Debian的實驗版本中有 0.8.0,Arch Linux的 zfs-dkms AUR軟體包中有0.8.1,Gentoo在sys-fs / zfs中的測試有0.8.1 。其他Linux發行版的用戶可以在https://zfsonlinux.org/上直接從master找到構建軟體包的說明。 。
前述的Linux遷移使Delphix令人印象深刻的OpenZFS開發人員陣容增加到了已經在Linux上進行ZFS工作的龐大團隊。11月,FreeBSD項目 宣布 了 對Linux作為OpenZFS旗艦開發平臺的事實上的新優勢的認可 。FreeBSD通過在Linux而不是Illumos的ZFS上重新建立自己的OpenZFS代碼庫來做到這一點。對於BSD愛好者來說,更好的消息是,必要的移植工作將被納入Linux本身的ZFS的主要代碼庫中,隨著 工作的進行,PR從FreeBSD的新ZoL fork合併而來 。
最近幾個月,Linux上的ZFS以及整個OpenZFS項目都非常繁忙。從歷史上看,OpenZFS的大部分新開發工作都是由Delphix的員工完成的,而後者又將Illumos用作他們的首選平臺。從那裡,新代碼被相對較快地移植到FreeBSD,而較慢地移植到Linux。
但是多年來,為Linux項目上的ZFS積累了動力。改進和錯誤修正的流程顛倒了方向-幾乎所有在0.8中真正令人興奮的新功能都起源於Linux,而不是從其他地方移植而來。
到雲的ZFS複製就在這裡,而且 速度很快
讓我們深入探討最重要的內容。
ZFS本機加密
Native ZFS加密是0.8中最重要的新功能之一。到目前為止,ZFS用戶一直依賴於OS提供的ZFS之上或之下的加密文件系統層。儘管這種方法行之有效,但也帶來了困難-ZFS層下方的加密(GELI或LUKS)降低了ZFS保證數據安全性的本機能力。同時,ZFS層(在ZVOL上創建的GELI或LUKS卷)上方的加密使ZFS本機壓縮(啟用時往往會提高性能和可用存儲空間)成為不可能。
但是,本機加密的實用性不僅會隨著加密文件系統的更好的集成和易用性而停止。該功能還附帶原始的加密ZFS複製。當您對ZFS文件系統進行本地加密後,就可以將文件系統完整地複製到遠程ZFS池中,而無需解密(或解壓縮)數據,也不需要遠程系統擁有可對其進行解密的密鑰 。
反過來,此功能意味著可以使用ZFS複製來使不受信任的遠程備份系統保持 最新狀態。這使得即使對遠程系統具有root和/或物理訪問權限的攻擊者,也無法竊取在那裡備份的數據。
ZFS設備移除
ZFS愛好者最常抱怨的是,如果您對將新磁碟添加到現有ZFS池中的命令不滿意,則無法撤消該命令。您將陷入一個包含單磁碟vdev且實際上沒有奇偶校驗或冗餘的池中。
過去,唯一的緩解措施是將更多磁碟附加到新的單磁碟vdev,並將其升級為鏡像。如果您首先使用一堆鏡子,這可能還不錯。但是,如果您的池基於RAIDz(條帶化)vdev,或者如果您剛好沒有錢和/或沒有新磁碟,那就太冷了。
與0.8.0開始,設備刪除可能在有限數量的情況下用一個新的zpool刪除命令。不過,明智的做法是-移除設備並非易事,也不應該輕易刪除。刪除了設備的池最終導致丟失的存儲塊等於CNAME;引用最初存儲在已刪除磁碟上的塊的文件系統調用最終會先查找原始塊,然後被重定向到塊的新位置。這對錯誤添加並立即刪除的設備的影響應該相對較小,但是如果用於刪除具有成千上萬個已用塊的設備,則可能會對性能產生嚴重影響。
ZFS中的TRIM支持
關於Linux上ZFS的長期存在的抱怨之一是它缺乏對SSD的TRIM支持。如果沒有TRIM,SSD的性能會隨著時間的推移而顯著降低-經過數年的未修剪使用之後,SSD可能很容易降至其原始性能的1/3或更小。
如果您的比較點是傳統硬碟,則沒關係。一個好的固態硬碟通常具有的吞吐量是非常快的防鏽磁碟的五到六倍,IOPS是一萬倍。那麼,朋友中可憐的67%罰款是多少?但是,如果您要依靠系統的預配置性能,則會遇到麻煩。
幸運的是,0.8為ZFS帶來了對手動和自動TRIM的支持。大多數用戶和管理員將希望使用 autotrim池屬性來啟用自動實時TRIM支持。具有較少存儲使用窗口的對性能非常敏感的系統,可以選擇使用zpool trim在非工作時間安排常規的TRIM任務 。
ZFS池檢查點
檢查點不如我們已經提到的功能那麼迷人,但是它們肯定可以節省您的培根。將檢查點想像為池範圍的快照。但是,當快照保留單個數據集或ZVOL的狀態時,檢查點將保留整個池的狀態。
如果要啟用更改磁碟格式(通常是不可逆的)的新功能標誌,則可以首先 zpool檢查點池,使您可以將其回滾到升級前的狀態。檢查點還可以用於回滾原本不可逆的數據集或zvol級別的操作,例如destroy。當您僅打算銷毀其快照之一時,zfs偶然 銷毀了整個數據集?如果您有檢查點,則可以將該操作回滾。