在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

介绍 ZFS 属性

属性是用来对文件系统、卷、快照和克隆的行为进行控制的主要机制。除非另有说明,否则本节中阐述的属性适用于所有数据集类型。

属性分为两种类型:本机属性和用户定义的属性。本机属性用于提供内部统计信息或控制 ZFS 文件系统行为。此外,本机属性是可设置的或只读的。用户属性对 ZFS 文件系统行为没有影响,但可通过用户环境中有意义的方式来注释数据集。有关用户属性的更多信息,请参见ZFS 用户属性

大多数可设置的属性也是可继承的。可继承属性是这样的属性:如果为父文件系统设置了该属性,则该属性会向下传播给其所有后代。

所有可继承属性都有一个关联的源,此源指示获得属性的方式。属性的源可具有以下值:

local

表示属性是使用 zfs set 命令对数据集进行显式设置的,如设置 ZFS 属性中所述。

inherited from dataset-name

表示属性是从指定的祖先继承而来。

default

表示属性值不是继承而来或在本地设置。如果没有祖先具有属性源 local,则会使用此源。

下表介绍了只读的和可设置的本机 ZFS 文件系统属性。只读本机属性在表中注明为“只读属性”。此表中列出的所有其他本机属性均为可设置的属性。有关用户属性的信息,请参见ZFS 用户属性

表 5-1  ZFS 本机属性说明
属性名称
类型
缺省值
说明
aclinherit
字符串
secure
控制创建文件和目录时继承 ACL 项的方式。该属性的值包括 discardnoallowsecurepassthrough。有关这些值的说明,请参见ACL 属性
aclmode
字符串
groupmask
控制 chmod 操作过程中修改 ACL 项的方式。该属性的值包括 discardgroupmaskpassthrough。有关这些值的说明,请参见ACL 属性
atime
布尔型
on
控制在读取文件时是否更新文件的访问时间。禁用该属性可避免在读取文件时产生写入流量,因此可显著提高性能,但可能会使邮件程序与相似的实用程序感到困惑。
available
数字
N/A
只读属性,用于指明可供某个文件系统及其所有子级使用的磁盘空间量,假定池中没有其他活动。由于池中会共享磁盘空间,因此可用空间会受到许多因素的限制,包括物理池大小、配额、预留空间和池中的其他数据集。
此属性的缩写为 avail
有关磁盘空间记帐的更多信息,请参见ZFS 磁盘空间记帐
canmount
布尔型
on
控制是否可以使用 zfs mount 命令挂载文件系统。在任意文件系统中均可设置该属性,该属性本身不可继承。不过,当此属性设置为 off 时,后代文件系统可以继承挂载点,但永远不会挂载文件系统本身。
当设置了 noauto 选项时,只能显式挂载和卸载文件系统。文件系统不会在创建或导入时自动挂载,也不能通过 zfs mount–a 命令挂载或通过 zfs unmount–a 命令卸载。
有关详细信息,请参见canmount 属性
casesensitivity
字符串
mixed
此属性指示文件系统使用的文件名匹配算法应当是 casesensitivecaseinsensitive,还是允许这两种匹配方式的组合 (mixed)。传统上,UNIX 和 POSIX 文件系统的文件名区分大小写。
此属性的值为 mixed 时表示文件系统对区分大小写和不区分大小写的匹配行为要求均可支持。当前,在支持混合行为的文件系统上,不区分大小写的匹配行为仅限于 Oracle Solaris SMB 服务器产品。有关使用 mixed 值的更多信息,请参见casesensitivity 属性
无论 casesensitivity 属性的设置是什么,文件系统都会保留创建文件时指定的名称的大小写。在创建文件系统后无法更改此属性。
checksum
字符串
on
控制用于验证数据完整性的校验和。缺省值为 on,这将自动选择合适的算法,当前算法为 fletcher4。值包括 on, off, fletcher2, fletcher4, sha256sha256+mac。值为 off 将禁用对用户数据的完整性检查。建议不要使用值 off
compression
字符串
off
启用或禁用数据集压缩。该属性的值包括 onofflzjbgzipgzip- N。目前,将此属性设置为 lzjbgzipgzip-N 与将此属性设置为 on 具有相同的效果。在包含现有数据的文件系统中启用压缩将只压缩新数据。现有数据不会被压缩。
此属性的缩写为 compress
compressratio
数字
N/A
只读属性,用于指明数据集实现的压缩率,表示为一个乘数。可通过 zfs set compression=on dataset 命令启用压缩。
根据所有文件的逻辑大小和引用的物理数据量计算此值。它包括通过使用 compression 属性实现的节省量。
copies
数字
1
设置每个文件系统的用户数据副本数。可用的值为 123。这些副本是对任何池级别冗余的补充。用户数据多个副本所使用的磁盘空间将计入相应的文件和数据集,并根据配额和预留空间进行计数。此外,启用多个副本时还会更新 used 属性。由于在现有文件系统中更改此属性仅影响新写入的数据,因此请考虑在创建文件系统时设置此属性。
creation
字符串
N/A
只读属性,用于指明创建数据集的日期和时间。
dedup
字符串
off
控制在 ZFS 文件系统中删除重复数据的功能。可能的值包括 onoffverifysha256[,verify]。针对重复数据删除的缺省校验和是 sha256
有关详细信息,请参见dedup 属性
devices
布尔型
on
控制是否可以打开某个文件系统中的设备文件。
encryption
布尔型
off
控制是否对文件系统进行加密。加密的文件系统意味着,数据已编码,文件系统所有者需要有密钥才能访问数据。
exec
布尔型
on
控制是否允许执行某个文件系统中的程序。如果设置为 off,将禁止带 PROT_EXECmmap(2) 调用。
keychangedate
字符串
none
标识在针对指定文件系统的 zfs key –c 操作中上次更改包装密钥的日期。如果未发生任何密钥更改操作,此只读属性的值与文件系统的创建日期相同。
keysource
字符串
none
标识对文件系统密钥进行封装的密钥的格式和位置。有效的属性值包括 rawhexpassphrase,promptfile。使用 zfs key –l 命令创建、挂载或装入文件系统时,必须提供该密钥。如果为新文件系统启用加密,则缺省的 keysourcepassphrase,prompt
keystatus
字符串
none
标识文件系统的加密密钥状态的只读属性。文件系统密钥的可用性由 availableunavailable 予以指示。对于没有启用加密的文件系统,则显示 none
logbias
字符串
latency
控制 ZFS 优化该文件系统的同步请求的方式。如果 logbias 设置为 latency,ZFS 将使用池的不同日志设备(如有)低延迟地处理请求。如果 logbias 设置为 throughput,ZFS 将不使用池的不同日志设备。相反,ZFS 将优化同步操作,以提高池的全局吞吐量并有效使用资源。缺省值为 latency
mlslabel
字符串
None
有关多级别文件系统中 mlslabel 属性行为的描述,请参见 multilevel 属性。下面的 mlslabel 描述适用于非多级别文件系统。
提供敏感标签,确定文件系统是否可以在 Trusted Extensions 区域中挂载。如果有标签的文件系统与有标签的区域相符,则可以从有标签的区域挂载和访问该文件系统。缺省值为 none。仅当启用了 Trusted Extensions 且具有相应的特权时才能修改此属性。
mounted
布尔型
N/A
只读属性,用于指明当前是否挂载了文件系统、克隆或快照。该属性不适用于卷。值可以是 yesno
mountpoint
字符串
N/A
控制用于此文件系统的挂载点。当文件系统的 mountpoint 属性发生更改时,将取消挂载该文件系统以及继承该挂载点的任何后代。如果新值为 legacy,则该文件系统和子级将保持卸载状态。否则,如果属性以前为 legacynone,或者该文件系统和子级在属性发生更改之前处于挂载状态,则会自动在新位置重新挂载它们。此外,任何共享文件系统都将取消共享,并在新位置进行共享。
有关使用该属性的更多信息,请参见管理 ZFS 挂载点
multilevel
布尔型
off
此属性只能在启用了 Trusted Extensions 的系统上使用。缺省值为 off。
多级别文件系统中的对象带有各自的标签,这些标签使用自动生成的显式敏感标签属性。可以就地重新标记对象,方法是使用 setlabelsetflabel 接口更改此标签属性。
根文件系统、Oracle Solaris Zone 文件系统或包含已打包的 Solaris 代码的文件系统不应为多级别文件系统。
多级别文件系统中的 mlslabel 属性有所不同。mlslabel 值为文件系统中的对象定义最高可能标签。不允许将文件的标签创建为或重新标记为高于 mlslabel 值的标签。基于 mlslabel 值的挂载策略不适用于多级别文件系统。
对于多级别文件系统,在创建文件系统时可显式设置 mlslabel 属性。否则,会自动创建缺省 mlslabel 属性 ADMIN_HIGH。创建多级别文件之后,可以更改 mlslabel 属性,但不能将其设置为较低级别标签,也不能设置为 none 或将其删除。
primarycache
字符串
all
控制主高速缓存 (ARC) 中缓存的内容。可能的值包括 allnonemetadata。如果设置为 all,则用户数据和元数据都会被缓存。如果设置为 none,则用户数据和元数据都不会被缓存。如果设置为 metadata,则只有元数据会被缓存。如果在现有文件系统上设置这些属性,则根据这些属性的值仅缓存新 I/O。对某些数据集环境而言,不高速缓存用户数据可能会带来一些好处。您必须确定您的环境是否适合设置高速缓存属性。
nbmand
布尔型
off
控制在挂载文件系统时是否应使用 nbmand(非阻塞强制性)锁。此属性仅适用于 SMB 客户机。对此属性所做的更改只有在卸载文件系统并重新挂载后才有效。
normalization
字符串
None
此属性指示每次对两个文件名进行比较时,文件系统是否应对文件名执行 unicode 标准化,以及应使用哪种标准化算法。文件名在存储时始终保持未修改状态,并将其标准化作为任何比较进程的一部分。如果将此属性设置为 none 以外的合法值,并且不指定 utf8only 属性,则 utf8only 属性自动设置为 onnormalization 属性的缺省值为 none。在创建文件系统后无法更改此属性。
origin
字符串
N/A
克隆的文件系统或卷的只读属性,用于标识创建克隆所在的快照。只要克隆存在,便不能销毁克隆源(即使使用 –r–f 选项也是如此)。
非克隆文件系统的 origin 为 none
quota
数字(或 none
none
限制文件系统及其后代可以占用的磁盘空间量。该属性可对已使用的磁盘空间量强制实施硬限制,包括后代(含文件系统和快照)占用的所有空间。对已有配额的文件系统的后代设置配额不会覆盖祖先的配额,但会施加额外的限制。不能对卷设置配额,因为 volsize 属性可用作隐式配额。
有关设置配额的信息,请参见设置 ZFS 文件系统的配额
rekeydate
字符串
N/A
只读属性,指示上次因对此文件系统执行 zfs key –Kzfs clone – K 操作而导致数据加密密钥发生更改的日期。如果未执行 rekey 操作,则此属性的值与 creation 日期相同。
readonly
布尔型
off
控制某个数据集是否可以修改。如果设置为 on,则不能进行任何修改。
此属性的缩写为 rdonly
recordsize
数字
128K
为文件系统中的文件指定建议的块大小。
此属性的缩写为 recsize。有关详细说明,请参见recordsize 属性
referenced
数字
N/A
只读属性,用于指明数据集可访问的数据量,这些数据可能会也可能不会与池中的其他数据集共享。
创建快照或克隆时,首先会引用与创建该属性时所在的文件系统或快照相同的磁盘空间量,因为其内容相同。
此属性的缩写为 refer
refquota
数字(或 none)
none
设置数据集可以占用的磁盘空间量。此属性对使用的空间量强制实施硬限制。此硬限制不包括后代(如快照和克隆)所使用的磁盘空间。
refreservation
数字(或 none)
none
设置为数据集(不包括快照和克隆等后代)保留的最小磁盘空间量。如果使用的磁盘空间量低于该值,则认为数据集正在使用 refreservation 指定的空间量。refreservation 预留空间计算在父数据集的已用磁盘空间内,并会针对父数据集的配额和预留空间进行计数。
如果设置了 refreservation,则仅当在此预留空间之外有足够的可用池空间来容纳数据集中的当前引用字节数时,才允许使用快照。
此属性的缩写为 refreserv
reservation
数字(或 none)
none
设置为文件系统及其后代所保留的最小磁盘空间量。如果使用的磁盘空间量低于该值,则认为文件系统正在使用其预留空间指定的空间量。预留空间计入父文件系统的已用磁盘空间内,并将计入父文件系统的配额和预留空间。
此属性的缩写为 reserv。
有关更多信息,请参见设置 ZFS 文件系统的预留空间
rstchown
布尔型
on
指示文件系统所有者是否可以准许文件所有权更改。缺省情况下禁止 chown 操作。当 rstchown 设置为 off 时,用户具有 PRIV_FILE_CHOWN_SELF 特权,可执行 chown 操作。
secondarycache
字符串
all
控制辅助高速缓存 (L2ARC) 中缓存的内容。可能的值包括 allnonemetadata。如果设置为 all,则用户数据和元数据都会被缓存。如果设置为 none,则用户数据和元数据都不会被缓存。如果设置为 metadata,则只有元数据会被缓存。
setuid
布尔型
on
控制文件系统中是否考虑 setuid 位。
shadow
字符串
None
将某个 ZFS 文件系统标识为 URI 描述的文件系统的影子。数据将从 URI 标识的文件系统迁移到设置了该属性的影子文件系统。要实现完整迁移,要迁移的文件系统必须为只读的。
share.nfs
字符串
off
控制是否创建和发布 ZFS 文件系统的 NFS 共享并控制使用的选项。您也可以使用 zfs share 命令发布 NFS 共享,使用 zfs unshare 命令取消发布 NFS 共享。使用 zfs share 命令发布 NFS 共享时还需要设置 NFS 共享属性。有关设置 NFS 共享属性的信息,请参见共享和取消共享 ZFS 文件系统
有关共享 ZFS 文件系统的更多信息,请参见共享和取消共享 ZFS 文件系统
share.smb
字符串
off
控制是否创建和发布 ZFS 文件系统的 SMB 共享并控制使用的选项。您也可以使用 zfs share 命令发布 SMB 共享,使用 zfs unshare 命令取消发布 SMB 共享。使用 zfs share 命令发布 SMB 共享时还需要设置 SMB 共享属性。有关设置 SMB 共享属性的信息,请参见共享和取消共享 ZFS 文件系统
snapdir
字符串
hidden
控制 .zfs 目录在文件系统的根目录中是隐藏还是可见。有关使用快照的更多信息,请参见ZFS 快照概述
sync
字符串
standard
确定文件系统事务的同步行为。可能的值包括:
  • standard(缺省值),表示将同步文件系统事务(如 fsyncO_DSYNCO_SYNC 等)写入到意图日志 (intent log)。

  • always,确保写入每个文件系统事务并通过一个返回系统调用将其刷新到稳定的存储器。此值会导致显著的性能损失。

  • disabled,表示禁用同步请求。仅当下一次提交事务组时,才将文件系统事务提交到稳定的存储器,这可能会延迟好几秒钟。此值可提供最佳的性能,且没有损坏池的风险。

    注意  - disabled 值非常危险,因为 ZFS 会忽略应用程序的同步事务需求,例如数据库操作或 NFS 操作。在当前活动的根文件系统或 /var 文件系统上设置此值可能会导致意外行为、应用程序数据丢失或重放攻击的漏洞加重。只有完全了解所有相关风险时才能使用此值。

type
字符串
N/A
只读属性,用于指明数据集类型是 filesystem(文件系统或克隆)、volume 还是 snapshot
used
数字
N/A
只读属性,用于指明数据集及其所有后代占用的磁盘空间量。
有关详细说明,请参见used 属性
usedbychildren
数字
off
只读属性,用于指明此数据集子代占用的磁盘空间量,如果该数据集的所有子代被销毁,则将释放此空间量。此属性的缩写为 usedchild
usedbydataset
数字
off
只读属性,用于指明此数据集本身占用的空间量,在首先销毁任何快照并删除任何 refreservation 预留空间后销毁此数据集,将释放该空间量。该属性缩写为 usedds
usedbyrefreservation
数字
off
只读属性,用于指明在数据集上设置的 refreservation 占用的磁盘空间量,如果删除 refreservation,则将释放该空间量。此属性的缩写为 usedrefreserv
usedbysnapshots
数字
off
只读属性,用于指明数据集的快照占用的磁盘空间量。特别是,如果此数据集的所有快照都被销毁,将释放该磁盘空间。请注意,此值不是简单的快照 used 属性总和,因为多个快照可以共享空间。此属性的缩写为 usedsnap
version
数字
N/A
指明文件系统的盘上版本,与池的版本无关。此属性只能设置为比支持的软件发行版所提供的版本更高的版本。有关更多信息,请参见 zfs upgrade 命令。
utf8only
布尔型
Off
此属性指示当文件名含有 UTF-8 字符代码集中不存在的字符时,文件系统是否应拒绝此类文件名。如果已将此属性显式设置为 off,则不允许显式设置 normalization 属性,也不允许将该属性设置为 noneutf8only 属性的缺省值为 off。在创建文件系统后无法更改此属性。
volsize
数字
N/A
为卷指定卷的逻辑大小。
有关详细说明,请参见volsize 属性
volblocksize
数字
8 KB
为卷指定卷的块大小。一旦写入卷后,块大小便不能更改,因此应在创建卷时设置块大小。卷的缺省块大小为 8 KB。位于 512 字节到 128 KB 之间的 2 的任意次幂都有效。
此属性的缩写为 volblock。
vscan
布尔型
Off
控制打开和关闭常规文件时是否应为其扫描病毒。如果具有第三方病毒扫描软件,则除了启用此属性外,还必须启用病毒扫描服务才会执行病毒扫描。缺省值为 off(关闭)。
zoned
布尔型
N/A
指明是否将已文件系统添加到非全局区域。如果设置该属性,全局区域中将不会标记挂载点,因此 ZFS 在收到请求时不能挂载此类文件系统。首次安装区域时,会为添加的所有文件系统设置该属性。
有关将 ZFS 用于已安装的区域的更多信息,请参见在安装了区域的 Solaris 系统中使用 ZFS
xattr
布尔型
on
指明此文件系统是启用 (on) 还是禁用了 (off) 扩展属性。