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

第 18 章 规划和配置非全局区域(任务)

本章介绍在系统上配置区域之前需要执行的操作,同时还介绍了如何在系统上配置区域、修改区域配置以及删除区域配置。

有关区域配置过程的介绍,请参见第 17 章

规划和配置非全局区域(任务图)

在将系统设置为使用区域之前,必须先收集信息并决定如何配置区域。以下任务图概括了如何规划和配置区域。

任务 

说明 

参考 

规划区域策略。 

  • 评估在系统上运行的应用程序,并确定需要在区域中运行的应用程序。

  • 评估磁盘空间的可用性,以便可以保存区域内特有的文件。

  • 如果您也使用资源管理功能,请确定如何使资源管理范围能够覆盖整个区域。

请参阅历史使用情况。另请参见磁盘空间需求区域中使用的资源池

确定区域名称。 

基于命名约定决定区域的名称。 

请参见区域配置数据区域主机名

确定区域路径。 

每个区域都具有一个与全局区域根目录相对的根目录路径。 

请参见区域配置数据

如果没有配置资源池,请评估是否需要进行 CPU 限制。 

查看您的应用程序要求。 

请参见Solaris 10 8/07:dedicated-cpu 资源

如果计划使用全局区域中的 rcapd 来为区域设置内存上限,请评估是否需要进行内存分配。

查看您的应用程序要求。 

请参见第 10 章第 11 章Solaris 10 8/07:物理内存控制和 capped-memory 资源

将 FSS 设置为系统中的缺省调度程序。 

为每个区域指定 CPU 份额,以控制区域访问 CPU 资源的权利。FSS 保证为各个区域公平地分配 CPU 资源,这种公平分配基于已分配的份额。 

第 8 章区域中的调度类

确定区域是共享 IP 区域,还是专用 IP 区域。 

对于共享 IP 区域(缺省区域),可获取或配置区域的 IP 地址。根据配置的不同,您必须为需要网络访问的每个非全局区域获取至少一个 IP 地址。 

对于专用 IP 区域,请确定要分配给该区域的数据链路。该区域需要独占访问一个或多个网络接口。该接口可以是单独的 LAN(如 bge1),也可以是单独的 VLAN(如bge2000)。数据链路必须是 GLDv3。 GLDv3 的数据链路在 dladm show-link 命令的输出中会被标识为 type: legacy

请参见确定区域主机名并获取网络地址如何配置区域《系统管理指南:IP 服务》

有关 GLDv3 接口的更多信息,请参见《系统管理指南:IP 服务》中的“Oracle Solaris : 接口类型”

确定要在区域内挂载的文件系统。 

查看您的应用程序要求。 

有关更多信息,请参见在区域中挂载的文件系统

确定应使哪些网络接口可在区域中使用。 

查看您的应用程序要求。 

有关更多信息,请参见共享 IP 网络接口

确定是否必须更改缺省的非全局区域权限集。 

检查权限集: 缺省权限集、可以添加和删除的权限,以及目前不能使用的权限。 

请参见非全局区域中的权限

确定每个区域中应该配置的设备。 

查看您的应用程序要求。 

有关应用程序的信息,请参阅相关文档。 

配置区域。 

使用 zonecfg 可以创建区域的配置。

请参见配置、检验并提交区域

检验并提交已配置的区域。 

确定指定的资源和属性是否在虚拟系统上有效。 

请参见配置、检验并提交区域

评估当前的系统设置

可以在任何运行 Solaris 10 发行版的计算机上使用区域。以下主要的计算机注意事项与区域的使用相关联。

磁盘空间需求

对区域可以使用的磁盘空间量没有任何限制。全局管理员负责限制空间。全局管理员必须确保本地存储足以保存非全局区域的根文件系统。即使小型单处理器系统也可支持同时运行多个区域。

全局区域中安装的软件包的性质影响所创建的非全局区域的空间需求。软件包的数量和空间需求为相关因素。

稀疏根区域

在 Solaris 10 发行版本中,拥有 inherit-pkg-dir 资源的非全局区域称为稀疏根区域。

稀疏根区域模型通过以下方法优化对象共享:

在该模型中,所有的软件包都安装在非全局区域中。将完整安装不向只读回送挂载文件系统提供内容的软件包。无需安装提供给只读回送挂载文件系统的内容,因为这些内容可以从全局区域中继承(并可见)。

