将数据集委托给区域后,区域管理员便可控制特定的数据集属性。将数据集委托给区域后,该数据集的所有祖先都显示为只读数据集,而该数据集本身则与其所有后代一样是可写的。例如,请参考以下配置:
global# zfs list -Ho name tank tank/home tank/data tank/data/matrix tank/data/zion tank/data/zion/home |
如果将 tank/data/zion 添加到区域中,则每个数据集都将具有以下属性。
数据集 |
可见 |
可写 |
不变属性 |
---|---|---|---|
tank |
是 |
否 |
- |
tank/home |
否 |
- |
- |
tank/data |
是 |
否 |
- |
tank/data/matrix |
否 |
- |
- |
tank/data/zion |
是 |
是 |
sharenfs、zoned、quota、reservation |
tank/data/zion/home |
是 |
是 |
sharenfs、zoned |
请注意,tank/zone/zion 的每个父级都会显示为只读,所有后代都可写,不属于父级分层结构的数据集完全不可见。由于非全局区域不能充当 NFS 服务器,因此区域管理员无法更改 sharenfs 属性。区域管理员也不能更改 zoned 属性,否则将产生下节介绍的安全风险。
区域中的特权用户可以更改除 quota 和 reservation 之外的任何属性。全局区域管理员借助此行为可以控制非全局区域所使用的所有数据集的磁盘空间占用情况。
此外,将数据集委托给非全局区域后,全局区域管理员便无法更改 sharenfs 和 mountpoint 属性。