Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

ZFS 管理操作指令

Posted on 2025-11-032025-11-03 by Rico

ZFS 是 Proxmox、FreeNAS(TrueNAS)、Ubuntu Server 等系統中常見的「進階檔案系統與儲存管理架構」,它整合了 Volume Manager(磁碟管理)+ File System(檔案系統)+ Snapshot(快照)+ RAID 機制 + 壓縮 + 去重 等功能,是目前最完整、可靠的檔案系統之一。

一、ZFS 的核心觀念(Architecture & Concepts)

概念層級名稱說明
Poolzpool最上層儲存池,由多顆磁碟組成,類似 RAID。ZFS 將所有空間視為一個整體供檔案系統分配。
VDEV (Virtual Device)Pool 內的實體儲存單元,可能是單顆磁碟、鏡像組(mirror)、RAIDZ1/2/3 組合。
Dataset / FilesystemzfsPool 內的邏輯子區,類似目錄,可獨立設定壓縮、快照、配額等。
Volumezvol區塊裝置(block device),常用於 VM 或 iSCSI。
Snapshot時間點快照,僅儲存差異,可快速回復。
Clone從快照建立可寫入的複本。
ARC / L2ARC記憶體(ARC)與 SSD(L2ARC)快取機制,加速存取。
ZIL / SLOG日誌寫入加速區(通常是高效能 SSD),加速同步寫入操作。

二、ZFS 的主要特性(Key Features)

功能說明
整合的 RAID 管理支援 mirror、RAIDZ1、RAIDZ2、RAIDZ3,不需外部 RAID 控制卡。
Copy-on-Write (COW)寫入時不覆蓋舊資料,避免崩潰造成損毀。
內建壓縮(lz4)自動壓縮資料節省空間,幾乎無效能損失。
快照與複製快速建立資料時間點備份,支援 clone 與 send/receive 傳輸。
資料完整性檢查以 checksum 機制確保資料一致性,防止 silent data corruption。
自我修復(self-healing)若發現 checksum 錯誤,從鏡像或 parity 自動修復。
彈性空間分配所有 dataset 共享 pool 空間,不需預先劃分固定容量。

三、常見應用場景(Practical Use Cases)

應用說明
Proxmox VM 儲存池可作為 VM 的主要儲存,支援 snapshot、clone、replication。
NAS 系統(如 TrueNAS)用於高可靠資料儲存,支援 SMB、NFS、iSCSI。
備份與同步系統利用 zfs send/receive 傳輸快照至遠端備份主機。
資料庫儲存ZFS checksum 與快照方便資料保護與回溯。
Docker / LXC 儲存後端搭配壓縮及 copy-on-write,節省空間且快速建立容器。

四、ZFS 基本指令與操作範例

(1)建立 ZFS Pool

# 建立單一磁碟 pool
zpool create tank /dev/sdb

# 建立 mirror (RAID1)
zpool create tank mirror /dev/sdb /dev/sdc

# 建立 raidz1 (類似 RAID5)
zpool create tank raidz1 /dev/sdb /dev/sdc /dev/sdd

# 建立 raidz2 (類似 RAID6)
zpool create tank raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde

(2)查看 Pool 狀態

zpool status
zpool list

(3)建立 Dataset(檔案系統)

# 建立一個 dataset
zfs create tank/data

# 設定壓縮
zfs set compression=lz4 tank/data

# 設定 quota (上限 100G)
zfs set quota=100G tank/data

# 設定 mount point
zfs set mountpoint=/mnt/data tank/data

(4)建立 Volume(zvol,用於VM或iSCSI)

zfs create -V 50G tank/vm01

(5)快照與回復

# 建立快照
zfs snapshot tank/data@2025-10-21

# 查看快照
zfs list -t snapshot

# 回復快照
zfs rollback tank/data@2025-10-21

# 刪除快照
zfs destroy tank/data@2025-10-21

(6)備份與傳輸

# 將快照以串流方式輸出
zfs send tank/data@2025-10-21 > /backup/data-20251021.zfs

# 將快照傳輸到遠端主機
zfs send tank/data@2025-10-21 | ssh remote zfs receive backup/data

# 增量傳輸(只傳變更)
zfs send -i tank/data@2025-10-20 tank/data@2025-10-21 | ssh remote zfs receive backup/data

(7)ZFS 健康檢查與維護

# 檢查整體健康
zpool status -v

# 修復(scrub)
zpool scrub tank

# 停止 scrub
zpool scrub -s tank

# 匯入 / 匯出 Pool
zpool export tank
zpool import tank

(8)刪除 Dataset 或 Pool

# 刪除 dataset
zfs destroy tank/data

# 刪除整個 pool(謹慎)
zpool destroy tank

五、ZFS 管理觀念與日常維護建議

項目建議
磁碟命名建議使用 /dev/disk/by-id/ 以避免開機後磁碟順序變動。
定期 scrub每月執行 zpool scrub 以檢查並修復潛在錯誤。
監控健康狀態使用 zpool status、zpool list、zfs list 檢視空間與健康狀態。
備份策略快照 ≠ 備份。仍需定期使用 zfs send 將快照同步至異地。
快取配置大量 RAM 可提升效能(ARC);可配置 SSD 作為 SLOG(同步加速)或 L2ARC(快取)。
調整壓縮與 dedup預設建議開啟 compression=lz4;dedup=on 除非確定記憶體足夠,否則不建議開。

六、整體優缺點總覽

優點缺點
高資料完整性、避免 silent corruption記憶體使用量較大(推薦≥8GB)
內建 RAID、快照、壓縮不適合用於傳統 BIOS 開機磁碟(建議另建 root pool)
自我修復機制部分功能需 Unix-like 系統(Linux/BSD)支援
彈性高,適合虛擬化環境學習曲線較高

Recent Posts

  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix
  • 如何在 Postfix 中部署 DANE
  • DANE: DNSSEC-Based TLS Protection

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme