手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

zoneadm(1M)

名称

zoneadm - 管理区域

用法概要

zoneadm -z zonename [-u uuid-match] subcommand 
     [subcommand_options]
zoneadm [-R root] [-z zonename] [-u uuid-match] list 
     [list_options]
zoneadm [-R root] -z zonename [-u uuid-match] mark incomplete

描述

zoneadm 实用程序可用于管理系统区域。区域是指由操作系统运行时维护的应用程序容器。

安全

一旦将进程放入 0 区域之外的区域,此进程或其任何子进程便不能更改区域。

安全

除了简单的列表和帮助功能,zoneadm 只能由在全局系统区域中进行操作的用户使用,且必须使用有效的根目录用户 ID 来执行。此外,用户要执行特定的子命令还必须经过授权。

zoneadm 会检查授权字符串,这些字符串可能会选择性地包括用作后缀的指定 zonename,以及用作前缀的斜杠字符。如果省略区域名称,用户将有权进入任何区域。

只提供信息的子命令(例如 helplist)不需任何授权。所有其他子命令都需要授权 solaris.zone.manage/zonename

一旦将进程放入 0 区域之外的区域,该进程或其任何子进程便不能更改区域。

选项

支持以下选项:

–R root

指定备用根(引导环境)。此选项只能与 listmark 子命令配合使用。

–u uuid-match

区域的唯一标识符,由 libuuid(3LIB) 分配。如果该选项存在且参数为非空字符串,则会选择与 UUID 相匹配的区域(如果存在这样的区域),而非 –z 选项指定的区域。

–z zonename

区域的字符串标识符。

子命令

子命令

会导致破坏性操作或丢失工作的子命令有一个强制执行操作的 –F 标志。如果输入来自某个终端设备,则当此类命令不带 –F 标志时,系统会提示用户;否则,如果此类命令不带 –F 标志,则系统将禁止操作,并将诊断消息写入标准错误中。如果区域安装或卸载中断,该区域将处于未完成状态。使用 uninstall 可将此类区域重置为已配置状态。

支持以下子命令:

attach [–u] [–F] [–x extended_options] [–n path] [brand-specific options]

attach 子命令获取从某个系统分离的区域,然后将该区域连接到新的系统。因此,我们建议(而非要求)您在进行“连接”操作之前,先运行 detach 子命令。将新区域设置为已配置状态后,可使用 attach 子命令来设置区域根目录,不必以新区域的形式来安装该区域。

attach 子命令还用来将区域从 unavailable 状态转换到 installed 状态。如果 attach 子命令无法执行此类转换,则区域将保持在 unavailable 状态。

可使用 –F 选项在未经验证的情况下将区域强行设置为 "installed"(已安装)状态。此选项应慎用,因为在将区域从源系统移至无法正常托管该区域的目标系统时,使用此选项会令区域处于不受支持的状态。–n 选项可用于执行 attach 子命令的“预运行”。此选项将 detach –n 子命令的输出用作输入,可用于确认是否存在冲突问题(如网络设备不兼容),以及主机能否支持该区域。路径可以是 -,用于读取来自标准输入设备的输入。

区域的标记可能包括其他用于管理区域连接方式的选项。具体标记信息请参见 brands(5)

要连接的区域必须首先使用 zonecfg(请参见 zonecfg(1M))命令进行配置。运行 attach –n 时,上述规定不适用。

请使用以下命令来连接区域:

# zoneadm -z my-zone attach

请使用以下命令来连接和更新区域:

# zoneadm -z my-zone attach -u

缺少 –n 选项时(如上所示),必须先停止源区域,然后才能使用该子命令。

–n path

读取区域清单并在不实际执行连接操作的情况下,验证目标机器是否拥有托管该区域所需的正确配置。在执行试验性附加之前,不必在新主机上配置目标系统中的区域。

–u

更新连接的区域。

–x force-zpool-import

指定该选项可强制重复使用可能显示为正在使用的现有 zpool 资源。

–x force-zpool-create
–x force-zpool-create-all

指定 –xforce-zpool-create-all 可强制创建所有 zpool 资源。

使用 –xforce-zpool-create(语法如下所示):

-x force-zpool-create=zpoolname{,zpoolname,zpoolname,...}

... 可将此选项限定为特定的 zpool 资源集。要指定 rootzpool zpool 资源,请使用 rpool。对于 zpool 资源,请使用在相应区域配置 name 属性中指定的名称。

这些选项只能用于基于归档的附加。有关哪些标记支持基于归档的附加的信息,请参见 brands(5)

boot [–R][–w|–W] [–- boot_options]

引导(或激活)指定区域。

boot 子命令具有以下互斥选项:

–R

如果区域之前被挂起,该选项将强制进行新引导,而不是恢复挂起的区域。应谨慎使用该选项,因为挂起的区域可能包含文件系统中间状态等,放弃这些可能会造成问题。

