Oracle® Solaris Zones 介绍

退出打印视图

更新时间: 2014 年 12 月
 
 

资源类型属性

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

admin

针对给定区域定义该用户的用户名和授权。

zonecfg:my-zone> add admin
zonecfg:my-zone:admin> set user=zadmin
zonecfg:my-zone:admin> set auths=login,manage
zonecfg:my-zone:admin> end

auths 属性可以采用以下值:

  • login (solaris.zone.login)

  • manage (solaris.zone.manage)

  • clone (solaris.zone.clonefrom)

请注意,不能通过这些 auths 创建区域。该功能包含在区域安全性配置文件中。

仅限 solaris solaris10rootzpool

storage

标识为区域安装提供专用 ZFS zpool 的存储对象 URI。有关 URI 和 storage 允许值的信息,请参见仅限 solaris 和 solaris10:rootzpool 资源。在区域安装期间,将自动创建 zpool,或导入预先创建的 zpool。指定 my-zone_rpool 名称。

zonecfg:my-zone> add rootzpool
zonecfg:my-zone:rootzpool> add storage dev:dsk/c4t1d0
zonecfg:my-zone:rootzpool> end

如果要创建镜像配置,可以添加其他 storage 属性:

add storage dev:dsk/c4t1d0
add storage dev:dsk/c4t3d0

一个区域只能配置一个 rootzpool 资源。

仅限 solaris solaris10zpool

storagename

定义将 zpool 委托给区域的一个或多个存储对象 URI。有关 URI 和 storage 属性允许值的信息,请参见仅限 solaris 和 solaris10:rootzpool 资源zpool(1M) 手册页中定义了 name 属性的允许值。

在此示例中,将一个 zpool 存储资源委托给区域。在安装期间,将自动创建 zpool,或导入以前创建的 zpool。zpool 的名称为 my-zone_pool1

zonecfg:my-zone> add zpool
zonecfg:my-zone:zpool> set name=pool1
zonecfg:my-zone:zpool> add storage dev:dsk/c4t2d0 
zonecfg:my-zone:zpool> add storage dev:dsk/c4t4d0 
zonecfg:my-zone:zpool> end

一个区域可以配置有一个或多个 zpool 资源。

dedicated-cpu

ncpusimportancecorescpussockets

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

将核心 0123 永久分配给区域 my-zone。以下 dedicated-cpu 示例使用了 cores,但 cpus=cores=sockets= 均可使用。

zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set cores=0-3
zonecfg:my-zone:dedicated-cpu> end
virtual-cpu

ncpus

指定 CPU 数目。以下示例为区域 my-zone 指定了 3 个 CPU。

zonecfg:my-zone> add virtual-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=3
zonecfg:my-zone:dedicated-cpu> end
capped-cpu

ncpus

指定 CPU 数目。以下示例指定了供区域 my-zone 使用的 CPU 的 CPU 上限为 3.5 个。

zonecfg:my-zone> add capped-cpu
zonecfg:my-zone:capped-cpu> set ncpus=3.5
zonecfg:my-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

要使用 capped-memory 资源,必须在全局区域中安装 resource-cap 软件包。

fs

dirspecialrawtypeoptions

fs 资源参数提供的值可确定如何以及在何处挂载文件系统。fs 参数定义如下:

dir

为文件系统指定挂载点

special

指定要从全局区域挂载的特殊块设备名称或目录

raw

指定在挂载文件系统之前运行 fsck 所在的原始设备(不适用于 ZFS)

type

指定文件系统类型

options

指定挂载选项,这些选项类似于使用 mount 命令找到的挂载选项

以下示例中的行指定全局区域中名为 pool1/fs1 的数据集在所配置的区域中被挂载为 /shared/fs1。所使用的文件系统类型为 ZFS。

zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/shared/fs1
zonecfg:my-zone:fs> set special=pool1/fs1
zonecfg:my-zone:fs> set type=zfs
zonecfg:my-zone:fs> end

