如何在Ubuntu上使用ZFS文件系統(tǒng)
在 Linux 系統(tǒng)上,有大量的文件系統(tǒng)可以使用,那么我們?yōu)槭裁催€要嘗試一個(gè)新的文件系統(tǒng)?它們都工作的很好,不是嗎?但是它們并不完全相同,其中的一些文件系統(tǒng)具有非常突出的優(yōu)點(diǎn),例如 ZFS。
為什么選擇 ZFS
ZFS 非常的優(yōu)秀。這是一個(gè)真正現(xiàn)代的文件系統(tǒng),內(nèi)置的功能對于處理大量的數(shù)據(jù)很有意義。
現(xiàn)在,如果您正在考慮將 ZFS 用于您的超高速 NVMe SSD,這可能不是一個(gè)***選擇。 它比別的文件系統(tǒng)要慢,不過,這完全沒有問題, 它旨在存儲(chǔ)大量的數(shù)據(jù)并保持安全。
ZFS 消除了建立傳統(tǒng) RAID 陣列(LCTT 譯注:獨(dú)立磁盤冗余陣列)的需要。 相反,您可以創(chuàng)建 ZFS 池,甚至可以隨時(shí)將驅(qū)動(dòng)器添加到這些池中。 ZFS 池的行為操作與 RAID 幾乎完全相同,但功能內(nèi)置于文件系統(tǒng)中。
ZFS 也可以替代 LVM (LCTT 譯注:邏輯盤卷管理),使您能夠動(dòng)態(tài)地進(jìn)行分區(qū)和管理分區(qū),而無需處理底層的細(xì)節(jié),也不必?fù)?dān)心相關(guān)的風(fēng)險(xiǎn)。
這也是一個(gè) CoW (LCTT 譯注:寫時(shí)復(fù)制)文件系統(tǒng)。 這里不會(huì)提及太多的技術(shù)性,這意味著 ZFS 可以保護(hù)您的數(shù)據(jù)免受逐漸損壞的影響。 ZFS 會(huì)創(chuàng)建文件的校驗(yàn)和,并允許您將這些文件回滾到以前的工作版本。
安裝 ZFS
Install ZFS on Ubuntu
在 Ubuntu 上安裝 ZFS 非常簡單,但對于 Ubuntu LTS (LCTT 譯注:長時(shí)間支持版本)和***版本來說,這個(gè)過程稍有不同。
Ubuntu 16.04 LTS
sudo apt install zfs
Ubuntu 17.04 及以后
sudo apt install zfsutils
當(dāng)你安裝好程序后,可以使用 ZFS 提供的工具創(chuàng)建 ZFS 驅(qū)動(dòng)器和分區(qū)。
創(chuàng)建池
Create ZFS Pool
在 ZFS 中,池大致相當(dāng)于 RAID 。 它們很靈活且易于操作。
RAID0
RAID0 只是把你的硬盤集中到一個(gè)池子里面,就像一個(gè)巨大的驅(qū)動(dòng)器一樣。 它可以提高你的驅(qū)動(dòng)器速度,(LCTT 譯注:數(shù)據(jù)條帶化后,并行訪問,可以提高文件讀取速度)但是如果你的驅(qū)動(dòng)器有損壞,你可能會(huì)失丟失數(shù)據(jù)。
要使用 ZFS 實(shí)現(xiàn) RAID0,只需創(chuàng)建一個(gè)普通的池。
sudo zpool create your-pool /dev/sdc /dev/sdd
RAID1(鏡像)
您可以在 ZFS 中使用 mirror
關(guān)鍵字來實(shí)現(xiàn) RAID1 功能。 RAID1 會(huì)創(chuàng)建一個(gè)一對一的驅(qū)動(dòng)器副本。 這意味著您的數(shù)據(jù)一直在備份。 它也提高了性能。 當(dāng)然,你將一半的存儲(chǔ)空間用于了復(fù)制。
sudo zpool create your-pool mirror /dev/sdc /dev/sdd
RAID5/RAIDZ1
ZFS 將 RAID5 功能實(shí)現(xiàn)為 RAIDZ1。 RAID5 要求驅(qū)動(dòng)器至少是 3 個(gè)。并允許您通過將備份奇偶校驗(yàn)數(shù)據(jù)寫入驅(qū)動(dòng)器空間的 1/n(n 是驅(qū)動(dòng)器數(shù)),留下的是可用的存儲(chǔ)空間。 如果一個(gè)驅(qū)動(dòng)器發(fā)生故障,陣列仍將保持聯(lián)機(jī)狀態(tài),但應(yīng)盡快更換發(fā)生故障的驅(qū)動(dòng)器(LCTT 譯注:與原文翻譯略有不同,原文是驅(qū)動(dòng)器的數(shù)目是三的倍數(shù),根據(jù) wiki, RAID5 至少需要 3 塊驅(qū)動(dòng)器,也可以從下面的命令中猜測)。
sudo zpool create your-pool raidz1 /dev/sdc /dev/sdd /dev/sde
RAID6/RAIDZ2
RAID6 與 RAID5 幾乎完全相同,但它至少需要四個(gè)驅(qū)動(dòng)器。 它將奇偶校驗(yàn)數(shù)據(jù)加倍,最多允許兩個(gè)驅(qū)動(dòng)器損壞,而不會(huì)導(dǎo)致陣列關(guān)閉(LCTT 譯注:這里也與原文略有出入,原文是驅(qū)動(dòng)器的數(shù)目是四的倍數(shù),根據(jù) wiki ,RAID6 至少需要四個(gè)驅(qū)動(dòng)器)。
sudo zpool create your-pool raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf
RAID10(條帶化鏡像)
RAID10 旨在通過數(shù)據(jù)條帶化提高存取速度和數(shù)據(jù)冗余來成為一個(gè)兩全其美的解決方案。 你至少需要四個(gè)驅(qū)動(dòng)器,但只能使用一半的空間。 您可以通過在同一個(gè)池中創(chuàng)建兩個(gè)鏡像來創(chuàng)建 RAID10 中的池(LCTT 譯注:這里也與原文略有出入,原文是驅(qū)動(dòng)器的數(shù)目是四的倍數(shù),根據(jù) wiki, RAID10 至少需要四個(gè)驅(qū)動(dòng)器)。
sudo zpool create your-pool mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf
池的操作
ZFS pool Status
還有一些管理工具,一旦你創(chuàng)建了你的池,你就必須使用它們來操作。 首先,檢查你的池的狀態(tài)。
sudo zpool status
更新
當(dāng)你更新 ZFS 時(shí),你也需要更新你的池。 當(dāng)您檢查它們的狀態(tài)時(shí),您的池會(huì)通知您任何更新。 要更新池,請運(yùn)行以下命令。
sudo zpool upgrade your-pool
你也可以更新全部池。
sudo zpool upgrade -a
添加驅(qū)動(dòng)器
您也可以隨時(shí)將驅(qū)動(dòng)器添加到池中。 告訴 zpool
池的名稱和驅(qū)動(dòng)器的位置,它會(huì)處理好一切。
sudo zpool add your-pool /dev/sdx
其它的一些想法
ZFS in File Browser
ZFS 會(huì)在您的池的根文件系統(tǒng)中創(chuàng)建一個(gè)目錄。 您可以使用 GUI 文件管理器或 CLI 按名稱瀏覽它們。
ZFS 非常強(qiáng)大,還有很多其它的東西可以用它來做,但這些都是基礎(chǔ)。 這是一個(gè)優(yōu)秀的存儲(chǔ)負(fù)載文件系統(tǒng),即使它只是一個(gè)用于文件的硬盤驅(qū)動(dòng)器的 RAID 陣列。 ZFS 在 NAS 系統(tǒng)上也非常出色。
無論 ZFS 的穩(wěn)定性和可靠性如何,在您的硬盤上實(shí)施新的功能時(shí),***備份您的數(shù)據(jù)。