建议每个区域再增加 40 MB 的 RAM,如果计算机有足够的交换空间则不作此要求。

完全根区域

完全根区域模型提供最大配置能力。所有需要的和任何选定的可选 Solaris 软件包都安装到此区域的专用文件系统中。该模型的优势之一是全局管理员可以自定义其区域文件系统布局。例如,可以执行此操作来添加任意非绑定的软件包或第三方软件包。

该模型的磁盘需求由当前安装在全局区域中的软件包使用的磁盘空间决定。


注 –

如果您创建包含以下 inherit-pkg-dir 目录的稀疏根区域,则必须在安装区域之前从非全局区域配置中删除这些目录,以拥有一个完全根区域:

请参见如何配置区域


限制区域大小

可以使用以下选项限制区域大小:

确定区域主机名并获取网络地址

您必须确定区域的主机名。然后,如果要使区域具有网络连接,则必须为其指定一个 IPv4 地址,或手动配置并指定一个 IPv6 地址。

区域主机名

您为区域选择的主机名必须在 hosts 数据库或 /etc/inet/hosts 数据库(在全局区域中的 /etc/nsswitch.conf 文件中指定)中定义。网络数据库是指提供网络配置信息的文件。nsswitch.conf 文件指定要使用的命名服务。

如果将本地文件用于命名服务,则 hosts 数据库将保留在 /etc/inet/hosts 文件中。区域网络接口的主机名从 /etc/inet/hosts 中的本地 hosts 数据库解析而来。或者,可以在配置区域时直接指定 IP 地址,从而不需要对任何主机名进行解析。

有关更多信息,请参见《系统管理指南:IP 服务》中的“TCP/IP 配置文件”《系统管理指南:IP 服务》中的“网络数据库和 nsswitch.conf 文件”

共享 IP 区域网络地址

需要网络连接的每个共享 IP 区域都有一个或多个专有 IP 地址。同时支持 IPv4 和 IPv6 地址。

IPv4 区域网络地址

如果您使用的是 IPv4,则获取地址并将该地址指定到区域。

也可以指定 IP 地址前缀的长度。该前缀的格式为 address/prefix-length,例如 192.168.1.1/24。因此,要使用的地址是 192.168.1.1,要使用的网络掩码是 255.255.255.0,或者是前 24 位为 1 的掩码。

IPv6 区域网络地址

如果您使用的是 IPv6,则必须手动配置地址。通常情况下,必须至少配置以下两种地址类型:

链路本地地址

链路本地地址的格式为 fe80::64-bit interface ID/10/10 表明前缀长度为 10 位。

由子网上配置的全局前缀构成的地址

全局单点传送地址基于管理员为每个子网配置的 64 位前缀以及一个 64 位接口 ID。在配置为使用 IPv6 的同一子网上的任何系统上运行带有 -a6 选项的 ifconfig 命令,也可以获得该前缀。

64 位接口 ID 通常是从系统的 MAC 地址派生而来。为了便于区域使用,可使用如下方式从全局区域的 IPv4 地址中派生出唯一的备用地址:

16 bits of zero:upper 16 bits of IPv4 address:lower 16 bits of IPv4 address:a zone-unique number

例如,如果全局区域的 IPv4 地址是 192.168.200.10,则对于使用 1 作为区域专有数字的非全局区域,适合的链路本地地址是 fe80::c0a8:c80a:1/10。如果在该子网中使用的全局前缀是 2001:0db8:aabb:ccdd/64,则同一非全局区域的唯一全局单点传送地址是 2001:0db8:aabb:ccdd::c0a8:c80a:1/64。请注意,在配置 IPv6 地址时,您必须指定前缀长度。

有关链路本地地址和全局单点传送地址的更多信息,请参见 inet6(7P) 手册页。

专用 IP 区域网络地址

在专用 IP 区域内,可按照在全局区域中的方式来配置地址。请注意,可使用 DHCP 和 IPv6 无状态地址自动配置配置地址。

有关更多信息,请参见 sysidcfg(4)

文件系统配置

在设置虚拟平台时,您可以指定一些要执行的挂载。使用回送虚拟文件系统 (loopback virtual file system, LOFS) 回送挂载到区域的文件系统应使用 nodevices 选项挂载。有关 nodevices 选项的信息,请参见文件系统和非全局区域

