Ubuntu 19.10 的主要新特性之一就是 ZFS。如今你能夠很容易的無需額外努力就能夠在 Ubuntu 系統上安裝 ZFS了。linux
通常狀況下,安裝 Linux 都會選擇 Ext4 文件系統。可是若是是全新安裝 Ubuntu 19.10,在安裝的啓動階段能夠看到 ZFS 選項。git
讓咱們看看 ZFS 爲什麼重要,以及如何在已經安裝了 ZFS 的 Ubuntu 上使用它。github
ZFS 的設計初衷是:處理海量存儲和避免數據損壞。ZFS 能夠處理 256 千萬億的 ZB 數據。(這就是 ZFS 的 Z)且它能夠處理最大 16 EB 的文件。ubuntu
若是你僅有一個單磁盤的筆記本電腦,你能夠體驗 ZFS 的數據保護特性。寫時複製(COW)特性確保正在使用的數據不會被覆蓋,相反,新的數據會被寫到一個新的塊中,同時文件系統的元數據會被更新到新塊中。ZFS 可容易的建立文件系統的快照。這個快照可追蹤文件系統的更改,並共享數據塊確保節省數據空間。安全
ZFS 爲磁盤上的每一個文件分配一個校驗和。它會不斷的校驗文件的狀態和校驗和。若是發現文件被損壞了,它就會嘗試修復文件。bash
我寫過一個文章詳細介紹 什麼是 ZFS以及它有哪些特性。若是你感興趣能夠去閱讀下。工具
注:請謹記 ZFS 的數據保護特性會致使性能降低。性能
一旦你在你的主磁盤上全新安裝了帶有 ZFS 的 Ubuntu,你就能夠開始體驗它的特性。this
請注意全部的 ZFS 設置過程都須要命令行。我不知道它有任何 GUI 工具。spa
這段僅針對擁有多個磁盤的系統。若是你只有一個磁盤,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 嗎?請在下面留言。
做者:John Paul 選題:lujun9972 譯者:guevaraya 校對:wxy
know in the comments below. If you found this article interesting, please take a minute to share it on social media, Hacker News or Reddit.