–w

引导包含可写根的区域,有效地覆盖区域配置中的 file-mac-profile 设置。此选项仅对本次引导周期有效:后续重新引导将引导区域,使 file-mac-profile 再次有效。

–W

以瞬态读取/写入模式引导区域;当区域完成自组合时,该区域将以只读模式重新引导。对非只读根区域没有任何影响。

支持以下 boot_options

–m smf_options

smf_options 包括两类控制服务管理工具引导行为的选项:恢复选项和消息选项。

消息选项决定了 smf(5) 在引导过程中显示的消息的类型和数量。服务选项决定了用于引导系统的服务。有关 –m 子选项的列表,请参见 kernel(1M)

–s

仅引导至里程碑 svc:/milestone/single-user:default。此里程碑相当于 init 级别 s。请参见 svc.startd(1M)init(1M).

clone [–m copy] [–s zfs_snapshot] [-x extended_options] [brand-specific options] source_zone

安装某个区域时,可直接复制现有的已安装区域。该子命令是一种备选的区域安装方法。

–m copy

强制克隆成为副本,即使可以进行“ZFS clone”也是如此。

请注意,对于配置了 rootzpool 资源的区域,这是缺省克隆方法也是唯一受支持的克隆方法。

–s zfs_snapshot

指定用作克隆源的 ZFS 快照的名称。此处的 snapshot 必须是从之前的 zoneadm clone 安装获取的源区域的 snapshot

–x force-zpool-import

指定 –x 选项与 force-zpool-import 可强制重复使用可能显示为正在使用的现有 zpool 资源。

–x force-zpool-create
–x force-zpool-create-all

指定 –x 选项与 force-zpool-create-all 可强制创建所有 zpool 资源。

使用 –xforce-zpool-create(语法如下所示):

-x force-zpool-create=zpoolname{,zpoolname,zpoolname,...}

... 可将此选项限定为特定的 zpool 资源集。要指定 rootzpool zpool 资源,请使用 rpool。对于 zpool 资源,请使用在相应区域配置 name 属性中指定的名称。

必须先停止源区域,然后才能使用该子命令。

detach [–F | –n]

分离指定的区域。将区域从一个系统移至另一个系统时,第一步是分离该区域。区域迁移的完整过程如下:分离区域,将 zonepath 目录移至新主机,然后再将该区域连接到新主机。区域分离后,将一直处于已配置状态。如果尝试安装某个已分离的配置区域或者要克隆到该区域,您将接收到一条错误消息,且 installclone 子命令无法继续。–n 选项可用于执行 detach 子命令的“预运行”。在这一过程中,会生成运行 attach –n 子命令所需的信息,该信息可用于确认是否存在冲突问题(如网络设备不兼容)或主机能否支持该区域。该信息将发送至标准输出,并可保存到文件中或传输至 attach –n 子命令。–F 选项可用于强制分离区域,而无需对现有的 zonepath 执行验证检查。

请使用以下命令来分离区域:

# zoneadm -z my-zone detach

除非使用 –n 选项,否则必须停止源区域,然后才能使用该子命令。

–F

强制分离区域而无需对区域的存储执行验证检查。如果该主机无法再访问 zonepath 的存储,则通常使用该选项。当区域的存储已故障转移到备用主机(手动执行或作为群集的一部分)时,通常出现此情况。

–n

在不实际分离某区域的情况下,生成关于该运行区域的区域清单。源系统中区域的状态不会改变。区域清单会被发送到 stdout。全局管理员可以将此输出定向到某一文件,或将此输出传输到远程命令以便立即在目标主机上进行验证。

get-prom [variable]

get-prom 子命令显示 OpenBoot 配置变量。如果未指定变量,则将以 variable=value 形式显示所有配置变量及其值。如果指定了一个变量,则仅显示该变量的值。

只有 SPARC 平台上的 solaris-kz(5) 标记支持 get-prom 子命令。

set-prom variable=[value]
set-prom –c variable

在第一种形式中,set-prom 子命令将指定的 OpenBoot 配置变量设置为指定的值。如果不指定值(即这是一个零长度的字符串),则将 variable 设置为一个零长度的字符串。在第二种形式中,–c 选项指示应清除 variable,这使 OpenBoot 的缺省值生效。

只有 SPARC 平台上的 solaris-kz(5) 标记支持 set-prom 子命令。只能在区域处于已安装状态时使用该子命令。

halt

停止指定的区域。halt 跳过在区域内运行关闭脚本这一步骤,并删除区域的运行时资源。

另请参见下文的 shutdown 子命令。

help [subcommand]

显示一般帮助。如果您指定 subcommand,则会显示有关 subcommand 的帮助。

install [–x extended_options] [brand-specific options]

