zonecfg(1M) - set up zone configuration



  • System Administration Commands                                     zonecfg(1M)
    
    
    
    NAME
           zonecfg - set up zone configuration
    
    SYNOPSIS
           zonecfg -z zonename [-r]
    
    
           zonecfg -z zonename [-r] subcommand
    
    
           zonecfg -z zonename [-r]  -f command_file
    
    
           zonecfg help
    
    
    DESCRIPTION
           The zonecfg utility creates, modifies, and lists the configuration of a
           zone. The creation and modification functions  are  only  available  to
           authorized  users  and  require  that  the  process is executed with an
           effective user ID of root. Otherwise it runs in read-only mode.
    
    
           A zone's configuration consists of a number of  resources  and  proper-
           ties.
    
    
           To  simplify  the  user interface, zonecfg uses the concept of a scope.
           The default scope is global.
    
    
           The following synopsis of the zonecfg command  is  for  non-interactive
           usage:
    
             zonecfg -z zonename subcommand
    
    
    
    
           The zonecfg utility can run in two edit modes:
    
           default    Allows  to  create, modify and list the persistent zone con-
                      figuration stored on the stable storage. Parameters  changed
                      through  zonecfg in the default mode do not affect a running
                      zone. The zone must be reconfigured using zoneadm(1M)  apply
                      subcommand or rebooted for the changes to take effect.
    
                      The  authorization  solaris.zone.config/zonename is required
                      to allow changes in the persistent configuration.
    
    
           live       Allows to retrieve, modify and list the  live  configuration
                      of a running zone. Parameters changed through zonecfg in the
                      live mode take effect immediately after  they  are  commited
                      and  remain active until the next zone reboot. The live mode
                      is available only for a running zone and requires the autho-
                      rization solaris.zone.liveconfig/zonename.
    
                      See   the  respective  brand  manual  page  for  details  on
                      resources supported by the live zone reconfiguration.
    
    
    
           In addition to creating and modifying a zone, the zonecfg  utility  can
           also  be  used to persistently specify the resource management settings
           for the global zone or to configure the global  zone  as  an  immutable
           global  zone  by specifying a file-mac-profile in combination with set-
           tings forfs-allowed, dataset, and devices..
    
    
           In the following text, "rctl" is used as an abbreviation for  "resource
           control". See resource-controls (5).
    
    
           Every zone is configured with an associated brand. The brand determines
           the user-level environment used within the zone,  as  well  as  various
           behaviors  for  the  zone  when it is installed, boots, or is shutdown.
           Once a zone has been installed the brand cannot be changed. The default
           brand  is  determined by the installed distribution in the global zone.
           Some brands do not support all of the zonecfg properties and resources.
           See  the brand-specific man page for more details on each brand. For an
           overview of brands, see the brands(5) man page.
    
       Resources
           The following resource types are supported:
    
           attr
    
               Generic attribute.
    
    
           capped-cpu
    
               Limits for CPU usage.
    
    
           capped-memory
    
               Limits for physical, swap, and locked memory.
    
    
           dataset
    
               ZFS dataset.
    
    
           dedicated-cpu
    
               Subset of the system's processors dedicated to this zone  while  it
               is running.
    
    
           device
    
               Device.
    
    
           fs
    
               file-system
    
    
           ib-vhca
    
               Virtual InfiniBand device.
    
    
           port
    
               Port  for virtual InfiniBand device. Port resource is only valid in
               ib-vhca resource scope.
    
    
           keysource
    
               Encryption key
    
    
           net
    
               Network interface.
    
    
           anet
    
               Automatic network interface.
    
    
           mac
    
               Extra mac-address configured for a zone. The mac resource  is  only
               valid within an anet resource.
    
    
           admin
    
               Delegated administrator.
    
    
           rctl
    
               Resource control.
    
    
           suspend
    
               Suspend image
    
    
           rootzpool
    
               Dedicated ZFS zpool for zone installation.
    
    
           virtual-cpu
    
               Virtual CPUs configured for the zone.
    
    
           zpool
    
               ZFS zpool delegated to the zone.
    
    
           npiv
    
               Fibre Channel NPIV port.
    
    
           verified-boot
    
               Verified Boot settings for the zone.
    
    
    
           Multi-instance  resources  have an identifier which uniquely identifies
           each instance of a resource. The identifier is a number displayed  next
           to  the resource for every instance of all multi-instance resources, in
           the output of info subcommand. The identifiers are automatically gener-
           ated  and  are  not  user modifiable, they are consistent only across a
           zonecfg session.
    
       Sparse and Whole Root Non-Global Zones
           Previous releases of Solaris offered the notion of sparse  root  zones.
           This  functionality  was  intimately associated with the SVr4 packaging
           system and intended  to  save  disk  space  and  reduce  administrative
           effort.
    
    
           The  new packaging system, IPS, provides more flexibility when choosing
           which packages to install in a zone. This, along with advances in  file
           system  technology  (notable  among  which is ZFS deduplication), means
           that it was most sensible to remove sparse root zones. The benefits  of
           sparse  root  zones are provided for all zones by means of the combina-
           tion of IPS packaging and file system advances.
    
       Properties
           Each resource type has one or more  properties.  There  are  also  some
           global properties, that is, properties of the configuration as a whole,
           rather than of some particular resource.
    
    
           The following properties are supported:
    
           (global)
    
               zonename
    
    
           (global)
    
               zonepath
    
    
           (global)
    
               autoboot
    
    
           (global)
    
               autoshutdown
    
    
           (global)
    
               global-time
    
    
           (global)
    
               bootargs
    
    
           (global)
    
               pool
    
    
           (global)
    
               limitpriv
    
    
           (global)
    
               brand
    
    
           (global)
    
               cpu-shares
    
    
           (global)
    
               hostid
    
    
           (global)
    
               max-lwps
    
    
           (global)
    
               max-msg-ids
    
    
           (global)
    
               max-processes
    
    
           (global)
    
               max-sem-ids
    
    
           (global)
    
               max-shm-ids
    
    
           (global)
    
               max-shm-memory
    
    
           (global)
    
               scheduling-class
    
    
           (global)
    
               fs-allowed
    
    
           (global)
    
               file-mac-profile
    
    
           (global)
    
               tenant
    
    
           (global)
    
               cpu-arch
    
    
           fs
    
               dir, special, raw, type, options
    
    
           net
    
               address,  allowed-address,   configure-allowed-address,   physical,
               defrouter, id
    
    
           anet
    
               linkname, lower-link, allowed-address, auto-mac-address, configure-
               allowed-address, defrouter, mac-address, mac-slot, mac-prefix, mtu,
               maxbw, bwshare, priority, vlan-id, vsi-typeid, vsi-vers, vsi-mgrid,
               rxfanout,  rxrings,  txrings,  link-protection,  allowed-dhcp-cids,
               pkey, linkmode, etsbw-lcl, cos, id, evs, vport, iov
    
    
           mac
    
               auto-mac-address, mac-address, mac-prefix, id
    
    
           device
    
               match, allow-partition, allow-raw-io, id, storage
    
    
           ib-vhca
    
               over-hca, id
    
    
           port
    
               pkey, id
    
    
           rctl
    
               name, value
    
    
           attr
    
               name, type, value
    
    
           dataset
    
               name, alias
    
    
           dedicated-cpu
    
               ncpus, importance
    
               cpus, cores, sockets
    
    
           virtual-cpu
    
               ncpus
    
    
           capped-memory
    
               physical, swap, locked
    
    
           capped-cpu
    
               ncpus
    
    
           admin
    
               user, auths
    
    
           rootzpool
    
               storage
    
    
           zpool
    
               storage, name
    
    
           npiv
    
               virtual-port-wwn, over-hba
    
    
           verified-boot
    
               policy, cert
    
    
           hostkey
    
               raw
    
    
           suspend
    
               path, storage
    
    
    
           As  for  the property values that are paired with these names, they are
           either a string or a list of strings. The type allowed is property spe-
           cific. Single values can be optionally enclosed within quotation marks.
    
    
           Lists have the syntax:
    
             [<value>,...]
    
    
    
    
           where  each  <value>  is a string property. A list of a single value is
           equivalent to specifying that value without the list syntax.  That  is,
           "foo" is equivalent to "[foo]". A list can be empty (denoted by "[]").
    
    
           The property types are described as follows:
    
           global: zonename
    
               The name of the zone.
    
    
           global: zonepath
    
               Path  to zone's file system. The default value of zonepath is /sys-
               tem/zones/%{zonename}.
    
    
           global: global-time
    
               Boolean indicating that a zone can change  global/system-wide  time
               (if true) or can change the zone-specific time (if false).
    
    
           global: autoboot
    
               Boolean  indicating  that  a zone should be booted automatically at
               system boot. Note that if the zones service is disabled,  the  zone
               will  not autoboot, regardless of the setting of this property. You
               enable the zones service with a svcadm command, such as:
    
                 # svcadm enable svc:/system/zones:default
    
    
               Replace enable with disable  to  disable  the  zones  service.  See
               svcadm(1M).
    
    
           global: autoshutdown
    
               Action  to take for this zone on clean shutdown of the global zone.
               Can be "shutdown" (a clean zone shutdown; the default); "halt";  or
               "suspend".
    
    
           global: bootargs
    
               Arguments (options) to be passed to the zone bootup, unless options
               are supplied to the "zoneadm boot" command,  in  which  case  those
               take precedence. The valid arguments are described in zoneadm(1M).
    
    
           global: pool
    
               Name  of  the  resource  pool  that this zone must be bound to when
               booted.  This  property  is  incompatible  with  the  dedicated-cpu
               resource.
    
    
           global: limitpriv
    
               The  maximum set of privileges any process in this zone can obtain.
               The property should consist  of  a  comma-separated  privilege  set
               specification  as  described in priv_str_to_set(3C). Privileges can
               be excluded from the resulting set by preceding their names with  a
               dash  (-) or an exclamation point (!). The special privilege string
               "zone" is not supported in this  context.  If  the  special  string
               "default"  occurs  as  the  first token in the property, it expands
               into a safe set of privileges that preserve the resource and  secu-
               rity  isolation  described in zones(5). A missing or empty property
               is equivalent to this same set of safe privileges.
    
               The system administrator must take extreme  care  when  configuring
               privileges  for  a zone. Some privileges cannot be excluded through
               this mechanism as they are required in order to  boot  a  zone.  In
               addition,  there  are certain privileges which cannot be given to a
               zone as doing so would allow processes  inside  a  zone  to  unduly
               affect  processes  in  other  zones.  zoneadm(1M) indicates when an
               invalid privilege has been added or removed from a zone's privilege
               set when an attempt is made to either "boot" or "ready" the zone.
    
               See  privileges(5)  for  a  description  of privileges. The command
               "ppriv -l" (see ppriv(1)) produces a list  of  all  Solaris  privi-
               leges.  You  can specify privileges as they are displayed by ppriv.
               In privileges(5), privileges are listed  in  the  form  PRIV_privi-
               lege_name.  For example, the privilege sys_time, as you would spec-
               ify  it  in  this  property,  is   listed   in   privileges(5)   as
               PRIV_SYS_TIME.
    
    
           global: brand
    
               The zone's brand type.
    
    
           global: ip-type
    
               A  zone  can  either  have  its  own  exclusive instance of IP (the
               default) or share the IP instance with  the  global  zone.  In  the
               default  zone template, SYSdefault, ip-type is set to exclusive. In
               the also-supplied SYSdefault-shared-ip template, ip-type is set  to
               shared.
    
               This property takes the values exclusive and shared.
    
               The  shared-IP  feature  might  be  removed in a future release. We
               strongly  recommend  using  exclusive-IP.  Once  this  feature   is
               removed, zones configured to use this feature will no longer boot.
    
               To  continue  using your zones, please convert any zones which have
               ip-type set to shared to have ip-type set  to  exclusive.  In  most
               cases  this will involve replacing zonecfg(1M) "net" resources with
               "anet" resources. If you have shared IP zones that are using inter-
               faces  which  are part of a global zone IPMP group, then you should
               switch to using DLMP aggregations. In the global zone create a DLMP
               aggregation   on  old  IPMP  interfaces  and  then  then  create  a
               zonecfg(1M) "anet" resource where the lower-link points to the DLMP
               aggregation. Limited shared-IP support will be retained for certain
               multilevel server Trusted Extensions configurations.
    
    
           global: hostid
    
               A zone can emulate a 32-bit host identifier to ease system consoli-
               dation.  A zone's hostid property is empty by default, meaning that
               the zone does not emulate a host identifier. Zone host  identifiers
               must  be hexadecimal values between 0 and FFFFFFFE. A 0x or 0X pre-
               fix is optional. Both uppercase and  lowercase  hexadecimal  digits
               are acceptable.
    
    
           global: fs-allowed
    
               A  comma-separated  list  of  additional  file  systems that can be
               mounted within the zone; for example, ufs,pcfs.  By  default,  only
               hsfs(7FS) and network file systems can be mounted.
    
               This  property does not apply to file systems mounted into the zone
               by means of add fs or add dataset.
    
               Caution -
    
                 Allowing filesystem mounts other than the default might allow the
                 zone administrator to compromise the system with a bogus filesys-
                 tem image and is not supported.
    
    
           global: file-mac-profile
    
               Define which parts of the filesystem are exempted  from  the  read-
               only  policy,  that  is,  which parts of the filesystem the zone is
               allowed to write to.
    
               There are currently five supported values for this property:  none,
               strict, dynamic-zones, fixed-configuration, and flexible-configura-
               tion.
    
               none makes the zone exactly the same as a normal, r/w zone.  strict
               allows  no  exceptions to the read-only policy. fixed-configuration
               allows the zone to write to files in and below /var, except  direc-
               tories containing configuration files:
    
                 /var/ld
                 /var/lib/postrun
                 /var/pkg
                 /var/spool/cron,
                 /var/spool/postrun
                 /var/svc/manifest
                 /var/svc/profiles
    
    
               dynamic-zones  is  equal to fixed-configuration but allows creating
               and destroying non-global zones and kernel zones. This  profile  is
               only  valid for global zones, including the global zone of a kernel
               zone.
    
               flexible-configuration is equal to dynamic-zones, but allows  writ-
               ing to files in /etc in addition.
    
    
           global: tenant
    
    
               Note -
    
                 To  use this property and anet resource's evs and vport property,
                 install Elastic Virtual Switch (EVS) IPS packages  and  configure
                 the  EVS controller as described in evsadm(1M) manpage and Manag-
                 ing  Network  Virtualization  and  Network  Resources  in  Oracle
                 Solaris 11.3.
               Defines  the  name  of the tenant that owns the EVS to which a VNIC
               anet will be connected to. See evsadm(1M).
    
    
           global: cpu-arch
    
               Specify the migration class configured for a solaris-kz brand zone.
               For  now, this only works on SPARC platform and is not supported on
               x86 platform. The possible values of this property are:
    
               generic             kernel zone can perform a CPU-type  independent
                                   migration, but not to a system older than T4.
    
    
               migration-class1    kernel  zone  can perform cross-CPU type migra-
                                   tion between SPARC T4, SPARC T5, SPARC M5,  and
                                   SPARC M6.
    
    
               sparc64-class1      kernel  zone  can perform cross-CPU type migra-
                                   tion between Fujitsu M10 and M10+.
    
               If no value is set, the the kernel zone's CPU  migration  class  is
               the same as the host. It can migrate between CPU types that is com-
               patible of host CPU class.
    
               Note that the kernel zone's CPU migration class cannot  exceed  the
               limit of host's CPU class.
    
    
           fs: dir, special, raw, type, options
    
               Values  needed  to determine how, where, and so forth to mount file
               systems. See mount(1M), mount(2), fsck(1M), and vfstab(4).
    
    
           net: address, allowed-address, configure-allowed-address, physical,
           defrouter, id
    
               The  net  resource  represents the assignment of a physical network
               resource to a zone. The resource must  exist  in  the  global  zone
               prior to the assignment.
    
               The  network  address  and  physical  interface name of the network
               interface. The network address is one of:
    
                   o      a valid IPv4 address, optionally followed by "/"  and  a
                          prefix length;
    
                   o      a  valid IPv6 address, which must be followed by "/" and
                          a prefix length;
    
                   o      a host name which resolves to an IPv4 address.
               Note that host names that resolve to IPv6 addresses  are  not  sup-
               ported.
    
               The physical interface name is the network interface name.
    
               The value for the optional default router is specified similarly to
               the network address except that it must not  be  followed  by  a  /
               (slash)  and  a network prefix length. To enable correct use of the
               defrouter functionality, the zones that use the property must be on
               a  different  subnet  from  the  subnet  on  which  the global zone
               resides. Also, each zone (or set of zones) that  uses  a  different
               defrouter setting must be on a different subnet.
    
               The  id  value  is  a positive integer used to identify the network
               interface; see solaris-kz(5).
    
               A zone can be configured to be either  exclusive-IP  or  shared-IP.
               For  a  shared-IP  zone, you must set both the physical and address
               properties; setting the default router is optional.  The  interface
               specified  in  the  physical property must be plumbed in the global
               zone prior to booting the non-global zone. However, if  the  inter-
               face  is  not used by the global zone, it should be configured down
               in the global zone, and the default router for the interface should
               be specified here. The allowed-address property cannot be set for a
               shared-IP zone.
    
               For an exclusive-IP zone, the physical property must be set and the
               address  property  must  not  be  set.  Optionally,  the  set of IP
               addresses that the exclusive-IP zone can use might  be  constrained
               by  specifying the allowed-address property. If allowed-address has
               not been specified, then the  exclusive-IP  zone  can  use  any  IP
               address  on the associated physical interface for the net resource.
               Otherwise, when allowed-address is specified, the exclusive-IP zone
               cannot  use  IP  addresses that are not in the allowed-address list
               for the physical address. If configure-allowed-address  is  set  to
               true,  the addresses specified by allowed-address are automatically
               configured on the interface each time the zone boots.  When  it  is
               set  to  false,  the allowed-address will not be configured on zone
               boot. By default, configure-allowed-address is set to true when  an
               allowed-address is specified. In addition, when the allowed-address
               list has been populated, the defrouter property can also be option-
               ally  specified.  However,  if the defrouter value is specified and
               configure-allowed-address is set to false, the defrouter value will
               be  ignored  and  an appropriate warning message will be shown. The
               interface specified for the physical property must not be in use in
               the global zone. If an allowed-address and default router are spec-
               ified by means of zonecfg, these will be applied to  the  interface
               when  it is enabled by means of ipadm(1M) in the non-global, exclu-
               sive-IP zone, typically during zone boot. The non-global exclusive-
               IP  zone  will  not  be  able  to apply any other addresses to that
               interface, nor will it be able to transmit packets with a different
               source  address  for the specified IP version. A default router set
               up by means of zonecfg cannot be persistently deleted  from  within
               the non-global exclusive-IP zone using the -p flag with route(1M).
    
               Note  that a single datalink cannot be shared among multiple exclu-
               sive-IP zones.
    
               Assigning an IPoIB VNIC to a solaris-kz brand zone is not currently
               supported.
    
    
           anet: linkname, lower-link, allowed-address, auto-mac-address, config-
           ure-allowed-address, defrouter, mac-address, mac-slot, mac-prefix, mtu,
           maxbw, bwshare, priority, vlan-id, vsi-typeid, vsi-vers, vsi-mgrid,
           rxfanout, rxrings, txrings, link-protection, allowed-dhcp-cids, pkey,
           linkmode, etsbw-lcl, cos, id, evs, vport, lro, mac, iov
    
               The  anet  resource  represents the automatic creation of a network
               resource for an exclusive-IP zone.  When  zonecfg  creates  a  zone
               using  the  default  SYSdefault template, an anet resource with the
               following properties is automatically included in the zone configu-
               ration:
    
                 linkname=net0
                 lower-link=auto
                 mac-address=default
                 link-protection=mac-nospoof
    
    
               When such a zone boots, a temporary VNIC or IPoIB datalink is auto-
               matically created for the zone. The VNIC or the IPoIB  datalink  is
               deleted when the zone halts.
    
               Note -
    
                 To  use  EVS  and  VPort install Elastic Virtual Switch (EVS) IPS
                 packages, and then configure EVS controller as described  in  the
                 evsadm(1M)  manpage  and Managing Network Virtualization and Net-
                 work Resources in Oracle Solaris 11.3.
               An EVS is a virtual switch that spans one or more servers (physical
               machines).  It represents an isolated L2 segment, and provides net-
               work connectivity between the zones whose VNIC anets are  connected
               to  it.  A  VPort  is  uniquely identified by 3-tuple <tenant, evs,
               vport>, so a zone's configuration should include  this  information
               if a VNIC anet need to be connected to an EVS.
    
               Note -
    
                 For  a VNIC anet connecting to an EVS, only allowed anet property
                 is linkname, as it acquires other properties from the VPort.
               The supported properties are described below. All these  properties
               are  optional.  Only the global zone is allowed to modify the auto-
               matically created VNIC or IPoIB datalink or its  properties.  If  a
               property  set  in  zonecfg  cannot be assigned to the VNIC or IPoIB
               datalink at its creation time, the zone will fail to boot.
    
               linkname
    
                   Specify a name for the  automatically  created  VNIC  or  IPoIB
                   datalink.  By  default, this property will be automatically set
                   to the first available name (for the zone) of  the  form  netN,
                   where N is a non-negative integer. For example: net0, net1, and
                   so on. The info subcommand displays the automatically  selected
                   linkname.
    
                   Multiple  zones, including the global zone, can have links with
                   the same name at the same time.
    
    
               evs
               vport
    
                   If EVS is specified and optionally a VPort is  specified,  then
                   VNIC  anet  will  be  created by connecting to that EVS at that
                   VPort. If the global tenant property  is  specified,  then  EVS
                   will be searched in that tenant's namespace.
    
                   If VPort is specified, then the SLA properties (maxbw, cos, and
                   priority), IP address, and default router MAC  address  of  the
                   VPort will be inherited by the VNIC. If VPort is not specified,
                   then EVS controller will generate a system VPort, (it will have
                   IP  address,  MAC address, and EVS' default SLA properties) and
                   then the VNIC will be connected to this system VPort.
    
                   The IP address anti-spoof will be enabled on the VNIC, by  set-
                   ting  the  allowed-ips  VNIC property to that of the VPort's IP
                   address. VPort's IP address will be automatically configured on
                   the  interface  each time the zone boots. The default router IP
                   address associated with the VPort is also automatically config-
                   ured in the zone.
    
                   See  the  evsadm(1M)  manpage  for  more information on EVS and
                   VPorts.
    
    
               lower-link
    
                   Specify the link over which the VNIC or IPoIB will be  created.
                   This  property  has a default value of auto for Ethernet links.
                   If pkey is specified, lower-link must be specified with a valid
                   IPoIB  phys  class  datalink.  The administrator may explicitly
                   specify a value upon adding an anet resource. The link  can  be
                   any  link  accepted  as  an  argument to dladm create-vnic's -l
                   option or to dladm create-part's -l option (see dladm(1M)).  If
                   this  property  is set to a linkname (other than auto) and that
                   link does not exist, then the zone will fail to boot. When  set
                   to  auto, the zoneadmd(1M) daemon will automatically choose the
                   link over which the VNIC will be created  each  time  the  zone
                   boots.  All IPoIB datalinks will will be skipped when selecting
                   the default lower-link for creating the VNIC automatically dur-
                   ing boot. A link will be chosen using the following heuristic:
    
                       1.     A link aggregation that has a link state of up.
    
                       2.     Of the physical Ethernet links, choose the link with
                              the following:
    
                           a.     Link state of up
    
                           b.     Maximum  number  of  available  VFs   (only   if
                                  iov=auto/on)
    
                           c.     Maximum number of free mac-slots
    
                           d.     The one with the alphabetically smallest name
    
                       3.     If none is up, the datalink named net0 is used if it
                              exists.
                   If none of the above can be satisfied, the zone  will  fail  to
                   boot.
    
    
               allowed-address
    
                   See  the description of the allowed-address property for exclu-
                   sive-IP zones in the net resource.
    
    
               auto-mac-address
    
                   Holds the list of the randomly generated MAC addresses when the
                   mac-address  property  (see below) is set to random or auto, so
                   that the zone reacquires the same  addresses  on  a  persistent
                   basis.  To  reset the randomly generated addresses, an adminis-
                   trator needs to clear this property.
    
    
               bwshare
    
                   Specify the bandwidth share for the VNIC. See bwshare  property
                   in dladm(1M). This property is currently supported only on cer-
                   tain NICs.
    
    
               configure-allowed-address
    
                   See the description of the  configure-allowed-address  property
                   for exclusive-IP zones in the net resource.
    
    
               cos
    
                   The 802.1p priority associated with the datalink. See dladm(1M)
                   for details on this property.
    
    
               defrouter
    
                   See the description of the defrouter property for  exclusive-IP
                   zones in the net resource.
    
    
               etsbw-lcl
    
                   Indicates  the  ETS bandwidth on the TX side. See dladm(1M) for
                   details on this property.
    
    
               mac-address
    
                   Set the VNIC's list of MAC addresses  based  on  the  specified
                   values or keywords. If an element of the list is not a keyword,
                   it is interpreted as a unicast MAC address.  This  property  is
                   not supported on IPoIB datalinks. The supported keywords are:
    
                       o      factory:  Assign  a factory MAC address to the VNIC.
                              When a factory MAC address is  requested,  the  mac-
                              slot property can be used to specify the MAC address
                              slot identifier. Otherwise, the next available  fac-
                              tory MAC address will be used.
    
                       o      random: Assign a random MAC address to the VNIC. Use
                              the mac-prefix property to specify a prefix.  Other-
                              wise,  a  default  prefix consisting of a valid IEEE
                              OUI with the local bit set will be used.
    
                       o      auto: Try to assign random mac-address first if pos-
                              sible, if NIC supports it, else try to assign a fac-
                              tory mac-address. This is the default value.
    
                       o      default: Use a platform specific  assignment  strat-
                              egy.  In most cases this attempts to allocate a ran-
                              dom address (see 'random'  above).  If  the  current
                              platform is an Oracle Solaris kernel zone, a factory
                              MAC address will be assigned (see 'factory' above).
                   If any random MAC addresses are selected,  then  the  addresses
                   generated   will  be  preserved  across  zone  boots  and  zone
                   detach/attach. This will  allow  zones  to  retain  their  DHCP
                   leases  by  maintaining  stable  client IDs, and otherwise take
                   advantage of other benefits of having stable MAC addresses.
    
    
               mac-prefix
    
                   Specify the list of MAC address prefixes to use if  random  MAC
                   address  allocation  is  requested.  Otherwise this property is
                   ignored. This property is not valid over IPoIB datalinks.
    
    
               mac-slot
    
                   Specify the list of MAC address slot identifiers used  if  fac-
                   tory  MAC  addresses  are requested. Otherwise this property is
                   ignored. This property is not valid over IPoIB datalinks.
    
    
               mtu
    
                   The maximum transmission unit of the VNIC  in  bytes.  See  mtu
                   property in dladm(1M).
    
    
               maxbw
    
                   Specify the full duplex bandwidth for the VNIC. See maxbw prop-
                   erty in dladm(1M). By default, the VNIC will use the maxbw  set
                   on the lower-link and if none is set then there is no bandwidth
                   limit.
    
    
               priority
    
                   Specify the relative priority for the VNIC.  See  the  priority
                   property in dladm(1M) for supported values and default.
    
    
               lro
    
                   Large  receive  offload.  Valid values are off, on or auto. The
                   value auto is set to inherit the lower link's lro  disposition.
                   This  property  is  valid  only  for  Ethernet  links.  See the
                   description in dladm(1M).
    
    
               vlan-id
    
                   Enable VLAN or PVLAN tagging for this VNIC and specify a id for
                   the  VLAN  tag.  There  is no default value which means if this
                   property is not set then the VNIC does not participate  in  any
                   VLAN.  This  property  is not supported on IPoIB datalinks. See
                   the dladm(1M) for supported VLAN ID format.
    
    
               vsi-typeid
    
                   Specify the VSI Type ID associated with a VNIC. See description
                   in dladm(1M).
    
    
               vsi-vers
    
                   Specify the VSI Version associated with a VNIC. See description
                   in dladm(1M).
    
    
               vsi-mgrid
    
                   Specify the VSI Manager ID associated with a VNIC. See descrip-
                   tion in dladm(1M).
    
    
               rxfanout
    
                   Specify the number of receive-side fanout threads. See descrip-
                   tion in dladm(1M).
    
    
               rxrings
    
                   Specify the receive rings for the VNIC. See rxrings property in
                   dladm(1M) for supported values and default.
    
    
               txrings
    
                   Specify  the  transmit rings for the VNIC. See txrings property
                   in dladm(1M) for supported values and default.
    
    
               link-protection
    
                   Enables one or more types of link protection using  comma-sepa-
                   rated values. See the protection property in dladm(1M) for sup-
                   ported values. It has a default value of mac-nospoof.
    
                   Note that adding ip-nospoof  to  this  property  will  have  no
                   effect  unless  allowed-address  is  also set. Setting allowed-
                   address will implicitly add ip-nospoof to the set of  link-pro-
                   tection, and clearing allowed-address will remove it.
    
    
               allowed-dhcp-cids
    
                   Setting this property will enable dhcp-nospoof on the VNIC. See
                   dladm(1M) for details.
    
    
               pkey
    
                   Specifies the InfiniBand Partition key  value  in  hexadecimal.
                   pkey  is  always  treated as hexadecimal, whether it has the 0x
                   prefix or not. This property is only valid for IPoIB datalinks.
    
    
               linkmode
    
                   Sets the  link  transport  service  type  on  an  IB  partition
                   datalink.  The default value is cm. This property is valid only
                   for IPoIB datalinks. Valid values are:
    
                   cm
    
                       Connected Mode. This mode uses a default MTU of  65520  and
                       supports a maximum MTU of 65535 bytes. If Connected Mode is
                       not available for a remote node, Unreliable  Datagram  mode
                       will automatically be used instead.
    
    
                   ud
    
                       Unreliable  Datagram  Mode. This mode uses a default MTU of
                       2044 and supports a maximum MTU of 4092 bytes.
    
    
                   iov
    
                       Setting this property allows a  solaris-kz  brand  zone  to
                       make  use  of  SR-IOV VFs for network devices. The possible
                       values of this property are:
    
                           o      auto: Use a VF if  one  is  available,  if  not,
                                  fallback to using a paravirtual device.
    
                           o      on:  Must  use  a  VF. If a VF is not available,
                                  creation of anet fails.
    
                           o      off: Do not use a VF (the default).
                       If this property is auto/on and lower-link  is  not  speci-
                       fied,  the  lower  link selection logic will take this into
                       consideration in addition to other criteria (see lower-link
                       property for details).
    
                       Here are the limitations of this property:
    
                           o      It  can  only  be used with the solaris-kz brand
                                  zone.
    
                           o      It is  incompatible  with  all  anet  properties
                                  except for lower-link, id, mac-address, mac-pre-
                                  fix, mac-slot.
    
                           o      zoneadm migrate/suspend will fail if this  prop-
                                  erty is set to auto/on.
    
    
               The  id  value  is  a positive integer used to identify the network
               interface; see solaris-kz(5).
    
    
           mac: auto-mac-address, mac-address, mac-prefix, id
    
               The mac resource is used to add extra  mac-addresses  to  the  anet
               resource,  the primary mac address is given by the anet:mac-address
               property.
    
               auto-mac-address    Holds the list of the  randomly  generated  MAC
                                   addresses  when  the  mac-address property (see
                                   below) is set to random or auto,  so  that  the
                                   zone  re-acquires  the same addresses on a per-
                                   sistent basis. To reset the randomly  generated
                                   addresses, an administrator needs to clear this
                                   property.
    
    
               mac-address         Sets the VNIC's list of MAC addresses based  on
                                   the specified values or keywords. If an element
                                   of the list is not a keyword, it is interpreted
                                   as a uni-cast MAC address. This property is not
                                   supported on  IPoIB  datalinks.  The  supported
                                   keywords are:
    
                                   factory:    Assigns  a  factory  MAC address to
                                               the  VNIC.  When  a   factory   MAC
                                               address  is requested, the mac-slot
                                               property can be used to specify the
                                               MAC address slot identifier. Other-
                                               wise, the  next  available  factory
                                               MAC address will be used.
    
    
                                   random:     Assigns a random MAC address to the
                                               VNIC. Use the  mac-prefix  property
                                               to  specify  a prefix. Otherwise, a
                                               default  prefix  consisting  of   a
                                               valid  IEEE  OUI with the local bit
                                               set will be used.
    
    
                                   auto:       Assigns random mac-address, if  NIC
                                               supports   it,  else  it  tries  to
                                               assign a factory mac-address.  This
                                               is the default value.
    
                                   If  any random MAC addresses are selected, then
                                   the  addresses  generated  will  be   preserved
                                   across  zone boots and zone detach/attach. This
                                   will allow zones to retain their DHCP leases by
                                   maintaining  stable  client  IDs, and otherwise
                                   take advantage of other benefits of having sta-
                                   ble MAC addresses.
    
    
               mac-prefix          Specifies  the  list of MAC address prefixes to
                                   use  if  random  MAC  address   allocation   is
                                   requested. Otherwise, this property is ignored.
                                   This  property  is   not   valid   over   IPoIB
                                   datalinks.
    
                                   The  id  value  is  a  positive integer used to
                                   identify a resource uniquely.
    
    
    
           ib-vhca: over-hca, id, port
    
               An ib-vhca resource represents the automatic creation of a  virtual
               Infiniband  HCA device for a kernel zone. When such a zone boots, a
               temporary VHCA is created. It is destroyed when the zone halts.
    
               The supported properties are described below. All these  properties
               are optional. Only the host system's global zone is allowed to mod-
               ify the automatically VHCAs. If a property set in zonecfg cannot be
               assigned  to  the  VHCA at its creation time, the zone will fail to
               boot.
    
               over-hca    Sets the physical InfiniBand device to use for configu-
                           ration  of  the  virtual  InfiniBand device. The device
                           name is as listed in the ibadm command. For more infor-
                           mation, see ibadm(1M) man page.
    
    
               id          Uniquely identifies the ib-vhca resource.
    
    
    
           port: pkey, id
    
    
               pkey    Specifies  the  InfiniBand  Partition  key  value. The pkey
                       value can either be a keyword or a comma seperated list  of
                       hexadecimal  values.  The  0x prefix should not be used for
                       specifying the hexadecimal value. The keyword  allowed  for
                       pkey is:
    
                       auto    Assigns an automatically generated pkey value based
                               on over-hca value specified. This  is  the  default
                               value.
    
    
    
               id      Id  is used to uniquely identify the port resource. Each id
                       corresponds to the physical port number.
    
               The GUID assigned to each port on zone  boot  can  be  obtained  by
               inspecting the Live Configuration of the running zone.
    
    
           device: match, allow-partition, allow-raw-io, id
    
               Device  name  to  match.  This can be a glob pattern to match or an
               absolute pathname. Note that device resources and aliased  datasets
               can have namespace conflicts in /dev/zvol. See dev(7FS).
    
               Alternatively,  the  storage  property  can be set to a storage URI
               (see suri(5)). In this case, the  SURI  is  mapped  when  the  zone
               boots, and the matching device nodes are available inside the zone.
               The SURI is unmapped when the zone halts. In this case,  allow-par-
               tition is automatically set to true.
    
               Both  allow-partition and allow-raw-io can be set to true or false,
               and default to false. See NOTES.
    
               Note -
    
                 In general, adding devices to a zone can compromise the  security
                 of the system; see NOTES.
               The  id  value  is  a positive integer used to identify the virtual
               block device; see solaris-kz(5).
    
    
           rctl: name, value
    
               The name and priv/limit/action triple of a  resource  control.  See
               prctl(1)  and  rctladm(1M). The preferred way to set rctl values is
               to use the global property name associated with a specific rctl.
    
               Multiple rctl values may be given, and are of the form:
    
                 (priv=<value>,limit=<value>,action=<value>)
    
    
    
    
           virtual-cpus: ncpus
    
               Specify the number of virtual  CPUs  configured  for  a  solaris-kz
               brand zone. See solaris-kz(5).
    
    
           attr: name, type, value
    
               The  name,  type and value of a generic attribute. The type must be
               one of int, uint, boolean or string, and the value must be of  that
               type. uint means unsigned, that is, a non-negative integer.
    
               The   "name"  property  of  an  "attr"  resource  is  syntactically
               restricted in a fashion similar but not identical to zone names: it
               must begin with an alphanumeric, and can contain alphanumerics plus
               the hyphen (-), underscore (_), and dot (.)  characters.  Attribute
               names  beginning  with  "zone"  are reserved for use by the system.
               Finally, the autoboot and global-time global property must  have  a
               value of "true" or "false".
    
    
           dataset: name, alias
    
               The  name of a ZFS dataset to be accessed from within the zone. See
               zfs(1M). Each dataset is aliased such that it appears as a  virtual
               ZFS  pool  in the zone. The alias is the name of this virtual pool.
               See zpool(1M) for name restrictions that apply to  ZFS  pool  names
               and as a result also apply to dataset alias values. The alias rpool
               is reserved from  the  zone's  rpool  dataset.  Note  that  aliased
               datasets  and  device  resources  can  have  namespace conflicts in
               /dev/zvol. See dev(7FS).
    
    
           global: cpu-shares
    
               The number of Fair Share Scheduler (FSS) shares to allocate to this
               zone.   This   property  is  incompatible  with  the  dedicated-cpu
               resource. This property is the preferred way to set  the  zone.cpu-
               shares rctl.
    
    
           global: max-lwps
    
               The  maximum  number of LWPs simultaneously available to this zone.
               This property is the preferred way to set the zone.max-lwps rctl.
    
    
           global: max-msg-ids
    
               The maximum number of message queue IDs allowed for this zone. This
               property is the preferred way to set the zone.max-msg-ids rctl.
    
    
           global: max-processes
    
               The  maximum number of process table slots simultaneously available
               to this zone. This  property  is  the  preferred  way  to  set  the
               zone.max-processes  rctl. Setting this property will implicitly set
               the value of the max-lwps  property  to  10  times  the  number  of
               process slots unless the max-lwps property has been set explicitly.
    
    
           global: max-sem-ids
    
               The  maximum  number  of  semaphore IDs allowed for this zone. This
               property is the preferred way to set the zone.max-sem-ids rctl.
    
    
           global: max-shm-ids
    
               The maximum number of shared memory IDs allowed for this zone. This
               property is the preferred way to set the zone.max-shm-ids rctl.
    
    
           global: max-shm-memory
    
               The  maximum  amount  of  shared memory allowed for this zone. This
               property is the preferred way to set the zone.max-shm-memory  rctl.
               A  scale  (K,  M, G, T) can be applied to the value for this number
               (for example, 1M is one megabyte).
    
    
           global: scheduling-class
    
               Specifies the scheduling class used  for  processes  running  in  a
               zone.  When this property is not specified, the scheduling class is
               established as follows:
    
                   o      If the cpu-shares property or equivalent  rctl  is  set,
                          the scheduling class FSS is used.
    
                   o      If neither cpu-shares nor the equivalent rctl is set and
                          the zone's pool property references a pool  that  has  a
                          default scheduling class, that class is used.
    
                   o      Under  any other conditions, the system default schedul-
                          ing class is used.
    
    
           dedicated-cpu: cpus, cores, sockets ncpus, importance
    
               This resource will create a pool and processor  set  for  exclusive
               use  by  the zone when it boots. These processors are not available
               for use by other zones or the global zone while the  zone  is  run-
               ning. See the poolcfg(1M) and pooladm(1M) man pages for more infor-
               mation on pools.
    
               The cpus to dedicate can be specifically chosen,  or  automatically
               chosen:
    
               Choosing specific cpu resources
    
                   Set  one  of  cpus, cores, or sockets to a list of cpu, core or
                   socket ids. Use psrinfo -t and pooladm to see which cpus, cores
                   and/or sockets are available.
    
                   If  any of the specified resources are assigned to another zone
                   or pool, the zone will fail to boot. This includes  subsets  of
                   the  assigned resources. For example, if an assigned socket has
                   a core assigned elsewhere.
    
                   If any of the specified cpu  resources  do  not  exist  or  are
                   faulted  or  offline, a warning will be displayed when the zone
                   boots. The zone will receive all of the specified cpu resources
                   that are online.
    
                   If a cpu resource is partially online, such as a core with some
                   cpus faulted, the zone will receive the remaining  online  cpus
                   from the core, and a warning will be displayed.
    
                   If  none  of  the  specified cpu resources are online, the zone
                   will fail to boot.
    
    
               Automatically chosen cpus resources
    
                   This can vary on each boot or live zone reconfiguration of  the
                   zone.
    
                   Set  ncpus  to  an  integer  range  or scalar value. A range is
                   expressed using a -, such as 1-4 to represent one to four  pro-
                   cessors.  If  a  range is specified, the quantity of cpus dedi-
                   cated to the zone may change while the zone is running.
    
                   Optionally set "importance" to  configure  the  pool.importance
                   value  of the resource pool associated with the dedicated cpus.
                   The "importance" value is an integer value. Pools  with  higher
                   importance are favored for cpu allocation when ranges are used.
                   See thelibpool(3LIB) manpage for a  description  of  importance
                   based allocation.
    
                   If  there  are  not sufficient available online cpus to satisfy
                   the minimum or integer value set, the zone will fail to boot or
                   live reconfigure.
    
                   When automatic cpus are configured the specific cpus, dedicated
                   to the zone can change while it is running. For example,  if  a
                   cpu  resource  in  use by an automatic running zone is assigned
                   elsewhere, the cpu  resource  will  be  replaced  with  another
                   available cpu resource. The quantity of cpu resources dedicated
                   to a running automatic cpu zone can also change within the con-
                   straints the range specified.
    
                   solaris-kz branded zones cannot change cpus while running. They
                   do not support a range value for ncpus. Cpu resources in use by
                   running  solaris-kz branded zones cannot be assigned elsewhere,
                   even if they are chosen automatically. Due to this, it is  rec-
                   ommended  that  zones  using  specific cpus should be be booted
                   before solaris-kz branded zones using automatic cpus.
    
               This resource is incompatible with both  the  pool  and  cpu-shares
               properties. Only a single instance of this resource can be added to
               the zone.
    
    
           capped-memory: physical, swap, locked
    
               The caps on the memory that can be used by this zone. A  scale  (K,
               M, G, T) can be applied to the value for each of these numbers (for
               example, 1M is one megabyte). Each of these properties is  optional
               but  at  least  one property must be set when adding this resource.
               Only a single instance of this resource can be added to  the  zone.
               The  physical property sets the max-rss for this zone. This will be
               enforced by rcapd(1M) running in the global zone. The swap property
               is  the  preferred  way  to  set the zone.max-swap rctl. The locked
               property is the preferred way  to  set  the  zone.max-locked-memory
               rctl.
    
    
           capped-cpu: ncpus
    
               Sets  a limit on the amount of CPU time that can be used by a zone.
               The unit used translates to the percentage of a single CPU that can
               be used by all user threads in a zone, expressed as a fraction (for
               example, .75) or a mixed number (whole  number  and  fraction,  for
               example,  1.25). An ncpu value of 1 means 100% of a CPU, a value of
               1.25 means 125%, .75 mean 75%, and so forth. When projects within a
               capped  zone  have  their  own caps, the minimum value takes prece-
               dence.
    
               The capped-cpu property is an alias for zone.cpu-cap resource  con-
               trol  and  is  related  to  the  zone.cpu-cap resource control. See
               resource-controls (5).
    
    
           admin: user, auths
    
               Delegates zone administrative authorizations to the specified  user
               or  role.  The  user  must correspond to a valid local account. The
               allowed values for auths are:
    
               login
    
                   Allows authenticated use of zlogin(1) into this zone.
    
    
               manage
    
                   Allows normal management of the configured zone.
    
    
               copyfrom
    
                   Allows the use of the specified zone as a source from which  to
                   clone a new zone.
    
    
               config
    
                   Allows to modify the persistent configuration of the zone.
    
    
               liveconfig
    
                   Allows  to  inspect and to modify the live configuration of the
                   running zone.
    
    
    
           rootzpool: storage
    
               Defines one or more storage resources to be used exclusively for  a
               dedicated  zpool containing the zone installation. The allowed val-
               ues for storage are defined in suri(5).
    
    
           zpool: storage, name
    
               Defines one or more storage resources to be used exclusively for  a
               zpool  delegated  to  the  zone. The allowed values for storage are
               defined in suri(5). The allowed values  for  name  are  defined  in
               zpool(1M). The name rpool is not permitted.
    
    
           npiv: virtual-port-wwn, over-hba
    
               Sets  an unique 64bit port world wide name to an npiv with virtual-
               port-wwn, which is optional and will be set with  an  automatically
               generated wwn. users can still override this generated wwn.
    
               Property  over-hba  is  optional  as  well and it could be an empty
               string, which means physical HBA ports are chosen in a  round-robin
               policy  to spread them across the available ports. If this property
               is set the value for over-hba must be an unsigned  integer  leading
               by  'c'  for  one  physical NPIV capable FC HBA controller as shown
               under /dev/cfg/c*. Please refer to cfgadm_fp(1M) for more  detailed
               information.
    
    
           verified-boot: policy, cert
    
    
               policy    Controls  ELF  signature  verification  of bootloader and
                         kernel modules in the zones guest. Values can be  set  to
                         "none",  "warning"  and "enforce". "None" skips verifica-
                         tion. "Warning" logs a message on  verification  failure.
                         "Enforce"  causes  the  module to not load on failure. By
                         default, policy is set to "warning".
    
    
               cert      Adds customer-installed public key cert  for  third-party
                         and  self-signed  software. These cert files are used for
                         ELF signature verification in  addition  to  the  default
                         Oracle  cert.  The cert path can be added using file:///,
                         http:// or https:// URL.
    
    
    
           keysource: raw
    
               Provides administrative access to the cryptographic  key  used  for
               kernel  zone  suspend images and host data as described in solaris-
               kz(5). The value of raw cannot be set  directly,  except  with  the
               command_file mode.
    
    
           suspend: path, storage
    
               Configures  the location of a kernel zone's suspend image. Only one
               suspend resource is allowed. If no  suspend  resource  is  present,
               suspend  and  resume are not supported by the kernel zone. The sus-
               pend resource allows either path or storage to  be  specified,  and
               not  both.  If  path is specified, it is the full path to which the
               suspend file will be written and its parent directory  must  exist.
               If  storage is specified, it must be a device referenced by a stor-
               age URI as described in suri(5).
    
    
       Using Kernel Statistics to Monitor CPU Caps
           Using the kernel statistics (kstat(3KSTAT))  module  caps,  the  system
           maintains information for all capped projects and zones. You can access
           this information by reading kernel statistics (kstat(3KSTAT)), specify-
           ing  caps as the kstat module name. The following command displays ker-
           nel statistics for all active CPU caps:
    
             # kstat caps::'/cpucaps/'
    
    
    
    
           A kstat(1M) command running in a zone displays only CPU  caps  relevant
           for that zone and for projects in that zone. See EXAMPLES.
    
    
           The following are cap-related arguments for use with kstat(1M):
    
           caps
    
               The kstat module.
    
    
           project_caps or zone_caps
    
               kstat class, for use with the kstat -c option.
    
    
           cpucaps_project_id or cpucaps_zone_id
    
               kstat  name, for use with the kstat -n option. id is the project or
               zone identifier.
    
    
    
           The following fields are displayed in response to a  kstat(1M)  command
           requesting statistics for all CPU caps.
    
           module
    
               In this usage of kstat, this field will have the value caps.
    
    
           name
    
               As described above, cpucaps_project_id or cpucaps_zone_id
    
    
           above_sec
    
               Total time, in seconds, spent above the cap.
    
    
           below_sec
    
               Total time, in seconds, spent below the cap.
    
    
           maxusage
    
               Maximum observed CPU usage.
    
    
           nwait
    
               Number of threads on cap wait queue.
    
    
           usage
    
               Current  aggregated CPU usage for all threads belonging to a capped
               project or zone, in terms of a percentage of a single CPU.
    
    
           value
    
               The cap value, in terms of a percentage of a single CPU.
    
    
           zonename
    
               Name of the zone for which statistics are displayed.
    
    
    
           See EXAMPLES for sample output from a kstat command.
    
       Configuration From Unified Archives
           Unified Archives, created with archiveadm(1M), provide a means for  ar-
           chiving  Solaris  instances.  Each Unified Archive may contain data and
           metadata corresponding to one or more global and/or  non-global  zones.
           By  default,  archiveadm(1M)  generates an archive that is suitable for
           system or zone cloning. Optionally, archiveadm(1M) may  create  an  ar-
           chive that is suitable for system recovery.
    
    
           If  the  zonecfg create -a archive [options] subcommand is used to con-
           figure a zone from an Unified Archive,  archive  creation  options  can
           affect  the  degree  to  which the archived configuration is preserved:
           when configuring from a clone archive, property values that are  likely
           to  cause problems if they are the same for multiple hosts will take on
           a default value. These properties are:
    
           -       host id
    
    
           anet    allowed-address
    
    
           anet    mac-address
    
    
           net     allowed-address
    
    
    
           Additonally, if the archived zone name and the name of the  zone  being
           installed  do  not match, some properties will be automatically updated
           to reflect the new zone name:
    
           zonepath         If the  last  element  of  the  zonepath  matches  the
                            archived  zone  name, the last element in the zonepath
                            is replaced with the new zone name.
    
    
           dataset/alias    For  dataset  resources,  if  the  alias  matches  the
                            archived zone name, the alias is replaced with the new
                            zone name.
    
    
           dataset/name     For dataset resources, if the last element of the name
                            property matches the archived zone name, the last ele-
                            ment in the name property is  replaced  with  the  new
                            zone name.
    
    
    
           Configuration from a Unified Archive does not prevent the use of subse-
           quent commands to modify resources and property values as required.
    
    OPTIONS
           The following options are supported:
    
           -f command_file
    
               Specify the name of zonecfg command file. command_file  is  a  text
               file  of  zonecfg subcommands, one per line obtained from output of
               export subcommand.
    
    
           -r
    
               Enables the live edit mode. Instructs zonecfg to edit the live con-
               figuration  of a running zone instead of a persistent configuration
               from a stable storage. When used, zonecfg retrieves a  snapshot  of
               the  current  live zone configuration. The full set of zonecfg sub-
               commands is supported in this mode. The  live  configuration  takes
               effect  immediately  after  it is commited and remains active until
               the next zone reboot. The live mode is only allowed for  a  running
               zone  and  requires the authorization solaris.zone.liveconfig/zone-
               name.
    
    
           -z zonename
    
               Specify the name of a zone. Zone names  are  case  sensitive.  Zone
               names  must  begin  with  an alphanumeric character and can contain
               alphanumeric characters, the underscore (_) the hyphen (-), and the
               dot  (.).  The  name  global  and  all names beginning with SYS are
               reserved and cannot be used.
    
    
    TOKENS
           The following tokens are supported for use in certain properties:
    
           %{zonename}            Evaluates to name of the zone.
    
    
           %{id}                  Evaluates  to  id  property  of   a   particular
                                  resource.  This  token is used within a resource
                                  scope which supports id property.
    
    
           %{global-rootzpool}    Evaluates to global zone's rootzpool name.
    
    
           %%                     Evaluates to %.
    
    
               -----------------------------------------------------------------
               |Resource  | Property | Supported Tokens                        |
               |---------------------------------------------------------------|
               |global    | zonepath | %{zonename}                             |
               |---------------------------------------------------------------|
               |dataset   | name     | %{zonename}                             |
               |---------------------------------------------------------------|
               |device    | match    | %{zonename}, %{id}, %{global-rootzpool} |
               |          | storage  | %{zonename}, %{id}, %{global-rootzpool} |
               |---------------------------------------------------------------|
               |fs        | raw      | %{zonename}                             |
               |          | special  | %{zonename}                             |
               |---------------------------------------------------------------|
               |net       | physical | %{id}                                   |
               |---------------------------------------------------------------|
               |anet      | linkname | %{id}                                   |
               |---------------------------------------------------------------|
               |suspend   | storage  | %{zonename}, %{global-rootzpool}        |
               |          | path     | %{zonename}                             |
               |---------------------------------------------------------------|
               |rootzpool | storage  | %{zonename}, %{global-rootzpool}        |
               |---------------------------------------------------------------|
               |zpool     | storage  | %{zonename}, %{global-rootzpool}        |
               -----------------------------------------------------------------
    
    
    
    SUBCOMMANDS
           You can use the  add  and  select  subcommands  to  select  a  specific
           resource,  at  which  point  the  scope  changes  to that resource. The
           selected subcommand can only be applied on  resources  that  have  been
           already added to the zone configuration. Some resources, like anet, are
           added automatically. The end and cancel subcommands are  used  to  com-
           plete  the  resource specification, at which time the scope is reverted
           back to global.
    
    
           zonecfg supports a semicolon-separated list of subcommands.  For  exam-
           ple:
    
             # zonecfg -z myzone "add net; set physical=myvnic; end"
    
    
    
    
           Subcommands  which  can  result  in destructive actions or loss of work
           have an -F option to force the action. If  input  is  from  a  terminal
           device,  the  user  is  prompted  when appropriate if such a command is
           given without the -F option otherwise, if such a command is given with-
           out  the -F option, the action is disallowed, with a diagnostic message
           written to standard error.
    
    
           The following subcommands are supported:
    
           add resource-type
           add property-name property-value (resource scope)
    
               In the global scope or in a resource scope, begin the specification
               for  a  given  resource type. The scope is changed to that resource
               type.
    
               In the resource scope, add a property of the given  name  with  the
               given  value.  The syntax for property values varies with different
               property types. In general, it is a simple value or a list of  sim-
               ple  values  enclosed  in  square  brackets,  separated  by  commas
               ([foo,bar,baz]). See PROPERTIES.
    
    
           cancel
    
               End the resource specification and reset scope to global.  Abandons
               any partially specified resources. cancel is only applicable in the
               resource scope.
    
    
           clear property-name
    
               Clears the value for the property to a default value.
    
    
           commit [-n] [-q]
    
    
               Default mode    Commits the current configuration  from  memory  to
                               stable storage. The configuration must be committed
                               to be used by zoneadm. Options -n and  -q  are  not
                               permitted in the default mode.
    
    
               Live mode       Reconfigure  the  running zone to match the current
                               in-memory live configuration  and  print  out  per-
                               formed actions. Applied changes take effect immedi-
                               ately and remain active  until  to  the  next  zone
                               reboot.   If   the  live  configuration  externally
                               changes before the commit  subcommand  is  invoked,
                               the   operation  returns  an  error.  Such  a  case
                               requires to reload the live configuration and reap-
                               ply desired changes for the commit to succeed.
    
                               The following options are supported:
    
                               -n    Runs  the  reconfiguration  in a dry run mode
                                     that does not change the configuration  of  a
                                     running  zone. The dry run mode acts the same
                                     way as the real  reconfiguration  but  leaves
                                     the  running  zon  intact. Use the dry run to
                                     review actions that would be performed by the
                                     real reconfiguration.
    
    
                               -q    Quiet  mode.  Suppresses all messages related
                                     to the zone reconfiguration.
    
    
               Until the in-memory  configuration  is  committed  you  can  remove
               changes  with  the  reload  subcommand.  The  commit  operation  is
               attempted automatically upon completion of a zonecfg session. Since
               a  configuration  must  be  correct to be committed, this operation
               automatically does a verify.
    
    
           create [-F] [ -a directory |-b | -t template]
    
           create [-F] -a archive [-z archived_zone]
           [-<cert|ca-cert|key>=path] ...
    
               Create an in-memory configuration for the specified zone. Use  cre-
               ate to begin to configure a new zone. See commit for saving this to
               stable storage.
    
               If you are overwriting an existing configuration,  specify  the  -F
               option  to force the action. Specify the -t template option to cre-
               ate a configuration identical to template, where  template  is  the
               name of a configured zone.
    
               create  uses a default template of SYSdefault. The default template
               can be changed on a system-wide basis  using  the  default_template
               SMF  property of the svc:/system/zones:default service. An adminis-
               trator can override the default for this zone using -t (with a spe-
               cific template) or -b (to use a blank template).
    
               Use  the  -a  directory option to facilitate configuring a detached
               zone on a new host. The path parameter is the zonepath location  of
               a  detached  zone that has been moved on to this new host. Once the
               detached zone is configured,  it  should  be  installed  using  the
               "zoneadm  attach"  command (see zoneadm(1M)). All validation of the
               new zone happens during the attach process, not during zone config-
               uration.
    
               Use  the  -a archive option to facilitate configuring a zone from a
               Unified Archive created with archiveadm(1M). The archive may be  an
               absolute path or a file, http, or https URI. If the Unified Archive
               contains multiple zones, the -z archived_zone option must  be  used
               to  specify  which zone in the archive is to be used for configura-
               tion. If archive is accessed through an https URI,  the  -x  option
               may  be  used to specify the location of a certificate, CA certifi-
               cate, and/or key file. If specified, the cert, cacert, and key must
               be  in  PEM  format. See Configuration from Unified Archives, above
               for more details.
    
               Use the -b option to create a blank  configuration.  Without  argu-
               ments, create applies the Oracle Sun default settings.
    
    
           delete [-F]
    
               Delete  the specified configuration from memory and stable storage.
               This action is instantaneous, no commit  is  necessary.  A  deleted
               configuration cannot be reverted.
    
               Specify the -F option to force the action.
    
    
           end
    
               End  the resource specification. This subcommand is only applicable
               in the resource scope. zonecfg checks  to  make  sure  the  current
               resource is completely specified. If so, it is added to the in-mem-
               ory configuration (see commit for saving this  to  stable  storage)
               and  the  scope  reverts to global or a previous resource scope. If
               the specification is incomplete, it  issues  an  appropriate  error
               message.
    
    
           export [-f output-file]
    
               Print  configuration to standard output. Use the -f option to print
               the configuration to output-file. This option produces output in  a
               form suitable for use in a command file.
    
    
           help [usage] [subcommand] [syntax] [command-name]
    
               Print general help or help about given topic.
    
    
           info zonename | zonepath | autoboot | autoshutdown | brand |  pool  |
           limitpriv | global-time
           info [-i | -I] [resource-type [identifier |  [property-name=property-
           value]*]]
    
               Display  information  about the current configuration. If resource-
               type is specified, it displays only information about resources  of
               the  relevant  type. If any identifier or property name value pairs
               are specified, displays only information  about  resources  meeting
               the  given  criteria. In the resource scope, info displays informa-
               tion about the resource which is currently being added or modified.
    
               Tokens may be displayed when a specific property or  resource  type
               is  requested  in  zonecfg  interactive mode, as property-name.tem-
               plate: template-value. The evaulated output of this template  value
               is given by property-name: propperty-value. See EXAMPLES.
    
               The following options are supported:
    
               -i    Always include identifiers
    
    
               -I    Never include identifiers
    
    
    
           remove resource-type [identifier | {property-name=property-value}]
    
               Remove  the specified resource. If you have to remove only a single
               instance of the resource, you must specify either the identifier or
               enough  property  name-value  pairs for the resource to be uniquely
               identified. If no identifier or property name-value pairs are spec-
               ified,  all  instances  will  be removed. If there is more than one
               instance of a resource-type, a confirmation is required, unless you
               use the -F option.
    
    
           select resource-type {identifier | {property-name=property-value}}
    
               Select  the resource of the given type which matches the identifier
               specified or the given property-name property-value pair  criteria,
               for  modification.  The scope is changed to that resource type. The
               {} syntax indicates one or more of whatever  is  inside  the  curly
               braces. You must specify enough property -name property-value pairs
               for the resource to be uniquely identified.
    
    
           set property-name=property-value
    
               Set a given property name to the given value. Some properties  (for
               example,  zonename  and  zonepath)  are  global  while  others  are
               resource-specific. This subcommand is applicable in both the global
               and resource scopes.
    
    
           verify [-v]
    
               Verify the current configuration for correctness:
    
                   o      All  resources  have  all  of  their required properties
                          specified.
    
                   o      A zonepath is specified.
               If the -v option is specified, warnings will be issued if there  is
               a  potential  for devices specified in device resources to conflict
               with and hide ZFS volumes  created  within  aliased  datasets.  See
               dev(7FS).
    
    
           revert [-F]
    
               Revert  the  configuration back to the last committed state. The -F
               option can be used to force the action.
    
    
           reload [-F]
    
               Discard any uncommited changes and reload the configuration from  a
               stable  storage (default mode) or retrieve an up-to-date configura-
               tion of the running zone (live mode). The -F option can be used  to
               force the action.
    
    
           revert [-F]
    
               Revert  the  persistent  configuration  back  to the last committed
               state. The -F option can be used to force the action. This  subcom-
               mand is not allowed in the live mode.
    
    
           exit [-F]
    
               Exit  the  zonecfg  session. A commit is automatically attempted if
               needed. You can also use an EOF character to exit zonecfg.  The  -F
               option can be used to force the action.
    
    
    EXAMPLES
           Example 1 Creating the Environment for a New Zone
    
    
           In  the  following  example,  zonecfg creates the environment for a new
           zone.  /usr/local  is  loopback  mounted  from  the  global  zone  into
           /opt/local.  /opt/sfw  is loopback mounted from the global zone, a VNIC
           over nxge0 is added to the zone with three IP addresses, and a limit on
           the  number  of fair-share scheduler (FSS) CPU shares for a zone is set
           using the rctl resource type. The example also shows how  to  select  a
           given  resource  for  modification; in this case, by selecting the anet
           resource that is automatically created by zonecfg.
    
    
             example# zonecfg -z myzone3
             my-zone3: No such zone configured
             Use 'create' to begin configuring a new zone.
             zonecfg:myzone3> create
             zonecfg:myzone3> info zonepath
             zonepath.template: /system/zones/%{zonename}
             zonepath: /system/zones/myzone3
             zonecfg:myzone3> set autoboot=true
             zonecfg:myzone3> add fs
             zonecfg:myzone3:fs> set dir=/opt/local
             zonecfg:myzone3:fs> set special=/usr/local
             zonecfg:myzone3:fs> set type=lofs
             zonecfg:myzone3:fs> add options [ro,nodevices]
             zonecfg:myzone3:fs> end
             zonecfg:myzone3> add fs
             zonecfg:myzone3:fs> set dir=/mnt
             zonecfg:myzone3:fs> set special=/dev/dsk/c0t0d0s7
             zonecfg:myzone3:fs> set raw=/dev/rdsk/c0t0d0s7
             zonecfg:myzone3:fs> set type=ufs
             zonecfg:myzone3:fs> end
             zonecfg:myzone3> add fs
             zonecfg:myzone3:fs> set dir=/opt/sfw
             zonecfg:myzone3:fs> set special=/opt/sfw
             zonecfg:myzone3:fs> set type=lofs
             zonecfg:myzone3:fs> add options [ro,nodevices]
             zonecfg:myzone3:fs> end
             zonecfg:myzone3> select anet linkname=net0
             zonecfg:myzone3:anet> set lower-link=nxge0
             zonecfg:myzone3:anet> set allowed-address="192.168.0.1/24,192.168.1.2/\
                        24,192.168.2.3/24"
             zonecfg:myzone3:anet> end
             zonecfg:my-zone3> set cpu-shares=5
             zonecfg:my-zone3> add capped-memory
             zonecfg:my-zone3:capped-memory> set physical=50m
             zonecfg:my-zone3:capped-memory> set swap=100m
             zonecfg:my-zone3:capped-memory> end
             zonecfg:myzone3> exit
    
    
    
           Example 2 Creating an Exclusive-IP Zone
    
    
           The following example creates a zone that  is  assigned  a  VNIC  named
           net0.  The  link over which the VNIC is created is automatically deter-
           mined. The IP addresses and routing are configured inside the new  zone
           using ipadm(1M).
    
    
             example# zonecfg -z excl
             zonecfg:excl> create
             zonecfg:excl> set zonepath=/export/zones/excl
             zonecfg:excl> exit
    
    
    
           Example 3 Creating a Shared-IP Zone
    
    
           The  following  example creates a zone that shares an IP stack with the
           global zone, and is assigned a single IP address and default router.
    
    
             example# zonecfg -z shared
             zonecfg:shared> create -b
             zonecfg:shared> set zonepath=/export/zones/shared
             zonecfg:shared> set ip-type=shared
             zonecfg:shared> add net
             zonecfg:shared:net> set physical=nge0
             zonecfg:shared:net> set address=192.168.0.3/24
             zonecfg:shared:net> set defrouter=192.168.0.1
             zonecfg:shared:net> end
             zonecfg:shared> exit
    
    
    
           Example 4 Associating a Zone with a Resource Pool
    
    
           The following example shows how to associate an existing zone  with  an
           existing resource pool:
    
    
             example# zonecfg -z myzone
             zonecfg:myzone> set pool=mypool
             zonecfg:myzone> exit
    
    
    
    
           For  more  information  about resource pools, see pooladm(1M) and pool-
           cfg(1M).
    
    
           Example 5 Changing the Name of a Zone
    
    
           Changing the zonename property is permitted only for zones  in  config-
           ured  state.  For  zones in installed state, use the zoneadm(1M) rename
           subcommand. The following example shows how to change the  name  of  an
           existing zone:
    
    
             example# zonecfg -z myzone
             zonecfg:myzone> set zonename=myzone2
             zonecfg:myzone2> exit
    
    
    
           Example 6 Changing the Privilege Set of a Zone
    
    
           The  following  example  shows  how to change the set of privileges. An
           existing zone's processes will be limited to the next time the zone  is
           booted. In this particular case, the privilege set will be the standard
           safe set of privileges that a zone normally has along with  the  privi-
           lege  to  use  the  profile  and  syscall providers of dtrace with some
           caveats:
    
    
             example# zonecfg -z myzone
             zonecfg:myzone> set limitpriv="default,dtrace_user"
             zonecfg:myzone2> exit
    
    
    
           Example 7 Changing global-time property to set systime-wide time
    
             example# zonecfg -z myzone
             zonecfg:myzone> set global-time="true"
             zonecfg:myzone2> exit
    
    
    
           Example 8 Setting the zone.cpu-shares Property for the Global Zone
    
    
           The following command sets the zone.cpu-shares property for the  global
           zone:
    
    
             example# zonecfg -z global
             zonecfg:global> set cpu-shares=5
             zonecfg:global> exit
    
    
    
           Example 9 Using Pattern Matching
    
    
           The following commands illustrate zonecfg support for pattern matching.
           In the zone flexlm, enter:
    
    
             zonecfg:flexlm> add device
             zonecfg:flexlm:device> set match="/dev/cua/a00[2-5]"
             zonecfg:flexlm:device> end
    
    
    
    
           In the global zone, enter:
    
    
             global# ls /dev/cua
             a     a000  a001  a002  a003  a004  a005  a006  a007  b
    
    
    
    
           In the zone flexlm, enter:
    
    
             flexlm# ls /dev/cua
             a002  a003  a004  a005
    
    
    
           Example 10 Setting a Cap for a Zone to Three CPUs
    
    
           The following sequence uses the zonecfg command to set the CPU cap  for
           a zone to three CPUs.
    
    
             zonecfg:myzone> add capped-cpu
             zonecfg:myzone>capped-cpu> set ncpus=3
             zonecfg:myzone>capped-cpu>capped-cpu> end
    
    
    
    
           The  preceding sequence, which uses the capped-cpu property, is equiva-
           lent to the following sequence, which makes  use  of  the  zone.cpu-cap
           resource control.
    
    
             zonecfg:myzone> add rctl
             zonecfg:myzone:rctl> set name=zone.cpu-cap
             zonecfg:myzone:rctl> add value (priv=privileged,limit=300,action=none)
             zonecfg:myzone:rctl> end
    
    
    
           Example 11 Using kstat to Monitor CPU Caps
    
    
           The following command displays information about all CPU caps.
    
    
             # kstat -n /cpucaps/
             module: caps                            instance: 0
             name:   cpucaps_project_0               class:    project_caps
                     above_sec                       0
                     below_sec                       2157
                     crtime                          821.048183159
                     maxusage                        2
                     nwait                           0
                     snaptime                        235885.637253027
                     usage                           0
                     value                           18446743151372347932
                     zonename                        global
    
             module: caps                            instance: 0
             name:   cpucaps_project_1               class:    project_caps
                     above_sec                       0
                     below_sec                       0
                     crtime                          225339.192787265
                     maxusage                        5
                     nwait                           0
                     snaptime                        235885.637591677
                     usage                           5
                     value                           18446743151372347932
                     zonename                        global
    
             module: caps                            instance: 0
             name:   cpucaps_project_201             class:    project_caps
                     above_sec                       0
                     below_sec                       235105
                     crtime                          780.37961782
                     maxusage                        100
                     nwait                           0
                     snaptime                        235885.637789687
                     usage                           43
                     value                           100
                     zonename                        global
    
             module: caps                            instance: 0
             name:   cpucaps_project_202             class:    project_caps
                     above_sec                       0
                     below_sec                       235094
                     crtime                          791.72983782
                     maxusage                        100
                     nwait                           0
                     snaptime                        235885.637967512
                     usage                           48
                     value                           100
                     zonename                        global
    
             module: caps                            instance: 0
             name:   cpucaps_project_203             class:    project_caps
                     above_sec                       0
                     below_sec                       235034
                     crtime                          852.104401481
                     maxusage                        75
                     nwait                           0
                     snaptime                        235885.638144304
                     usage                           47
                     value                           100
                     zonename                        global
    
             module: caps                            instance: 0
             name:   cpucaps_project_86710           class:    project_caps
                     above_sec                       22
                     below_sec                       235166
                     crtime                          698.441717859
                     maxusage                        101
                     nwait                           0
                     snaptime                        235885.638319871
                     usage                           54
                     value                           100
                     zonename                        global
    
             module: caps                            instance: 0
             name:   cpucaps_zone_0                  class:    zone_caps
                     above_sec                       100733
                     below_sec                       134332
                     crtime                          821.048177123
                     maxusage                        207
                     nwait                           2
                     snaptime                        235885.638497731
                     usage                           199
                     value                           200
                     zonename                        global
    
             module: caps                            instance: 1
             name:   cpucaps_project_0               class:    project_caps
                     above_sec                       0
                     below_sec                       0
                     crtime                          225360.256448422
                     maxusage                        7
                     nwait                           0
                     snaptime                        235885.638714404
                     usage                           7
                     value                           18446743151372347932
                     zonename                        test_001
    
             module: caps                            instance: 1
             name:   cpucaps_zone_1                  class:    zone_caps
                     above_sec                       2
                     below_sec                       10524
                     crtime                          225360.256440278
                     maxusage                        106
                     nwait                           0
                     snaptime                        235885.638896443
                     usage                           7
                     value                           100
                     zonename                        test_001
    
    
    
           Example 12 Displaying CPU Caps for a Specific Zone or Project
    
    
           Using  the kstat -c and -i options, you can display CPU caps for a spe-
           cific zone or project, as below. The first command produces  a  display
           for a specific project, the second for the same project within zone 1.
    
    
             # kstat -c project_caps
    
             # kstat -c project_caps -i 1
    
    
    
           Example 13 Delegating Zone Administrative Rights
    
    
           The following example shows how to assign administrative rights for the
           current zone to a role.
    
    
             example# zonecfg -z myzone
             zonecfg:myzone> add admin
             zonecfg:myzone:admin> set user=zadmin
             zonecfg:myzone:admin> set auths=login,manage
             zonecfg:myzone:admin> end
             zonecfg:myzone> commit
    
    
    
    
           The result of executing these commands would be an updated entry in the
           RBAC user_attr(4) database, similar to the following:
    
    
             zadmin::::type=role;\
             auths=solaris.zone.login/myzone,solaris.zone.manage/myzone;profiles=\
             Zone Management
    
    
    
           Example 14 Creating an Exclusive-IP Zone with Non-Default Properties
    
    
           The following example creates a zone with an automatically created VNIC
           over mylink0 with the given MAC address, maximum bandwidth of 100 Mbps,
           high priority, dedicated hardware rings for RX side, no dedicated hard-
           ware rings for the TX side (that is, software-based) and with a VLAN id
           2.
    
    
             example# zonecfg -z excl
             excl: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:excl> create -b
             zonecfg:excl> set zonepath=/export/zones/excl
             zonecfg:excl> add anet
             zonecfg:excl:anet> set linkname=mynic0
             zonecfg:excl:anet> set lower-link=mylink0
             zonecfg:excl:anet> set mac-address=8:0:20:fe:4e:b8
             zonecfg:excl:anet> set maxbw=100M
             zonecfg:excl:anet> set priority=high
             zonecfg:excl:anet> set vlan-id=2
             zonecfg:excl:anet> set rxrings=hw
             zonecfg:excl:anet> set txrings=sw
             zonecfg:excl:anet> end
             zonecfg:excl> exit
    
    
    
           Example 15 Creating a Read-Only Zone
    
    
           The  following  example creates a new zone that has its root filesystem
           protected against modifications by the zone. Files in /var are writable
           by virtue of the fixed-configuration profile that is applied.
    
    
             example# zonecfg -z rozone
             rozone: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:rozone> create
             zonecfg:rozone> set brand=solaris
             zonecfg:rozone> set zonepath=/export/zones/rozone
             zonecfg:rozone> set autoboot=true
             zonecfg:rozone> set file-mac-profile=fixed-configuration
             zonecfg:rozone> set ip-type=exclusive
             zonecfg:rozone> add net
             zonecfg:rozone:net> set physical=vnic0
             zonecfg:rozone:net> end
             zonecfg:rozone> exit
    
    
    
           Example 16 Creating an Exclusive-IP Zone with an IB Partition
    
    
           The  following example creates a zone with default properties. The zone
           will automatically create a IPoIB datalink  when  the  zone  boots  and
           delete the datalink when the zone halts.
    
    
             example# zonecfg -z excl
             excl: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:excl> create
             zonecfg:excl> set zonepath=/export/zones/excl
             zonecfg:excl> set ip-type=exclusive
             zonecfg:excl> add anet
             zonecfg:excl> set linkname=part0
             zonecfg:excl> set lower-link=net4
             zonecfg:excl> set pkey=ffff
             zonecfg:excl:anet> end
             zonecfg:excl> exit
    
    
    
           Example  17 Creating a Zone Installed into a Dedicated Storage Resource
           and zpool
    
    
           The following example creates a new zone with  a  zpool  resource  com-
           prised of one storage resource containing the entire zone installation.
           The zpool will be automatically created or a pre-created  zpool will be
           imported during zone installation. The name will be zoss_rpool.
    
    
             example# zonecfg -z zoss
             zoss: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:zoss> create
             zonecfg:zoss> set zonepath=/zoss
             zonecfg:zoss> add rootzpool
             zonecfg:zoss:rootzpool> add storage iscsi://127.0.0.1/luname.naa.6001\
             44f03d70c80000004ea57da10001
             zonecfg:zoss:rootzpool> end
             zonecfg:zoss> exit
    
    
    
           Example 18 Creating a Zone with a Delegated zpool Resource
    
    
           The  following  example  creates a new zone with a zpool resource dele-
           gated to the zone comprised of two storage resources. The zpool will be
           automatically  created  or  a pre-created zpool will be imported during
           zone installation. The name will be zoss_mypool.
    
    
             example# zonecfg -z zoss
             zoss: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:zoss> create
             zonecfg:zoss> set zonepath=/zoss
             zonecfg:zoss> add zpool
             zonecfg:zoss:zpool> set name=mypool
             zonecfg:zoss:zpool> add storage dev:/dev/dsk/c0t1d0
             zonecfg:zoss:zpool> add storage dev:/dev/dsk/c1t1d0
             zonecfg:zoss:zpool> end
             zonecfg:zoss> exit
    
    
    
           Example 19 Creating a Zone with an npiv Resource
    
    
           The following example creates a new zone with two npiv resources  dele-
           gated  to  the  zone.  The two npiv ports will be automatically created
           during zone installation.
    
    
             example# zonecfg -z vzone
             vzone: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:vzone> create
             zonecfg:vzone> add npiv
             zonecfg:vzone:npiv> set virtual-port-wwn=2100000000000001
             zonecfg:vzone:npiv> set over-hba=c9
             zonecfg:vzone:npiv> end
             zonecfg:vzone> add npiv
             zonecfg:vzone:npiv> end
             zonecfg:vzone> exit
    
    
    
           Example 20 Inspecting the Live Configuration of the Running Zone
    
    
           The following example inspects the live configuration  of  the  running
           zone.
    
    
             example# zonecfg -z myzone -r
             zonecfg:myzone> info
    
    
    
           Example  21  Temporarily  adding a new anet to the Running Zone Without
           Rebooting the Zone
    
    
           The following example temporarily adds a new anet to the  running  zone
           without rebooting the zone.
    
    
             example# zonecfg -z myzone -r
             zonecfg:myzone> add anet
             zonecfg:myzone> set linkname=anet1
             zonecfg:myzone> set lower-link=net1
             zonecfg:myzone> end
             zonecfg:myzone> commit
    
    
    
           Example 22 Creating a Zone Configuration From a Unified Archive
    
    
           The  following  example creates a new zone configuration from a Unified
           Archive stored in /export/archvies. The archive contains only one zone,
           named web with zonepath /zones/web. As is shown by the info subcommand,
           the zonepath was adjusted as described in the Configuration  From  Uni-
           fied Archives section, above.
    
    
             example# zonecfg -z ex17
             ex17: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:ex17> create -a /export/archives/web.uar
             zonecfg:ex17> info zonepath
             zonepath: /zones/web
             zonecfg:ex17> set zonepath=/zones/ex17
             zonecfg:ex17> exit
    
    
    
    
           Equivalently, this could be done in non-interactive mode:
    
    
             example# zonecfg -z ex17 "create -a /export/archives/web.uar; set zonepath=/zones/web"
    
    
    
           Example  23  Creating  a Zone Configuration From a Unified Archive on a
           Secure Web Server
    
    
           This example shows a non-interactive command  that  configures  a  zone
           from  an archive on a secure web server. The -z option is used to spec-
           ify that a specific archived zone is to be used  as  the  configuration
           source. The certificate, CA certificate, and key were first transferred
           to this machine.
    
    
             example# zonecfg -z ex19 create \fR
                 -a https://install.example.com/archives/combo.uar     -z database     -x cert=/root/install.pem     -x cacert=/root/example.com.pem     -x key=/root/sslkey.pem ;     set zonepath=/zones/ex19
    
    
    
           Example 24 Creating a Zone Configuration for p2v of a Global Zone
    
    
           This example shows the creation of a zone configuration from a  Unified
           Archive using an archived global zone as the source. Note that the zone
           configuration found in the archive was  generated  with  zonep2vchk(1M)
           and  as such may include notes for further customization that is recom-
           mended.
    
    
             example# zonecfg -z ex20
             ex20: No such zone configured
             Use 'create' to begin configuring a new zone
             set zonepath=/zones/ex20
             zonecfg:ex20> create -a /export/p2v.uar -z global
             zonecfg:ex20> info attr
             attr:
                             name: zonep2vchk-info
                             type: string
                             value: "p2v of host m4k"
             attr:
                             name: zonep2vchk-net-blue0
                             type: string
                             value: "original system had NIC blue0 with MAC
                                    address 0:8:20:9e:eb:8c and IP address
                                    10.147.23.12: consider anet
                                    (linkname=blue0
                                    mac-address=0:8:20:9e:eb:8c
                                    allowed-address=10.147.23.12)"
             attr:
                             name: zonep2vchk-num-cpus
                             type: string
                             value: "original system had 4 CPUs: consider
                                    capped-cpu (ncpus=4.0) or dedicated-cpu
                                    (ncpus=4)"
             attr:
                             name: zonep2vchk-physmem
                             type: string
                             value: "original system had 32 GB: consider
                                    capped-memory (physical=32G)"
             attr:
                             name: zonep2vchk-swap
                             type: string
                             value: "original system had 48 GB: consider
                                    capped-memory (swap=48G)"
             zonecfg:ex20> select anet linkname=blue0
             zonecfg:ex20:anet> set allowed-address=10.147.23.12
             zonecfg:ex20:anet> set configure-allowed-address=true
             zonecfg:ex20:anet> end
             zonecfg:ex20> add capped-memory
             zonecfg:ex20:capped-memory> set swap=48G
             zonecfg:ex20:capped-memory> end
             zonecfg:ex20> exit
    
    
    
           Example 25 Creating a Zone That has an anet Resource That  Connects  to
           an Elastic Virtual Switch.
    
    
           The following example creates a zone that has a VNIC anet resource that
           connects to an EVS evsa and VPort vport0 for tenant tenantA.
    
    
             example# zonecfg -z evszone
             evszone: No such zone configured
             Use 'create' to begin configuring a new zone
             zonecfg:evszone> create
             zonecfg:evszone> set zonepath=/export/zones/evszone
             zonecfg:evszone> set tenant=tenantA
             zonecfg:evszone> add anet
             zonecfg:evszone:net> set evs=EVSA
             zonecfg:evszone:net> set vport=vport0
             zonecfg:rozone:net> end
             zonecfg:rozone> exit
             example# zoneadm -z evszone install
             example# zoneadm -z evszone boot
             example# dladm show-vnic -c
    
             LINK           TENANT   EVS   VPORT   OVER  MACADDRESS        VIDS
             evszone/net0   tenantA  EVSA  vport0  net2  2:8:20:1a:c1:e4   0
    
    
    
    
           When the zone boots, evszone/net0 VNIC anet will have the MAC  address,
           IP address, and the SLA properties of the vport EVSA/vport0.
    
    
           Example 26 Changing Verified Boot Settings
    
             # zonecfg -z vbzone1
             zonecfg:vbzone1> add verified-boot
             zonecfg:vbzone1:verified-boot> set policy=enforce
             zonecfg:vbzone1:verified-boot> add cert file:///etc/certs/INTERNALSE
             zonecfg:vbzone1:verified-boot> add cert
             http://keyserv.hang10software.com/keydist/hang10se.pem
             zonecfg:vbzone1:verified-boot> end
    
    
    
           Example  27  Copying  a  Zone  Configuration to Another System for Zone
           Migration
    
    
           When migrating a zone from one global zone to another global zone,  the
           zone  configuration  needs  to  migrate  first.  The  export subcommand
           exports all zone configuration such  that  it  can  be  used  with  the
           zonecfg  -f option on the new global zone with exact preservation. If a
           procedure like the one shown in this example is not used, kernel  zones
           will  not  be able to access any suspend file or properly attach to the
           new global zone.
    
    
             global1# zonecfg -z ex22 export -f /net/scratch/export/ex22.cfg
             global2# zonecfg -z ex22 -f /net/scratch/export/ex22.cfg
    
    
    
           Example 28 Using the anet iov Property for a Kernel Zone
    
    
           In this example, kz1 is a kernel zone with a single anet
    
    
             # zonecfg -z kz1
             zonecfg:kz1> select anet id=0
             zonecfg:kz1:anet> set iov=auto
             zonecfg:kz1:anet> end
             zonecfg:kz1>exit
    
    
    
    
           If lower-link is not auto, the user must ensure that the lower-link has
           iov  turned  on  before booting the kernel zone. If lower-link is auto,
           the user must ensure that global zone has at least one  link  with  iov
           turned on.
    
    
    
           If iov is not on, it can be turned on by:
    
    
             # dladm set-linkprop -p iov=on net1
    
    
    
    
           If a VF is available, after booting the kernel zone, a VF should appear
           as a physical NIC device within the kernel zone:
    
    
             kz1# dladm show-phys
    
    
    
             LINK      MEDIA        STATE      SPEED    DUPLEX    DEVICE
             net0      Ethernet     up         10000    full      ixgbevf0
    
    
    
           Example 29 Using an NFS SURI for a Device Property in a Kernel Zone
    
             # zonecfg -z kz1
             zonecfg:kz1> add device
             zonecfg:kz1> set
             storage=nfs://user1:staff@testsys1/export/test/kz1_dev1
             zonecfg:kz1> end
             zonecfg:kz1>exit
    
    
    
    EXIT STATUS
           The following exit values are returned:
    
           0
    
               Successful completion.
    
    
           1
    
               An error occurred.
    
    
           2
    
               Invalid usage.
    
    
    ATTRIBUTES
           See attributes(5) for descriptions of the following attributes:
    
    
    
    
           +-----------------------------+-----------------------------+
           |      ATTRIBUTE TYPE         |      ATTRIBUTE VALUE        |
           +-----------------------------+-----------------------------+
           |Availability                 |system/zones                 |
           +-----------------------------+-----------------------------+
           |Interface Stability          |Volatile                     |
           +-----------------------------+-----------------------------+
    
    SEE ALSO
           ppriv(1), prctl(1), lgrpinfo(1), zlogin(1), archiveadm(1M),  dladm(1M),
           format(1M),  ipadm(1M), kstat(1M), mount(1M), pooladm(1M), poolcfg(1M),
           poold(1M), psrinfo(1M), rcapd(1M), rctladm(1M), route(1M), suriadm(1M),
           svcadm(1M),    zfs(1M),    zoneadm(1M),    zonep2vchk(1M),   zpool(1M),
           priv_str_to_set(3C),    kstat(3KSTAT),     user_attr(4),     vfstab(4),
           attributes(5),  brands(5), fnmatch(5), mwac(5), privileges(5), rbac(5),
           resource-controls  (5),  solaris-kz(5),  suri(5),   tpd(5),   zones(5),
           dev(7FS), hsfs(7FS), zfs(7FS), uscsi(7I), evsadm(1M)
    
    
           Resource Management and Oracle Solaris Zones Developer's Guide
    
    NOTES
           All character data used by zonecfg must be in US-ASCII encoding.
    
    
           Adding  a device to a zone, in general, can allow the zone to adversely
           affect the security and stability of the system,  as  not  all  devices
           have been audited for secure use inside a zone.
    
    
           Storage  devices using the sd or ssd target driver (this can be checked
           using prtconf -D /dev/dsk/c2t40d3, for example) can be safely delegated
           to  a  zone.  This  will allow a zone admin to label and partition such
           devices.
    
    
           In order to allow disk labelling by  means  of  format(1M),  an  entire
           disk/LUN  should  be delegated to a zone, and the allow-partition prop-
           erty set. For example:
    
             zonecfg:myzone> add device
             zonecfg:myzone> set match=/dev/*dsk/c2t40d3*
             zonecfg:myzone> set allow-partition=true
             zonecfg:myzone> end
    
    
    
    
           While it is not recommended, it is also possible  to  delegate  just  a
           single  slice  (for  example,  match=/dev/dsk/c2t40d3s0)  of a disk. In
           order for this to be safe, the allow-partition  property  must  not  be
           true,  and  the  slice or partition must not overlap the disk header of
           disk labels (these are located within the first two or last two  blocks
           of the partition or disk).
    
    
           Raw  access to storage devices can be enabled by setting the allow-raw-
           io property to true. This is unsafe, as it  allows  raw  SCSI  commands
           (see uscsi(7I)) to be performed by zone processes.
    
    
           Inside  a  zone, device-in-use checking does not work, as the /devices/
           tree it relies upon is not present. A future project might address this
           limitation.
    
    
           The  mount  point  for  a  lofs  file  system  specified by an "add fs"
           resource must not lie within any filesystem  that  is  mounted  by  the
           zone.  In  particular,  such  mountpoints must not lie beneath /var and
           /export.
    
    
    
    SunOS 5.11                        14 Jul 2015                      zonecfg(1M)
    


© Lightnetics 2024