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 級別。您創建的第一個池是 RAID0。 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 池、拍攝快照並將快照回滾到最舊版本的過程的基本概念。感謝您閱讀本文。我們將不勝感激您的反饋和建議。