有关参数的更多信息,请参见创建和使用 Oracle Solaris 区域 中的o nosuid 选项创建和使用 Oracle Solaris 区域 中的安全限制和文件系统行为,以及 fsck(1M)mount(1M) 手册页。另请注意,有关专用于特定文件系统的挂载选项的信息可以在 1M 手册页部分中找到。这些手册页的名称格式为 mount_filesystem


注 - 不能使用 quota(1M) 中所述的 quota 命令来检索通过该资源添加的 UFS 文件系统的配额信息。
dataset name, alias

name

以下示例的几行代码指定数据集 sales 将在非全局区域中可见并在该区域中进行挂载,但在全局区域中不再可见。

zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end

委托数据集可以具有一个下例中所示的非缺省别名。请注意,数据集别名不能含有正斜杠 (/)。

zonecfg:my-zone> add dataset
zonecfg:my-zone:dataset> set name=tank/sales
zonecfg:my-zone:dataset> set alias=data
zonecfg:my-zone:dataset> end

要恢复缺省别名,请使用 clear alias

zonecfg:my-zone> clear alias
anet

linknamelower-linkallowed-addressauto-mac-addressconfigure-allowed-addressdefrouterlinkmode (IPoIB)、mac-address(非 IPoIB)、mac-slot(非 IPoIB)、mac-prefix(非 IPoIB)、mtumaxbwpkey (IPoIB)、priorityvlan-id(非 IPoIB)、rxfanoutrxringstxringslink-protectionallowed-dhcp-cids

仅限 solaris:请勿在 zonecfg 中为 IPoIB 数据链路设置以下 anet 属性。

  • mac-address

  • mac-prefix

  • mac-slot

  • vlan-id

请勿在 zonecfg 中为非 IPoIB 数据链路设置以下 anet 属性。

  • linkmode

  • pkey

仅为 EVS anet 资源设置以下属性:

  • linkname

  • evs

  • vport

  • configure-allowed-address

anet 资源在区域引导时创建自动 VNIC 接口或 IPoIB 接口,在区域停止时删除 VNIC 或 IPoIB 接口。请注意,solaris-kz 标记不支持 IPoIB。资源属性通过 zonecfg 命令进行管理。有关可用属性的完整信息,请参见 zonecfg(1M) 手册页。

lower-link

为要创建的链路指定底层链路。如果设置为 auto,每次区域引导时,zoneadmd 守护进程都会自动选择用来创建 VNIC 的链路。您可以将可在其上创建 VNIC 的任何链路指定为 anet 资源的 lower-link

选择了自动创建 VNIC 的数据链路时,引导期间将跳过所有 IPoIB 链路。

linkname

为自动创建的 VNIC 或 IPoIB 接口指定一个名称。请注意,solaris-kz 不支持 IPoIB。

mac-address(不适用于 IPoIB)

根据指定值或关键字设置 VNIC 的 MAC 地址。如果该值不是关键字,则将其解释为单点传送 MAC 地址。有关支持的关键字,请参见 zonecfg(1M) 手册页。如果选择随机 MAC 地址,则区域引导、区域分离和附加操作将保留生成的地址。使用缺省策略 auto-mac-address 时,Oracle Solaris Zones 可获取随机的 mac-address

pkey(仅限 IPoIB)

设置用于创建 IPoIB 数据链路接口的分区密钥。此属性为强制属性。指定的 pkey 始终作为十六进制数处理,无论其是否有 0x 前缀。

linkmode(仅限 IPoIB)

设置数据链路接口的 linkmode。缺省值为 cm。有效值包括:

cm(缺省值)

连接模式。此模式使用缺省 MTU(65520 字节),其支持的最大 MTU 为 65535 字节。

ud

不可靠的数据报模式。如果远程节点无法使用连接模式,则会自动改用不可靠的数据报模式。此模式使用缺省 MTU(2044 字节),其支持的最大 MTU 为 4092 字节。

allowed-address

