import repository from arizona
[raven.git] / webpage / arch.html
1 <html>
2 <head>
3 <title> Stork Project </title>
4 <LINK href="stork.css" rel="stylesheet" type="text/css">
5
6 </head>
7
8 <body>
9
10
11 <div class="display" align="center">
12         <table border="0">
13         <tr>
14                 <td width="170" valign="top">
15
16                                 <br/>
17                                 <table cellpadding="3" width="170" id="links" class="links">
18                                         <tr>
19                                                 <td align="right">
20
21                                                         <ul class="links">
22
23                                                                 <a href = "index.html"><h3>Stork</h3></a>
24                                                                 <li class="links"><a href="tutmain.html">Stork Tutorial</a></li>
25
26                                                                 <li class="links"><a href="advanced.html">Advanced Usage</a></li>
27                                                                 <li class="links"><a href="arch.html">Stork Architecture</a></li>
28                                                                 <li class="links"><a href="filelist.html">Stork File List</a></li>
29                                                                 <li class="links"><a href="about.html">About Us</a></li>
30                                                                 <li class="links"><a href="apps.html">Related Links</a></li>
31                                                                 <li class="links"><a href="contact.html">Contact Stork</a></li>
32                                                                 <h4>Links</h4>
33                                                                 <li class="links"><a href="http://appmanager.berkeley.intel-research.net/plcontrol/apps.php?appid=1029">
34                                                                 Slice Status</a></li>
35                                                                 <li class="links"><a href="https://stork-repository.cs.arizona.edu">Stork Repository</a></li>
36                                                         </ul>
37
38                                                  </td>
39                                         </tr>
40                                 </table>
41                                 <br/>
42                 </td>
43
44                 <td valign="top">
45
46                 <table class="info" cellpadding="0" width="700" >
47                 <tr  height="75"><td colspan="3"><img style="margin-left: -0px;" src="images/stork-header.png" alt="stork logo"/></td></tr>
48                 <tr  bgcolor="#444444" class="headerrow" width="100%" height="2">
49
50                         <th colspan="2"> Stork Architecture</th>
51
52                 </tr>
53                 <tr valign="top" align="left">
54
55                         <td>
56                                 <table cellpadding="8" id="content" class="content">
57
58                                         <tr>
59                                                 <td>
60                                                         <h1> Stork Architecture</h1>
61
62                                                         The Stork architecture, in essence, depends on three tiers. The
63                                                         <b>repository</b> is Stork's central package warehouse. All packages available
64                                                         for download through the Stork system need to be first uploaded to the repository.
65                                                         The repository is located at <a href="https://stork-repository.cs.arizona.edu">
66                                                         https://stork-repository.cs.arizona.edu</a>.
67                                                         From this site, you can upload packages, and you can also see a list of the packages
68                                                         that others have uploaded. Note that this is also the repository that holds config
69                                                         files, pacman files and keyfiles. The following diagrams demonstrate that Stork's repository system works similar to other
70                                                         repositories.
71                                                         <p><img src="images/arch/rep1.JPG"></img>
72                                                         <br>Stork's architecture consists, on the basic level, of multiple nodes (each of which may have many
73 virtual machines) in contact with a central package repository.
74                                                         <br>
75                                                         <p><img src="images/arch/rep2.JPG"></img>
76                                                         <br>When a virtual machine requests a package for installation, the request goes to the nest.   If the nest has not already downloaded the file, it retrieves it from the repository. The TPFile is checked
77                                                         to insure that the package is trusted.
78                                                         <br>
79                                                         <p><img src="images/arch/rep3.JPG"></img>
80                                                         <br>Finally, the repository delivers the package to the nest, which unpacks the package and shares it securely with the virtual machine.
81                                                         <br>
82                                                         <p> The <b>nest</b> is a virtual machine on each node that Stork uses to manage package downloads and installation.
83                                                         Normally, to install packages on multiple virtual machines, each virtual machine would need to separately
84                                                         download and install the packages <B>even when these virtual machines are on the same physical node</B>. For small, trivial packages, this may be adequate,
85                                                         but for large, complex packages over a large number of virtual machines, this can be a nuisance.
86                                                         The nest solves this problem by requesting and downloading the package a single time.
87                                                         The nest then manages sharing between virtual machines, drastically decreasing the time for
88                                                         installation of packages. The following shows an example of how Stork manages file sharing.
89                                                         <p><img src="images/arch/share1.jpg"></img>
90                                                         <br>A Planet-Lab node, when using stork, is made up of multiple virtual machines (called slices) and a central nest, through which
91                                                         all package requests go through. In this case, slice 1 makes a request for a package that has never been
92                                                         installed on the node. The nest processes the query and makes a request to the Stork repository.
93                                                         <br>
94                                                         <p><img src="images/arch/share2.jpg"></img>
95                                                         <br>The package is delivered from the repository to the nest and the nest securely shares the package with the requesting slice.
96                                                         <br>
97                                                         <p><img src="images/arch/share3.jpg"></img>
98                                                         <br>Afterward, slice 2 requests the same package. The nest sees that the same package has already been downloaded and securely shares the same files with slice 2 as well.
99                                                         <br>
100                                                         <p><img src="images/arch/share4.jpg"></img>
101                                                         <br>
102                                                         <p> The <b>nodes</b> can either be managed separately, or be organized into
103                                                         groups by the use of <a href="tutpac.html">Pacman</a>. This allows you to
104                                                         have greater power over which nodes recieve which packages. A simple example can be seen in the following:
105                                                         <p><img src="images/arch/group1.jpg"></img>
106                                                         <br>In this figure, three separate nodes request a package installation, and the package is installed
107                                                         on each node.   Typically either the administrator would need to manually configure each node or
108                                                         maintain a separate repository branch for each type of node that needs a separate configuration.
109                                                         <br>
110                                                         <p><img src="images/arch/group2.jpg"></img>
111                                                         <br>In this figure, we choose to group the first two nodes together using pacman. We can, as before, request the package
112                                                         to be installed individually from each node. However, to streamline the process, we can request that the package
113                                                         be installed on the group. Each node in the group will recieve the package just as before; however, installing
114                                                         the package this way requires less manual work. It is easy to see that, if the package needs to be installed
115                                                         on 100 different nodes, it is much more efficient to use pacman grouping.
116
117                                                         <center><a href = "index.html">Home</a>     <a href = "#top">Top</a></center>
118
119                                                 </td>
120
121                                         </tr>
122                                 </table>
123                         </td>
124                 </tr>
125
126        </table>
127        </td>
128
129      </tr>
130      <tr>
131         <td></td>
132
133         <td>
134                 <a href="http://www.planet-lab.org"><img style="border: 0px; border-style: none;" src="images/powered_by_pl_grey.png" alt="powered by planetlab"></a>
135
136                                         <a href="http://www.cs.arizona.edu"><img style="position:relative; left: 20px; border: 0px; border-style: none;" src="images/template_logo_small_grey.png" alt="University of Arizona, Computer Science logo"></a>
137
138
139
140
141
142         </td>
143      </tr>
144
145 </table>
146
147 </div>
148
149
150 <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
151 </script>
152 <script type="text/javascript">
153 _uacct = "UA-1868232-1";
154 urchinTracker();
155 </script>
156 </body>
157 </html>
158
159