系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

标记区域配置数据

区域配置数据由两种类型的实体组成:资源和属性。每个资源都有一种类型,并且每个资源还可以有一个包含一个或多个属性的集合。属性具有名称和值。属性集取决于资源类型。

资源和属性类型

资源和属性类型如下所述:

区域名称

区域名称用于标识配置实用程序的区域。以下规则适用于区域名称:

  • 每个区域必须具有唯一的名称。

  • 区域名称区分大小写。

  • 区域名称必须以字母数字字符开头。

    名称可以包含字母数字字符、下划线 (_)、连字符 (-) 和句点 (.)。

  • 名称不能超过 64 个字符。

  • 名称 global 和所有以 SUNW 开头的名称均保留,不能使用。

zonepath

zonepath 属性是区域根目录的路径。每个区域都具有一个与全局区域根目录相对的根目录路径。安装时,需要全局区域目录以提供限定的可见性。它必须由 root 拥有,并且模式为 700

非全局区域的根路径低一个级别。区域的根目录与全局区域中的根目录 (/) 具有相同的拥有权和权限。区域目录必须由 root 拥有,并且模式为 755。这些目录是使用正确的权限自动创建的,并且不需要区域管理员进行检验。此分层结构可防止全局区域中的非特权用户遍历非全局区域的文件系统。

路径 

说明 

/home/export/lx-zone

zonecfg zonepath

/home/export/lx-zone/root

区域的根目录 

/home/export/lx-zone/root/dev

为区域创建的设备目录 

有关此问题的进一步讨论,请参见遍历文件系统


注 –

通过使用 zoneadmmove 子命令指定一个完整的新 zonepath,可将区域移至同一系统上的其他位置。有关说明,请参见Solaris 10 11/06:移动非全局区域


autoboot

如果此属性设置为 true,则引导全局区域时会自动引导区域。请注意,如果禁用了区域服务 svc:/system/zones:default,则无论如何设置此属性,区域都不会自动引导。您可以使用 svcadm(1M) 手册页中所述的 svcadm 命令来启用区域服务:


global# svcadm enable zones
bootargs

此属性用于为区域设置引导参数。除非被 rebootzoneadm bootzoneadm reboot 命令覆盖,否则将应用该引导参数。请参见标记区域引导参数

pool

此属性用于将区域与系统上的特定资源池关联。多个区域可以共享一个池的资源。另请参见指定 dedicated-cpu 资源

limitpriv

此属性用于指定缺省权限集之外的权限掩码。请参见非全局区域中的权限

通过指定权限名称可添加权限,权限名称中可包含或不包含前导 priv_。在权限名称前添加破折号 (-) 或感叹号 (!) 可以排除权限。权限值以逗号分隔,并放在引号 (") 内。

priv_str_to_set(3C) 中所述,特殊权限集 noneallbasic 对其标准定义进行了扩展。由于区域配置在全局区域内进行,因此不能使用特殊权限集 zone。由于常见用法是通过添加或删除某些权限来更改缺省权限集,因此特殊权限集 default 将映射为缺省权限集。当 default 出现在 limitpriv 属性开头时,它将扩展为缺省权限集。

如果输入以下指令,则会添加系统时钟设置功能,并删除原始 Internet 控制消息协议 (Internet Control Message Protocol, ICMP) 包发送功能:


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,sys_time,!net_icmpaccess"

如果区域的权限集包含不允许的权限、缺少必需权限或包含未知权限,则检验、准备或引导该区域的尝试都将失败,并将显示错误消息。

scheduling-class

此属性可为区域设置调度类。有关其他信息和提示,请参见区域中的调度类

dedicated-cpu

此资源可让系统处理器子集专供某个区域在运行时使用。dedicated-cpu 资源可为 ncpus 以及 importance(可选)提供限制。有关更多信息,请参见指定 dedicated-cpu 资源

capped-memory

此资源可对为区域设置内存上限时使用的属性分组。capped-memory 资源可为 physicalswaplocked 内存提供限制。至少必须指定其中一个属性。

fs

当区域从已安装状态转换为就绪状态时,每个区域都可以拥有已挂载的各种文件系统。文件系统资源指定文件系统挂载点的路径。有关在区域中使用文件系统的更多信息,请参见文件系统和非全局区域

net

网络接口资源是虚拟接口名称。当区域从已安装状态转换为就绪状态时,每个区域都可以具有应设置的网络接口。

lx 标记区域中只支持共享 IP 网络配置。

rctl

rctl 资源用于区域范围的资源控制。当区域从已安装状态转换为就绪状态时,将启用这些控制。


注 –

要使用 zonefigset global_property_name 子命令而非 rctl 资源来配置区域范围的控制,请参见如何配置 lx 标记区域


attr

此通用属性可用于用户注释或其他子系统。attrname 属性必须以字母数字字符开头。name 属性可以包含字母数字字符、连字符 (-) 和句点 (.)。以 zone. 开头的属性名称将保留,以供系统使用。

lx 标记区域中的资源类型属性

资源也有要配置的属性。以下属性与所示的资源类型关联。

dedicated-cpu

ncpusimportance

指定 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
capped-cpu

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
capped-memory

physicalswaplocked

此资源可对为区域设置内存上限时使用的属性分组。以下示例指定了区域 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
fs

dirspecialrawtypeoptions

以下示例中的各行在非全局区域中添加对 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

net

addressphysicaldefrouter

在以下示例中,将 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 的行不适用于卡。


rctl

namevalue

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
attr

nametypevalue

在以下示例中,添加了有关区域的注释。


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 子命令在标准输出中列显区域配置。通过可以在命令文件中使用的格式保存配置。