<chapter id="zones.intro-1"><title>Introduction to Solaris Zones</title><highlights><para>The <trademark>Solaris</trademark> Zones facility in the Solaris Operating
System provides an isolated environment in which to run applications on your
system. Solaris Zones are a component of the Solaris Container environment.</para><para>This chapter covers the following topics:</para><itemizedlist><listitem><para><olink targetptr="zones.intro-2" remap="internal">Zones Overview</olink></para>
</listitem><listitem><para><olink targetptr="zones.intro-3" remap="internal">When to Use Zones</olink></para>
</listitem><listitem><para><olink targetptr="zones.intro-5" remap="internal">How Zones Work</olink></para>
</listitem><listitem><para><olink targetptr="zones.intro-9" remap="internal">Features Provided by Non-Global
Zones</olink></para>
</listitem><listitem><para><olink targetptr="zones.intro-10" remap="internal">Setting Up Zones on Your
System (Task Map)</olink></para>
</listitem>
</itemizedlist><para>If you are ready to start creating zones on your system, skip to <olink targetptr="z.config.ov-1" remap="internal">Chapter&nbsp;17, Non-Global Zone Configuration (Overview)</olink>.</para><note><para>For information on branded zones, see <olink targetptr="gchhk" remap="internal">Part&nbsp;III,
Branded Zones</olink>.</para><para>For information on using zones on a Solaris
Trusted Extensions system, see <olink targetdoc="trsoladmproc" targetptr="managezones-1" remap="external">Chapter 16, <citetitle remap="chapter">Managing Zones in Trusted Extensions (Tasks),</citetitle> in <citetitle remap="book">Solaris Trusted Extensions Administrator&rsquo;s Procedures</citetitle></olink> and <olink targetdoc="trsoltrans" targetptr="trans-42" remap="external"><citetitle remap="section">Zones in Trusted Extensions</citetitle> in <citetitle remap="book">Solaris Trusted Extensions Transition Guide</citetitle></olink>.</para>
</note>
</highlights><sect1 id="zones.intro-2"><title>Zones Overview</title><para>The Solaris Zones partitioning technology is used to virtualize
operating system services and provide an isolated and secure environment for
running applications. A <emphasis>zone</emphasis> is a virtualized operating
system environment created within a single instance of the Solaris Operating
System. When you create a zone, you produce an application execution environment
in which processes are isolated from the rest of the system. This isolation
prevents processes that are running in one zone from monitoring or affecting
processes that are running in other zones. Even a process running with superuser
credentials cannot view or affect activity in other zones.</para><para>A zone also provides an abstract layer that separates applications from
the physical attributes of the machine on which they are deployed. Examples
of these attributes include physical device paths.</para><para>Zones can be used on any machine that is running the Solaris 10 or later
release. The upper limit for the number of zones on a system is 8192. The
number of zones that can be effectively hosted on a single system is determined
by the total resource requirements of the application software running in
all of the zones.</para><para>There are two types of non-global zone root file
system models: sparse and whole root. The <emphasis>sparse root zone</emphasis> model
optimizes the sharing of objects. The <emphasis>whole root zone</emphasis> model
provides the maximum configurability. These concepts are discussed in <olink targetptr="z.conf.start-1" remap="internal">Chapter&nbsp;18, Planning and Configuring Non-Global
Zones (Tasks)</olink>.</para>
</sect1><sect1 id="zones.intro-3"><title>When to Use Zones</title><para>Zones are ideal for environments that consolidate a number of applications
on a single server. The cost and complexity of managing numerous machines
make it advantageous to consolidate several applications on larger, more scalable
servers.</para><para>The following figure shows a system with four zones. Each of the zones <literal>apps</literal>, <literal>users</literal>, and <literal>work</literal> is running
a workload unrelated to the workloads of the other zones, in a sample consolidated
environment. This example illustrates that different versions of the same
application can be run without negative consequences in different zones, to
match the consolidation requirements. Each zone can provide a customized set
of services.</para><figure id="zones.intro-fig-14"><title>Zones Server Consolidation Example</title><mediaobject><imageobject><imagedata entityref="serv-con-zones" width="100"/>
</imageobject><textobject><simpara>Different versions of same application can be run in
different zones without negative consequences.</simpara>
</textobject>
</mediaobject>
</figure><para>Zones enable more efficient resource utilization on your system. Dynamic
resource reallocation permits unused resources to be shifted to other containers
as needed. Fault and security isolation mean that poorly behaved applications
do not require a dedicated and under-utilized system. With the use of zones,
these applications can be consolidated with other applications.</para><para>Zones allow you to delegate some administrative functions while maintaining
overall system security.</para>
</sect1><sect1 id="zones.intro-5"><title>How Zones Work</title><para>A non-global zone can be thought of as a box. One or more applications
can run in this box without interacting with the rest of the system. Solaris
zones isolate software applications or services by using flexible, software-defined
boundaries. Applications that are running in the same instance of the Solaris
Operating System can then be managed independently of one other. Thus, different
versions of the same application can be run in different zones, to match the
requirements of your configuration.</para><para>A process assigned to a zone can manipulate, monitor, and directly communicate
with other processes that are assigned to the same zone. The process cannot
perform these functions with processes that are assigned to other zones in
the system or with processes that are not assigned to a zone. Processes that
are assigned to different zones are only able to communicate through network
APIs.</para><para>IP networking can be configured in two different ways, depending on
whether the zone has its own exclusive IP instance or shares the IP layer
configuration and state with the global zone. For more information about IP
types in zones, see <olink targetptr="z.config.ov-6" remap="internal">Zone Network Interfaces</olink>.
For configuration information, see <olink targetptr="z.conf.start-29" remap="internal">How
to Configure the Zone</olink>.</para><para>Every Solaris system contains a <emphasis>global zone</emphasis>.
The global zone has a dual function. The global zone is both the default zone
for the system and the zone used for system-wide administrative control. All
processes run in the global zone if no <emphasis>non-global</emphasis> zones,
referred to simply as zones, are created by the <emphasis>global administrator</emphasis>.</para><para>The global zone is the only zone from which a non-global zone can be
configured, installed, managed, or uninstalled. Only the global zone is bootable
from the system hardware. Administration of the system infrastructure, such
as physical devices, routing in a shared-IP zone, or dynamic reconfiguration
(DR), is only possible in the global zone. Appropriately privileged processes
running in the global zone can access objects associated with other zones.</para><para>Unprivileged processes in the global zone might be able to perform operations
not allowed to privileged processes in a non-global zone. For example, users
in the global zone can view information about every process in the system.
If this capability presents a problem for your site, you can restrict access
to the global zone.</para><para>Each zone, including the global zone, is assigned
a zone name. The global zone always has the name <literal>global</literal>.
Each zone is also given a unique numeric identifier, which is assigned by
the system when the zone is booted. The global zone is always mapped to ID <literal>0</literal>.  Zone names and numeric IDs are discussed in <olink targetptr="z.config.ov-5" remap="internal">Using the zonecfg Command</olink>.</para><para>Each zone also has a node name that is completely independent of the
zone name. The node name is assigned by the administrator of the zone. For
more information, see <olink targetptr="z.admin.ov-11" remap="internal">Non-Global Zone Node
Name</olink>.</para><para>Each zone has a path to its root directory that is relative to the global
zone's root directory. For more information, see <olink targetptr="z.config.ov-5" remap="internal">Using the zonecfg Command</olink>.</para><para>The scheduling class for a non-global zone is set to the scheduling
class for the system by default. See <olink targetptr="gejen" remap="internal">Scheduling Class</olink> for
a discussion of methods used to set the scheduling class in a zone.</para><sect2 id="zones.intro-17"><title>Summary of Zone Features</title><para>The following table summarizes the characteristics of global and
non-global zones.</para><informaltable frame="topbot"><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="25*"/><colspec colwidth="75*"/><thead><row rowsep="1"><entry><para>Type of Zone</para>
</entry><entry><para>Characteristic</para>
</entry>
</row>
</thead><tbody><row><entry><para>Global</para>
</entry><entry><para></para><itemizedlist><listitem><para>Is assigned ID <literal>0</literal> by the system</para>
</listitem><listitem><para>Provides the single instance of the Solaris kernel that is
bootable and running on the system</para>
</listitem><listitem><para>Contains a complete installation of the Solaris system software
packages</para>
</listitem><listitem><para>Can contain additional software packages or additional software,
directories, files, and other data not installed through packages</para>
</listitem><listitem><para>Provides a complete and consistent product database that contains
information about all software components installed in the global zone</para>
</listitem><listitem><para>Holds configuration information specific to the global zone
only, such as the global zone host name and file system table</para>
</listitem><listitem><para>Is the only zone that is aware of all devices and all file
systems</para>
</listitem><listitem><para>Is the only zone with knowledge of non-global zone existence
and configuration</para>
</listitem><listitem><para>Is the only zone from which a non-global zone can be configured,
installed, managed, or uninstalled</para>
</listitem>
</itemizedlist>
</entry>
</row><row><entry><para>Non-Global</para>
</entry><entry><para></para><itemizedlist><listitem><para>Is assigned a zone ID by the system when the zone is booted</para>
</listitem><listitem><para>Shares operation under the Solaris kernel booted from the
global zone</para>
</listitem><listitem><para>Contains an installed subset of the complete Solaris Operating
System software packages</para>
</listitem><listitem><para>Contains Solaris software packages shared from the global
zone</para>
</listitem><listitem><para>Can contain additional installed software packages not shared
from the global zone</para>
</listitem><listitem><para>Can contain additional software, directories, files, and other
data created on the non-global zone that are not installed through packages
or shared from the global zone</para>
</listitem><listitem><para>Has a complete and consistent product database that contains
information about all software components installed on the zone, whether present
on the non-global zone or shared read-only from the global zone</para>
</listitem><listitem><para>Is not aware of the existence of any other zones</para>
</listitem><listitem><para>Cannot install, manage, or uninstall other zones, including
itself</para>
</listitem><listitem><para>Has configuration information specific to that non-global
zone only, such as the non-global zone host name and file system table</para>
</listitem><listitem><para>Can have its own time zone setting</para>
</listitem>
</itemizedlist>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="zones.intro-11"><title>How Non-Global Zones Are Administered</title><para>A global administrator has
superuser privileges or the Primary Administrator role. When logged in to
the global zone, the global administrator can monitor and control the system
as a whole.</para><para>A non-global zone can be administered by a <emphasis>zone administrator</emphasis>.
The global administrator assigns the Zone Management profile to the zone administrator.
The privileges of a zone administrator are confined to a non-global zone.</para>
</sect2><sect2 id="zones.intro-8"><title>How Non-Global Zones Are Created</title><para>The global administrator uses the <command>zonecfg</command> command
to configure a zone by specifying various parameters for the zone's virtual
platform and application environment. The zone is then installed by the global
administrator, who uses the zone administration command <command>zoneadm</command> to
install software at the package level into the file system hierarchy established
for the zone. The <command>zoneadm</command> command is used to boot the zone.
The global administrator can then log in to the installed zone by using the <command>zlogin</command> command. At first login, the internal configuration for the
zone is completed.</para><para>For information about zone configuration, see <olink targetptr="z.config.ov-1" remap="internal">Chapter&nbsp;17, Non-Global Zone Configuration (Overview)</olink>. For information about zone installation, see <olink targetptr="z.inst.ov-1" remap="internal">Chapter&nbsp;19, About Installing, Halting, Cloning,
and Uninstalling Non-Global Zones (Overview)</olink>. For information about
zone login, see <olink targetptr="z.login.ov-1" remap="internal">Chapter&nbsp;21, Non-Global
Zone Login (Overview)</olink>.</para>
</sect2><sect2 id="zones.intro-12"><title>Non-Global Zone State Model</title><para>A non-global
zone can be in one of the following six states:</para><variablelist><varlistentry><term>Configured</term><listitem><para>The zone's configuration is complete and committed to stable
storage. However, those elements of the zone's application environment that
must be specified after initial boot are not yet present.</para>
</listitem>
</varlistentry><varlistentry><term>Incomplete</term><listitem><para>During an install or uninstall operation, <command>zoneadm</command> sets
the state of the target zone to incomplete. Upon successful completion of
the operation, the state is set to the correct state.</para><para>A damaged installed zone can be marked incomplete by using the <literal>mark</literal> subcommand of <command>zoneadm</command>. Zones in the incomplete
state are shown in the output of <command>zoneadm</command> <literal>list</literal> <option>iv</option>.</para>
</listitem>
</varlistentry><varlistentry><term>Installed</term><listitem><para>The zone's configuration is instantiated on the system. The <command>zoneadm</command> command is used to verify that the configuration can be
successfully used on the designated Solaris system. Packages are installed
under the zone's root path. In this state, the zone has no associated virtual
platform.</para>
</listitem>
</varlistentry><varlistentry><term>Ready</term><listitem><para>The virtual platform for the zone is established. The kernel
creates the <command>zsched</command> process, network interfaces are set
up and made available to the zone, file systems are mounted, and devices are
configured. A unique zone ID is assigned by the system. At this stage, no
processes associated with the zone have been started.</para>
</listitem>
</varlistentry><varlistentry><term>Running</term><listitem><para>User processes associated with the zone application environment
are running. The zone enters the running state as soon as the first user process
associated with the application environment (<literal>init</literal>) is created.</para>
</listitem>
</varlistentry><varlistentry><term>Shutting down and Down</term><listitem><para>These states are transitional states that are visible while
the zone is being halted. However, a zone that is unable to shut down for
any reason will stop in one of these states.</para>
</listitem>
</varlistentry>
</variablelist><para><olink targetptr="z.inst.task-1" remap="internal">Chapter&nbsp;20, Installing, Booting,
Halting, Uninstalling,  and Cloning Non-Global Zones (Tasks)</olink> and the <olink targetdoc="group-refman" targetptr="zoneadm-1m" remap="external"><citerefentry><refentrytitle>zoneadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page
describe how to use the <command>zoneadm</command> command to initiate transitions
between these states.</para><table frame="all" id="zones.intro-tbl-15"><title>Commands That Affect Zone
State</title><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="30*"/><colspec colwidth="70*"/><thead><row><entry><para>Current Zone State</para>
</entry><entry><para>Applicable Commands</para>
</entry>
</row>
</thead><tbody><row><entry><para>Configured</para>
</entry><entry><para><command>zonecfg</command> <option>z</option> <replaceable>zonename</replaceable> <command>verify</command></para><para><command>zonecfg</command> <option>z</option> <replaceable>zonename</replaceable> <command>commit</command></para><para><command>zonecfg</command> <option>z</option> <replaceable>zonename</replaceable> <command>delete</command></para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>attach</command></para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>verify</command></para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>install</command></para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>clone</command></para><para>You can also use <command>zonecfg</command> to rename a zone in the
configured or installed state.</para>
</entry>
</row><row><entry><para>Incomplete</para>
</entry><entry><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>uninstall</command></para>
</entry>
</row><row><entry><para>Installed</para>
</entry><entry><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>ready</command> (optional)</para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>boot</command></para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>uninstall</command> uninstalls the configuration of the specified zone from
the system.</para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>move</command> <replaceable>path</replaceable> </para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>detach</command></para><para><command>zonecfg</command> <option>z</option> <replaceable>zonename</replaceable> can
be used to add or remove an <literal>attr</literal>, <literal>bootargs</literal>, <literal>capped-memory</literal>, <literal>dataset</literal>, <literal>capped-cpu</literal>, <literal>dedicated-cpu</literal>, <literal>device</literal>, <literal>fs</literal>, <literal>ip-type</literal>, <literal>limitpriv</literal>, <literal>net</literal>, <literal>rctl</literal>, or <literal>scheduling-class</literal> property. You can also
rename a zone in the installed state. The <literal>inherit-pkg-dir</literal> resources
cannot be changed.</para>
</entry>
</row><row><entry><para>Ready</para>
</entry><entry><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>boot</command></para><para><command>zoneadm</command> <command>halt</command> and system reboot
return a zone in the ready state to the installed state.</para><para><command>zonecfg</command> <option>z</option> <replaceable>zonename</replaceable> can
be used to add or remove <literal>attr</literal>, <literal>bootargs</literal>, <literal>capped-memory</literal>, <literal>dataset</literal>, <literal>capped-cpu</literal>, <literal>dedicated-cpu</literal>, <literal>device</literal>, <literal>fs</literal>, <literal>ip-type</literal>, <literal>limitpriv</literal>, <literal>net</literal>, <literal>rctl</literal>, or <literal>scheduling-class</literal> property. The <literal>inherit-pkg-dir</literal> resources cannot be changed.</para>
</entry>
</row><row><entry><para>Running</para>
</entry><entry><para><command>zlogin</command> <replaceable>options</replaceable> <command>zonename</command></para><para><command>zoneadm</command> <option>z</option> <replaceable>zonename</replaceable> <command>reboot</command></para><para><command>zoneadm</command> <option>z</option><replaceable> zonename</replaceable> <command>halt</command> returns a ready zone to the installed state.</para><para><command>zoneadm</command> <command>halt</command> and system reboot
return a zone in the running state to the installed state.</para><para><command>zonecfg</command> <option>z</option> <replaceable>zonename</replaceable> can
be used to add or remove an <literal>attr</literal>, <literal>bootargs</literal>, <literal>capped-memory</literal>, <literal>dataset</literal>, <literal>capped-cpu</literal>, <literal>dedicated-cpu</literal>, <literal>device</literal>, <literal>fs</literal>, <literal>ip-type</literal>, <literal>limitpriv</literal>, <literal>net</literal>, <literal>rctl</literal>, or <literal>scheduling-class</literal> property. The <literal>zonepath</literal> and<literal> inherit-pkg-dir</literal> resources cannot be changed.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><note><para>Parameters changed through <command>zonecfg</command> do not affect
a running zone. The zone must be rebooted for the changes to take effect.</para>
</note>
</sect2><sect2 id="zones.intro-7"><title>Non-Global Zone Characteristics</title><para>A zone provides isolation at almost any level of granularity you require.
A zone does not need a dedicated CPU, a physical device, or a portion of physical
memory. These resources can either be multiplexed across a number of zones
running within a single domain or system, or allocated on a per-zone basis
using the resource management features available in the operating system.</para><para>Each zone can provide a customized set of services. To enforce basic
process isolation, a process can see or signal only those processes that exist
in the same zone. Basic communication between zones is accomplished by giving
each zone IP network connectivity. An application running in one zone cannot
observe the network traffic of another zone. This isolation is maintained
even though the respective streams of packets travel through the same physical
interface.</para><para>Each zone is given a portion of the file system hierarchy. Because each
zone is confined to its subtree of the file system hierarchy, a  workload
running in a particular zone cannot access the on-disk data  of another workload
running in a different zone.</para><para>Files used by naming services reside within a zone's own root file system
view. Thus, naming services in different zones are isolated from one other
and the services can be configured differently.</para>
</sect2><sect2 id="zones.intro-13"><title>Using Resource Management Features With
Non-Global Zones</title><para>If you use resource management features, you should align the boundaries
of the resource management controls with those of the zones. This alignment
creates a more complete model of a virtual machine, where namespace access,
security isolation, and resource usage are all controlled.</para><para>Any special requirements for using the various resource management features
with zones are addressed in the individual chapters of this manual that document
those features.</para>
</sect2>
</sect1><sect1 id="zones.intro-9"><title>Features Provided by Non-Global Zones</title><para>Non-global zones provide the following features:</para><variablelist><varlistentry><term>Security</term><listitem><para>Once a process has been placed in a zone other than the global
zone, neither the process nor any of its subsequent children can change zones.</para><para>Network services can be run in a zone. By running network services in
a zone, you limit the damage possible in the event of a security violation.
An intruder who successfully exploits a security flaw in software running
within a zone is confined to the restricted set of actions possible within
that zone. The privileges available within a zone are a subset of those available
in the system as a whole.</para>
</listitem>
</varlistentry><varlistentry><term>Isolation</term><listitem><para>Zones allow the deployment of multiple applications on the
same machine, even if those applications operate in different trust domains,
require exclusive access to a global resource, or present difficulties with
global configurations. For example, multiple applications running in different
shared-IP zones on the same system can bind to the same network port by using
the distinct IP addresses associated with each zone or by using the wildcard
address. The applications are also prevented from monitoring or intercepting
each other's network traffic, file system data, or process activity.</para>
</listitem>
</varlistentry><varlistentry><term>Network Isolation</term><listitem><para>If a zone needs to be isolated at the IP layer on the network,
for example, by being connected to different VLANs or different LANs than
the global zone and other non-global zones, then for security reasons the
zone can have an exclusive IP. The exclusive-IP zone can be used to consolidate
applications that must communicate on different subnets that are on different
VLANs or different LANs.</para><para>Zones can also be configured as shared-IP zones. These zones connect
to the same VLANs or same LANs as the global zone and share the IP routing
configuration with the global zone. Shared-IP zones have separate IP addresses,
but share the other parts of IP.</para>
</listitem>
</varlistentry><varlistentry><term>Virtualization</term><listitem><para>Zones provide a virtualized environment that can hide details
such as physical devices and the system's primary IP address and host name
from applications. The same application environment can be maintained on different
physical machines. The virtualized environment allows separate administration
of each zone. Actions taken by a zone administrator in a non-global zone do
not affect the rest of the system.</para>
</listitem>
</varlistentry><varlistentry><term>Granularity</term><listitem><para>A zone can provide isolation at almost any level of granularity.
See <olink targetptr="zones.intro-7" remap="internal">Non-Global Zone Characteristics</olink> for
more information.</para>
</listitem>
</varlistentry><varlistentry><term>Environment</term><listitem><para>Zones do not change the environment in which applications
execute except when necessary to achieve the goals of security and isolation.
Zones do not present a new API or ABI to which applications must be ported.
Instead, zones provide the standard Solaris interfaces and application environment,
with some restrictions. The restrictions primarily affect applications that
attempt to perform privileged operations.</para><para>Applications in the global zone run without modification, whether or
not additional zones are configured.</para>
</listitem>
</varlistentry>
</variablelist>
</sect1><sect1 id="zones.intro-10"><title>Setting Up Zones on Your System (Task Map)</title><para>The following table provides a basic overview of the tasks that are
involved in setting up zones on your system for the first time.</para><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>Identify the applications that you would like to run in zones.</para>
</entry><entry><para>Review the applications running on your system:</para><itemizedlist><listitem><para>Determine which applications are critical to your business
goals.</para>
</listitem><listitem><para>Assess the system needs of the applications you are running.</para>
</listitem>
</itemizedlist>
</entry><entry><para>Refer to your business goals and to your system documentation if necessary.</para>
</entry>
</row><row><entry><para>Determine how many zones to configure.</para>
</entry><entry><para>Assess:</para><itemizedlist><listitem><para>The performance requirements of the applications you intend
to run in zones</para>
</listitem><listitem><para>The availability of the recommended 100 MB of free disk space
per zone to be installed</para>
</listitem>
</itemizedlist><para></para>
</entry><entry><para>See <olink targetptr="z.conf.start-3" remap="internal">Evaluating the Current System
Setup</olink>.</para>
</entry>
</row><row><entry><para>Determine whether you will use resource pools with your zone to create
a container.</para>
</entry><entry><para>If you are also using resource management features on your system, align
the zones with the resource management boundaries. Configure resource pools
before you configure zones.</para><para>Note that you can add zone-wide resource controls and pool functionality
to a zone quickly by using <literal>zonecfg</literal> properties.</para>
</entry><entry><para>See <olink targetptr="z.conf.start-29" remap="internal">How to Configure the Zone</olink>,
and <olink targetptr="rmpool.task-1" remap="internal">Chapter&nbsp;13, Creating and Administering
Resource Pools (Tasks)</olink>.</para>
</entry>
</row><row><entry><para>Perform the preconfiguration tasks.</para>
</entry><entry><para>Determine the zone name and the zone path. Determine whether the zone
will be a shared-IP zone or an exclusive-IP zone, and obtain IP addresses
or the data-link name. Determine the required file systems and devices for
each zone. Determine the scheduling class for the zone. Determine the set
of privileges that processes inside the zone should be limited to, if the
standard default set is not sufficient. Note that some <command>zonecfg</command> settings
automatically add privileges. For example, <literal>ip-type=exclusive</literal> automatically
adds multiple privileges  required to configure and manage network stacks.</para>
</entry><entry><para>For information on the zone name and path, IP types, IP addresses, file
systems, devices, scheduling class, and privileges, see <olink targetptr="z.config.ov-1" remap="internal">Chapter&nbsp;17, Non-Global Zone Configuration (Overview)</olink> and <olink targetptr="z.conf.start-3" remap="internal">Evaluating the Current System
Setup</olink>. For a listing of default privileges and privileges that can
be configured in a non-global zone, see <olink targetptr="z.admin.ov-18" remap="internal">Privileges
in a Non-Global Zone</olink>. For information about IP feature availability,
see <olink targetptr="z.admin.ov-9" remap="internal">Networking in Shared-IP Non-Global Zones</olink> and <olink targetptr="gelkh" remap="internal">Networking in Exclusive-IP Non-Global Zones</olink>.</para>
</entry>
</row><row><entry><para>Develop configurations.</para>
</entry><entry><para>Configure non-global zones.</para>
</entry><entry><para>See <olink targetptr="z.conf.start-85" remap="internal">Configuring, Verifying, and Committing
a Zone</olink> and the <olink targetdoc="group-refman" targetptr="zonecfg-1m" remap="external"><citerefentry><refentrytitle>zonecfg</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</entry>
</row><row><entry><para>As global administrator, verify and install configured zones.</para>
</entry><entry><para>Zones must be verified and installed prior to login.</para>
</entry><entry><para>See <olink targetptr="z.inst.ov-1" remap="internal">Chapter&nbsp;19, About Installing,
Halting, Cloning, and Uninstalling Non-Global Zones (Overview)</olink> and <olink targetptr="z.inst.task-1" remap="internal">Chapter&nbsp;20, Installing, Booting, Halting, Uninstalling,
 and Cloning Non-Global Zones (Tasks)</olink>.</para>
