You are viewing a plain text version of this content. The canonical link for it is here.
Posted to tashi-commits@incubator.apache.org by mr...@apache.org on 2009/06/12 17:05:52 UTC

svn commit: r784196 [2/2] - in /incubator/tashi/site: docs/ xdocs/ xdocs/stylesheets/

Added: incubator/tashi/site/xdocs/documentation-single.xml
URL: http://svn.apache.org/viewvc/incubator/tashi/site/xdocs/documentation-single.xml?rev=784196&view=auto
==============================================================================
--- incubator/tashi/site/xdocs/documentation-single.xml (added)
+++ incubator/tashi/site/xdocs/documentation-single.xml Fri Jun 12 17:05:51 2009
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.    
+-->
+
+<document>
+
+  <properties>
+    <title>Documentation</title>
+  </properties>
+
+<body>
+
+<section name="Setting up Tashi on a single test machine">
+
+<p>There are several dependencies you need to setup Tashi, they include:</p>
+<ul>
+<li>Apache Thrift</li>
+<li>Xen or Qemu/KVM</li>
+<li>Python 2.4 or greater</li>
+<li>MySQL or sqlite if you wish to use them as the data backend</li>
+</ul>
+<p><i>Please note that due to changes made in Thrift recently, you may need to get an older version of the software.  The version that Tashi was developed against was from April 11th, 2008.</i></p>
+<p>Once These are setup and configured, check out the Tashi code:</p>
+<div class="lit"><pre>
+svn co http://svn.apache.org/repos/asf/incubator/tashi/trunk ./tashi
+</pre></div>
+<p>Then, run make:</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ make
+Building tashi.services...
+Generating Python code for 'services.thrift'...
+Copying generated code to 'tashi.services' package...
+Generatign Python code for 'messagingthrift'...
+Copying generated code to 'tashi.messaging.messagingthrift' package...
+Symlinking in clustermanager...
+Symlinking in nodemanager...
+Symlinking in tashi-client...
+Building nmd...
+Done
+</pre></div>
+<p>Now, you may need to need to modify some configuration parameters to make Tashi work in your environment.  If you place a file called Tashi.cfg in etc, it will override settings in TashiDefaults.cfg.  Some pertinent options:</p>
+<ul>
+<li>[ClusterManager]data - This specifies whether you use a pickled data file or the SQL backend</li>
+<li>[NodeManager]VmControl - This specifies which VMM backend you use</li>
+</ul>
+<p>If you haven't installed Tashi in /usr/lib/python2.5/site-packages/ or the equivalent folder, you must set the PYTHONPATH environment variable so that python can find the Tashi code:</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ export PYTHONPATH=`pwd`/src
+</pre></div>
+<p>Start the cluster manager (CM) first:</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ DEBUG=1 ./bin/clustermanager.py 
+2009-02-19 11:19:04,276 [./bin/clustermanager.py:INFO] Using configuration file(s) ['./etc/TashiDefaults.cfg']
+2009-02-19 11:19:04,276 [./bin/clustermanager.py:INFO] Starting cluster manager
+
+
+In [1]: 
+</pre></div>
+<p>I recommend running in debug mode if you haven't got it up and running yet.</p>
+<p>Then, add your first host to Tashi.  If your box's hostname was "mryan3-d4" and you used the pickled data format, you'd do:</p>
+<div class="lit"><pre>
+In [1]: from tashi.services.ttypes import Host
+
+In [2]: from tashi.services.ttypes import HostState
+
+In [3]: data.hosts[1] = Host(d={'id':1,'name':'mryan3-d4','state': HostState.Normal,'up':False})
+
+In [4]: data.save()
+
+In [5]:
+</pre></div>
+<p><i>If you get an error about "'unexpected keyword argument 'd'", you'll have to downgrade to an older version of Thrift.  As noted above, the version that Tashi was built against was from April 11th, 2008, but there are many versions that will work with Tashi.</i></p>
+<p>If you were using MySQL (or sqlite), you'd have to populate a row in the database with columns named "id", "name", "state", and "up".</p>
+<p>Then quit the CM and restart it to force the creation of host locks.</p>
+<p>Add a user that matches both your user name and id:</p>
+<div class="lit"><pre>
+In [1]: from tashi.services.ttypes import User
+
+In [2]: data.users[13090] = User(d={'id':13090,'name':'mryan3'})
+
+In [3]: data.save()
+</pre></div>
+<p>Now, you can start the node manager (NM).  You may have to run this as root if you have trouble gettings VMs to start as a normal user:</p>
+<div class="lit"><pre>
+root@mryan3-d4:/home/mryan3/scratch/tashi$ DEBUG=1 ./bin/nodemanager.py 
+2009-02-19 11:25:50,470 [__main__:INFO] Using configuration file(s) ['./etc/TashiDefaults.cfg']
+2009-02-19 11:25:50,475 [./src/tashi/nodemanager/vmcontrol/qemu.pyc:INFO] No vm information found in /var/tmp/VmControlQemu/
+
+
+In [1]: 
+</pre></div>
+<p>After a few seconds, you should see no error messages on the NM and you should be able to run "tashi-client getHosts":</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ ./bin/tashi-client.py getHosts
+ id name      decayed up   state  version                      memory cores
+---------------------------------------------------------------------------
+ 1  mryan3-d4 False   True Normal Wed Feb  4 15:20:15 EST 2009 3894   4    
+</pre></div>
+<p>Now that those are running, you can start the scheduler:</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ python ./src/tashi/agents/examplepolicy.py 
+
+</pre></div>
+<p>Make sure an image is placed in /var/tmp/images (or wherever you configured it to be):</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ ls -la /var/tmp/images/
+total 2385696
+drwxr-xr-x 2 mryan3 mryan3       4096 2009-02-19 12:21 .
+drwxrwxrwt 7 root   root         4096 2009-02-19 12:20 ..
+-rw-r--r-- 1 mryan3 mryan3 2440556544 2009-02-19 12:22 CentOS-5.2-i386.qcow2
+</pre></div>
+<p>And finally, you can use the client to try to create a VM:</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ ./bin/tashi-client.py createVm --name foobar --disks CentOS-5.2-i386.qcow2
+{
+    hostObj: None
+    hostId: None
+    name: foobar
+    typeObj: {'cores': 1, 'memory': 128, 'id': 1, 'name': 'foo'}
+    userId: 13090
+    decayed: False
+    disks: [
+        {'uri': 'CentOS-5.2-i386.qcow2', 'persistent': False}
+    ]
+    vmId: None
+    userObj: None
+    state: Pending
+    nics: [
+        {'mac': '52:54:00:e5:1d:ca', 'network': 1}
+    ]
+    type: 1
+    id: 1
+    hints: {}
+}
+</pre></div>
+<p>The VM will use a TAP device on your system and will be accessible over it.  If you statically configure the guest for this test, that will work.  It is also possible to setup a bridge and run a DHCP server on the host to provide IP addresses to the guest.  In either case, you should be able to log into your guest shortly after that command completes.</p>
+<div class="lit"><pre>
+mryan3@mryan3-d4:~/scratch/tashi$ ssh root@192.168.127.223
+The authenticity of host '192.168.127.223 (192.168.127.223)' can't be established.
+RSA key fingerprint is 3d:4b:43:25:05:d8:89:23:ec:9b:6c:1b:42:59:e7:70.
+Are you sure you want to continue connecting (yes/no)? yes
+Warning: Permanently added '192.168.127.223' (RSA) to the list of known hosts.
+root@192.168.127.223's password: 
+Last login: Thu Jan  8 10:25:10 2009
+[root@localhost ~]# 
+</pre></div>
+
+</section>
+
+</body>
+</document>

