Re: [zones-discuss] Re: improved zones/RM integration

2006-08-17 Thread Steffen Weiberle

Hi Jerry,

Jerry Jelinek wrote On 08/17/06 09:20,:

Steffen,

Steffen Weiberle wrote:


Jerry Jelinek wrote On 08/16/06 18:14,:


Steffen,

Thanks for your comments.  Responses in-line.

Steffen Weiberle wrote:


Hi Jerry, this is great.

I have a few comments below.

Thanks
Steffen


1) "Hard" vs. "Soft" RM configuration within zonecfg

We will enhance zonecfg(1M) so that the user can configure 
basic RM

capabilities in a structured way.

Various existing and upcoming RM features can be broken down
into "hard" vs. "soft" partitioning of the system's resources.
With "hard" partitioning, resources are dedicated to the zone 
using

processor sets (psets) and memory sets (msets).  With "soft"
partitioning, resources are shared, but capped, with an upper 
limit

on their use by the zone.

 Hard|Soft
   -
   cpu|  psets   |  cpu-caps
   memory |  msets   |  rcapd

Within zonecfg we will organize these various RM features into 
four
basic zonecfg resources so that it is simple for a user to 
understand

and configure the RM features that are to be used with their zone.
Note that zonecfg "resources" are not the same as the system's
cpu & memory resources or "resource management".  Within 
zonecfg, a
"resource" is the name of a top-level property group for the 
zone (see

zonecfg(1M) for more information).




Are you saying just the names are different, or are there other 
differences as well?




Unfortunately the word "resource" is overloaded here.  zonecfg(1M) uses
it to mean a group of properties which has nothing to do with
system resources (e.g. cpu or memory) or how the word "resource" is
used under the umbrella of Solaris Resource Management.



Now I am more confused. You mean

zonecfg   pool[adm,cfg]
---   
dedicated-cpu!=   CPU resource pool (pset and pool)
capped-cpu   !=   cpu-caps
dedicated-memory !=   memory resource pool



Sorry, I misunderstood your question here.  The mapping *is* to these
RM features.  I actually have this shown about two paragraphs down
from here.  I thought you were talking about the word 'resource'
and how we use that word to mean different things in zones and RM.


OK Thanks






The four new zonecfg resources are:
dedicated-cpu
capped-cpu   (future, after cpu-caps are integrated)
dedicated-memory (future, after memory sets are integrated)
capped-memory

Each of these zonecfg resources will have properties that are
appropriate to the RM capabilities associated with that resource.
Zonecfg will only allow one instance of each these resource to be
configured and it will not allow conflicting resources to be added
(e.g. dedicated-cpu and capped-cpu are mutually exclusive).

The mapping of these new zonecfg resources to the underlying RM 
feature

is:
dedicated-cpu -> temporary pset
dedicated-memory -> temporary mset
capped-cpu -> cpu-cap rctl [14]
capped-memory -> rcapd running in global zone







2) Temporary Pools.

We will implement the concept of "temporary pools" within the 
pools

framework.

To improve the integration of zones and pools we are allowing the
configuration of some basic pool attributes within zonecfg, as
described above in section 1.  However, we do not want to extend
zonecfg to completely and directly manage standard pool 
configurations.
That would lead to confusion and inconsistency regarding which 
tool to
use and where configuration data is stored.  Temporary pools 
sidesteps
this problem and allows zones to dynamically create a simple 
pool/pset

configuration for the basic case where a sysadmin just wants a
specified number of processors dedicated to the zone (and 
eventually a

dedicated amount of memory).

We believe that the ability to simply specify a fixed number of 
cpus
(and eventually a mset size) meets the needs of a large 
percentage of

zones users who need "hard" partitioning (e.g. to meet licensing
restrictions).

If a dedicated-cpu (and/or eventually a dedicated-memory) 
resource is
configured for the zone, then when the zone boots zoneadmd will 
enable
pools if necessary and create a temporary pool dedicated for 
the zones
use.  Zoneadmd will dynamically create a pool & pset (and/or 
eventually

a mset) and assign the number of cpus specified in zonecfg to that
pset.  The temporary pool & pset will be named 
'SUNWtmp_{zonename}'.

Zonecfg validation will disallow an explicit 'pool' property name
beginning with 'SUNWtmp'.

Zoneadmd will set the 'pset.min' and 'pset.max' pset 
properties, as

well as the 'pool.importance' pool property, based on the values
specified for dedicated-cpu's 'ncpus' and 'importance' propertie

Re: [zones-discuss] Re: improved zones/RM integration

2006-08-17 Thread Jerry Jelinek

Steffen,