</entry>
</row><row><entry><para>As global administrator, boot the non-global zones.</para>
</entry><entry><para>Boot each zone to place the zone in the running state.</para>
</entry><entry><para>See <olink targetptr="z.inst.ov-1" remap="internal">Chapter&nbsp;19, About Installing,
Halting, Cloning, and Uninstalling Non-Global Zones (Overview)</olink> and <olink targetptr="z.inst.task-1" remap="internal">Chapter&nbsp;20, Installing, Booting, Halting, Uninstalling,
 and Cloning Non-Global Zones (Tasks)</olink>.</para>
</entry>
</row><row><entry><para>As global administrator, perform the initial internal configuration
of the zone.</para>
</entry><entry><para>Place a <filename>sysidcfg</filename> file in the zone's <filename>/etc</filename> directory
or log in to each non-global zone using the <command>zlogin</command> command
with the <option>C</option> option and enter the requested information, including
assigning the zone root password.</para>
</entry><entry><para>See <olink targetptr="z.login.ov-1" remap="internal">Chapter&nbsp;21, Non-Global Zone
Login (Overview)</olink> and <olink targetptr="z.login.task-1" remap="internal">Chapter&nbsp;22,
Logging In to Non-Global Zones (Tasks)</olink>.</para>
</entry>
</row><row><entry><para>Prepare the new zone for production use.</para>
</entry><entry><para>Create user accounts, add additional software, and customize the zone's
configuration.</para>
</entry><entry><para>Refer to the documentation you use to set up a newly installed machine.
Special considerations applicable to a system with zones installed are covered
in this guide.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1>
</chapter>