Added: incubator/tashi/site/xdocs/documentation-xenpv.xml
URL: http://svn.apache.org/viewvc/incubator/tashi/site/xdocs/documentation-xenpv.xml?rev=784196&view=auto
==============================================================================
--- incubator/tashi/site/xdocs/documentation-xenpv.xml (added)
+++ incubator/tashi/site/xdocs/documentation-xenpv.xml Fri Jun 12 17:05:51 2009
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.    
+-->
+
+<document>
+
+  <properties>
+    <title>Documentation</title>
+  </properties>
+
+<body>
+
+<section name="The XenPV backend of Tashi">
+
+<p>
+UNDER CONSTRUCTION
+</p>
+
+</section>
+
+</body>
+</document>

Modified: incubator/tashi/site/xdocs/documentation.xml
URL: http://svn.apache.org/viewvc/incubator/tashi/site/xdocs/documentation.xml?rev=784196&r1=784195&r2=784196&view=diff
==============================================================================
--- incubator/tashi/site/xdocs/documentation.xml (original)
+++ incubator/tashi/site/xdocs/documentation.xml Fri Jun 12 17:05:51 2009
@@ -28,144 +28,20 @@
 
 <section name="Documentation">
 
-<h3>Setting up Tashi on a single test machine</h3>
-
-<p>There are several dependencies you need to setup Tashi, they include:</p>
-<ul>
-<li>Apache Thrift</li>
-<li>Xen or Qemu/KVM</li>
-<li>Python 2.4 or greater</li>
-<li>MySQL or sqlite if you wish to use them as the data backend</li>
-</ul>
-<p><i>Please note that due to changes made in Thrift recently, you may need to get an older version of the software.  The version that Tashi was developed against was from April 11th, 2008.</i></p>
-<p>Once These are setup and configured, check out the Tashi code:</p>
-<div class="lit"><pre>
-svn co http://svn.apache.org/repos/asf/incubator/tashi/trunk ./tashi
-</pre></div>
-<p>Then, run make:</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ make
-Building tashi.services...
-Generating Python code for 'services.thrift'...
-Copying generated code to 'tashi.services' package...
-Generatign Python code for 'messagingthrift'...
-Copying generated code to 'tashi.messaging.messagingthrift' package...
-Symlinking in clustermanager...
-Symlinking in nodemanager...
-Symlinking in tashi-client...
-Building nmd...
-Done
-</pre></div>
-<p>Now, you may need to need to modify some configuration parameters to make Tashi work in your environment.  If you place a file called Tashi.cfg in etc, it will override settings in TashiDefaults.cfg.  Some pertinent options:</p>
-<ul>
-<li>[ClusterManager]data - This specifies whether you use a pickled data file or the SQL backend</li>
-<li>[NodeManager]VmControl - This specifies which VMM backend you use</li>
-</ul>
-<p>If you haven't installed Tashi in /usr/lib/python2.5/site-packages/ or the equivalent folder, you must set the PYTHONPATH environment variable so that python can find the Tashi code:</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ export PYTHONPATH=`pwd`/src
-</pre></div>
-<p>Start the cluster manager (CM) first:</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ DEBUG=1 ./bin/clustermanager.py 
-2009-02-19 11:19:04,276 [./bin/clustermanager.py:INFO] Using configuration file(s) ['./etc/TashiDefaults.cfg']
-2009-02-19 11:19:04,276 [./bin/clustermanager.py:INFO] Starting cluster manager
-
-
-In [1]: 
-</pre></div>
-<p>I recommend running in debug mode if you haven't got it up and running yet.</p>
-<p>Then, add your first host to Tashi.  If your box's hostname was "mryan3-d4" and you used the pickled data format, you'd do:</p>
-<div class="lit"><pre>
-In [1]: from tashi.services.ttypes import Host
-
-In [2]: from tashi.services.ttypes import HostState
-
-In [3]: data.hosts[1] = Host(d={'id':1,'name':'mryan3-d4','state': HostState.Normal,'up':False})
-
-In [4]: data.save()
-
-In [5]:
-</pre></div>
-<p><i>If you get an error about "'unexpected keyword argument 'd'", you'll have to downgrade to an older version of Thrift.  As noted above, the version that Tashi was built against was from April 11th, 2008, but there are many versions that will work with Tashi.</i></p>
-<p>If you were using MySQL (or sqlite), you'd have to populate a row in the database with columns named "id", "name", "state", and "up".</p>
-<p>Then quit the CM and restart it to force the creation of host locks.</p>
-<p>Add a user that matches both your user name and id:</p>
-<div class="lit"><pre>
-In [1]: from tashi.services.ttypes import User
-
-In [2]: data.users[13090] = User(d={'id':13090,'name':'mryan3'})
-
-In [3]: data.save()
-</pre></div>
-<p>Now, you can start the node manager (NM).  You may have to run this as root if you have trouble gettings VMs to start as a normal user:</p>
-<div class="lit"><pre>
-root@mryan3-d4:/home/mryan3/scratch/tashi$ DEBUG=1 ./bin/nodemanager.py 
-2009-02-19 11:25:50,470 [__main__:INFO] Using configuration file(s) ['./etc/TashiDefaults.cfg']
-2009-02-19 11:25:50,475 [./src/tashi/nodemanager/vmcontrol/qemu.pyc:INFO] No vm information found in /var/tmp/VmControlQemu/
-
-
-In [1]: 
-</pre></div>
-<p>After a few seconds, you should see no error messages on the NM and you should be able to run "tashi-client getHosts":</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ ./bin/tashi-client.py getHosts
- id name      decayed up   state  version                      memory cores
----------------------------------------------------------------------------
- 1  mryan3-d4 False   True Normal Wed Feb  4 15:20:15 EST 2009 3894   4    
-</pre></div>
-<p>Now that those are running, you can start the scheduler:</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ python ./src/tashi/agents/examplepolicy.py 
-
-</pre></div>
-<p>Make sure an image is placed in /var/tmp/images (or wherever you configured it to be):</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ ls -la /var/tmp/images/
-total 2385696
-drwxr-xr-x 2 mryan3 mryan3       4096 2009-02-19 12:21 .
-drwxrwxrwt 7 root   root         4096 2009-02-19 12:20 ..
--rw-r--r-- 1 mryan3 mryan3 2440556544 2009-02-19 12:22 CentOS-5.2-i386.qcow2
-</pre></div>
-<p>And finally, you can use the client to try to create a VM:</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ ./bin/tashi-client.py createVm --name foobar --disks CentOS-5.2-i386.qcow2
-{
-    hostObj: None
-    hostId: None
-    name: foobar
-    typeObj: {'cores': 1, 'memory': 128, 'id': 1, 'name': 'foo'}
-    userId: 13090
-    decayed: False
-    disks: [
-        {'uri': 'CentOS-5.2-i386.qcow2', 'persistent': False}
-    ]
-    vmId: None
-    userObj: None
-    state: Pending
-    nics: [
-        {'mac': '52:54:00:e5:1d:ca', 'network': 1}
-    ]
-    type: 1
-    id: 1
-    hints: {}
-}
-</pre></div>
-<p>The VM will use a TAP device on your system and will be accessible over it.  If you statically configure the guest for this test, that will work.  It is also possible to setup a bridge and run a DHCP server on the host to provide IP addresses to the guest.  In either case, you should be able to log into your guest shortly after that command completes.</p>
-<div class="lit"><pre>
-mryan3@mryan3-d4:~/scratch/tashi$ ssh root@192.168.127.223
-The authenticity of host '192.168.127.223 (192.168.127.223)' can't be established.
-RSA key fingerprint is 3d:4b:43:25:05:d8:89:23:ec:9b:6c:1b:42:59:e7:70.
-Are you sure you want to continue connecting (yes/no)? yes
-Warning: Permanently added '192.168.127.223' (RSA) to the list of known hosts.
-root@192.168.127.223's password: 
-Last login: Thu Jan  8 10:25:10 2009
-[root@localhost ~]# 
-</pre></div>
-<h3>Setting up Tashi on a cluster</h3>
-
 <p>