Steffen Weiberle wrote:

Jerry Jelinek wrote On 08/16/06 18:14,:

Steffen,

Thanks for your comments.  Responses in-line.

Steffen Weiberle wrote:


Hi Jerry, this is great.

I have a few comments below.

Thanks
Steffen


1) "Hard" vs. "Soft" RM configuration within zonecfg

We will enhance zonecfg(1M) so that the user can configure basic RM
capabilities in a structured way.

Various existing and upcoming RM features can be broken down
into "hard" vs. "soft" partitioning of the system's resources.
With "hard" partitioning, resources are dedicated to the zone using
processor sets (psets) and memory sets (msets).  With "soft"
partitioning, resources are shared, but capped, with an upper limit
on their use by the zone.

 Hard|Soft
   -
   cpu|  psets   |  cpu-caps
   memory |  msets   |  rcapd

Within zonecfg we will organize these various RM features into four
basic zonecfg resources so that it is simple for a user to 
understand

and configure the RM features that are to be used with their zone.
Note that zonecfg "resources" are not the same as the system's
cpu & memory resources or "resource management".  Within zonecfg, a
"resource" is the name of a top-level property group for the 
zone (see

zonecfg(1M) for more information).



Are you saying just the names are different, or are there other 
differences as well?



Unfortunately the word "resource" is overloaded here.  zonecfg(1M) uses
it to mean a group of properties which has nothing to do with
system resources (e.g. cpu or memory) or how the word "resource" is
used under the umbrella of Solaris Resource Management.


Now I am more confused. You mean

zonecfg   pool[adm,cfg]
---   
dedicated-cpu!=   CPU resource pool (pset and pool)
capped-cpu   !=   cpu-caps
dedicated-memory !=   memory resource pool


Sorry, I misunderstood your question here.  The mapping *is* to these
RM features.  I actually have this shown about two paragraphs down
from here.  I thought you were talking about the word 'resource'
and how we use that word to mean different things in zones and RM.




The four new zonecfg resources are:
dedicated-cpu
capped-cpu   (future, after cpu-caps are integrated)
dedicated-memory (future, after memory sets are integrated)
capped-memory

Each of these zonecfg resources will have properties that are
appropriate to the RM capabilities associated with that resource.
Zonecfg will only allow one instance of each these resource to be
configured and it will not allow conflicting resources to be added
(e.g. dedicated-cpu and capped-cpu are mutually exclusive).

The mapping of these new zonecfg resources to the underlying RM 
feature

is:
dedicated-cpu -> temporary pset
dedicated-memory -> temporary mset
capped-cpu -> cpu-cap rctl [14]
capped-memory -> rcapd running in global zone







2) Temporary Pools.

We will implement the concept of "temporary pools" within the pools
framework.

To improve the integration of zones and pools we are allowing the
configuration of some basic pool attributes within zonecfg, as
described above in section 1.  However, we do not want to extend
zonecfg to completely and directly manage standard pool 
configurations.
That would lead to confusion and inconsistency regarding which 
tool to
use and where configuration data is stored.  Temporary pools 
sidesteps
this problem and allows zones to dynamically create a simple 
pool/pset

configuration for the basic case where a sysadmin just wants a
specified number of processors dedicated to the zone (and 
eventually a

dedicated amount of memory).

We believe that the ability to simply specify a fixed number of 
cpus
(and eventually a mset size) meets the needs of a large 
percentage of

zones users who need "hard" partitioning (e.g. to meet licensing
restrictions).

If a dedicated-cpu (and/or eventually a dedicated-memory) 
resource is
configured for the zone, then when the zone boots zoneadmd will 
enable
pools if necessary and create a temporary pool dedicated for the 
zones
use.  Zoneadmd will dynamically create a pool & pset (and/or 
eventually

a mset) and assign the number of cpus specified in zonecfg to that
pset.  The temporary pool & pset will be named 
'SUNWtmp_{zonename}'.

Zonecfg validation will disallow an explicit 'pool' property name
beginning with 'SUNWtmp'.

Zoneadmd will set the 'pset.min' and 'pset.max' pset properties, as
well as the 'pool.importance' pool property, based on the values
specified for dedicated-cpu's 'ncpus' and 'importance' properties
in zonecfg, as described above in section 1.

If the cpu (or memory) resou

Re: [zones-discuss] Re: improved zones/RM integration

2006-08-17 Thread Steffen Weiberle

Jerry Jelinek wrote On 08/16/06 18:14,:

Steffen,

Thanks for your comments.  Responses in-line.

Steffen Weiberle wrote:


Hi Jerry, this is great.

I have a few comments below.