使用 LOFS,您可以创建一个新的虚拟文件系统,以便使用一个备用的路径名称访问文件。在非全局区域中,使用回送挂载可以使文件系统的分层结构看起来在区域根目录下是重复的。在该区域中,使用以区域的根目录开头的路径名,可以访问所有文件。LOFS 挂载将保留文件系统名称空间。

图 18–1 回送挂载的文件系统

图显示了回送挂载的文件系统。

有关更多信息,请参见 lofs(7S) 手册页。

创建、修订和删除非全局区域配置(任务图)

任务 

说明 

参考 

配置非全局区域。 

使用 zonecfg 命令可以创建区域、检验并提交该配置。

您也可以使用脚本在系统上配置和引导多个区域。可以使用 zonecfg 命令来显示非全局区域的配置。

配置、检验并提交区域配置多个区域的脚本

修改区域配置。 

使用此过程可以修改区域配置中的资源类型,或在区域中添加专用设备。 

使用 zonecfg 命令修改区域配置

恢复或删除区域配置。 

使用 zonecfg 命令可以撤消对区域配置所做的资源设置,或删除区域配置。

使用 zonecfg 命令恢复或删除区域配置

删除区域配置。 

使用带有 delete 子命令的 zonecfg 命令可以从系统中删除区域配置。

如何删除区域配置

配置、检验并提交区域

使用 zonecfg(1M) 手册页中所述的 zonecfg 命令可执行以下操作。

也可以使用 zonecfg 命令永久指定全局区域的资源管理设置。

当使用 zonecfg 实用程序配置区域时,您可以使用 revert 子命令来撤消资源设置。请参见如何恢复区域配置

在系统上配置多个区域的脚本在配置多个区域的脚本中提供。

有关如何显示非全局区域配置,请参见如何显示非全局区域的配置

Procedure如何配置区域

