Changes between Version 9 and Version 10 of UsingContainers


Ignore:
Timestamp:
Oct 2, 2012 4:16:50 PM (12 years ago)
Author:
Ted Faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UsingContainers

    v9 v10  
    6060
    6161
    62 
    63 === OpenVZ-only and qemu-only auto-partitioned experiments ===
    64 
    65 You will need to specify a parameter called "packing". This parameter describes how many qemu virtual nodes will be embedded on each physical node. The host machines have four cores each, so for compute-bound tasks this value should not be higher than 4. For less CPU-intensive tasks we find a factor of 10 to provide adequate performance. This number can in theory be as high as 10 or 20 (perhaps higher).
    66 
    67 If you wish for some of your nodes to be realized as physical machines, you must use a TopDL file (not NS) and tag the nodes as physical. Add the attribute {{{benito:node_type = embedded_pnode}}} to any such nodes. See UsingShopdl for documentation on a tool to do this.
    68 
    69 Once you have determined the parameters described above, you may start an experiment by logging in to {{{users.isi.deterlab.net}}} and running these commands:
    70 
    71 {{{
    72 $ /share/containers/qemu_experiment.py <PID> <EID> <ns-or-topdl-file> <packing>
    73 }}}
    74 
    75 This will create an [http://openvz.org openvz-]based experiment if {{{--default-container=openvz}}} is given.
    76 
    77 === Mixed mode experiments ===
    78 
    79 Mixed mode experiments may only be specified using a TopDL file. Each node must be specially annotated to incdicate its embedding. This is done by specifying an attribute on the node called {{{partition}}}.
    80 
    81 The {{{partition}}} attribute specifies the physical node on which a qemu virtual node is realized. This value must be numeric, though there are no restrictions on what numbers are used.
    82 
    83 If a node ''lacks'' the {{{partition}}} attribute, it is assumed to be a physical node.
    84 
    85 You can use the {{{shopdl.py}}} tool in the {{{util}}} subdirectory of the tree in order to ease manipulation of your TopDL file. See UsingShopdl for more information.
    86 
    87 Once you have annotated your TopDL file, you may start an experiment by logging in to {{{users.isi.deterlab.net}}} and running these commands:
    88 
    89 {{{
    90 $ /share/containers/mixed_experiment.py <PID> <EID> <topdl-file>
    91 }}}
    92 
    9362=== Creation ===
    9463
    9564Upon successful creation, you will be presented with a URL for accessing your experiment via the web interface.
    9665
    97 It takes 1-2 minutes for DETER to create the experiment. The creation process has successfully completed once DETER reports "Status: swapped" on the Experiment Activity Log. (The actual output generated by running qemu_experiment.py is "Benito experiment PID/EID successfully created!")
     66It takes 1-2 minutes for DETER to create the experiment. The creation process has successfully completed once DETER reports "Status: swapped" on the Experiment Activity Log. (The actual output generated by running containerize.py is "Containerized experiment PID/EID successfully created!")
     67
     68=== Viewing the Experiment ===
     69
     70The DETER web interface shows the physical topology that a containerized experiment is embedded in.  This is of some use, but most experimenters want some way to see how their nodes are placed in the physical DETER computers.  The {{{container_image.py}} program can draw simple pictures of containerized experiments and show which physical nodes hold which virtual nodes.
     71
     72A common way to invoke {{{container_image.py}}} is:
     73
     74{{{
     75$ /share/containers/container_image.py --experiment DeterTest/faber-packem --out packem.png
     76}}}
     77
     78That will result in an image of the topology annotated with node names and IP addresses.  For example, this tcl file:
     79
     80{{{
     81source tb_compat.tcl
     82
     83set ns [new Simulator]
     84source tb_compat.tcl
     85
     86for { set i 0 } { $i < 10 } { incr i} {
     87    set n($i) [$ns node]
     88}
     89
     90set k 0
     91for { set i 1} { $i < 10 } { incr i } {
     92    set link($i) [ $ns duplex-link $n(0) $n($i) 100Mb 10 ms DropTail]
     93}
     94
     95
     96$ns rtproto Static
     97$ns run
     98}}}
     99
     100results in this image:
     101
    98102
    99103== Swapping ==