Thanks
Steffen


1) "Hard" vs. "Soft" RM configuration within zonecfg

We will enhance zonecfg(1M) so that the user can configure basic RM
capabilities in a structured way.

Various existing and upcoming RM features can be broken down
into "hard" vs. "soft" partitioning of the system's resources.
With "hard" partitioning, resources are dedicated to the zone using
processor sets (psets) and memory sets (msets).  With "soft"
partitioning, resources are shared, but capped, with an upper limit
on their use by the zone.

 Hard|Soft
   -
   cpu|  psets   |  cpu-caps
   memory |  msets   |  rcapd

Within zonecfg we will organize these various RM features into four
basic zonecfg resources so that it is simple for a user to 
understand

and configure the RM features that are to be used with their zone.
Note that zonecfg "resources" are not the same as the system's
cpu & memory resources or "resource management".  Within zonecfg, a
"resource" is the name of a top-level property group for the zone 
(see

zonecfg(1M) for more information).



Are you saying just the names are different, or are there other 
differences as well?



Unfortunately the word "resource" is overloaded here.  zonecfg(1M) uses
it to mean a group of properties which has nothing to do with
system resources (e.g. cpu or memory) or how the word "resource" is
used under the umbrella of Solaris Resource Management.


Now I am more confused. You mean

zonecfg   pool[adm,cfg]
---   
dedicated-cpu!=   CPU resource pool (pset and pool)
capped-cpu   !=   cpu-caps
dedicated-memory !=   memory resource pool




The four new zonecfg resources are:
dedicated-cpu
capped-cpu   (future, after cpu-caps are integrated)
dedicated-memory (future, after memory sets are integrated)
capped-memory

Each of these zonecfg resources will have properties that are
appropriate to the RM capabilities associated with that resource.
Zonecfg will only allow one instance of each these resource to be
configured and it will not allow conflicting resources to be added
(e.g. dedicated-cpu and capped-cpu are mutually exclusive).

The mapping of these new zonecfg resources to the underlying RM 
feature

is:
dedicated-cpu -> temporary pset
dedicated-memory -> temporary mset
capped-cpu -> cpu-cap rctl [14]
capped-memory -> rcapd running in global zone







2) Temporary Pools.

We will implement the concept of "temporary pools" within the pools
framework.

To improve the integration of zones and pools we are allowing the
configuration of some basic pool attributes within zonecfg, as
described above in section 1.  However, we do not want to extend
zonecfg to completely and directly manage standard pool 
configurations.
That would lead to confusion and inconsistency regarding which 
tool to
use and where configuration data is stored.  Temporary pools 
sidesteps
this problem and allows zones to dynamically create a simple 
pool/pset

configuration for the basic case where a sysadmin just wants a
specified number of processors dedicated to the zone (and 
eventually a

dedicated amount of memory).

We believe that the ability to simply specify a fixed number of cpus
(and eventually a mset size) meets the needs of a large 
percentage of

zones users who need "hard" partitioning (e.g. to meet licensing
restrictions).

If a dedicated-cpu (and/or eventually a dedicated-memory) 
resource is
configured for the zone, then when the zone boots zoneadmd will 
enable
pools if necessary and create a temporary pool dedicated for the 
zones
use.  Zoneadmd will dynamically create a pool & pset (and/or 
eventually

a mset) and assign the number of cpus specified in zonecfg to that
pset.  The temporary pool & pset will be named 'SUNWtmp_{zonename}'.
Zonecfg validation will disallow an explicit 'pool' property name
beginning with 'SUNWtmp'.

Zoneadmd will set the 'pset.min' and 'pset.max' pset properties, as
well as the 'pool.importance' pool property, based on the values
specified for dedicated-cpu's 'ncpus' and 'importance' properties
in zonecfg, as described above in section 1.

If the cpu (or memory) resources needed to create the temporary pool
are unavailable, zoneadmd will issue an error and the zone won't 
boot.


When the zone is halted, the temporary pool & pset will be 
destroyed.


We will add a new boolean libpool(3LIB) property ('temporary') 
that can

exist on pools and any pool res

Re: [zones-discuss] Re: improved zones/RM integration

2006-08-16 Thread Jerry Jelinek

Steffen,

Thanks for your comments.  Responses in-line.

Steffen Weiberle wrote:

Hi Jerry, this is great.

I have a few comments below.

Thanks
Steffen


1) "Hard" vs. "Soft" RM configuration within zonecfg

We will enhance zonecfg(1M) so that the user can configure basic RM
capabilities in a structured way.