为专用 IP 区域配置 IP 地址,同时限制专用 IP 区域可以使用的可配置 IP 地址集。要指定多个地址,请使用逗号分隔的 IP 地址列表。

defrouter

当非全局区域和全局区域驻留在单独的网络上时,可使用 defrouter 属性来设置缺省路由。

设置了 defrouter 属性的任何区域必须位于没有为全局区域配置的子网上。

zonecfg 命令使用 SYSdefault 模板创建区域时,如果没有设置其他 IP 资源,将在区域配置中自动包括具有以下属性的 anet 资源。将在物理以太网链路上自动创建 linkname,该名称将设置为第一个可用名称,形式为 netN, net0。要更改这些缺省值,请使用 zonecfg 命令。

使用缺省策略 auto 时,将会分配相应的 mac-address

Oracle Solaris 区域

随机 mac-address

Oracle Solaris 内核区域

随机 mac-address

内核区域下的 Oracle Solaris 区域

出厂 mac-address

Oracle VM Server for SPARC 来宾域

出厂 mac-address

Oracle VM Server for SPARC 来宾域上运行的 Oracle Solaris 内核区域

出厂 mac-address

缺省策略通过物理以太网链路(如 net0)创建自动 VNIC,并向 VNIC 分配 MAC 地址。可选的 lower-link 属性设置为要创建的自动 VNIC 的底层链路 (vnic1)。可以使用 zonecfg 命令指定链路名称、底层物理链路、MAC 地址、带宽限制等 VNIC 属性以及其他 VNIC 属性。请注意,还必须指定 ip-type=exclusive

zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add anet
zonecfg:my-zone:anet> set linkname=net0
zonecfg:my-zone:anet> set lower-link=auto
zonecfg:my-zone:anet> set mac-address=random
zonecfg:my-zone:anet> set link-protection=mac-nospoof
zonecfg:my-zone:anet> end

以下示例显示了在物理链路 net5 上配置了 IPoIB 数据链路接口(使用 IB 分区密钥 0xffff)的 solaris 标记区域:

zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone:anet> add anet
zonecfg:my-zone:anet> set linkname=ib0
zonecfg:my-zone:anet> set lower-link=net5
zonecfg:my-zone:anet> set pkey=0xffff
zonecfg:my-zone:anet> end

有关属性的更多信息,请参见 zonecfg(1M) 手册页。有关链路属性的更多信息,请参见 dladm(1M) 手册页。

net

addressallowed-addressphysicaldefrouter


注 - 对于共享 IP 区域,必须指定 IP 地址和物理设备这两项。或者设置缺省路由器。

对于专用 IP 区域,只需指定物理接口。

  • allowed-address 属性可以限制专用 IP 区域可以使用的可配置 IP 地址集。

  • 当非全局区域和全局区域驻留在单独的网络上时,可使用 defrouter 属性来设置缺省路由。

  • 设置了 defrouter 属性的任何区域必须位于没有为全局区域配置的子网上。

  • 来自具有缺省路由器的区域的通信将在回到目标区域之前先进入路由器中。

当共享 IP 区域位于不同的子网上时,请不要在全局区域中配置数据链路。


在以下共享 IP 区域示例中,物理接口 nge0 被添加到 IP 地址为 192.168.0.1 的区域中。要列出系统上的网络接口,请键入:

global# ipadm show-if -po ifname,class,active,persistent
lo0:loopback:yes:46--
nge0:ip:yes:----

除回送行以外的每一行输出将包含一个网络接口的名称。说明中包含 loopback 的行不适用于卡。46 持久性标志表示该接口已在全局区域中永久配置。yes 活动值表示当前已配置接口,ip 类值表示 nge0 是一个非回送接口。区域的缺省路由设置为 10.0.0.1defrouter 属性的设置为可选的。请注意,ip-type=shared 为必需项。

zonecfg:my-zone> set ip-type=shared
zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=vnic1
zonecfg:my-zone:net> set address=192.168.0.1
zonecfg:my-zone:net> set defrouter=10.0.0.1
zonecfg:my-zone:net> end

