Go to main content

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

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

svc.zones(8)

名称

svc.zones - Solaris 管理工具委托的面向 zones(7) 的重启程序

用法概要

/lib/svc/method/svc.zones
svc:/system/zones:default

描述

svc.zones 是服务管理工具 (Service Management Facility, SMF) 委托的面向 zones(7) 的重启程序。每个区域均由区域服务的一个实例表示:

svc:/system/zones/zone

实例名称与区域名称相匹配。

区域委托重启程序会设置相应基础结构以便 zones(7) 发挥作用。在下列情况下,系统将记录因设置区域基础结构而发生的故障和活动:

/var/log/zones/<zonename>.messages

在某特定区域的基础结构设置期间发生的故障将使该区域进入维护状态。区域委托重启程序将通过 svcadm(8) clear 对因基础结构设置故障而进入维护状态的区域重试基础结构设置。

区域委托重启程序会在启动时根据每个区域的 autoboot 属性设置对区域执行自动引导。有关更多信息,请参见 zones(7)zonecfg(8) 手册页。同样,在正常关闭全局区域期间,区域委托重启程序服务将关闭、停止或挂起每个区域,具体取决于服务的 autoshutdown 属性。有关更多信息,请参见 zonecfg(8) 手册页。

区域自动引导和关闭是并行执行的,您可以对并行操作数进行限制。有关更多信息,请参见下文的“区域委托重启程序属性”。

区域 SMF 依赖项

构成区域依赖项的一组 SMF FMRI 将由新的 zonecfg(8) 资源依赖项定义。它由分组属性和 FMRI 属性组成。区域的所有 SMF 依赖项都将为 service 类型,并且其 restart_on 属性为 none。

以下 zonecfg(8) 命令将创建 SMF 依赖项:

  add smf-dependency
      set name=firewall
      set fmri=svc:/system/zones/zone:appfirewall
      set grouping=require_any
      end
  add smf-dependency
      set name=firewall
      set fmri=svc:/3rdparty/my-firewall:default
      end
  add smf-dependency
      set fmri=svc:/system/zones/zone:dataload
      set grouping=exclude_all
      end 

分组缺省值为 require_all 且不得显式设置。FMRI 值将根据 libscf(3LIB) SCF_TYPE_FMRI 进行验证。

区域引导排序

可通过两种方式建立区域的引导顺序:

  1. 确定区域 SMF 实例的 SMF 依赖项。

  2. 为每个区域分配引导优先级。

一旦某个区域满足 SMF 依赖项,系统便会根据其优先级将该区域放入队列中。要为某个区域分配引导优先级,请使用 zonecfg boot-priority 属性。有关 boot-priority 属性的更多信息,请参见 zonecfg(8) 手册页。区域重启程序将按照引导优先级从高到低的顺序来引导队列中的各个区域:

set boot-priority={ high | default | low }

区域委托重启程序属性

config/track-zone-goals

该布尔属性告知区域重启程序应在何时将区域 SMF 实例置于联机状态。如果设置为 false,区域重启程序将在区域开始引导时立即将区域 SMF 实例置于联机状态。如果设置为 true,则根据“服务状态”部分中的联机状态说明考虑区域 SMF 实例的联机状态。此属性的缺省值为 true

config/concurrent-boot-shutdown

同时引导或关闭的最大并发区域数。

config/concurrent-suspend-resume

同时执行 suspendresume 操作的最大并发区域数。

options/logging

区域重启程序执行的日志记录级别。

有效值为:

quiet

执行最小日志记录并仅报告错误。

verbose

执行详细日志记录。

debug

执行调试日志记录。

以下示例显示如何设置上述属性之一:

# svccfg -s svc:/system/zones:default setprop \
  config/concurrent-boot-shutdown = 10
# svcadm refresh svc:/system/zones:default

如果该属性没有值,或者该属性不存在,区域重启程序将不限制并发操作的数量。

当区域 SMF 实例达到联机状态或维护状态时,非全局区域的引导进程将被视为完成。有关区域 SMF 状态语义的详细信息,请参见下文的“服务状态”部分。

区域命令与区域委托重启程序的交互

zoneadm(8) 命令可以覆盖区域委托重启程序和 SMF 图形引擎。

区域可由管理员进行引导,即使该区域尚未满足 SMF 依赖项也是如此。在这种情况下,根据下文“服务状态”部分中所述的语义,区域 SMF 实例将被置于联机或维护状态。请注意,由于所有区域 SMF 依赖项的 restart_on 属性均为 none,因此,如果该区域在引导之前不满足 SMF 依赖项,图形引擎将不会向该区域 SMF 实例发送停止事件。

对于因区域处于不可引导状态而进入维护状态的区域 SMF 实例,将其禁用并不会清除 SMF 维护状态。禁用区域 SMF 实例只会清除因区域的里程碑/目标依赖项需要管理操作才能得到满足而导致的维护状态。在这种情况下,禁用区域 SMF 实例将使区域关闭。

区域引导优先级和并发阈值仅适用于由 SMF 图形引擎事件引起的操作。管理命令不受引导优先级或并发阈值的限制。这样一来,如果为某个区域分配了较低的优先级,那么管理员可以手动引导该区域,而无需等待具有较高优先级的多个区域引导完成。

服务状态

svc.zones 为其管理的每个区域 SMF 实例实现一台状态机,作为其服务管理职责的一部分。此计算机中的状态由 smf(7) 状态集组成。这些状态的语义如下所示:

uninitialized(未初始化)

svc.zones 尚未处理此实例。

online(联机)

区域正在运行且已达到里程碑/目标。对于不支持里程碑/目标的区域,区域将在开始引导时立即达到联机状态。有关里程碑/目标的更多信息,请参见 smf(7) 手册页。

degraded(降级)

区域 SMF 实例已达到联机状态,但 zoneadmd(8) 已失败多次且未在运行。

offline(脱机)

区域 SMF 实例已启用,但尚未满足其 SMF 依赖项。

disabled(禁用)

该区域已停止,区域委托重启程序将不引导它。

maintenance(维护)

由于以下原因,区域 SMF 实例可能处于此状态:

  • 引导尝试失败

  • 区域处于无法引导的状态

  • 如果没有管理操作,该区域的里程碑/目标依赖项就无法得到满足。

应使用 svcs -vx 命令的输出来确定维护状态的原因。处于维护状态的区域 SMF 实例不会清除已禁用事件的维护状态。

属性

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

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

另请参见

svcs(1)libscf(3LIB)attributes(7)smf(7)solaris-kz(7)zones(7)init(8)svcadm(8)zoneadm(8)zoneadmd(8)zonecfg(8)