-UNDER CONSTRUCTION
+<a href="documentation-single.html">Setting up Tashi on a single test machine</a>
+</p>
+<p>
+<a href="documentation-cluster.html">Setting up Tashi on a cluster</a>
+</p>
+<p>
+<a href="documentation-qemu.html">The Qemu backend of Tashi</a>
+</p>
+<p>
+<a href="documentation-xenpv.html">The XenPV backend of Tashi</a>
+</p>
+<p>
+<a href="documentation-options.html">Configuration options for Tashi</a>
 </p>
 
 </section>

Modified: incubator/tashi/site/xdocs/faq.xml
URL: http://svn.apache.org/viewvc/incubator/tashi/site/xdocs/faq.xml?rev=784196&r1=784195&r2=784196&view=diff
==============================================================================
--- incubator/tashi/site/xdocs/faq.xml (original)
+++ incubator/tashi/site/xdocs/faq.xml Fri Jun 12 17:05:51 2009
@@ -29,7 +29,15 @@
 <section name="FAQ">
 
 <p>
-UNDER CONSTRUCTION
+<b>Q: Why does Tashi complain about "unexpected keyword argument 'd'"?</b>
+<br/>
+A: Tashi was originally developed against an older version of Thrift.  This is mentioned on the <a href="documentation.html">documentation</a> page.  You will have to downgrade to an older version of Thrift.
+</p>
+
+<p>
+<b>Q: Why does Tashi have the error message "Failed to exec gmetric, disabling"</b>
+<br/>
+A: This happens because Tashi was unable to find gmetric on your system.  gmetric is a part of Ganglia.  It is not necessary to use Ganglia in order to use Tashi, but Tashi has the ability to output per-VM statistics and log messages a Ganglia metrics.  If you don't care about either of those features, you can safely ignore this message -- or turn of the use of the GangliaPublisher class in the config file.
 </p>
 
 </section>

