如何在Ubuntu中安裝使用ZFS文件系統(tǒng)
Linux 操作系統(tǒng)支持和可用的文件系統(tǒng)類型非常多,既然這些文件系統(tǒng)都可以正常工作,我們?yōu)槭裁匆L試一個(gè)新的文件系統(tǒng)呢?其實(shí),不同 Linux 文件系統(tǒng)類型并不完全相同,不然也不用搞出這么多種類來(lái)了。其中有些還具有比較明顯的優(yōu)勢(shì),比如——ZFS 文件系統(tǒng)。
為什么選擇ZFS文件系統(tǒng)
ZFS 文件系統(tǒng)非常之棒,它是一個(gè)真正的現(xiàn)代文件系統(tǒng),其內(nèi)置的功能對(duì)處理數(shù)據(jù)負(fù)載非常有意義。
如果你正考慮將 ZFS 用于超快速 NVMe SSD,那它可能不是***選擇。ZFS 速度相對(duì)較慢并不太關(guān)緊要,它旨在用于存儲(chǔ)大量數(shù)據(jù)并保持安全,所以很多 NAS 平臺(tái)都將 ZFS 用作默認(rèn)(主要)的文件系統(tǒng)。
使用 ZFS 時(shí)無(wú)需配置傳統(tǒng)的 RAID 陣列,相反,我們可以通過(guò)創(chuàng)建 ZFS 池的方式隨時(shí)將磁盤驅(qū)動(dòng)器添加到這些池(Pool)當(dāng)中。ZFS 池的使用方式和行為幾乎與 RAID 無(wú)異,但其功能還是建立在文件系統(tǒng)之上的。
ZFS 完全可以充當(dāng) LVM 的替代品,允許我們快速創(chuàng)建和管理分區(qū),無(wú)需處理較低級(jí)別的內(nèi)容并擔(dān)心相關(guān)風(fēng)險(xiǎn)。同時(shí),ZFS 也是一個(gè) CoW 文件系統(tǒng),這意味著 ZFS 可以保護(hù)你的數(shù)據(jù)不會(huì)隨著時(shí)間的推移逐漸損壞,ZFS 還可以創(chuàng)建文件的校驗(yàn)和并允許將這些文件回滾到以前的工作版本。
安裝ZFS文件系統(tǒng)支持
在 Ubuntu 中安裝、使用 ZFS 文件系統(tǒng)非常簡(jiǎn)單,但 Ubuntu LTS 和*** Ubuntu 版本的安裝方式有所不同。
- Ubuntu 16.04 LTS:sudo apt install zfs
- Ubuntu 17.04 及更新:sudo apt install zfsutils
在安裝好實(shí)用程序后,就可以使用 ZFS 提供的工具來(lái)創(chuàng)建 ZFS 驅(qū)動(dòng)器和分區(qū)了。
創(chuàng)建ZFS池
ZFS 池的概念與 RAID 非常類似,如果你了解 Windows 10 中的存儲(chǔ)空間就不難理解它了。
RAID0
RAID0 想必大家都知道,它只是將所有磁盤驅(qū)動(dòng)器集成到一個(gè)巨大的存儲(chǔ)空間而已。它可以提高驅(qū)動(dòng)器讀寫速度,但無(wú)數(shù)據(jù)容錯(cuò)能力,只要有其中一塊磁盤壞掉,就會(huì)有數(shù)據(jù)丟失。
要使用 ZFS 實(shí)現(xiàn) RAID0,只需創(chuàng)建一個(gè)簡(jiǎn)單的池:
- sudo zpool create pool-name /dev/sdc /dev/sdd
RAID1(鏡像)
使用 mirror 關(guān)鍵字就可以實(shí)現(xiàn) ZFS 的 RAID1 功能,RAID1 不用多介紹了吧,就是創(chuàng)建硬盤的 1 對(duì) 1 副本。這樣不僅可以有數(shù)據(jù)的完整備份副本,同時(shí)還可以提高讀寫性能。當(dāng)然,物理磁盤的總存儲(chǔ)空間量也會(huì)減半。
- sudo zpool create pool-name mirror /dev/sdc /dev/sdd
RAID5(RAIDZ1)
ZFS 將 RAID5 功能實(shí)現(xiàn)為 RAIDZ1。RAID5 要求驅(qū)動(dòng)器的倍數(shù)為 3 , 其中 1/3 的空間用于寫入奇偶校驗(yàn)數(shù)據(jù),并保留 2/3 的數(shù)據(jù)存儲(chǔ)空間。如果其中一個(gè)驅(qū)動(dòng)器出現(xiàn)故障, 陣列將保持聯(lián)機(jī)狀態(tài), 但應(yīng)盡快更換故障磁盤。
- sudo zpool create pool-name raidz1 /dev/sdc /dev/sdd /dev/sde
RAID6(RAIDZ2)
RAID6 與 RAID5 類似,但它的工作原理是磁盤數(shù)量的 4 倍,而非 3 倍。 它使用 2 倍的奇偶校驗(yàn)數(shù)據(jù),允許最多 2 個(gè)驅(qū)動(dòng)器故障。
- sudo zpool create pool-name raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf
RAID10
RAID10 旨在讀寫速度提升和數(shù)據(jù)冗余與條帶化,需要至少 4 塊磁盤的倍數(shù),而且只有一半的數(shù)據(jù)存儲(chǔ)空間,可通過(guò)創(chuàng)建兩個(gè)鏡像的方式來(lái)創(chuàng)建 RAID10。
- sudo zpool create pool-name mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf
使用ZFS池
一旦在 Ubuntu 中創(chuàng)建了 ZFS 池,我們還需要使用一些管理工具。首先,可以通過(guò)如下命令來(lái)檢查和查看 ZFS 池的狀態(tài):
- sudo zpool status
當(dāng)檢查 ZFS 狀態(tài)時(shí),池將通知你需要知道的所有更新。要更新池,請(qǐng)運(yùn)行如下命令:
- sudo zpool upgrade pool-name
也可以使用如下命令更新所有 ZFS 池:
- sudo zpool upgrade -a
當(dāng)然,你也可以隨時(shí)向池中添加新的磁盤驅(qū)動(dòng)器,只需使用 zpool 指定池名稱和驅(qū)動(dòng)器位置即可:
- sudo zpool add pool-name /dev/sdx
***提醒大家,ZFS 池會(huì)在 Linux 的根文件系統(tǒng)中創(chuàng)建一個(gè)目錄以供用戶使用。你可以使用 GUI 文件管理器或 CLI 來(lái)瀏覽、使用它們。