Various existing and upcoming RM features can be broken down
into "hard" vs. "soft" partitioning of the system's resources.
With "hard" partitioning, resources are dedicated to the zone using
processor sets (psets) and memory sets (msets).  With "soft"
partitioning, resources are shared, but capped, with an upper limit
on their use by the zone.

 Hard|Soft
   -
   cpu|  psets   |  cpu-caps
   memory |  msets   |  rcapd

Within zonecfg we will organize these various RM features into four
basic zonecfg resources so that it is simple for a user to understand
and configure the RM features that are to be used with their zone.
Note that zonecfg "resources" are not the same as the system's
cpu & memory resources or "resource management".  Within zonecfg, a
"resource" is the name of a top-level property group for the zone 
(see

zonecfg(1M) for more information).


Are you saying just the names are different, or are there other 
differences as well?


Unfortunately the word "resource" is overloaded here.  zonecfg(1M) uses
it to mean a group of properties which has nothing to do with
system resources (e.g. cpu or memory) or how the word "resource" is
used under the umbrella of Solaris Resource Management.


The four new zonecfg resources are:
dedicated-cpu
capped-cpu   (future, after cpu-caps are integrated)
dedicated-memory (future, after memory sets are integrated)
capped-memory

Each of these zonecfg resources will have properties that are
appropriate to the RM capabilities associated with that resource.
Zonecfg will only allow one instance of each these resource to be
configured and it will not allow conflicting resources to be added
(e.g. dedicated-cpu and capped-cpu are mutually exclusive).

The mapping of these new zonecfg resources to the underlying RM 
feature

is:
dedicated-cpu -> temporary pset
dedicated-memory -> temporary mset
capped-cpu -> cpu-cap rctl [14]
capped-memory -> rcapd running in global zone

Temporary psets and msets are described below, in section 2.
Rcapd enhancements for running in the global zone are described below
in section 4.

The valid properties for each of these new zonecfg resources will be:

dedicated-cpu
ncpus
importance
capped-cpu
ncpus
dedicated-memory
physical
virtual
importance
capped-memory
physical
virtual

The meaning of each of these properties is as follows:

dedicated-cpu
ncpus:This can be a positive integer or range.  A value of
'2' means two cpus, a value of '2-4' means a range of
two to four cpus.  This sets the 'pset.min' and
'pset.max' properties on the temporary pset.
importance: This property is optional.  It can be a positive
integer.  It sets the 'pool.importance' property on
the temporary pool.

capped-cpu
This resource group and its property will not be delivered as
part of this project since cpu-caps are still under
development.  However, our thinking on this is described here
for completeness.

ncpus:This is a positive decimal.  The 'ncpus' property
actually maps to the zone.cpu-cap rctl.  This property
will be implemented as a special case of the new zones
rctl aliases which are described below in section 3.
The special case handling of this property will
normalize the value so that it corresponds to units of
cpus and is similar to the 'ncpus' property under the
dedicated-cpu resource group.  However, it won't accept
a range and it will accept a decimal number.  For
example, when using 'ncpus' in the dedicated-cpu
resource group, a value of 1 means one dedicated cpu.
When using 'ncpus' in the capped-cpu resource group,
a value of 1 means 100% of a cpu is the cap setting.  A
value of 1.25 means 125%, since 100% corresponds to one
full cpu on the system when using cpu caps.  The idea
here is to align the 'ncpus' units as closely as
possible in these two cases (dedicated-cpu vs.
capped-cpu), given the limitations and capabilities of
the two underlying mechanisms (pset vs. rctl).  The
'ncpus'

Re: [zones-discuss] Re: improved zones/RM integration

2006-08-16 Thread Steffen Weiberle

Hi Jerry, this is great.

I have a few comments below.

Thanks
Steffen


1) "Hard" vs. "Soft" RM configuration within zonecfg

We will enhance zonecfg(1M) so that the user can configure basic RM
capabilities in a structured way.

Various existing and upcoming RM features can be broken down
into "hard" vs. "soft" partitioning of the system's resources.
With "hard" partitioning, resources are dedicated to the zone using
processor sets (psets) and memory sets (msets).  With "soft"
partitioning, resources are shared, but capped, with an upper limit
on their use by the zone.

 Hard|Soft
   -
   cpu|  psets   |  cpu-caps
   memory |  msets   |  rcapd

Within zonecfg we will organize these various RM features into four
basic zonecfg resources so that it is simple for a user to understand
and configure the RM features that are to be used with their zone.
Note that zonecfg "resources" are not the same as the system's
cpu & memory resources or "resource management".  Within zonecfg, a
"resource" is the name of a top-level property group for the zone (see
zonecfg(1M) for more information).


