Changes between Version 26 and Version 27 of UsersGuide


Ignore:
Timestamp:
Oct 24, 2012 6:12:58 PM (12 years ago)
Author:
Ted Faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UsersGuide

    v26 v27  
    367367=== More Sophisticated Packing: Multiple Passes ===
    368368
    369 The previous examples have all treated packing containers onto physical machines as a single step process with a single parameter - the packing factor.  In fact, we can divide containers into sets and pack each set independently using different parameters.  For example in an experiment with many containers dedicated only to forwarding packets and a few modeling servers, we could create two sets and pack the forwarders tightly (a high packing factor) and the servers loosely.
     369The previous examples have all treated packing containers onto physical machines as a single step process with a single parameter - the packing factor.  In fact, we can divide containers into sets and pack each set independently using different parameters.  For example in an experiment with many containers dedicated only to forwarding packets and a few to  modeling servers, we could create two sets and pack the forwarders tightly (a high packing factor) and the servers loosely.
    370370
    371371In return for the greater control on packing, there is a price.  When a set of containers is packed, the containers system takes into account both the nodes to be packed and their interconnections.  When subsets of containers are packed, the system cannot consider the interconnections between subsets.  In some cases, the packing of subsets can lead to a DETER experiment that cannot be created successfully.  This danger is mitigated by the fact that containers that are packed together are often related in ways that limit the number of connections between that set and another.
     
    452452These parameters result in this packing, which fits in fewer nodes, but has the slight imbalances of splitting {{{lan-1}}} into 9 and 11 containers and {{{lan-2}}} into 4,5,and 6 container partitions.  Again, this asymmetry is an attempt to consider the internode networking costs.
    453453
    454 [[Image(example6.2-smaller)]]
     454[[Image(example6.2-smaller.png)]]
    455455
    456456If the packing constraints are exact - 11 containers on {{{lan-1}}} is unacceptable - a second choice is to use the {{{--nodes-only}}} option.  This sets the cost of each arc in the graph to 0.  Metis ignores such arcs altogether, so the partitions are completely even.  This may cause trouble in more complex network topologies.
     
    466466is
    467467
    468 
     468[[Image(example6.3-smaller.png)]]
     469
     470which has symmetric partitions.
     471
     472The {{{--pass-pack}}} option is a per-pass generalization of the {{{--packing}}} option.  The options that can be specified per-pass are:
     473
     474|| __Single-pass__ || __Per-Pass__ || __Per-Pass Format__ || __Per-Pass Example__ ||
     475|| {{{--packing}}} || {{{--pass-pack}}} || ''pass'':''packing''  (comma-separated) || --pass-pack 0:1,1:20,2:11,3:6 ||
     476|| {{{--pnode-types}}} || {{{--pass-pnodes}}} || ''pass'':''pnode''[,''pnode''...] (semicolon separated) || --pass-pnodes 0:MicroCloud;1:bpc2133,pc2133 ||
     477|| {{{--nodes-only}}} || {{{--pass-nodes-only}}} || ''pass'' (comma-separated) || --pass-nodes-only 1,3,5 ||
     478
     479The single-pass version sets a default so this invocation on [attachment:example6.tcl our 4 pass topology]:
     480
     481{{{
     482users:~$ /share/containers/containerize.py --packing 5 --pass-pack 0:1,1:20 DeterTest example6 ~/example6.tcl
     483}}}
     484
     485will pack pass 0 with a factor of 1, pass 1 with a factor of 20 and passes 2 and 3 with factor 5.
     486
     487Similarly:
     488
     489{{{
     490users:~$ /share/containers/containerize.py --pass-pack 0:1,1:20,2:10,3:5 --pass-pnodes '0:pc2133,bpc2133;1:MicroCloud' DeterTest example6 ~/example6.tcl
     491}}}
     492
     493will allocate either bpc2133 or pc2133 nodes to containers assigned by pass 0 and Microcloud physical nodes to the containers partitioned in pass 1.  The rest will be allocated as the [ReferenceGuide#SiteConfigurationFile site configuration] specifies.  The single quotes around the {{{--pass-pnodes}}} option protects the semi-colon from the shell.  Another choice is to specify the command as:
     494
     495{{{
     496users:~$ /share/containers/containerize.py --pass-pack 0:1,1:20,2:10,3:5 --pass-pnodes 0:pc2133,bpc2133 --pass-pnodes 1:MicroCloud DeterTest example6 ~/example6.tcl
     497}}}
     498
     499That formulation avoids the quotes by avoiding the semicolon.  All the per-pass options may be specified multiple times on the command line.
     500
     501These per-pass variables and user-specified pass specifications give users fine grained control over the paritioning process, even if they do not want to do the partitioning themselves.
     502
     503If no {{{containers:PartitionPass}}} attributes are specified in the topology, and no {{{containers:Partition}}} attributes are specified either, {{{containerize.py}} carries out at most two passes.  Pass 0 paritions all openvz containers and pass 1 partitions all qemu and process containers.
    469504
    470505== Further Reading ==