将指定区域安装到系统中。该子命令会自动首先尝试进行验证。如果验证步骤失败,则会拒绝安装。请参见 verify 子命令。

–x force-zpool-import

指定 –x 选项与 force-zpool-import 可强制重复使用可能显示为正在使用的现有 zpool 资源。

–x force-zpool-create
–x force-zpool-create-all

指定 –x 选项与 force-zpool-create-all 可强制创建所有 zpool 资源。

使用 –xforce-zpool-create(语法如下所示):

-x force-zpool-create=zpoolname{,zpoolname,zpoolname,...}

... 可将此选项限定为特定的 zpool 资源集。要指定 rootzpool zpool 资源,请使用 rpool。对于 zpool 资源,请使用在相应区域配置 name 属性中指定的名称。

区域的标记可能包括其他用于管理区域中软件安装方式的选项。具体标记信息请参见 brands(5)

list [list_options]

显示当前区域或指定区域(如果指定)的名称。

缺省情况下,列出所有运行区域。与 zoneadm –z zonename 选项结合使用时,此子命令只列出指定区域(不管其状态如何)。这种情况下,将禁用 –i–c 选项。

如果既未给出 –i 选项,也未给出 –c 选项,则会列出所有运行区域。

支持以下 list_options

–c

显示所有已配置区域。此选项将覆盖 –i 选项。

–i

将显示扩展到所有已安装区域。

–p

请求可供机器解析的输出。输出格式是一系列行,每个区域一行,其中包含以冒号分隔的字段。这些字段包括:

zoneid:zonename:state:zonepath:uuid:brand:ip-type:\
r/w:file-mac-profile

如果 zonepath 包含嵌入的冒号,则可通过反斜杠对这些冒号进行转义 (“\:”),并可通过使用 shell 函数 read(1) 及环境变量 IFS 来解析该反斜杠。uuid 值是在安装区域时由 libuuid(3LIB) 分配的,可用于标识存在于备用引导环境中或已在该环境中重命名的同一区域。任何可解析 zoneadm list -p 命令输出的软件都必须能够处理将来可能会添加的任何字段。

–a–d 选项互斥。如果 –v–p 均未使用,则只列出区域名称。

–v

显示详细信息,包括区域名称、ID、当前状态、根目录、标记类型、ip-type 和选项。

–a–d 选项互斥。如果 –v–p 均未使用,则只列出区域名称。

mark state

更改区域的状态。只有一部分区域状态受支持,如下所述。

incomplete

将某个已安装的区域的状态更改为 incomplete。对系统的管理性更改导致区域永久不可用或不一致时,此命令可能很有用。此更改无法撤消(除非采用卸载整个区域的方式)。

unavailable

将某个已安装的区域的状态更改为 unavailable。系统上的管理性更改或故障导致区域临时不可用时,此命令可能很有用。可以使用 attach 子命令撤消此更改。

move new_zonepath

zonepath 移至 new_zonepath。必须先停止区域,然后才能使用该子命令。new_zonepath 必须是本地文件系统,适用针对 zonepath 的一般限制。

请注意,对于配置有 rootzpool 资源的区域,仅重命名 zonepath,但区域本身不会移出其包含 zpool

ready

让区域做好运行应用程序的准备,但不在区域中启动任何用户进程。

reboot [–— boot_options]

重新启动区域。这等效于 haltboot 序列(关机脚本未运行)。

有关支持的引导选项,请参见 boot 子命令。

rename new_zonename

重命名区域。此子命令可用于已配置区域和已安装区域。必须先停止已安装区域,然后才能使用该子命令。使用以下命令来重命名区域:

# zoneadm -z my-zone rename new-zone

rename 支持使用模板且 %{zonename} 标记限定为 zonename 属性和 zpool 资源名称属性的区域配置。solaris-kz 标记不支持 rename 子命令。


注 -  已安装区域的任何控制台均通过 rename 子命令进行分离。
shutdown [–r [–— boot_options]]

完全关闭区域(等效于在区域中运行 /usr/sbin/init 0)。shutdown 子命令会一直等到区域成功关闭;如果关机过程需要很长时间,可以使用 zoneadmhalt 强制停止该区域。

如果指定了 –r,则重新引导区域。有关支持的引导选项,请参见 boot 子命令。

savecore [–L] [–f dumpfile]

在全局区域中保存正在运行的 solaris-kz 标记区域的核心转储文件(缺省方式是在当前目录下保存 kzcore.X)。该核心转储文件可以通过 mdb(1) 调试。

如果指定了 –L,在转储操作期间不会暂停区域。

suspend

将正在运行的 solaris-kz 标记区域挂起到磁盘。区域将挂起到区域路径内包含的映像文件。可以通过 zoneadm boot 恢复区域。

uninstall [–F] [–x extended_options]