Are you saying just the names are different, or are there other 
differences as well?




The four new zonecfg resources are:
dedicated-cpu
capped-cpu   (future, after cpu-caps are integrated)
dedicated-memory (future, after memory sets are integrated)
capped-memory

Each of these zonecfg resources will have properties that are
appropriate to the RM capabilities associated with that resource.
Zonecfg will only allow one instance of each these resource to be
configured and it will not allow conflicting resources to be added
(e.g. dedicated-cpu and capped-cpu are mutually exclusive).

The mapping of these new zonecfg resources to the underlying RM feature
is:
dedicated-cpu -> temporary pset
dedicated-memory -> temporary mset
capped-cpu -> cpu-cap rctl [14]
capped-memory -> rcapd running in global zone

Temporary psets and msets are described below, in section 2.
Rcapd enhancements for running in the global zone are described below
in section 4.

The valid properties for each of these new zonecfg resources will be:

dedicated-cpu
ncpus
importance
capped-cpu
ncpus
dedicated-memory
physical
virtual
importance
capped-memory
physical
virtual

The meaning of each of these properties is as follows:

dedicated-cpu
ncpus:  This can be a positive integer or range.  A value of
'2' means two cpus, a value of '2-4' means a range of
two to four cpus.  This sets the 'pset.min' and
			'pset.max' properties on the temporary pset. 


importance: This property is optional.  It can be a positive
integer.  It sets the 'pool.importance' property on
the temporary pool.

capped-cpu
This resource group and its property will not be delivered as
part of this project since cpu-caps are still under
development.  However, our thinking on this is described here
for completeness.

ncpus:  This is a positive decimal.  The 'ncpus' property
actually maps to the zone.cpu-cap rctl.  This property
will be implemented as a special case of the new zones
rctl aliases which are described below in section 3.
The special case handling of this property will
normalize the value so that it corresponds to units of
cpus and is similar to the 'ncpus' property under the
dedicated-cpu resource group.  However, it won't accept
a range and it will accept a decimal number.  For
example, when using 'ncpus' in the dedicated-cpu
resource group, a value of 1 means one dedicated cpu.
When using 'ncpus' in the capped-cpu resource group,
a value of 1 means 100% of a cpu is the cap setting.  A
value of 1.25 means 125%, since 100% corresponds to one
full cpu on the system when using cpu caps.  The idea
here is to align

Re: [zones-discuss] Re: improved zones/RM integration

2006-08-16 Thread Jerry Jelinek

Nils,

Thanks for looking this over.

Nils Nieuwejaar wrote:

On Wed 08/16/06 at 09:10 AM, [EMAIL PROTECTED] wrote:
[...]

dedicated-memory

[...]

physical: A positive decimal number or a range with a required

[...]

virtual: This accepts the same numbers as the 'physical'
property.  This will set the 'mset.minswap' and
'mset.maxswap' properties on the temporary mset.


Why not just call this 'swap'?  'virtual' memory has an established
definition that does not match this usage.  With this naming, I guarantee
we are going to get calls from confused customers wanting to know why
firefox has something mapped at 0xC00 when they set a 'virtual memory'
limit of 1GB.


We can do that.  I think we picked virtual when Steve and I were talking
about this.  This is not in phase 1 of the project so we haven't spent
as much time on it.  Let me run this past Steve but we'll probably go ahead
and update the proposal to use swap.


4) Enable rcapd to limit zone memory while running in the global zone [9]

Currently, to use rcapd(1M) to limit zone memory consumption, the
rcapd process must be run within the zone.  While useful in some
configurations, in situations where the zone administrator is
untrusted, this is ineffective, since the zone administrator could
simply change the rcapd limit.

We will enhance rcapd so that it can limit each zone's memory
consumption while it is running in the global zone.  This closes the
rcapd loophole described above and allows the global zone administrator
to set memory caps that can be enforced by a single, trusted process.


Currently rcapd will not run in a Linux zone.  This change will also allow
you to apply rcapd limits to branded zones.  


Good point.  I will add that to the description.

Thanks again,
Jerry

___
zones-discuss mailing list
zones-discuss@opensolaris.org


Re: [zones-discuss] Re: improved zones/RM integration

2006-08-16 Thread Nils Nieuwejaar
On Wed 08/16/06 at 09:10 AM, [EMAIL PROTECTED] wrote:
[...]
>   dedicated-memory
[...]
>   physical: A positive decimal number or a range with a required
[...]
>   virtual: This accepts the same numbers as the 'physical'
>   property.  This will set the 'mset.minswap' and
>   'mset.maxswap' properties on the temporary mset.

