区域配置数据由两种类型的实体组成:资源和属性。每个资源都有一种类型,并且每个资源还可以有一个包含一个或多个属性的集合。属性具有名称和值。属性集取决于资源类型。
区域名称用于标识配置实用程序的区域。以下规则适用于区域名称:
每个区域必须具有唯一的名称。
区域名称区分大小写。
区域名称必须以字母数字字符开头。
名称可以包含字母数字字符、下划线 (_)、连字符 (-) 和句点 (.)。
名称不能超过 64 个字符。
名称 global 和所有以 SUNW 开头的名称均保留,不能使用。
zonepath 属性是区域根目录的路径。每个区域都具有一个与全局区域根目录相对的根目录路径。安装时,需要全局区域目录以提供限定的可见性。它必须由 root 拥有,并且模式为 700。
非全局区域的根路径低一个级别。区域的根目录与全局区域中的根目录 (/) 具有相同的拥有权和权限。区域目录必须由 root 拥有,并且模式为 755。这些目录是使用正确的权限自动创建的,并且不需要区域管理员进行检验。此分层结构可防止全局区域中的非特权用户遍历非全局区域的文件系统。
路径 |
说明 |
---|---|
/home/export/lx-zone |
zonecfg zonepath |
/home/export/lx-zone/root |
区域的根目录 |
/home/export/lx-zone/root/dev |
为区域创建的设备目录 |
有关此问题的进一步讨论,请参见遍历文件系统。
通过使用 zoneadm 的 move 子命令指定一个完整的新 zonepath,可将区域移至同一系统上的其他位置。有关说明,请参见Solaris 10 11/06:移动非全局区域。
如果此属性设置为 true,则引导全局区域时会自动引导区域。请注意,如果禁用了区域服务 svc:/system/zones:default,则无论如何设置此属性,区域都不会自动引导。您可以使用 svcadm(1M) 手册页中所述的 svcadm 命令来启用区域服务:
global# svcadm enable zones |
此属性用于为区域设置引导参数。除非被 reboot、zoneadm boot 或 zoneadm reboot 命令覆盖,否则将应用该引导参数。请参见标记区域引导参数。
此属性用于将区域与系统上的特定资源池关联。多个区域可以共享一个池的资源。另请参见指定 dedicated-cpu 资源。
此属性用于指定缺省权限集之外的权限掩码。请参见非全局区域中的权限。
通过指定权限名称可添加权限,权限名称中可包含或不包含前导 priv_。在权限名称前添加破折号 (-) 或感叹号 (!) 可以排除权限。权限值以逗号分隔,并放在引号 (") 内。
如 priv_str_to_set(3C) 中所述,特殊权限集 none、all 和 basic 对其标准定义进行了扩展。由于区域配置在全局区域内进行,因此不能使用特殊权限集 zone。由于常见用法是通过添加或删除某些权限来更改缺省权限集,因此特殊权限集 default 将映射为缺省权限集。当 default 出现在 limitpriv 属性开头时,它将扩展为缺省权限集。
如果输入以下指令,则会添加系统时钟设置功能,并删除原始 Internet 控制消息协议 (Internet Control Message Protocol, ICMP) 包发送功能:
global# zonecfg -z userzone zonecfg:userzone> set limitpriv="default,sys_time,!net_icmpaccess" |
如果区域的权限集包含不允许的权限、缺少必需权限或包含未知权限,则检验、准备或引导该区域的尝试都将失败,并将显示错误消息。
此属性可为区域设置调度类。有关其他信息和提示,请参见区域中的调度类。
此资源可让系统处理器子集专供某个区域在运行时使用。dedicated-cpu 资源可为 ncpus 以及 importance(可选)提供限制。有关更多信息,请参见指定 dedicated-cpu 资源。
此资源可对为区域设置内存上限时使用的属性分组。capped-memory 资源可为 physical、swap 和 locked 内存提供限制。至少必须指定其中一个属性。
当区域从已安装状态转换为就绪状态时,每个区域都可以拥有已挂载的各种文件系统。文件系统资源指定文件系统挂载点的路径。有关在区域中使用文件系统的更多信息,请参见文件系统和非全局区域。
网络接口资源是虚拟接口名称。当区域从已安装状态转换为就绪状态时,每个区域都可以具有应设置的网络接口。
lx 标记区域中只支持共享 IP 网络配置。
rctl 资源用于区域范围的资源控制。当区域从已安装状态转换为就绪状态时,将启用这些控制。
要使用 zonefig 的 set global_property_name 子命令而非 rctl 资源来配置区域范围的控制,请参见如何配置 lx 标记区域。
此通用属性可用于用户注释或其他子系统。attr 的 name 属性必须以字母数字字符开头。name 属性可以包含字母数字字符、连字符 (-) 和句点 (.)。以 zone. 开头的属性名称将保留,以供系统使用。
ncpus、importance
指定 CPU 个数以及池的相对重要性(可选)。以下示例指定了供区域 my-zone 使用的 CPU 范围,还设置了 importance。
zonecfg:my-zone> add dedicated-cpu zonecfg:my-zone:dedicated-cpu> set ncpus=1-3 zonecfg:my-zone:dedicated-cpu> set importance=2 zonecfg:my-zone:dedicated-cpu> end |
ncpus
指定 CPU 数目。以下示例指定了供区域 lx-zone 使用的 CPU 的 CPU 限制为 3.5 个。
zonecfg:lx-zone> add capped-cpu zonecfg:lx-zone:capped-cpu> set ncpus=3.5 zonecfg:lx-zone:capped-cpu> end |
physical、swap、locked
此资源可对为区域设置内存上限时使用的属性分组。以下示例指定了区域 my-zone 的内存限制。每个限制均为可选项,但至少要设置一个限制。
zonecfg:my-zone> add capped-memory zonecfg:my-zone:capped-memory> set physical=50m zonecfg:my-zone:capped-memory> set swap=100m zonecfg:my-zone:capped-memory> set locked=30m zonecfg:my-zone:capped-memory> end |
dir、special、raw、type、options
以下示例中的各行在非全局区域中添加对 CD 或 DVD 介质的只读访问权限。在非全局区域中,文件系统是使用选项 ro,nodevices(只读并且无设备)进行回送挂载的。
zonecfg:lx-zone> add fs zonecfg:lx-zone:fs> set dir=/cdrom zonecfg:lx-zone:fs> set special=/cdrom zonecfg:lx-zone:fs> set type=lofs zonecfg:lx-zone:fs> add options [ro,nodevices] zonecfg:lx-zone:fs> end |
请注意,有关专用于特定文件系统的挂载选项的信息可以在 1M 手册页部分中找到。这些手册页的名称格式为 mount_filesystem。
address、physical、defrouter
在以下示例中,将 IP 地址 192.168.0.1 添加到区域。bge0 卡用于物理接口,且设置了缺省路由器。
zonecfg:lx-zone> add net zonecfg:lx-zone:net> set address=192.168.0.1 zonecfg:lx-zone:net> set physical=bge0 zonecfg:lx-zone:net> set defrouter=10.0.0.1 zonecfg:lx-zone:net> end |
要确定所使用的物理接口,请在系统上键入 ifconfig -a。每一个输出行(回送驱动程序行除外)都以系统上安装的卡的名称开头。说明中包含 LOOPBACK 的行不适用于卡。
name、value
lx 标记区域中区域范围的资源控制中介绍了可用的区域范围的资源控制。
zonecfg:lx-zone> add rctl zonecfg:lx-zone:rctl> set name=zone.cpu-shares zonecfg:lx-zone:rctl> add value (priv=privileged,limit=10,action=none) zonecfg:lx-zone:rctl> end |
zonecfg:lx-zone> add rctl zonecfg:lx-zone:rctl> set name=zone.max-lwps zonecfg:lx-zone:rctl> add value (priv=privileged,limit=100,action=deny) zonecfg:lx-zone:rctl> end |
name、type、value
在以下示例中,添加了有关区域的注释。
zonecfg:lx-zone> add attr zonecfg:lx-zone:attr> set name=comment zonecfg:lx-zone:attr> set type=string zonecfg:lx-zone:attr> set value="Production zone" zonecfg:lx-zone:attr> end |
可以使用 export 子命令在标准输出中列显区域配置。通过可以在命令文件中使用的格式保存配置。