在以下专用 IP 区域示例中,将 VNIC 用于物理接口,该接口是 VLAN。要确定哪些数据链路可用,请使用命令 dladm show-linkallowed-address 属性可对区域可以使用的 IP 地址加以限制。defrouter 属性用于设置缺省路由。请注意,还必须指定 ip-type=exclusive

zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add net
zonecfg:myzone:net> set allowed-address=10.1.1.32/24
zonecfg:my-zone:net> set physical=vnic1
zonecfg:myzone:net> set defrouter=10.1.1.1
zonecfg:my-zone:net> end

add net 步骤中只会指定物理设备类型。physical 属性可以为 VNIC。


注 - Oracle Solaris 操作系统支持所有以太网类型的接口,并且可以使用 dladm 命令来管理其数据链路。
device

matchallow-partitionallow-raw-io

要匹配的设备名称可以是匹配模式或绝对路径。allow-partitionallow-raw-io 都可以设置为 true false。缺省值是 falseallow-partition 可启用分区。allow-raw-io 可启用 uscsi。有关这些资源的更多信息,请参见 zonecfg(1M)

可在 solaris-kz 区域的 device:match 资源属性中指定的内容包括以下限制:

  • 每个 LUN 仅允许一个资源。

  • 不支持分片和分区。

  • 仅提供对原始磁盘设备的支持。

  • 支持的设备路径为 lofiramdiskdskzvols

在以下示例中,solaris 区域配置中包括对磁盘设备的 uscsi 操作。

zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/*dsk/cXtYdZ*
zonecfg:my-zone:device> set allow-raw-io=true
zonecfg:my-zone:device> end

使用 add device 将 Veritas 卷管理器设备委托给非全局区域。

在以下示例中,向 solaris-kz 区域添加了一个存储设备:

zonecfg:my-zone> add device
zonecfg:my-zone:device> set storage=iscsi:///luname.naa.600144f03d70c80000004ea57da10001
zonecfg:my-zone:device> set bootpri=0
zonecfg:my-zone:device> end
rctl

namevalue

以下是可用的区域范围的资源控制。

  • zone.cpu-cap

  • zone.cpu-shares(首选:cpu-shares

  • zone.max-locked-memory

  • zone.max-lofi

  • zone.max-lwps(首选:max-lwps

  • zone.max-msg-ids(首选:max-msg-ids

  • zone.max-processes(首选:max-processes

  • zone.max-sem-ids(首选:max-sem-ids

  • zone.max-shm-ids(首选:max-shm-ids

  • zone.max-shm-memory(首选:max-shm-memory

  • zone.max-swap

请注意,设置区域范围资源控制的首选的、更简单的方法是使用属性名称,而不是使用 rctl 资源,如创建和使用 Oracle Solaris 区域 中的如何配置区域中所示。如果区域中的区域范围资源控制条目是使用 add rctl 配置的,则其格式与 project 数据库中的资源控制条目不同。在区域配置中,rctl 资源类型由三个名称/值对组成。名称分别是 privlimitaction。每个名称都有一个简单值。

zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.cpu-shares
zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)
zonecfg:my-zone:rctl> end
zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.max-lwps
zonecfg:my-zone:rctl> add value (priv=privileged,limit=100,action=deny)
zonecfg:my-zone:rctl> end

有关资源控制和属性的一般信息,请参见在 Oracle Solaris 11.2 中进行资源管理 中的第 6  章 关于资源控制创建和使用 Oracle Solaris 区域 中的在非全局区域中使用的资源控制

attr

nametypevalue

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

zonecfg:my-zone> add attr
zonecfg:my-zone:attr> set name=comment
zonecfg:my-zone:attr> set type=string
zonecfg:my-zone:attr> set value="Production zone"
zonecfg:my-zone:attr> end

可以使用 export 子命令在标准输出中列显区域配置。通过可以在命令文件中使用的格式保存配置。