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