SuperAPI AI 工具集

zfs

部署与运维

查看项目

更新于 10-16 07:07

技能介绍

用途

本技能用于 ZFS(OpenZFS)存储系统的日常管理与故障排查,提供从池创建、数据集管理到快照复制、磁盘替换、加密等操作的命令参考,并给出健康状态判断标准与常见故障的处理思路。

主要能力

  • 池管理:创建镜像池、RAID-Z1 池,查看状态与容量,导出/导入、销毁、添加 vdev、升级池特性。
  • 数据集管理:创建、列出、挂载/卸载数据集,设置与查询属性(如 compression=lz4)。
  • 快照与复制:创建、列出、销毁、回滚快照;本地与远程 SSH 的 send/receive,支持增量发送。
  • 数据校验与修复:启动 scrub、查看进度与结果,替换故障磁盘并查看 resilver 进度。
  • 性能与诊断:查看池 I/O 统计、自定义列输出、ARC 命中率计算。
  • 故障排查:针对 DEGRADED、FAULTED、校验错误、导入失败、空间不足、快照无法销毁、增量发送不匹配等给出检查与修复方向。

使用方式

技能以命令表形式组织,覆盖 zpool、zfs、zdb 等 CLI 工具。安装方面,Debian/Ubuntu 使用 apt install zfsutils-linux;RHEL/Fedora 需先添加 OpenZFS 仓库再 dnf install zfs。内核模块为 zfs.ko,通过 modprobe zfs 加载。配置文件位于 /etc/zfs/,服务由 systemd 单元 zfs-import-cache.service、zfs-mount.service、zfs-share.service 管理,日志可通过 journalctl 或 dmesg 查看。版本检查使用 zpool version / zfs version。

适用场景

适用于需要管理 ZFS 存储池、数据集、快照与复制的运维场景,包括磁盘故障后的替换与恢复、定期 scrub 校验、容量与性能监控,以及跨主机数据复制。

限制与注意事项

  • ARC 并非内存泄漏,会按设计使用可用内存,仅在内存压力导致问题时才需限制。
  • 去重表(DDT)内存开销大,建议优先使用 compression=lz4 或 zstd。
  • vdev 一旦加入池,设备数量不可缩减(近期 OpenZFS 版本仅支持移除镜像 vdev)。
  • 池特性标志升级为单向操作,升级后需相同或更新版本的 OpenZFS 才能导入。
  • ECC 内存非强制要求,但在大数据量、高写入场景下强烈推荐。
  • L2ARC 与 SLOG 设备需谨慎使用,SLOG 故障可能导致池需要恢复。
  • recordsize 对数据库性能有影响,默认 128K,PostgreSQL/MySQL 建议 16K 或 8K,且更改仅对新写入生效。
  • 快照空间统计仅反映该快照独有的块,删除快照不会立即释放空间,直到最后一个持有独有块的快照被销毁。

参考资料包括 zfs-properties.md(属性参考)、common-patterns.md(常见模式示例)、docs.md(官方文档与 man 页链接)。