Linux ZFS 指令大全(OpenZFS 實戰版)

適用:

  • Ubuntu 22.04 / 24.04
  • Debian 12
  • Rocky Linux / AlmaLinux 9
  • OpenZFS 2.x

本文適用於現代 Linux 系統(OpenZFS 2.x)


一、安裝 ZFS(Linux)

✅ Ubuntu / Debian

sudo apt update
sudo apt install zfsutils-linux

✅ Rocky / AlmaLinux

sudo dnf install epel-release
sudo dnf install zfs

啟用模組:

sudo modprobe zfs

確認版本:

zfs --version

二、Zpool(儲存池)管理


✅ 建立 ZFS 儲存池(Mirror)

sudo zpool create -o ashift=12 mpool mirror /dev/sdb /dev/sdc

📌 說明:

  • ashift=12 → 4K 磁碟最佳化(強烈建議)
  • mirror → 類似 RAID1

✅ 建立 RAIDZ1

sudo zpool create -o ashift=12 mpool raidz /dev/sdb /dev/sdc /dev/sdd

✅ 建立 RAIDZ2

sudo zpool create -o ashift=12 mpool raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde

✅ 查看儲存池

sudo zpool list
sudo zpool status

✅ 增加容量(新增 vdev)

⚠️ 注意:ZFS 無法擴充單一 vdev,只能新增一組 vdev

sudo zpool add mpool mirror /dev/sde /dev/sdf

✅ 加入 Hot Spare

sudo zpool add mpool spare /dev/sdg

✅ 更換故障磁碟

sudo zpool replace mpool /dev/sdb /dev/sdh

✅ Scrub(資料一致性檢查)

sudo zpool scrub mpool

查看進度:

sudo zpool status mpool

建議每月執行一次。


✅ 匯出 / 匯入 Pool

匯出(卸載):

sudo zpool export mpool

匯入:

sudo zpool import mpool

✅ 刪除 Pool(⚠️ 會刪除所有資料)

sudo zpool destroy mpool

三、ZFS 檔案系統管理


✅ 建立檔案系統

sudo zfs create mpool/data

✅ 設定掛載目錄

sudo zfs set mountpoint=/data mpool/data

✅ 建立子檔案系統

sudo zfs create mpool/data/projects

✅ 刪除檔案系統

sudo zfs destroy mpool/data/projects

✅ 查看檔案系統

sudo zfs list

四、Snapshot(快照)

ZFS 最強功能之一 ✅


✅ 建立 Snapshot

sudo zfs snapshot mpool/data@2026-05-06

✅ 查看 Snapshot

sudo zfs list -t snapshot

✅ 還原 Snapshot

sudo zfs rollback -r mpool/data@2026-05-06

✅ 刪除 Snapshot

sudo zfs destroy mpool/data@2026-05-06

✅ 建立可寫 Clone

sudo zfs clone mpool/data@2026-05-06 mpool/testclone

五、壓縮與空間管理


✅ 啟用壓縮(推薦)

sudo zfs set compression=lz4 mpool/data

✅ lz4 幾乎無效能損耗,強烈建議開啟。


✅ 關閉壓縮

sudo zfs set compression=off mpool/data

✅ 設定容量限制(Quota)

sudo zfs set quota=100G mpool/data

✅ 設定保留空間(Reservation)

sudo zfs set reservation=20G mpool/data

六、ZFS Volume(區塊設備)

類似虛擬磁碟,可給 iSCSI / VM 使用。


✅ 建立 Volume

sudo zfs create -V 10G mpool/vm_disk

✅ 查看裝置

ls -l /dev/zvol/mpool/

✅ 刪除 Volume

sudo zfs destroy mpool/vm_disk

七、Linux 最佳實務建議 ✅


✅ 使用磁碟 ID(避免重開機順序改變)

查看:

ls -l /dev/disk/by-id/

建立 pool 範例:

sudo zpool create -o ashift=12 mpool mirror \
/dev/disk/by-id/ata-Samsung_SSD_1 \
/dev/disk/by-id/ata-Samsung_SSD_2

✅ 強烈建議使用 by-id 而非 /dev/sdX


✅ 查看磁碟

lsblk

✅ 自動開機掛載(ZFS 會自動處理)

sudo systemctl enable zfs-import-cache
sudo systemctl enable zfs-mount

八、常用維護指令總整理

功能指令
查看 Poolzpool list
查看 Pool 狀態zpool status
查看 Datasetzfs list
查看 Snapshotzfs list -t snapshot
開始 Scrubzpool scrub mpool
查看 I/Ozpool iostat 2

✅ 結語

ZFS 在 Linux 上已非常成熟,適合:

  • NAS
  • VM 主機
  • Docker 儲存
  • 資料備份伺服器
  • Home Lab
  • 企業儲存環境