Why not just call this 'swap'?  'virtual' memory has an established
definition that does not match this usage.  With this naming, I guarantee
we are going to get calls from confused customers wanting to know why
firefox has something mapped at 0xC00 when they set a 'virtual memory'
limit of 1GB.

> 4) Enable rcapd to limit zone memory while running in the global zone [9]
> 
>   Currently, to use rcapd(1M) to limit zone memory consumption, the
>   rcapd process must be run within the zone.  While useful in some
>   configurations, in situations where the zone administrator is
>   untrusted, this is ineffective, since the zone administrator could
>   simply change the rcapd limit.
> 
>   We will enhance rcapd so that it can limit each zone's memory
>   consumption while it is running in the global zone.  This closes the
>   rcapd loophole described above and allows the global zone administrator
>   to set memory caps that can be enforced by a single, trusted process.

Currently rcapd will not run in a Linux zone.  This change will also allow
you to apply rcapd limits to branded zones.  


___
zones-discuss mailing list
zones-discuss@opensolaris.org


[zones-discuss] Re: improved zones/RM integration

2006-08-16 Thread Gerald A. Jelinek
I received a lot of good feedback from the community when I sent
out the first draft of the proposal for improved zones/RM integration.
Based on this feedback I have made several changes.  Attached
is a new draft of the proposal we will be going forward with.  The
major changes we made are:

 * rctl aliases will only be top-level properties in zonecfg
 * enhance zones to manage the global zones RM configuration
 * new zonecfg clear subcommand and updated remove behavior
 * new zonecfg scheduling-class property
 * new options for rcapadm and rcapstat

The details of these changes are in the attached proposal.  I also
added more details throughout the proposal.

Please send me any comments or questions,
Jerry
 
 
This message posted from opensolaris.orgSUMMARY: 

This project enhances zones[1], pools[2-4] and resource caps[5,6] to
improve the integration of zones with resource management (RM).  It
addresses existing RFEs[7-12] in this area and lays the groundwork for
simplified, coherent management of the various RM features exposed
through zones.  These enhancements are targeted at "less experienced"
users who are unfamiliar with all of the details and capabilities of
Solaris RM.  For users who need more complex RM configurations, the
existing commands and procedures must still be used.  However, we do
feel that these enhancements will meet the needs of a large percentage
of zones users.

We will integrate some basic pool configuration with zones, implement
the concept of "temporary pools" that are dynamically created/destroyed
when a zone boots/halts and we will simplify the setting of resource
controls within zonecfg.  We will enhance rcapd so that it can cap
a zone's memory while rcapd is running in the global zone.  We will
enable persistent RM configuration for the global zone.  We will also
make a few other changes to provide a better overall experience when
using zones with RM.

Patch binding is requested for these new interfaces and the stability
of most of these interfaces is "Committed" (see interface table for
complete list).

PROBLEM:

Although zones are fairly easy to configure and install, it appears
that many users have difficulty setting up a good RM configuration
to accompany their zone configuration.  Understanding RM involves many
new terms and concepts along with lots of documentation to understand.
This leads to the problem that many customers either do not configure
RM with their zones, or configure it incorrectly, leading them to be
disappointed when zones, by themselves, do not provide all of the
containment that they expect.

This problem will just get worse in the near future with the
additional RM features that are coming, such as cpu-caps[14], memory
sets[15] and swap sets[16].

PROPOSAL:

There are a set of relatively independent enhancements outlined below
which will, taken together, address these problems and provide a
simple, tightly integrated experience for configuring containers (zones
with RM).

This proposal is complicated by the fact that it tries to unify
the RM concepts within zones, but not all of these RM features are
available yet.  Specifically, cpu-caps[14], memory sets[15],
swap sets[16], and new rctls [17, 18] are under development but not
yet integrated.  This proposal will describe a framework for how
current and future RM features will be integrated with zones.  However,
we do not want to make this project dependent on these future projects
since there is a lot of value to be added as is.  Instead, we will
submit fast-tracks to incorporate future RM features as they integrate.
Items related to these future enhancements are noted within the body
of the proposal.  The future enhancements are also noted in the
interface table for follow-on phases of this overall project.

1) "Hard" vs. "Soft" RM configuration within zonecfg

We will enhance zonecfg(1M) so that the user can configure basic RM
capabilities in a structured way.

Various existing and upcoming RM features can be broken down
into "hard" vs. "soft" partitioning of the system's resources.
With "hard" partitioning, resources are dedicated to the zone using
processor sets (psets) and memory sets (msets).  With "soft"
partitioning, resources are shared, but capped, with an upper limit
on their use by the zone.

 Hard|Soft
   -
   cpu|  psets   |  cpu-caps
   memory |  msets   |  rcapd

