Btrfs 和 ZFS 文件系统常用命令与配置

一、Btrfs (B-Tree File System)

Btrfs Wiki:Btrfs - Arch Linux 中文维基

1. 基本介绍

Btrfs 是 Linux 原生的现代文件系统,具有以下特点:

  • 写时复制(CoW):数据修改时不会覆盖原有数据
  • 内置 RAID 支持:支持 RAID 0/1/5/6/10
  • 子卷(Subvolume):可创建独立的子卷进行管理
  • 快照(Snapshot):快速创建文件系统快照
  • 透明压缩:支持 zstd/lzo 压缩算法
  • 数据校验:自动检测数据损坏

2. 常用命令

# 创建 Btrfs 文件系统

mkfs.btrfs /dev/sdX

# 创建带 RAID1 的 Btrfs

mkfs.btrfs -m raid1 -d raid1 /dev/sdX /dev/sdY

# 启用压缩(zstd 算法)

mount -o compress=zstd /dev/sdX /mnt

# 启用空间缓存(提升性能)

mount -o space_cache=v2 /dev/sdX /mnt

# 创建子卷

btrfs subvolume create /mnt/subvol1

# 列出子卷

btrfs subvolume list /mnt

# 删除子卷

btrfs subvolume delete /mnt/subvol1

# 创建快照

btrfs subvolume snapshot /mnt/subvol1 /mnt/snapshots/snap1

# 回滚到快照

btrfs subvolume set-default /mnt/snapshots/snap1 /mnt

# 平衡文件系统(重新分配数据)

btrfs balance start /mnt

# 检查文件系统

btrfs scrub start /mnt

二、ZFS (Zettabyte File System)

ZFS 官方中文文档:Oracle Solaris ZFS 文件系统

1. 基本介绍

  • 存储池(Zpool):整合多个物理设备
  • 数据集(Dataset):类似子卷的概念
  • ARC 缓存:自适应替换缓存算法
  • 数据完整性:端到端校验和
  • ZIL 和 SLOG:提升同步写入性能
  • 原生加密:支持 AES-256 加密

2. 常用命令

# 创建存储池

zpool create poolname mirror /dev/sdX /dev/sdY

# 添加盘到存储池

zpool add poolname /dev/sdZ

# 查看存储池状态

zpool status -v

# 创建 ZFS 文件系统

zfs create poolname/dataset1

# 设置压缩算法

zfs set compression=lz4 poolname/dataset1

# 设置配额

zfs set quota=10G poolname/dataset1

# 创建快照

zfs snapshot poolname/dataset1@snap1

# 回滚快照

zfs rollback poolname/dataset1@snap1

# 克隆快照

zfs clone poolname/dataset1@snap1 poolname/clone1

# 设置记录日志设备(SLOG)

zpool add poolname log /dev/sdL

# 设置缓存设备(L2ARC)

zpool add poolname cache /dev/sdC

# 检查数据完整性

zpool scrub poolname

# 恢复损坏的文件

zfs send poolname/dataset1@snap1 | zfs receive poolname/recovered

三、Btrfs vs ZFS 对比

特性                          Btrfs                                   ZFS

原生支持                  Linux                                 跨平台

RAID5/6                  实验性                                  成熟

压缩算法                  zstd, lzo                       lz4, gzip, zstd

加密                      需要上层工具                      原生支持

内存占用                   较低                              较高(需调优)

社区支持               Linux 内核维护                OpenZFS 社区

适用场景             桌面/轻量服务器                  企业级存储

四、使用建议

1. 桌面用户:推荐 Btrfs,集成度好,内核原生支持

2. NAS/企业存储:推荐 ZFS,功能更完善,稳定性高

3. 关键数据:无论选择哪种,都应配置 RAID1/10 和定期快照

 

posted @ 2025-08-18 14:23  demoduan  阅读(249)  评论(0)    收藏  举报