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 池加密的基本概念,即創建快照並將快照回滾到最舊版本的過程。感謝您閱讀本文。我們感謝您的反饋和建議。