Modified: incubator/tashi/site/xdocs/road_map.xml
URL: http://svn.apache.org/viewvc/incubator/tashi/site/xdocs/road_map.xml?rev=784196&r1=784195&r2=784196&view=diff
==============================================================================
--- incubator/tashi/site/xdocs/road_map.xml (original)
+++ incubator/tashi/site/xdocs/road_map.xml Fri Jun 12 17:05:51 2009
@@ -28,8 +28,23 @@
 
 <section name="Road Map">
 
+<h3>Before an initial release</h3>
+
+<p>
+<ul>
+<li>Replace Thrift with something that provides authentication and encryption (at least for the core communications in the system)</li>
+<li>Provide ACLs for disk images</li>
+<li>Demonstrate the ability to run HDFS on a set of hosts and the Hadoop JobTrackers in virtual machines while maintaining data-local performance</li>
+<li>Integrate with PRS</li>
+</ul>
+</p>
+
+<h3>Long-term</h3>
+
 <p>
-UNDER CONSTRUCTION
+<ul>
+<li>Add support for atleast one slice-based virtual machine manager</li>
+</ul>
 </p>
 
 </section>

Modified: incubator/tashi/site/xdocs/stylesheets/site.vsl
URL: http://svn.apache.org/viewvc/incubator/tashi/site/xdocs/stylesheets/site.vsl?rev=784196&r1=784195&r2=784196&view=diff
==============================================================================
--- incubator/tashi/site/xdocs/stylesheets/site.vsl (original)
+++ incubator/tashi/site/xdocs/stylesheets/site.vsl Fri Jun 12 17:05:51 2009
@@ -42,6 +42,24 @@
 	padding: 1px 1px 1px 1px;
 	border-style: outset outset outset outset;
 }
+table.options {
+	border-width: 0px 0px 0px 0px;
+	border-spacing: 0px;
+	border-collapse: collapse;
+	width: 100%;
+	font-size: 70%;
+}
+table.options th {
+	border-width: 1px 1px 1px 1px;
+	padding: 1px 1px 1px 1px;
+	border-style: outset outset outset outset;
+}
+table.options td {
+	border-width: 1px 1px 1px 1px;
+	padding: 1px 1px 1px 1px;
+	border-style: outset outset outset outset;
+	vertical-align: top;
+}
 .lit {
 	font-family: courier;
 	font-size: 70%;