svc.zones - Solaris Management Facility delegated restarter for zones(7)
/usr/lib/zones/svc.zones
svc:/system/zones:default
svc.zones is the Service Management Facility (SMF) delegated restarter for zones(7). Each zone is represented by an instance of the zone service:
svc:/system/zones/zone
The instance name matches the zonename.
The zones delegated restarter sets up the infrastructure for zones(7) to work. The failures and activity from setting up zones infrastructure will be logged at:
/var/log/zones/<zonename>.messages
Failures during the infrastructure setup of a particular zone, will place that zone in maintenance. The zones delegated restarter will retry the infrastructure setup on svcadm(8) clear for zones in maintenance because of failures in its infrastructure setup.
The zones delegated restarter performs autobooting of zones at start time according to each zone's autoboot property setting. For more information, see the zones(7) and zonecfg(8) manual pages. Likewise, during a graceful shutdown of the global zone, the zones delegated restarter service shuts down, halts, or suspends each zone, depending on its autoshutdown property. For more information, see the zonecfg(8) manual page.
The zones autoboot and shutdown are performed in parallel, and the number of concurrent operations can be limited. For more information, see the "Zones Delegated Restarter Properties" below.
The set of SMF FMRIs that constitute the zone dependencies will be defined by a new zonecfg(8) resource dependency. It is comprised of grouping properties and FMRI properties. All SMF dependencies for a zone will be of type service, and have restart_on attribute as none.
The following zonecfg(8) commands creates SMF dependencies:
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
The default for grouping is require_all and must not be explicitly set. The FMRI values will be validated against libscf(3LIB) SCF_TYPE_FMRI.
There are two ways to establish the zone's boot order:
Determining the SMF dependencies of a zone SMF instance.
Assigning boot priority of each zone.
Once the SMF dependencies are satisfied for a zone, that zone is placed in a queue according to its priority. To assign a boot priority for a zone, use the zonecfg boot-priority property. For more information on boot-priority property, see the zonecfg(8) manual page. The zones restarter will boot the zones from high to low boot priority in the queue.
Note that the boot ordering based on assigned boot priority is best-effort and thus non-deterministic. It is not guaranteed that all zones with higher boot priority will be booted before all zones with lower boot priority. If your configuration requires a deterministic behavior, use SMF dependencies.
This boolean property tells the zones restarter when should a zone SMF instance be placed in the online state. If set to false, the zones restarter will place a zone SMF instance in the online state, immediately when the zone begins to boot up. When set to true, the online state of a zone SMF instance will be considered according to the online state description in the "Service States" section. The default value of this property is true.
The maximum number of concurrent zones booting up or shutting down.
The maximum number of concurrent zones performing suspend or resume operations.
The level of logging performed by the zones restarter.
The valid values are:
Minimal logging is performed and only errors are reported.
Verbose logging is performed.
Debug logging is performed.
The following example shows how to set one of the above properties:
# svccfg -s svc:/system/zones:default setprop \ config/concurrent-boot-shutdown = 10 # svcadm refresh svc:/system/zones:default
The Zones Restarter will not limit the number of concurrent operations if the property has no value, or if the property is absent.
The booting process of a non-global zone will be considered complete when the zone SMF instance reaches the online state or the maintenance state. Please see the "Service States" section below for details on the semantics of the SMF states for zones.
zoneadm(8) commands can override the zones delegated restarter and SMF graph engine.
A zone can be booted by an administrator even if its SMF dependencies have not been satisfied. In this case, the zone SMF instance will be placed in the online or maintenance states, according to the semantics described in the "Service States" section below. Note that since all zone SMF dependencies have the restart_on attribute as none, the graph engine will not send a stop event to the zone SMF instance if the SMF dependencies for that zone are not satisfied before its boot.
Disabling a zone SMF instance that is in maintenance state because the zone is in an unbootable state, will not clear the SMF maintenance state. Disabling a zone SMF instance will only clear a maintenance state caused by the zone's milestone/goals dependencies requiring administrative action to be satisfied. In this case, disabling the zone SMF instance will shutdown the zone.
The zones boot priority and concurrent threshold only apply to operations caused by the SMF graph engine events. Administrator commands are not subject to boot priority or concurrent threshold. This way, if a zone is assigned a low priority, the administrator can boot it up manually without waiting for the many zones with higher priority to boot up.
As part of its service management duties, the svc.zones implements a state machine for each of its managed zone SMF instance. The states in this machine are made up of the smf(7) set of states. The semantics of these states are as follows:
svc.zones is yet to process this instance.
The zone is running and has reached the milestone/goals. For zones that do not support milestone/goals, the online state will be reached immediately when the zone begins to boot. For more information on milestone/goals, see the smf(7) manual page.
The zone SMF instance has reached the online state, but zoneadmd(8) has failed multiple times and is not running.
The zone SMF instance is enabled, but its SMF dependencies have not been satisfied.
The zone is halted and will not be booted up by the zones delegated restarter.
A zone SMF instance can be in this state because of the following reasons:
Failed boot attempt
The zone is in a state from which it cannot be booted
The zone's milestone/goals dependencies cannot be satisfied without administrative action.
The output of svcs -vx command should be used to determine the reason for the maintenance state. A zone SMF instance in maintenance will not clear the maintenance state on a disabled event.
See attributes(7) for descriptions of the following attributes:
|
attributes(7), init(8), libscf(3LIB), smf(7), solaris-kz(7), svcadm(8), svcs(1), zoneadm(8), zoneadmd(8), zonecfg(8), zones(7)