从系统中卸载指定区域。请慎用此子命令。它会删除指定区域的 zonepath 下的所有文件。您可以使用 –F 标志强制执行操作。

–x force-zpool-destroy
–x force-zpool-destroy-all

使用 –x 选项与 force-zpool-destroy-all 选项可销毁所有 zpool。

使用 –xforce-zpool-destroy(语法如下所示):

-x force-zpool-destroy=zpoolname{,zpoolname,zpoolname,...}

... 可将此选项限定为特定的 zpool 资源集。要指定 rootzpool zpool 资源,请使用 rpool。对于 zpool 资源,请使用在相应区域配置 name 属性中指定的名称。

verify

检查确认指定区域的配置可以安全地安装在计算机上。下面是按 resource/property(资源/属性)类型分类的检查:

zonepath

zonepath 及其父目录均存在,并属于相应模式的根目录。相应模式是指当 zonepath700 时,其父目录既不是 group,也不是 world-writable 之类的目录。zonepath 不通过 NFS 挂载。不存在名为 root 的 zonepath 子目录。

如果 zonepath 不存在,verify 子命令不会失败,而只会警告用户:后续安装会尝试创建该目录并设置相应的权限。如果出现错误,后续的 verify 子命令可能会失败。

zonepath 不能是符号链接。

fs

任何 fs 资源都会对其 type 值进行检查。如果值是 procmntfsautofsnfs 中的一个,或者文件系统在 /usr/lib/fs/<fstype>/mount 下没有关联的挂载二进制数据,则会报告一个错误。

这是一种将 directory 设置为相对路径时会出现的错误。

这是一种将 raw 所指定的路径设置为相对路径或者在 /usr/lib/fs/<fstype>/fsck 下没有给定文件系统类型的 fsck 二进制数据时会出现的错误。如果存在相应的 fsck 二进制数据但未指定 raw 路径,则也会出现这种错误。

net

所有物理网络接口都存在。所有网络地址资源都属于下面某种类型:

  • 有效的 IPv4 地址,可以后接 / 和前缀长度;

  • 有效的 IPv6 地址,必须后接 / 和前缀长度;

  • 可解析为 IPv4 地址的主机名。

请注意,不支持解析为 IPv6 地址的主机名。

物理接口名称即网络接口名称。

可将区域配置为独占 IP 区域或共享 IP 区域。共享 IP 区域必须同时设置物理属性和地址属性。独占 IP 区域必须设置物理属性,不能设置地址属性。

anet

它验证用来自动创建 VNIC 的下游链路 (lower-link) 是否存在。

rctl

它也可以用于验证任何定义的资源控制值在当前计算机上是否有效。这意味着特权级别为 privileged(特权),限制低于当前定义的系统值,且定义的操作与给定资源控制的有效操作一致。

rootzpool, zpool

对于处于 installed(已安装)状态的区域,配置的所有 zpool 在系统上均处于联机状态。

对于处于已配置状态的区域,此命令可确认配置的 zpool 资源在系统上都不处于联机状态。

示例

示例 1 使用 –m 选项

以下命令说明了如何使用 –m 选项。

# zoneadm -z myzone boot -- -m verbose
示例 2 使用 –s 选项

以下命令说明了如何使用 –s 选项。

# zoneadm -z myzone boot -- -s
示例 3 修改 OpenBoot 配置变量

以下命令说明了 OpenBoot 配置变量的设置、获取和清除操作。

# zoneadm -z zone1 get-prom
# zoneadm -z zone1 set-prom
auto-boot?=false
# zoneadm -z zone1 get-prom
auto-boot?=false
# zoneadm -z zone1 set-prom -c auto-boot?
# zoneadm -z zone1 get-prom auto-boot?
auto-boot?: not set

上一个命令的输出将输出到 stderrzoneadm 的退出值为 non-zero

退出状态

将返回以下退出值:

0

成功完成。

1

出现错误。

2

用法无效。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/zones
接口稳定性
Committed(已确定)

另请参见

read(1)svcs(1)zlogin(1)zonename(1)init(1M)kernel(1M)svcadm(1M)zpool(1M)svc.startd(1M)svc.startd(1M)zonecfg(1M)libuuid(3LIB)attributes(5)brands(5)mwac(5)smf(5)zones(5)zfs(7FS)suri(5)solaris-kz(5)rad(1M)

《OpenBoot 4.x Command Reference Manual》

附注

zones(5) 服务由服务管理工具 smf(5) 管理,其服务标识符为:

svc:/system/zones:default

可以使用 svcadm(1M) 来对此服务执行管理操作(如启用、禁用或请求重新启动)。可以使用 svcs(1) 命令来查询服务的状态。

在安装或升级只读区域之后进行第一次引导,或以 –w/–W 模式引导区域时,将禁用只写保护。请注意在其他方面对该区域进行保护。