Within zonecfg we will organize these various RM features into four
   

Re: [zones-discuss] Re: improved zones/RM integration

2006-07-17 Thread Jerry Jelinek

Dan Price wrote:

Just FYI, please thoroughly digest PSARC/2004/471 before recommending
the use of -u or considering documenting it.  In short, your steps
should work without needing the -u option, since -d causes an update to
both the persistent file-based setting and to the kernel:

# dispadmin -d FSS
# priocntl -s -c FSS -i all
# priocntl -s -c FSS -i pid 1


Dan,

Yes, I had looked at this a bit more after I sent the email and realized
that -u was unnecessary.

Thanks,
Jerry
___
zones-discuss mailing list
zones-discuss@opensolaris.org


Re: [zones-discuss] Re: improved zones/RM integration

2006-07-17 Thread Dan Price
On Tue 27 Jun 2006 at 08:27AM, Jerry Jelinek wrote:
> Mike Gerdts wrote:
> >>I also like the idea of activating FSS if the zone.cpu-shares 
> >>parameter is set. Given that activating FSS requires a reboot of the 
> >>global zone, you should add a check to see if FSS is already active 
> >>and if it is not, put out a warning message indicating that a reboot 
> >>of the global is required to make FSS active. For that matter, there 
> >>should be a warning message on zone boot that FSS is not active and 
> >>the configured zone.cpu-shares value will be ignored.
> >
> >No reboot is required.  See poolbind in this example:
> >http://users.tpg.com.au/adsln4yb/zones.html#resource_cpu1
> 
> Phil,
> 
> Mike as already responded with a bunch of useful information.
> However, I looked at this url and on this one point regarding setting
> FSS as the default, it doesn't look like it actually shows you how to
> do this.
> 
> You don't have to reboot to make FSS the default and have all
> of the global zones processes running under FSS.  Instead, you can
> do something like this:
> 
>   # dispadmin -d FSS
> # dispadmin -u
> # priocntl -s -c FSS -i all
> # priocntl -s -c FSS -i pid 1
> 
> I see the -u option on dispadmin is undocumented.  I'll have to
> look at that and see if it might make sense to raise its stability.

Jerry,

Just FYI, please thoroughly digest PSARC/2004/471 before recommending
the use of -u or considering documenting it.  In short, your steps
should work without needing the -u option, since -d causes an update to
both the persistent file-based setting and to the kernel:

# dispadmin -d FSS
# priocntl -s -c FSS -i all
# priocntl -s -c FSS -i pid 1

-dp

-- 
Daniel Price - Solaris Kernel Engineering - [EMAIL PROTECTED] - blogs.sun.com/dp
___
zones-discuss mailing list
zones-discuss@opensolaris.org


Re: [zones-discuss] Re: improved zones/RM integration

2006-06-29 Thread Renaud Manus



Jerry Jelinek wrote:

You don't have to reboot to make FSS the default and have all
of the global zones processes running under FSS.  Instead, you can
do something like this:

# dispadmin -d FSS
# dispadmin -u
# priocntl -s -c FSS -i all
# priocntl -s -c FSS -i pid 1



Since snv_29, you can also restart the scheduler service

# dispadmin -d FSS
# svcadm restart system/scheduler

-- Renaud
___
zones-discuss mailing list
zones-discuss@opensolaris.org


Re: [zones-discuss] Re: improved zones/RM integration

2006-06-27 Thread Jerry Jelinek

Mike Gerdts wrote:
I also like the idea of activating FSS if the zone.cpu-shares 
parameter is set. Given that activating FSS requires a reboot of the 
global zone, you should add a check to see if FSS is already active 
and if it is not, put out a warning message indicating that a reboot 
of the global is required to make FSS active. For that matter, there 
should be a warning message on zone boot that FSS is not active and 
the configured zone.cpu-shares value will be ignored.


No reboot is required.  See poolbind in this example:
http://users.tpg.com.au/adsln4yb/zones.html#resource_cpu1


Phil,

Mike as already responded with a bunch of useful information.
However, I looked at this url and on this one point regarding setting
FSS as the default, it doesn't look like it actually shows you how to
do this.

You don't have to reboot to make FSS the default and have all
of the global zones processes running under FSS.  Instead, you can
do something like this:

# dispadmin -d FSS
# dispadmin -u
# priocntl -s -c FSS -i all
# priocntl -s -c FSS -i pid 1

I see the -u option on dispadmin is undocumented.  I'll have to
look at that and see if it might make sense to raise its stability.
In the meantime, be aware that it could change at any time, although
that is not very likely.

