Ubuntu 19.10 的主要新特性之一就是 。現在你可以很容易的無需額外努力就可以在 Ubuntu 系統上安裝 ZFS了。
一般情況下,安裝 Linux 都會選擇 Ext4 檔案系統。但是如果是全新安裝 Ubuntu 19.10,在安裝的啟動階段可以看到 ZFS 選項。
讓我們看看 ZFS 為何重要,以及如何在已經安裝了 ZFS 的 Ubuntu 上使用它。
ZFS 的設計初衷是:處理海量儲存和避免資料損壞。ZFS 可以處理 256 千萬億的 ZB 資料。(這就是 ZFS 的 Z)且它可以處理最大 16 EB 的檔案。
如果你僅有一個單磁碟的筆記型電腦,你可以體驗 ZFS 的資料保護特性。寫時複製(COW)特性確保正在使用的資料不會被覆蓋,相反,新的資料會被寫到一個新的塊中,同時檔案系統的後設資料會被更新到新塊中。ZFS 可容易的建立檔案系統的快照。這個快照可追蹤檔案系統的更改,並共用資料塊確保節省資料空間。
ZFS 為磁碟上的每個檔案分配一個校驗和。它會不斷的校驗檔案的狀態和校驗和。如果發現檔案被損壞了,它就會嘗試修復檔案。
我寫過一個文章詳細介紹 。如果你感興趣可以去閱讀下。
註:請謹記 ZFS 的資料保護特性會導致效能下降。
一旦你在你的主磁碟上全新安裝了帶有 ZFS 的 Ubuntu,你就可以開始體驗它的特性。
請注意所有的 ZFS 設定過程都需要命令列。我不知道它有任何 GUI 工具。
這段僅針對擁有多個磁碟的系統。如果你只有一個磁碟,Ubuntu 會在安裝的時候自動建立池。
在建立池之前,你需要為池找到磁碟的 id。你可以用命令 lsblk
查詢出這個資訊。
為三個磁碟建立一個基礎池,用以下命令:
sudo zpool create pool-test /dev/sdb /dev/sdc /dev/sdd
請記得替換 pool-test
為你選擇的的命名。
這個命令將會設定“無冗餘 RAID-0 池”。這意味著如果一個磁碟被破壞或有故障,你將會丟失資料。如果你執行以上命令,還是建議做一個常規備份。
你可以用下面命令將另一個磁碟增加到池中:
sudo zpool add pool-name /dev/sdx
你可以用這個命令查詢新建池的狀態:
sudo zpool status pool-test
為確保資料的安全性,你可以建立映象。映象意味著每個磁碟包含同樣的資料。使用映象設定,你可能會丟失三個磁碟中的兩個,並且仍然擁有所有資訊。
要建立映象你可以用下面命令:
sudo zpool create pool-test mirror /dev/sdb /dev/sdc /dev/sdd
快照允許你建立一個後備,以防某個檔案被刪除或被覆蓋。比如,我們建立一個快照,當在使用者主目錄下刪除一些目錄後,然後把它恢復。
首先,你需要找到你想要的快照資料集。你可以這樣做:
zfs list
你可以看到我的家目錄位於 rpool/USERDATA/johnblood_uwcjk7
。
我們用下面命令建立一個名叫 1910
的快照:
sudo zfs snapshot rpool/USERDATA/johnblood_uwcjk7@1019
快照很快建立完成。現在你可以刪除 Downloads
和 Documents
目錄。
現在你用以下命令恢復快照:
sudo zfs rollback rpool/USERDATA/johnblood_uwcjk7@1019
回滾的時間長短取決於有多少資訊改變。現在你可以檢視家目錄,被刪除的目錄(和它的內容)將會被恢復過來。
這篇文章僅簡單介紹的 Ubuntu下 ZFS 的用法。更多的資訊請參考 Ubuntu 的 ZFS Wiki頁面。我也推薦閱讀 ArsTechnica 的精彩文章。
這個是試驗性的功能。如果你還不了解 ZFS,你想用一個簡單穩定的系統,請安裝標準檔案系統 EXT4。如果你想用閒置的機器體驗,可以參照上面了解 ZFS。如果你是一個“專家”,並且知道自己在做什麼,則可以隨時隨地隨意嘗試ZFS。
你之前用過 ZFS 嗎?請在下面留言。