zonecfg man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

zonecfg(1M)		System Administration Commands		   zonecfg(1M)

NAME
       zonecfg - set up zone configuration

SYNOPSIS
       zonecfg -z zonename

       zonecfg -z zonename subcommand

       zonecfg -z zonename -f command_file

       zonecfg help

DESCRIPTION
       The  zonecfg  utility creates and modifies the configuration of a zone.
       Zone configuration consists of a number of resources and properties.

       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 interactive usage:

	 zonecfg -z zonename subcommand

       Parameters  changed  through  zonecfg do not affect a running zone. The
       zone must be rebooted for the changes to take effect.

       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.

       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

       inherit-pkg-dir

	   Directory  inherited	 from  the  global  zone. Used for sparse root
	   zones (see the discussion of	 "Sparse  and  Whole  Root  Non-Global
	   Zones,"  below).  Software packages whose contents have been trans‐
	   ferred into that directory are inherited in read-only mode  by  the
	   non-global  zone  and  the  non-global zone's packaging database is
	   updated to reflect those packages. Such resources are  not  modifi‐
	   able or removable once a zone has been installed with zoneadm.

       net

	   Network interface.

       rctl

	   Resource control.

   Sparse and Whole Root Non-Global Zones
       In the administration of zones, it is useful to distinguish between the
       global zone and non-global zones. Within non-global  zones,  there  are
       two  zone  root	file  system models: sparse and whole root. The sparse
       root zone model optimizes the sharing of objects. The whole  root  zone
       model  provides	the  maximum configurability. Note that not all brands
       support the sparse zone model.

   Sparse Root Zones
       Non-global zones that have inherit-pkg-dir resources are called	sparse
       root zones.

       The sparse root zone model optimizes the sharing of objects in the fol‐
       lowing ways:

	   o	  Only a subset of the packages installed in the  global  zone
		  are installed directly into the non-global zone.

	   o	  Read-only  loopback file systems, identified as inherit-pkg-
		  dir resources, are used to gain access to other files.

       In this model, all packages appear to be installed  in  the  non-global
       zone.  Packages	that  do  not  deliver content into read-only loopback
       mount file systems are fully installed. There is	 no  need  to  install
       content	delivered  into	 read-only loopback mounted file systems since
       that content is inherited (and visible) from the global zone.

	   o	  As a general guideline, a zone requires about 100  megabytes
		  of  free  disk  space per zone when the global zone has been
		  installed with all of the standard Solaris packages.

	   o	  By default, any additional packages installed in the	global
		  zone	also populate the non-global zones. The amount of disk
		  space required might be increased accordingly, depending  on
		  whether the additional packages deliver files that reside in
		  the inherit-pkg-dir resource space.

       An additional 40 megabytes of RAM  per  zone  are  suggested,  but  not
       required on a machine with sufficient swap space.

       A sparse zone inherits the following directories:

	 /lib
	 /platform
	 /sbin
	 /usr

       Although	 zonecfg  allows  you  to  remove one of these as an inherited
       directory, you should not do so. You should either  follow  the	whole-
       root  model  or	the  sparse model; a subset of the sparse model is not
       tested and you might encounter unexpected problems.

       Adding an additional inherit-pkg-dir directory,	such  as  /opt,	 to  a
       sparse root zone is acceptable.

   Whole Root Zones
       The  whole root zone model provides the maximum configurability. All of
       the required and any selected optional Solaris packages	are  installed
       into the private file systems of the zone. The advantages of this model
       include the capability for global  administrators  to  customize	 their
       zones file system layout. This would be done, for example, to add arbi‐
       trary unbundled or third-party packages.

       The disk requirements for this model are determined by the  disk	 space
       used by the packages currently installed in the global zone.

       Note -

	 If you create a sparse root zone that contains the following inherit-
	 pkg-dir directories, you must remove these directories from the  non-
	 global	 zone's	 configuration	before the zone is installed to have a
	 whole root zone:

	     o	    /lib

	     o	    /platform

	     o	    /sbin

	     o	    /usr

   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)

	   bootargs

       (global)

	   pool

       (global)

	   limitpriv

       (global)

	   brand

       (global)

	   cpu-shares

       (global)

	   hostid

       (global)

	   max-lwps

       (global)

	   max-msg-ids

       (global)

	   max-sem-ids

       (global)

	   max-shm-ids

       (global)

	   max-shm-memory

       (global)

	   scheduling-class

       fs

	   dir, special, raw, type, options

       inherit-pkg-dir

	   dir

       net

	   address, physical, defrouter

       device

	   match

       rctl

	   name, value

       attr

	   name, type, value

       dataset

	   name

       dedicated-cpu

	   ncpus, importance

       capped-memory

	   physical, swap, locked

       capped-cpu

	   ncpus

       As for the property values which are paired with these names, they  are
       either  simple,	complex,  or  lists. The type allowed is property-spe‐
       cific. Simple values are strings, optionally enclosed within  quotation
       marks. Complex values have the syntax:

	 (<name>=<value>,<name>=<value>,...)

       where  each <value> is simple, and the <name> strings are unique within
       a given property. Lists have the syntax:

	 [<value>,...]

       where each <value> is either simple or complex.	A  list	 of  a	single
       value (either simple or complex) is equivalent to specifying that value
       without the list syntax. That is, "foo" is  equivalent  to  "[foo]".  A
       list can be empty (denoted by "[]").

       In interpreting property values, zonecfg accepts regular expressions as
       specified in fnmatch(5). See EXAMPLES.

       The property types are described as follows:

       global: zonename

	   The name of the zone.

       global: zonepath

	   Path to zone's file system.

       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: 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 share the IP instance with the global zone, which
	   is the default, or have its own exclusive instance of IP.

	   This property takes the values shared and exclusive.

       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.

       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).

       inherit-pkg-dir: dir

	   The directory path.

       net: address, physical, defrouter

	   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.

	   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.

	   For an exclusive-IP zone, the physical property must be set and the
	   address and default router properties cannot be set.

       device: match

	   Device name to match.

       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.

       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.

       dataset: name

	   The	name of a ZFS dataset to be accessed from within the zone. See
	   zfs(1M).

       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-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: ncpus, importance

	   The number of CPUs that should be assigned for this	zone's	exclu‐
	   sive	 use.  The  zone  will create a pool and processor set when it
	   boots. See pooladm(1M) and  poolcfg(1M)  for	 more  information  on
	   resource  pools.  The ncpu property can specify a single value or a
	   range (for example, 1-4) of processors. The importance property  is
	   optional; if set, it will specify the pset.importance value for use
	   by poold(1M). If this resource is used, there must be  enough  free
	   processors  to allocate to this zone when it boots or the zone will
	   not boot. The processors assigned to this zone will not  be	avail‐
	   able	 for  the use of the global zone or other zones. 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).

       The following table summarizes resources, property-names, and types:

	 resource	   property-name   type
	 (global)	   zonename	   simple
	 (global)	   zonepath	   simple
	 (global)	   autoboot	   simple
	 (global)	   bootargs	   simple
	 (global)	   pool		   simple
	 (global)	   limitpriv	   simple
	 (global)	   brand	   simple
	 (global)	   ip-type	   simple
	 (global)	   hostid	   simple
	 (global)	   cpu-shares	   simple
	 (global)	   max-lwps	   simple
	 (global)	   max-msg-ids	   simple
	 (global)	   max-sem-ids	   simple
	 (global)	   max-shm-ids	   simple
	 (global)	   max-shm-memory  simple
	 (global)	   scheduling-class simple
	 fs		   dir		   simple
			    special	    simple
			    raw		    simple
			    type	    simple
			    options	    list of simple
	 inherit-pkg-dir   dir		   simple
	 net		   address	   simple
			    physical	    simple
	 device		   match	   simple
	 rctl		   name		   simple
			    value	    list of complex
	 attr		   name		   simple
			    type	    simple
			    value	    simple
	 dataset	   name		   simple
	 dedicated-cpu	   ncpus	   simple or range
			    importance	    simple

	 capped-memory	   physical	   simple with scale
			    swap	    simple with scale
			    locked	    simple with scale

	 capped-cpu	   ncpus	   simple

       To  further  specify  things,  the  breakdown  of  the complex property
       "value" of the "rctl" resource type, it consists	 of  three  name/value
       pairs,  the  names  being  "priv",  "limit" and "action", each of which
       takes a simple value. The "name" property of an "attr" resource is syn‐
       tactically  restricted  in  a fashion similar but not identical to zone
       names: it must begin with an alphanumeric, and can contain  alphanumer‐
       ics  plus  the  hyphen  (-),  underscore	 (_),  and dot (.) characters.
       Attribute names beginning with "zone" are reserved for use by the  sys‐
       tem.  Finally,  the  "autoboot"	global	property  must have a value of
       "true" or "false".

   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.

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.

       -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  SUNW  are
	   reserved and cannot be used.