请注意,创建本地非全局区域的必需元素只有 zonenamezonepath 属性。其他资源和属性都是可选的。有些可选资源还需要在备选项之间进行选择,例如决定使用 dedicated-cpu 资源还是 capped-cpu 资源。有关可用的 zonecfg 属性和资源的信息,请参见区域配置数据

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 用所选的区域名称来设置区域配置。

    此示例过程中使用名称 my-zone


    global# zonecfg -z my-zone
    

    如果是第一次配置该区域,则可以看到以下系统消息:


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. 创建新的区域配置。

    此过程使用缺省设置。


    zonecfg:my-zone> create
    
  4. 设置区域路径,在此过程中为 /export/home/my-zone


    zonecfg:my-zone> set zonepath=/export/home/my-zone
    

    对于 Solaris 10 10/08 发行版之前的发行版,不要为 ZFS 设置 zonepath

  5. 设置自动引导值。

    如果设置为 true,则在引导全局区域时将自动引导该区域。请注意,要自动引导区域,还必须启用区域服务 svc:/system/zones:default。缺省值为 false


    zonecfg:my-zone> set autoboot=true
    
  6. 为区域设置持久引导参数。


    zonecfg:my-zone> set bootargs="-m verbose"
    
  7. 指定一个 CPU 专用于该区域。


    zonecfg:my-zone> add dedicated-cpu
    
    1. 设置 CPU 数量。


      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
      
    2. (可选)设置重要性。


      zonecfg:my-zone:dedicated-cpu> set importance=10
      

      缺省值为 1

    3. 结束指定。


      zonecfg:my-zone:dedicated-cpu> end
      
  8. 修改缺省权限集。


    zonecfg:my-zone> set limitpriv="default,sys_time"
    

    该行添加了将系统时钟设置为缺省权限集的功能。

  9. 将调度类设置为 FSS


    zonecfg:my-zone> set scheduling-class=FSS
    
  10. 添加内存上限。


    zonecfg:my-zone> add capped-memory
    
    1. 设置内存上限。


      zonecfg:my-zone:capped-memory> set physical=50m
      
    2. 设置交换内存上限。


      zonecfg:my-zone:capped-memory> set swap=100m
      
    3. 设置锁定内存上限。


      zonecfg:my-zone:capped-memory> set locked=30m
      
    4. 结束内存上限指定。


      zonecfg:my-zone:capped-memory> end
      
  11. 添加文件系统。


    zonecfg:my-zone> add fs
    
    1. 设置文件系统的挂载点,在此过程中为 /usr/local


      zonecfg:my-zone:fs> set dir=/usr/local
      
    2. 指定全局区域中的 /opt/zones/my-zone/local 将要在所配置的区域中挂载为 /usr/local


      zonecfg:my-zone:fs> set special=/opt/zones/my-zone/local
      

      在非全局区域中,/usr/local 文件系统是可读写的。

    3. 指定文件系统类型,在此过程中为 lofs


      zonecfg:my-zone:fs> set type=lofs
      

      此类型指明了内核与文件系统的交互方式。

    4. 结束文件系统指定。


      zonecfg:my-zone:fs> end
      

    可多次执行此步骤来添加多个文件系统。

  12. (可选)设置 hostid


    zonecfg:my-zone> set hostid=80f0c086
    
  13. 在存储池 tank 中添加一个名为 sales 的 ZFS 数据集。


    zonecfg:my-zone> add dataset
    
    1. 指定指向 ZFS 数据集 sales 的路径。


      zonecfg:my-zone> set name=tank/sales
      
    2. 结束 dataset 指定。


      zonecfg:my-zone> end
      
  14. (仅用于稀疏根区域)添加一个从全局区域回送挂载的共享文件系统。

    要执行此步骤来创建一个没有任何共享文件系统的完全根区域。请参见磁盘空间需求中对完全根区域的讨论。


    zonecfg:my-zone> add inherit-pkg-dir
    
    1. 指定在正在配置的区域中以只读模式挂载全局区域中的 /opt/sfw


      zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
      

      注 –

      区域的打包数据库将更新,以反映软件包。使用 zoneadm 安装区域之后,便不能修改或删除这些资源。


    2. 结束 inherit-pkg-dir 指定。


      zonecfg:my-zone:inherit-pkg-dir> end
      

    可多次执行此步骤来添加多个共享文件系统。


    注 –

    如果要创建一个完全根区域,并且已经使用 inherit-pkg-dir 添加了缺省的共享文件系统资源,则必须使用 zonecfg 删除这些缺省的 inherit-pkg-dir 资源,才能安装区域:

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/lib

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/platform

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/sbin

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/usr


  15. (可选)如果要创建一个专用 IP 区域,请设置 ip-type


    zonecfg:my-zone> set ip-type=exclusive
    

    注 –

    add net 步骤中只会指定物理设备类型。


  16. 添加网络接口。


    zonecfg:my-zone> add net
    
    1. (仅共享 IP)设置网络接口的 IP 地址,在此过程中为 192.168.0.1


      zonecfg:my-zone:net> set address=192.168.0.1
      
    2. 设置网络接口的物理设备类型,在此过程中为 hme 设备。


      zonecfg:my-zone:net> set physical=hme0
      
    3. Solaris 10 10/08:(可选,仅共享 IP)在此过程中,为网络接口设置缺省路由器 10.0.0.1


      zonecfg:my-zone:net> set defrouter=10.0.0.1
      
    4. 结束指定。


      zonecfg:my-zone:net> end
      

    可多次执行此步骤来添加多个网络接口。

  17. 添加设备。


    zonecfg:my-zone> add device
    
    1. 设置设备匹配,在此过程中为 /dev/sound/*


      zonecfg:my-zone:device> set match=/dev/sound/*
      
    2. 结束设备指定。


      zonecfg:my-zone:device> end
      

    可多次执行此步骤来添加多个设备。

  18. 使用属性名称添加区域范围的资源控制。


    zonecfg:my-zone> set max-sem-ids=10485200
    

    可多次执行此步骤来添加多个资源控制。

  19. 使用 attr 资源类型来添加注释。


    zonecfg:my-zone> add attr
    
    1. 将名称设置为 comment


      zonecfg:my-zone:attr> set name=comment
      
    2. 将类型设置为 string


      zonecfg:my-zone:attr> set type=string
      
    3. 将值设置为说明区域的注释。


      zonecfg:my-zone:attr> set value="This is my work zone."
      
    4. 结束 attr 资源类型指定。


      zonecfg:my-zone:attr> end
      
  20. 检验区域的配置。


    zonecfg:my-zone> verify
    
  21. 提交区域的配置。


    zonecfg:my-zone> commit
    
  22. 退出 zonecfg 命令。


    zonecfg:my-zone> exit
    

    请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行 commit

在命令行中使用多个子命令

提示 –

zonecfg 命令还支持通过同一个 shell 调用多条子命令,这些子命令放在引号中并用分号进行分隔。


global# zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone"

下一步执行的操作

请参见安装和引导区域来安装已提交的区域配置。

配置多个区域的脚本

可以使用此脚本在系统中配置和引导多个区域。此脚本采用以下参数:

要执行此脚本,您必须是全局区域中的全局管理员。全局管理员在全局区域中拥有超级用户权限或承担主管理员角色。


#!/bin/ksh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"%Z%%M%	%I%	%E% SMI"

if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
		echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>"
		exit 2
fi

if [[ ! -d $3 ]]; then
		echo "$3 is not a directory"
		exit 1
fi

nprocs=`psrinfo | wc -l`
nzones=$1
prefix=$2
dir=$3

ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if`
if [ $ip_addrs_per_if -lt $nzones ]; then
		echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
		echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if <num>"
		exit 1
fi

i=1
while [ $i -le $nzones ]; do
	zoneadm -z $prefix$i list > /dev/null 2>&1
	if [ $? != 0 ]; then
		echo configuring $prefix$i
		F=$dir/$prefix$i.config
		rm -f $F
		echo "create" > $F
		echo "set zonepath=$dir/$prefix$i" >> $F
		zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \
		    sed 's/^/    /g' 
	else
		echo "skipping $prefix$i, already configured"
	fi
	i=`expr $i + 1`
done

i=1
while [ $i -le $nzones ]; do
	j=1
	while [ $j -le $nprocs ]; do
		if [ $i -le $nzones ]; then
			if [ `zoneadm -z $prefix$i list -p | \
			    cut -d':' -f 3` != "configured" ]; then
				echo "skipping $prefix$i, already installed"
			else
				echo installing $prefix$i
				mkdir -pm 0700 $dir/$prefix$i
				chmod 700 $dir/$prefix$i
				zoneadm -z $prefix$i install > /dev/null 2>&1 &
				sleep 1	# spread things out just a tad
			fi
		fi
		i=`expr $i + 1`
		j=`expr $j + 1`
	done
	wait
done

i=1
while [ $i -le $nzones ]; do
	echo setting up sysid for $prefix$i
	cfg=$dir/$prefix$i/root/etc/sysidcfg
	rm -f $cfg
	echo "network_interface=NONE {hostname=$prefix$i}" > $cfg
	echo "system_locale=C" >> $cfg
	echo "terminal=xterms" >> $cfg
	echo "security_policy=NONE" >> $cfg
	echo "name_service=NONE" >> $cfg
	echo "timezone=US/Pacific" >> $cfg
	echo "root_password=Qexr7Y/wzkSbc" >> $cfg  # 'l1a'
	i=`expr $i + 1`
done

i=1
para=`expr $nprocs \* 2`
while [ $i -le $nzones ]; do
	date
	j=1
	while [ $j -le $para ]; do
		if [ $i -le $nzones ]; then
			echo booting $prefix$i
			zoneadm -z $prefix$i boot &
		fi
		j=`expr $j + 1`
		i=`expr $i + 1`
	done
	wait
done

Procedure如何显示非全局区域的配置

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 显示区域配置。


    global# zonecfg -z zonename info
    

使用 zonecfg 命令修改区域配置

也可使用 zonecfg 命令执行以下操作:

Procedure如何修改区域配置中的资源类型

可以选择一个资源类型并修改该资源的指定。

请注意,在使用 zoneadm 安装区域之后,不能修改或删除 inherit-pkg-dir 目录中软件包的内容。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 选择要修改的区域,在此过程中为 my-zone


    global# zonecfg -z my-zone
    
  3. 选择要更改的资源类型,例如,资源控制。


    zonecfg:my-zone> select rctl name=zone.cpu-shares
    
  4. 删除当前值。


    zonecfg:my-zone:rctl> remove value (priv=privileged,limit=20,action=none)
    
  5. 添加新值。


    zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)
    
  6. 结束修改后的 rctl 的指定。


    zonecfg:my-zone:rctl> end
    
  7. 提交区域的配置。


    zonecfg:my-zone> commit
    
  8. 退出 zonecfg 命令。


    zonecfg:my-zone> exit
    

    请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行 commit

    zonecfg 提交的更改在下次引导区域时生效。

ProcedureSolaris 10 8/07:如何清除区域配置中的属性类型

使用此过程可以重置一个独立属性。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 选择要修改的区域,在此过程中为 my-zone


    global# zonecfg -z my-zone
    
  3. 清除要更改的属性,在此过程中为现有的池关联。


    zonecfg:my-zone> clear pool
    
  4. 提交区域的配置。


    zonecfg:my-zone> commit
    
  5. 退出 zonecfg 命令。


    zonecfg:my-zone> exit
    

    请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行 commit

    zonecfg 提交的更改在下次引导区域时生效。

ProcedureSolaris 10 3/05 至 Solaris 10 11/06:如何修改区域配置中的属性类型

使用此过程可以重置一个独立属性,该独立属性没有其他相关属性要配置。例如,要删除现有的池关联,您可以将 pool 资源重置为 null

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 选择要修改的区域,在此过程中为 my-zone


    global# zonecfg -z my-zone
    
  3. 重置要更改的属性,在此过程中为现有的池关联。


    zonecfg:my-zone> set pool=""
    
  4. 提交区域的配置。


    zonecfg:my-zone> commit
    
  5. 退出 zonecfg 命令。


    zonecfg:my-zone> exit
    

    请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行 commit

    zonecfg 提交的更改在下次引导区域时生效。

ProcedureSolaris 10 8/07:如何重命名区域

可以使用此过程对处于已配置状态或已安装状态的区域进行重命名。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 选择要重命名的区域,在此过程中为 my-zone


    global# zonecfg -z my-zone
    
  3. 例如,将区域名称更改为 newzone


    zonecfg:my-zone> set zonename=newzone
    
  4. 提交更改。


    zonecfg:newzone> commit
    
  5. 退出 zonecfg 命令。


    zonecfg:newzone> exit
    

    zonecfg 提交的更改在下次引导区域时生效。

Procedure如何在区域中添加专用设备

以下过程说明如何在非全局区域配置中放置扫描设备。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 添加设备。


    zonecfg:my-zone> add device
    
  3. 设置设备匹配,在此过程中为 /dev/scsi/scanner/c3t4*


    zonecfg:my-zone:device> set match=/dev/scsi/scanner/c3t4*
    
  4. 结束设备指定。


    zonecfg:my-zone:device> end
    
  5. 退出 zonecfg 命令。


    zonecfg:my-zone> exit
    

Procedure如何在全局区域中设置 zone.cpu-shares

可以使用此过程在全局区域中永久设置共享。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 使用 zonecfg 命令。


    # zonecfg -z global
    
  3. 为全局区域设置 5 个份额。


    zonecfg:global> set cpu-shares=5
    
  4. 退出 zonecfg


    zonecfg:global> exit
    

使用 zonecfg 命令恢复或删除区域配置

使用 zonecfg(1M) 中所述的 zonecfg 命令可以恢复或删除区域配置。

Procedure如何恢复区域配置

当使用 zonecfg 实用程序配置区域时,请使用 revert 子命令来撤消对区域配置执行的资源设置。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 在配置名为 tmp-zone 的区域时,键入 info 查看您的配置:


    zonecfg:tmp-zone> info
    

    配置的 net 资源段显示如下:


    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .
  3. 删除网络地址:


    zonecfg:tmp-zone> remove net address=192.168.0.1
    
  4. 检验 net 条目是否已被删除。


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    device
            match: /dev/pts/*
    .
    .
    .
  5. 键入 revert


    zonecfg:tmp-zone> revert
    
  6. 对下面的问题回答是:


    Are you sure you want to revert (y/[n])? y
    
  7. 检验网络地址是否再次出现:


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .

Procedure如何删除区域配置

使用带有 delete 子命令的 zonecfg,可以从系统中删除区域配置。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 使用以下两种方法之一来删除区域 a-zone 的配置:

    • 使用 -F 选项强制执行操作:


      global# zonecfg -z a-zone delete -F
      
    • 对系统提示回答是,从而以交互方式删除区域:


      global# zonecfg -z a-zone delete
      Are you sure you want to delete zone a-zone (y/[n])? y