针对给定区域定义该用户的用户名和授权。
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 创建区域。该功能包含在区域安全性配置文件中。
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 资源。
storage、name
定义将 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 资源。
ncpus、importance、cores、cpus、sockets
指定 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
将核心 0、1、2 和 3 永久分配给区域 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
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
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
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
要使用 capped-memory 资源,必须在全局区域中安装 resource-cap 软件包。
dir、special、raw、type、options
fs 资源参数提供的值可确定如何以及在何处挂载文件系统。fs 参数定义如下:
为文件系统指定挂载点
指定要从全局区域挂载的特殊块设备名称或目录
指定在挂载文件系统之前运行 fsck 所在的原始设备(不适用于 ZFS)
指定文件系统类型
指定挂载选项,这些选项类似于使用 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。
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
linkname、lower-link、allowed-address、auto-mac-address、configure-allowed-address、defrouter、linkmode (IPoIB)、mac-address(非 IPoIB)、mac-slot(非 IPoIB)、mac-prefix(非 IPoIB)、mtu、maxbw、pkey (IPoIB)、priority、vlan-id(非 IPoIB)、rxfanout、rxrings、txrings、link-protection、allowed-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) 手册页。
为要创建的链路指定底层链路。如果设置为 auto,每次区域引导时,zoneadmd 守护进程都会自动选择用来创建 VNIC 的链路。您可以将可在其上创建 VNIC 的任何链路指定为 anet 资源的 lower-link。
选择了自动创建 VNIC 的数据链路时,引导期间将跳过所有 IPoIB 链路。
为自动创建的 VNIC 或 IPoIB 接口指定一个名称。请注意,solaris-kz 不支持 IPoIB。
根据指定值或关键字设置 VNIC 的 MAC 地址。如果该值不是关键字,则将其解释为单点传送 MAC 地址。有关支持的关键字,请参见 zonecfg(1M) 手册页。如果选择随机 MAC 地址,则区域引导、区域分离和附加操作将保留生成的地址。使用缺省策略 auto-mac-address 时,Oracle Solaris Zones 可获取随机的 mac-address。
设置用于创建 IPoIB 数据链路接口的分区密钥。此属性为强制属性。指定的 pkey 始终作为十六进制数处理,无论其是否有 0x 前缀。
设置数据链路接口的 linkmode。缺省值为 cm。有效值包括:
连接模式。此模式使用缺省 MTU(65520 字节),其支持的最大 MTU 为 65535 字节。
不可靠的数据报模式。如果远程节点无法使用连接模式,则会自动改用不可靠的数据报模式。此模式使用缺省 MTU(2044 字节),其支持的最大 MTU 为 4092 字节。
为专用 IP 区域配置 IP 地址,同时限制专用 IP 区域可以使用的可配置 IP 地址集。要指定多个地址,请使用逗号分隔的 IP 地址列表。
当非全局区域和全局区域驻留在单独的网络上时,可使用 defrouter 属性来设置缺省路由。
设置了 defrouter 属性的任何区域必须位于没有为全局区域配置的子网上。
zonecfg 命令使用 SYSdefault 模板创建区域时,如果没有设置其他 IP 资源,将在区域配置中自动包括具有以下属性的 anet 资源。将在物理以太网链路上自动创建 linkname,该名称将设置为第一个可用名称,形式为 netN, net0。要更改这些缺省值,请使用 zonecfg 命令。
使用缺省策略 auto 时,将会分配相应的 mac-address:
随机 mac-address
随机 mac-address
出厂 mac-address
出厂 mac-address
出厂 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) 手册页。
address、allowed-address、physical、defrouter
对于专用 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.1。defrouter 属性的设置为可选的。请注意,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-link。allowed-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。
match、allow-partition、allow-raw-io
要匹配的设备名称可以是匹配模式或绝对路径。allow-partition 和 allow-raw-io 都可以设置为 true 或 false。缺省值是 false。allow-partition 可启用分区。allow-raw-io 可启用 uscsi。有关这些资源的更多信息,请参见 zonecfg(1M)。
可在 solaris-kz 区域的 device:match 资源属性中指定的内容包括以下限制:
每个 LUN 仅允许一个资源。
不支持分片和分区。
仅提供对原始磁盘设备的支持。
支持的设备路径为 lofi、ramdisk、dsk 和 zvols。
在以下示例中,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
注意 - 添加设备前,请参见创建和使用 Oracle Solaris 区域 中的非全局区域中的设备使用、创建和使用 Oracle Solaris 区域 中的在非全局区域中运行应用程序和创建和使用 Oracle Solaris 区域 中的非全局区域中的特权了解有关限制和安全注意事项。 |
name、value
以下是可用的区域范围的资源控制。
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 资源类型由三个名称/值对组成。名称分别是 priv、limit 和 action。每个名称都有一个简单值。
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 区域 中的在非全局区域中使用的资源控制。
name、type、value
在以下示例中,添加了有关区域的注释。
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 子命令在标准输出中列显区域配置。通过可以在命令文件中使用的格式保存配置。