ZFS,通常稱為 Z 文件系統,主要基於存儲和冗餘。 ZFS 概念是基於文件服務器開發的,其中高可用性和數據完整性至關重要。 ZFS 使用通常稱為 zpools 的虛擬存儲池來處理大量數據的存儲和管理。本文介紹如何掛載 zfs 以及它在技術環境中的常用方法。

先決條件

新的 Ubuntu 20.04 服務器

具有 sudo 權限的非 root 用戶帳戶

安裝

安裝 ZFS 是一個簡單的過程。您可以使用命令行終端應用程序掛載 ZFS 文件系統。啟動命令行終端工具並運行以下命令:

$ sudo apt update
$ sudo apt install zfsutils-linux

安裝過程中可能會提示您輸入密碼。 輸入您的 sudo 密碼以繼續。

運行上述命令後,系統會提示您確認是否要繼續安裝。 按“y”進入。該軟件包現在已安裝在您的系統上。

要驗證系統上是否安裝了 ZFS,請使用以下命令:

$ zfs --version

你會得到這樣的輸出:

基本 ZFS 用法和命令

安裝 ZFS 後,您可以將硬盤與 ZFS 一起使用。將新硬盤驅動器插入系統時,ZFS 通過設備名稱對其進行尋址。例如,像 /dev/sda 或類似的。你可以使用它 磁盤 用於檢查可用硬盤驅動器的命令行實用程序。

$ sudo fdisk -l

您應該會看到類似於以下內容的輸出:

如何創建和銷毀 zpool

ZFS 使用將磁盤池化的概念。創建池時可以使用不同的 RAID 級別。您創建的第一個池是 RAID 0。 RAID 級別 0 的工作原理是跨多個磁盤條帶化數據。當文件被寫入存儲池或從存儲池讀取時,所有磁盤都開始工作以呈現該部分數據。這種級別的 RAID 加快了讀寫操作,但缺乏數據冗餘。池中的關鍵磁盤問題或磁盤故障將導致永久性數據丟失。

在此示例中,我們使用了兩個硬盤驅動器。 /dev/sdb 什麼時候 /dev/sdd 用於創建 測試池您可以對磁盤和池名稱的選擇做出自己的假設。通過運行以下命令創建 zpool:

$ sudo zpool create test-pool /dev/sdb /dev/sdd

如果出現錯誤,您可以運行命令 -F 以後的選擇 創建 zpool 命令強制執行命令。

$ sudo zpool create -f test-pool /dev/sdb /dev/sdd

創建後,您可以使用以下命令找到掛載點:

$ df -h

從輸出中我可以看到池已安裝 / 測試池。 您可以使用以下語法更改池的掛載點:

$ sudo zfs set mountpoint =<path> <pool_name>

在這個例子中,我們使用 /var/www 作為新的掛載點。掛載點有自己的考慮。

$ sudo zfs set mountpoint=/var/www test-pool

使用以下命令檢查新點:

$ df -h

您可以在存儲池下創建目錄。在我們的示例中,我們在存儲池測試工具下創建了一個名為 MySQL 的目錄。

$ sudo zfs create test-pool/mysql

通過運行以下命令顯示系統上的所有 ZFS 存儲池:

$ zpool list

要檢查 ZFS 池中每個設備的配置和狀態,請使用以下命令:

$ zpool status

要在出現問題時對 ZFS 存儲池進行故障排除,請運行以下命令查看 zpool 事件: 將 pool_name 替換為您的 ZFS 存儲池。

$ sudo zpool events pool_name -v

如果要向 ZFS 存儲池添加另一個硬盤,可以使用以下命令:在這個例子中,我們使用了一個新的硬盤驅動器。 /dev/sdc 添加之前創建的 ZFS 存儲池 test-pool。您可以相應地選擇硬盤和 zpool 名稱。

$ sudo zpool add test-pool /dev/sdc

添加磁盤後,使用以下命令檢查池:

$ zpool status

要銷毀 ZFS 存儲池,請使用有效的池名稱運行以下命令。

$ sudo zpool destroy pool_name

例如,

$ sudo zpool destroy test-pool

如何使用 ZFS 加密

創建 ZFS 存儲池後,您可以使用以下命令啟用加密:在此示例中,我們使用了之前創建的名為“test-pool”的 ZFS 池進行加密。您可以相應地選擇您的 ZFS 池。

$ sudo zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase test-pool/encrypted

系統將提示您兩次輸入密碼。輸入您的密碼以繼續。

將在存儲掛載點下創建一個新目錄,並且該目錄下的所有內容都將被加密。每次重新啟動系統時,您可能必須手動掛載數據集。掛載加密數據集時始終使用 -l 標誌。系統將提示您輸入密碼。輸入用於加密池的密碼以繼續。

$ sudo zfs mount -l test-pool/encrypted
$ df -hT | grep zfs

如何獲取、回滾和銷毀 ZFS 快照

拍個快照

在 ZFS 中創建快照是一個非常簡單直接的過程。你可以使用它 zfs 快照 該命令後跟快照的名稱作為創建快照的參數。在這個例子中,我們使用 測試池/mysql 創建快照。您可以相應地選擇池名稱和數據集。

$ sudo zfs snapshot test-pool/[email protected]

使用以下命令檢查拍攝的快照:

$ zfs list -t snapshot

重命名快照

您還可以使用更改快照名稱 重命名 zfs 快照名稱跟在命令後面。在此示例中,快照的名稱是“測試工具/[email protected]“改名為”測試池/[email protected]

快照回滾

您可以使用命令回滾快照 zfs 回滾 使用快照名稱恢復自特定快照以來所做的所有更改。在這個例子中, 測試池/mysql 文件系統回滾到週日的快照。

$ sudo zfs rollback test-pool/[email protected]

回滾完成後,您可以驗證文件是否存在於目錄中。

結論是

本文提供了 zfs 的基本介紹。 您學習瞭如何創建 ZFS 存儲池、銷毀存儲池以及指定掛載點。我們還了解了一些關於 zfs 池加密的基本概念,即創建快照並將快照回滾到最舊版本的過程。感謝您閱讀本文。我們感謝您的反饋和建議。