如何在 Ubuntu 上使用 ZFS 檔案系統

Nick Congleton發表於2022-11-27

在 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

在 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

在 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

還有一些管理工具,一旦你建立了你的池,你就必須使用它們來操作。 首先,檢查你的池的狀態。

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

ZFS 會在您的池的根檔案系統中建立一個目錄。 您可以使用 GUI 檔案管理器或 CLI 按名稱瀏覽它們。

ZFS 非常強大,還有很多其它的東西可以用它來做,但這些都是基礎。 這是一個優秀的儲存負載檔案系統,即使它只是一個用於檔案的硬碟驅動器的 RAID 陣列。 ZFS 在 NAS 系統上也非常出色。

無論 ZFS 的穩定性和可靠性如何,在您的硬碟上實施新的功能時,最好備份您的資料。


via: https://www.maketecheasier.com/use-zfs-filesystem-ubuntu-linux/

作者:Nick Congleton 譯者:amwps290 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章