OpenZFS/ZFS 数据集属性详解:原生属性与用户自定义属性

OpenZFS/ZFS 数据集属性详解:原生属性与用户自定义属性

zfs OpenZFS on Linux and FreeBSD zfs 项目地址: https://gitcode.com/gh_mirrors/zf/zfs

概述

OpenZFS 文件系统中的数据集(包括文件系统、卷、快照和书签)都拥有一系列属性,这些属性分为两大类:原生属性用户自定义属性。理解这些属性的作用和配置方法对于有效管理 ZFS 存储系统至关重要。

原生属性详解

原生属性是 ZFS 系统内置的属性,它们要么用于导出数据集统计信息(只读),要么用于控制 ZFS 行为(可编辑)。这些属性会根据数据集类型自动继承父数据集的属性值,除非显式覆盖。

空间统计类属性(只读)

这些属性提供了数据集空间使用情况的详细信息:

  1. available/avail:数据集及其所有子数据集可用的空间量,考虑了整个存储池的共享空间特性。

  2. compressratio:压缩比率,显示已用空间的压缩效果(如1.5表示压缩后节省了33%空间)。

  3. used:数据集及其所有后代消耗的空间总量,这是检查配额和预留的主要值。

  4. referenced/refer:数据集实际引用的数据量,可能与其他数据集共享。

  5. logicalreferenced/lrefer:逻辑可访问空间量,忽略压缩和副本属性的影响。

  6. written:自上一个快照以来写入的新数据量。

  7. usedby* 系列属性(需要zpool版本13+):

    • usedbychildren:子数据集使用的空间
    • usedbydataset:数据集自身使用的空间
    • usedbyrefreservation:预留空间使用的量
    • usedbysnapshots:快照占用的空间

标识类属性(只读)

  1. guid:64位全局唯一标识符,在数据集整个生命周期中不变,跨池传输快照时保持相同。

  2. creation:数据集创建时间戳。

  3. type:数据集类型(filesystem/volume/snapshot/bookmark)。

  4. origin:克隆数据集的来源快照。

  5. clones:快照的克隆列表,包含此快照作为origin的所有克隆。

用户和组空间统计

  1. userused@user:指定用户占用的空间量,支持多种用户标识格式:

    • POSIX名称(joe)
    • POSIX数字ID(789)
    • SID名称(joe.smith@mydomain)
    • SID数字ID(S-1-123-456-789)
  2. userobjused@user:用户占用的对象数量(包括扩展属性对象)。

  3. groupused@group:指定组占用的空间量。

  4. projectused@project:指定项目占用的空间量(基于项目ID)。

特殊用途属性

  1. encryptionroot:加密数据集的密钥继承来源点。

  2. keystatus:加密密钥状态(none/available/unavailable)。

  3. receive_resume_token:部分接收操作的状态令牌,用于恢复中断的zfs receive。

  4. volblocksize:卷的块大小(创建后不可更改,默认为16KiB)。

可配置的行为控制属性

这些属性可以调整以改变ZFS的行为:

  1. aclinherit:控制ACL继承方式:

    • discard:不继承任何ACE
    • noallow:只继承"deny"条目
    • restricted:过滤掉write_owner和write_acl权限
    • passthrough:精确继承所有ACE
    • passthrough-x:除特殊执行位外精确继承
  2. compression:启用/禁用数据压缩(on/off等)。

  3. copies:设置数据副本数量(1-3),提供额外冗余。

  4. dedup:启用重复数据删除功能(谨慎使用,需要大量内存)。

  5. encryption:控制数据集加密(on/off/aes-128-ccm等)。

用户自定义属性

用户属性是用户定义的任意名称-值对,它们不会影响ZFS行为,但可用于标记和分类数据集。用户属性名称必须包含冒号(:)以区别于原生属性,例如:

com.example:department=finance

用户属性支持继承,可以通过zfs get -r查询,非常适合用于自动化脚本或管理分类。

最佳实践建议

  1. 监控关键空间属性(used/available/referenced)以防止空间耗尽。

  2. 合理设置volblocksize以匹配工作负载(数据库通常需要更大块大小)。

  3. 谨慎使用dedup属性,确保系统有足够ARC内存。

  4. 利用用户属性实现自动化管理,如备份策略标记。

  5. 定期检查加密数据集的keystatus以确保数据可访问。

  6. 使用written@snapshot属性分析特定时间段内的数据变化量。

通过深入理解这些属性,系统管理员可以更有效地监控、调优和管理ZFS存储系统,充分发挥其强大功能。

zfs OpenZFS on Linux and FreeBSD zfs 项目地址: https://gitcode.com/gh_mirrors/zf/zfs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅俐筝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值