SUBCOMMANDS
       You  can	 use  the  add	and  select  subcommands  to select a specific
       resource, at which point the scope changes to that  resource.  The  end
       and cancel subcommands are used to complete the resource specification,
       at which time the scope is reverted back	 to  global.  Certain  subcom‐
       mands,  such  as	 add, remove and set, have different semantics in each
       scope.

       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 (global scope)
       add property-name property-value (resource scope)

	   In the global 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

	   Clear the value for the property.

       commit

	   Commit the current configuration from memory to stable storage. The
	   configuration must be committed to be used by  zoneadm.  Until  the
	   in-memory  configuration  is committed, you can remove changes with
	   the revert subcommand. The commit operation is attempted  automati‐
	   cally  upon	completion of a zonecfg session. Since a configuration
	   must be correct to be committed, this operation automatically  does
	   a verify.

       create [-F] [ -a path |-b | -t template]

	   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.

	   Use the -a path 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 -b option to create a blank	configuration.	Without	 argu‐
	   ments, create applies the 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. If the specification is incom‐
	   plete, 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 | brand | pool | limitpriv
       info [resource-type [property-name=property-value]*]

	   Display information about the current configuration.	 If  resource-
	   type is specified, displays only information about resources of the
	   relevant type. If any property-name value pairs are specified, dis‐
	   plays  only information about resources meeting the given criteria.
	   In the resource scope, any arguments are ignored, and info displays
	   information	about  the  resource which is currently being added or
	   modified.

       remove resource-type{property-name=property-value}(global scope)

	   In the global scope, removes the specified resource. The []	syntax
	   means  0  or	 more  of whatever is inside the square braces. If you
	   want only to remove a single instance of  the  resource,  you  must
	   specify  enough  property  name-value  pairs for the resource to be
	   uniquely identified. If no property name-value pairs are specified,
	   all	instances  will	 be removed. If there is more than one pair is
	   specified, a confirmation  is  required,  unless  you  use  the  -F
	   option.

       select resource-type {property-name=property-value}

	   Select the resource of the given type which matches the given prop‐
	   erty-name property-value pair criteria, for modification. This sub‐
	   command  is	applicable  only  in  the  global  scope. The scope is
	   changed to that resource type. The {} syntax means  1  or  more  of
	   whatever  is inside the curly braces. You must specify enough prop‐
	   erty -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

	   Verify the current configuration for correctness:

	       o      All resources have  all  of  their  required  properties
		      specified.

	       o      A zonepath is specified.

       revert [-F]

	   Revert  the	configuration back to the last committed state. The -F
	   option can be used to force the action.

       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,	 three
       logical	network	 interfaces  are  added,  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.

	 example# zonecfg -z myzone3
	 my-zone3: No such zone configured
	 Use 'create' to begin configuring a new zone.
	 zonecfg:myzone3> create
	 zonecfg:myzone3> set zonepath=/export/home/my-zone3
	 zonecfg:myzone3> set autoboot=true
	 zonecfg:myzone3> add fs
	 zonecfg:myzone3:fs> set dir=/usr/local
	 zonecfg:myzone3:fs> set special=/opt/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 inherit-pkg-dir
	 zonecfg:myzone3:inherit-pkg-dir> set dir=/opt/sfw
	 zonecfg:myzone3:inherit-pkg-dir> end
	 zonecfg:myzone3> add net
	 zonecfg:myzone3:net> set address=192.168.0.1/24
	 zonecfg:myzone3:net> set physical=eri0
	 zonecfg:myzone3:net> end
	 zonecfg:myzone3> add net
	 zonecfg:myzone3:net> set address=192.168.1.2/24
	 zonecfg:myzone3:net> set physical=eri0
	 zonecfg:myzone3:net> end
	 zonecfg:myzone3> add net
	 zonecfg:myzone3:net> set address=192.168.2.3/24
	 zonecfg:myzone3:net> set physical=eri0
	 zonecfg:myzone3:net> 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 a Non-Native Zone

       The following example creates a new Linux zone:

	 example# zonecfg -z lxzone
	 lxzone: No such zone configured
	 Use 'create' to begin configuring a new zone
	 zonecfg:lxzone> create -t SUNWlx
	 zonecfg:lxzone> set zonepath=/export/zones/lxzone
	 zonecfg:lxzone> set autoboot=true
	 zonecfg:lxzone> exit

       Example 3 Creating an Exclusive-IP Zone

       The following example creates a zone that is granted  exclusive	access
       to  bge1	 and  bge33000	and  that is isolated at the IP layer from the
       other zones configured on the system.

       The IP addresses and routing is configured inside the  new  zone	 using
       sysidtool(1M).

	 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 net
	 zonecfg:excl:net> set physical=bge1
	 zonecfg:excl:net> end
	 zonecfg:excl> add net
	 zonecfg:excl:net> set physical=bge33000
	 zonecfg:excl:net> end
	 zonecfg:excl> 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

       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 a zone normally has along with the privilege  to
       change the system date and time:

	 example# zonecfg -z myzone
	 zonecfg:myzone> set limitpriv="default,sys_time"
	 zonecfg:myzone2> exit

       Example 7 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 8 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 9 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 10 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 11 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

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), zlogin(1), kstat(1M), mount(1M), pooladm(1M), pool‐
       cfg(1M),	 poold(1M), rcapd(1M), rctladm(1M), svcadm(1M), sysidtool(1M),
       zfs(1M), zoneadm(1M),  priv_str_to_set(3C),  kstat(3KSTAT),  vfstab(4),
       attributes(5),	 brands(5),    fnmatch(5),    lx(5),	privileges(5),
       resource_controls(5), zones(5)

       System Administration Guide:  Solaris  Containers-Resource  Management,
       and Solaris Zones

NOTES
       All character data used by zonecfg must be in US-ASCII encoding.

SunOS 5.11			  6 Jan 2010			   zonecfg(1M)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net