Also, just to clarify things a bit in regards to our proposal, if you
have a zone with cpu-shares set, we won't be changing the global zones
scheduling class to be FSS.  While that would be useful for many
scenarios, it will change the behavior of the system and it might not
be what you want in all cases.  Instead, we will be setting up the zone
so that it is using FSS for all of its processes but the processes in
the global zone will continue to run with whatever scheduling class they
are using.  For a lot of cases with cpu-shares, it would probably be a good
idea to run with FSS as the default but we can't just make this change
to the system automatically.

Thanks,
Jerry
___
zones-discuss mailing list
zones-discuss@opensolaris.org


Re: [zones-discuss] Re: improved zones/RM integration

2006-06-26 Thread Mike Gerdts

On 6/26/06, Phil Freund <[EMAIL PROTECTED]> wrote:

I'm just trying to get my head around how to setup the whole pool/resource 
capping arena for my server/zone configurations and am finding it a bit 
confusing and arcane. Your proposal looks pretty good to me since most of what 
I need would be covered by the defaults. It's certainly more understandable. 
Unfortunately, I have to go ahead with what's available now and will have to 
retrofit the changes based on this proposal if/when they get implemented.


I found Brendan Gregg's page
http://users.tpg.com.au/adsln4yb/zones.html very helpful.  He
condensed dozens (hundreds?) of pages down to something digestable in
a few minutes.


One suggestion that may only be tangential to this effort is that a mechanism 
be put in place to allow the global zone sysadmin to set the default pool and 
resource values (such as cpu shares) for the global zone without having to 
write a script to set them on boot. It doesn't look particularly hard but it is 
one more thing to maintain that really should be handled by the OS.


I have created a replacement for svc:/system/zones and its associated
/lib/svc/method/* script to activate the appropriate pools during zone
booting.  It does other things too - adds a default router if
necessary, allows an override for zone shutdown timeout, makes sure
that the zone's IP address isn't pingable, etc.  You may want to
consider going this route if you have a similar set of concerns.



I also like the idea of activating FSS if the zone.cpu-shares parameter is set. 
Given that activating FSS requires a reboot of the global zone, you should add 
a check to see if FSS is already active and if it is not, put out a warning 
message indicating that a reboot of the global is required to make FSS active. 
For that matter, there should be a warning message on zone boot that FSS is not 
active and the configured zone.cpu-shares value will be ignored.


No reboot is required.  See poolbind in this example:
http://users.tpg.com.au/adsln4yb/zones.html#resource_cpu1

Mike

--
Mike Gerdts
http://mgerdts.blogspot.com/
___
zones-discuss mailing list
zones-discuss@opensolaris.org


[zones-discuss] Re: improved zones/RM integration

2006-06-26 Thread Phil Freund
I'm just trying to get my head around how to setup the whole pool/resource 
capping arena for my server/zone configurations and am finding it a bit 
confusing and arcane. Your proposal looks pretty good to me since most of what 
I need would be covered by the defaults. It's certainly more understandable. 
Unfortunately, I have to go ahead with what's available now and will have to 
retrofit the changes based on this proposal if/when they get implemented. 

Like many others, my biggest current need is to meet licensing restrictions on 
the number of CPUs. At the moment this is mostly limited to being needed in the 
global zone since I have to use Oracle 8i with Quick I/O on a licensed CPU 
limited basis from there; in the future though, I will be able to move to 
Oracle 10g hosted in a nonglobal zone so the concepts of the temporary pools in 
the proposal look pretty good. I can also see a big use for the swap sets and 
memory sets on a zone basis. 

Overall, simplicity is good. Yet another GUI certainly would not be good. That 
being said, management of the proposed changes should be possible in Container 
Manager in SMC.

One suggestion that may only be tangential to this effort is that a mechanism 
be put in place to allow the global zone sysadmin to set the default pool and 
resource values (such as cpu shares) for the global zone without having to 
write a script to set them on boot. It doesn't look particularly hard but it is 
one more thing to maintain that really should be handled by the OS.

I also like the idea of activating FSS if the zone.cpu-shares parameter is set. 
Given that activating FSS requires a reboot of the global zone, you should add 
a check to see if FSS is already active and if it is not, put out a warning 
message indicating that a reboot of the global is required to make FSS active. 
For that matter, there should be a warning message on zone boot that FSS is not 
active and the configured zone.cpu-shares value will be ignored. 

Phil

Phil Freund
Lead Systems and Storage Administrator
Kichler Lighting
 
 
This message posted from opensolaris.org
___
zones-discuss mailing list
zones-discuss@opensolaris.org