在Ubuntu 19.10上入門ZFS文件系統(tǒng)
Ubuntu 19.10 的主要新特性之一就是 ZFS?,F(xiàn)在你可以很容易的無需額外努力就可以在 Ubuntu 系統(tǒng)上安裝 ZFS了。
一般情況下,安裝 Linux 都會(huì)選擇 Ext4 文件系統(tǒng)。但是如果是全新安裝 Ubuntu 19.10,在安裝的啟動(dòng)階段可以看到 ZFS 選項(xiàng)。
你可以在安裝 Ubuntu 19.10 的時(shí)候選擇 ZFS
讓我們看看 ZFS 為何重要,以及如何在已經(jīng)安裝了 ZFS 的 Ubuntu 上使用它。
ZFS 與其他文件系統(tǒng)有哪些區(qū)別?
ZFS 的設(shè)計(jì)初衷是:處理海量存儲(chǔ)和避免數(shù)據(jù)損壞。ZFS 可以處理 256 千萬億的 ZB 數(shù)據(jù)。(這就是 ZFS 的 Z)且它可以處理最大 16 EB 的文件。
如果你僅有一個(gè)單磁盤的筆記本電腦,你可以體驗(yàn) ZFS 的數(shù)據(jù)保護(hù)特性。寫時(shí)復(fù)制(COW)特性確保正在使用的數(shù)據(jù)不會(huì)被覆蓋,相反,新的數(shù)據(jù)會(huì)被寫到一個(gè)新的塊中,同時(shí)文件系統(tǒng)的元數(shù)據(jù)會(huì)被更新到新塊中。ZFS 可容易的創(chuàng)建文件系統(tǒng)的快照。這個(gè)快照可追蹤文件系統(tǒng)的更改,并共享數(shù)據(jù)塊確保節(jié)省數(shù)據(jù)空間。
ZFS 為磁盤上的每個(gè)文件分配一個(gè)校驗(yàn)和。它會(huì)不斷的校驗(yàn)文件的狀態(tài)和校驗(yàn)和。如果發(fā)現(xiàn)文件被損壞了,它就會(huì)嘗試修復(fù)文件。
我寫過一個(gè)文章詳細(xì)介紹 什么是 ZFS以及它有哪些特性。如果你感興趣可以去閱讀下。
注:請謹(jǐn)記 ZFS 的數(shù)據(jù)保護(hù)特性會(huì)導(dǎo)致性能下降。
Ubuntu 下使用 ZFS [適用于中高級用戶]
一旦你在你的主磁盤上全新安裝了帶有 ZFS 的 Ubuntu,你就可以開始體驗(yàn)它的特性。
請注意所有的 ZFS 設(shè)置過程都需要命令行。我不知道它有任何 GUI 工具。
創(chuàng)建一個(gè) ZFS 池
這段僅針對擁有多個(gè)磁盤的系統(tǒng)。如果你只有一個(gè)磁盤,Ubuntu 會(huì)在安裝的時(shí)候自動(dòng)創(chuàng)建池。
在創(chuàng)建池之前,你需要為池找到磁盤的 id。你可以用命令 lsblk
查詢出這個(gè)信息。
為三個(gè)磁盤創(chuàng)建一個(gè)基礎(chǔ)池,用以下命令:
sudo zpool create pool-test /dev/sdb /dev/sdc /dev/sdd
請記得替換 pool-test
為你選擇的的命名。
這個(gè)命令將會(huì)設(shè)置“無冗余 RAID-0 池”。這意味著如果一個(gè)磁盤被破壞或有故障,你將會(huì)丟失數(shù)據(jù)。如果你執(zhí)行以上命令,還是建議做一個(gè)常規(guī)備份。
你可以用下面命令將另一個(gè)磁盤增加到池中:
sudo zpool add pool-name /dev/sdx
查看 ZFS 池的狀態(tài)
你可以用這個(gè)命令查詢新建池的狀態(tài):
sudo zpool status pool-test
Zpool 狀態(tài)
鏡像一個(gè) ZFS 池
為確保數(shù)據(jù)的安全性,你可以創(chuàng)建鏡像。鏡像意味著每個(gè)磁盤包含同樣的數(shù)據(jù)。使用鏡像設(shè)置,你可能會(huì)丟失三個(gè)磁盤中的兩個(gè),并且仍然擁有所有信息。
要?jiǎng)?chuàng)建鏡像你可以用下面命令:
sudo zpool create pool-test mirror /dev/sdb /dev/sdc /dev/sdd
創(chuàng)建 ZFS 用于備份恢復(fù)的快照
快照允許你創(chuàng)建一個(gè)后備,以防某個(gè)文件被刪除或被覆蓋。比如,我們創(chuàng)建一個(gè)快照,當(dāng)在用戶主目錄下刪除一些目錄后,然后把它恢復(fù)。
首先,你需要找到你想要的快照數(shù)據(jù)集。你可以這樣做:
zfs list
Zfs List
你可以看到我的家目錄位于 rpool/USERDATA/johnblood_uwcjk7
。
我們用下面命令創(chuàng)建一個(gè)名叫 1910
的快照:
sudo zfs snapshot rpool/USERDATA/johnblood_uwcjk7@1019
快照很快創(chuàng)建完成?,F(xiàn)在你可以刪除 Downloads
和 Documents
目錄。
現(xiàn)在你用以下命令恢復(fù)快照:
sudo zfs rollback rpool/USERDATA/johnblood_uwcjk7@1019
回滾的時(shí)間長短取決于有多少信息改變?,F(xiàn)在你可以查看家目錄,被刪除的目錄(和它的內(nèi)容)將會(huì)被恢復(fù)過來。
要不要試試 ZFS ?
這篇文章僅簡單介紹的 Ubuntu下 ZFS 的用法。更多的信息請參考 Ubuntu 的 ZFS Wiki頁面。我也推薦閱讀 ArsTechnica 的精彩文章。
這個(gè)是試驗(yàn)性的功能。如果你還不了解 ZFS,你想用一個(gè)簡單穩(wěn)定的系統(tǒng),請安裝標(biāo)準(zhǔn)文件系統(tǒng) EXT4。如果你想用閑置的機(jī)器體驗(yàn),可以參照上面了解 ZFS。如果你是一個(gè)“專家”,并且知道自己在做什么,則可以隨時(shí)隨地隨意嘗試ZFS。