FreeBSD中zfs数据集的属性

zfs数据集的属性分为两大类,一个是本地属性(native properties);另一个是用户自定义属性(user-defined properties),也叫用户属性(user properties)。
本地属性要么是显示内部统计信息(即只读),要么是用来控制zfs行为(即可编辑)。

用户属性

用户属性对zfs行为没有影响,仅用来对数据集进行注释。
用户属性名必须包含冒号(:)字符,以将其与本地属性区分开。
用户属性名可能包含大小写字母、数字以及某些标点符号(冒号:、短划线-、句号.、下划线_)。
预期的约定是,属性名分为两个部分,例如module:property,但zfs不强制使用此命名方式。
用户属性名最多包含256个字符,并且不能以短划线开头。
在以编程方式使用用户属性时,强烈建议为属性名的模块组件使用反向DNS域名,以减少两个独立开发的包出于不同目的使用相同属性名的可能性。
用户属性的值是任意字符串,总是被继承,并且永远不会被验证。
所有操作属性的命令(zfs list、zfs get、zfs set等)都可以用于操作本机属性和用户属性。
使用zfs inherit命令清除用户属性。如果属性未在任何父数据集中定义,则将完全删除该属性。
属性值限制为8192字节。

以上是用户属性的一些特征,由于它们不对zfs数据集产生影响,故不在研究之列。

本地属性

本地属性也分为只读和可编辑两大类。
可编辑属性默认从父数据集继承,也可以被重新设置。某些属性仅适用于某些类型的数据集(例如文件系统、卷或快照)。
若属性值为数字,可以用后缀(k、KB、M、Gb等;最多到Z,表示zettabyte)使其更易读。比如,以下三种表示方法是等效的:
1535M 1.5g 1.50GB
若属性值不是数字,则区分大小写,而且除了mountpoint、sharenfs、sharesmb这三个的值可以包含大写字母之外,其他都必须用小写字母。

只读属性

只读属性由有关数据集的只读统计信息组成,既不能设置,也不能继承。适用于所有数据集类型(另有说明者除外)。
默认排位 属性名称 说明
4 available
(可用)
若当前池中没有其他活动,其值表示数据集及其子级可用的空间量。
由于空间在池中共享,可用性可能受到许多因素的限制,包括物理池大小、配额、保留或池中的其他数据集。
此属性的短名称为avail
6 compressratio
(压缩比)
对于非快照,此数据集的used空间实现的压缩比,表示为乘数(如1.06x)。
used属性包括子数据集,对于克隆,不包括与源快照共享的空间。
对于快照,compressratiorefcompressratio属性相同。
使用命令zfs set compression=on dataset可以打开数据集的压缩属性。默认是off
24 createtxg 在其中创建数据集的事务组(transaction group——txg)。
书签和最初绑定到的快照具有相同的createtxg。
此属性适用于对快照列表进行排序,例如增量发送和接收。
2 creation 数据集的创建日期时间,精确到分钟
N/A clones 对于快照,此属性是以逗号分隔的文件系统或卷列表,这些文件系统或文件卷是此快照的克隆。
克隆的origin属性是此快照。
如果clones属性的值不为空,则无法销毁此快照(即使使用-r或-f选项)。
通过使用zfs promote命令升级克隆,可以交换源和克隆的角色。
N/A defer_destroy 如果已使用zfs destroy -d命令将快照标记为延迟销毁,则此属性处于on状态,否则此属性处于off状态。
N/A encryptionroot 对于加密数据集,只是数据集当前从何处继承其加密密钥。
encryptionroot加载或卸载密钥将隐式(implicitly)加载/卸载任何继承数据集的密钥。
克隆将始终与其源共享加密密钥。
57 filesystem_count 数据集树中此位置下存在的文件系统和卷的总数。
只有在数据集所在的树中的某个位置设置了filesystem_limit时,此值才可用。
N/A keystatus 指示加密密钥当前是否加载到zfs中。
可能的值为:noneavailableunavailable
37 guid 此数据集或书签的64位GUID,在其整个生存期内不会更改。
将快照发送到另一个池时,接收到的快照具有相同的GUID。
guid适用于跨池标识快照。
53 logicalreferenced
(逻辑可用空间)
此数据集“逻辑上”可使用的空间量。
逻辑空间忽略了compression(压缩)和copies(副本)属性的影响,提供了一个更接近应用程序看到的数据量的值。
但是它确实包括元数据消耗的空间。
可简写做lrefer
52 logicalused
(逻辑已用空间)
此数据集及其所有子数据集“逻辑上”消耗的空间量。
逻辑空间忽略了compression(压缩)和copies(副本)属性的影响,提供了一个更接近应用程序看到的数据量的值。
但是,它确实包括元数据消耗的空间。
可简写作lused
7 mounted 对于文件系统,指示文件系统当前是否已装入。
此属性可以是yesno
45 objsetid 池中此数据集的唯一标识符。
与数据集的guid不同,当使用发送/接收操作复制快照时,数据集的objsetid不会传输到其他池。
删除数据集后,此id可以重新被分配给新数据集。
N/A origin
(起源)
对于克隆的文件系统或卷,从中创建克隆的快照。
N/A receive_resume_token 对于已从zfs receive -s保存部分完成状态的文件系统或卷,可以将此不透明令牌提供给zfs send -t以恢复并完成zfs recerive
N/A redact_snaps 对于书签,这是快照GUID的列表,书签包含其编校列表。
对于快照,这是相对于快照进行编辑的快照GUID的列表。
5 referenced 此数据集可访问的数据量,可能与池中的其他数据集共享,也可能不与之共享。
创建快照或克隆时,它最初引用的空间量与创建快照的文件系统或快照相同,因为其内容相同。
可简写做refer
50 refcompressratio 此数据集引用空间的压缩比,表示位乘数。