如何在 Ubuntu 上使用 ZFS 文件系統
在 Linux 系統上,有大量的文件系統可以使用,那麼我們為什麼還要嘗試一個新的文件系統?它們都工作的很好,不是嗎?但是它們並不完全相同,其中的一些文件系統具有非常突出的優點,例如 ZFS。
為什麼選擇 ZFS
ZFS 非常的優秀。這是一個真正現代的文件系統,內置的功能對於處理大量的數據很有意義。
現在,如果您正在考慮將 ZFS 用於您的超高速 NVMe SSD,這可能不是一個最佳選擇。 它比別的文件系統要慢,不過,這完全沒有問題, 它旨在存儲大量的數據並保持安全。
ZFS 消除了建立傳統 RAID 陣列(LCTT 譯註:獨立磁碟冗餘陣列)的需要。 相反,您可以創建 ZFS 池,甚至可以隨時將驅動器添加到這些池中。 ZFS 池的行為操作與 RAID 幾乎完全相同,但功能內置於文件系統中。
ZFS 也可以替代 LVM (LCTT 譯註:邏輯盤卷管理),使您能夠動態地進行分區和管理分區,而無需處理底層的細節,也不必擔心相關的風險。
這也是一個 CoW (LCTT 譯註:寫時複製)文件系統。 這裡不會提及太多的技術性,這意味著 ZFS 可以保護您的數據免受逐漸損壞的影響。 ZFS 會創建文件的校驗和,並允許您將這些文件回滾到以前的工作版本。
安裝 ZFS
![Install ZFS on Ubuntu](/data/attachment/album/201802/14/005212gem4smmvrwczhxdh.jpg "Install ZFS on Ubuntu")
在 Ubuntu 上安裝 ZFS 非常簡單,但對於 Ubuntu LTS (LCTT 譯註:長時間支持版本)和最新版本來說,這個過程稍有不同。
Ubuntu 16.04 LTS
sudo apt install zfs
Ubuntu 17.04 及以後
sudo apt install zfsutils
當你安裝好程序後,可以使用 ZFS 提供的工具創建 ZFS 驅動器和分區。
創建池
![Create ZFS Pool](/data/attachment/album/201802/14/005212t99r9s9pxxp4r991.jpg "Create ZFS Pool")
在 ZFS 中,池大致相當於 RAID 。 它們很靈活且易於操作。
RAID0
RAID0 只是把你的硬碟集中到一個池子裡面,就像一個巨大的驅動器一樣。 它可以提高你的驅動器速度,(LCTT 譯註:數據條帶化後,並行訪問,可以提高文件讀取速度)但是如果你的驅動器有損壞,你可能會失丟失數據。
要使用 ZFS 實現 RAID0,只需創建一個普通的池。
sudo zpool create your-pool /dev/sdc /dev/sdd
RAID1(鏡像)
您可以在 ZFS 中使用 mirror
關鍵字來實現 RAID1 功能。 RAID1 會創建一個一對一的驅動器副本。 這意味著您的數據一直在備份。 它也提高了性能。 當然,你將一半的存儲空間用於了複製。
sudo zpool create your-pool mirror /dev/sdc /dev/sdd
RAID5/RAIDZ1
ZFS 將 RAID5 功能實現為 RAIDZ1。 RAID5 要求驅動器至少是 3 個。並允許您通過將備份奇偶校驗數據寫入驅動器空間的 1/n(n 是驅動器數),留下的是可用的存儲空間。 如果一個驅動器發生故障,陣列仍將保持聯機狀態,但應儘快更換髮生故障的驅動器(LCTT 譯註:與原文翻譯略有不同,原文是驅動器的數目是三的倍數,根據 wiki, RAID5 至少需要 3 塊驅動器,也可以從下面的命令中猜測)。
sudo zpool create your-pool raidz1 /dev/sdc /dev/sdd /dev/sde
RAID6/RAIDZ2
RAID6 與 RAID5 幾乎完全相同,但它至少需要四個驅動器。 它將奇偶校驗數據加倍,最多允許兩個驅動器損壞,而不會導致陣列關閉(LCTT 譯註:這裡也與原文略有出入,原文是驅動器的數目是四的倍數,根據 wiki ,RAID6 至少需要四個驅動器)。
sudo zpool create your-pool raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf
RAID10(條帶化鏡像)
RAID10 旨在通過數據條帶化提高存取速度和數據冗餘來成為一個兩全其美的解決方案。 你至少需要四個驅動器,但只能使用一半的空間。 您可以通過在同一個池中創建兩個鏡像來創建 RAID10 中的池(LCTT 譯註:這裡也與原文略有出入,原文是驅動器的數目是四的倍數,根據 wiki, RAID10 至少需要四個驅動器)。
sudo zpool create your-pool mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf
池的操作
![ZFS pool Status](/data/attachment/album/201802/14/005212sbj96k1bozm1gbgz.jpg "ZFS pool Status")
還有一些管理工具,一旦你創建了你的池,你就必須使用它們來操作。 首先,檢查你的池的狀態。
sudo zpool status
更新
當你更新 ZFS 時,你也需要更新你的池。 當您檢查它們的狀態時,您的池會通知您任何更新。 要更新池,請運行以下命令。
sudo zpool upgrade your-pool
你也可以更新全部池。
sudo zpool upgrade -a
添加驅動器
您也可以隨時將驅動器添加到池中。 告訴 zpool
池的名稱和驅動器的位置,它會處理好一切。
sudo zpool add your-pool /dev/sdx
其它的一些想法
![ZFS in File Browser](/data/attachment/album/201802/14/005212ij3vwbvq3zllq030.jpg "ZFS in File Browser")
ZFS 會在您的池的根文件系統中創建一個目錄。 您可以使用 GUI 文件管理器或 CLI 按名稱瀏覽它們。
ZFS 非常強大,還有很多其它的東西可以用它來做,但這些都是基礎。 這是一個優秀的存儲負載文件系統,即使它只是一個用於文件的硬碟驅動器的 RAID 陣列。 ZFS 在 NAS 系統上也非常出色。
無論 ZFS 的穩定性和可靠性如何,在您的硬碟上實施新的功能時,最好備份您的數據。
via: https://www.maketecheasier.com/use-zfs-filesystem-ubuntu-linux/
作者:Nick Congleton 譯者:amwps290 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive