2008-01-02 00:20:07 +00:00
|
|
|
<!DOCtype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
2010-02-01 18:18:09 +00:00
|
|
|
<title>Running Tahoe-LAFS</title>
|
2008-01-02 00:20:07 +00:00
|
|
|
<link rev="made" class="mailto" href="mailto:zooko[at]zooko[dot]com">
|
2010-02-01 18:18:09 +00:00
|
|
|
<meta name="description" content="how to run Tahoe-LAFS">
|
2008-01-02 00:20:07 +00:00
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
2010-02-01 18:18:09 +00:00
|
|
|
<meta name="keywords" content="tahoe-lafs secure decentralized filesystem operation">
|
2008-01-02 00:20:07 +00:00
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
2010-02-01 18:18:09 +00:00
|
|
|
<h1>How To Start Tahoe-LAFS</h1>
|
2008-01-02 00:20:07 +00:00
|
|
|
|
2010-06-16 14:02:27 +00:00
|
|
|
<p>This is how to run a Tahoe-LAFS client or a complete Tahoe-LAFS grid. First you
|
|
|
|
have to install the Tahoe-LAFS software, as documented in <a
|
2008-01-02 04:50:46 +00:00
|
|
|
href="install.html">install.html</a>.</p>
|
|
|
|
|
2010-06-16 14:02:27 +00:00
|
|
|
<p>The <cite>Tahoe-LAFS</cite> executable in the <code>bin</code> directory is
|
2009-06-21 17:50:05 +00:00
|
|
|
used to create, start, and stop nodes. Each node lives in a separate base
|
2009-08-09 20:14:16 +00:00
|
|
|
directory, in which there is a configuration file named <code>tahoe.cfg</code>. Nodes
|
|
|
|
read and write files within this base directory.</p>
|
2008-01-02 04:50:46 +00:00
|
|
|
|
2009-08-09 20:14:16 +00:00
|
|
|
<p>A grid consists of a set of <em>nodes</em>, computers running
|
2010-06-16 14:02:27 +00:00
|
|
|
the Tahoe-LAFS code, each of these nodes functions as in one of the
|
2009-08-09 20:14:16 +00:00
|
|
|
following roles:</p>
|
|
|
|
|
|
|
|
<dl>
|
|
|
|
<dt>Storage Nodes (or Server Nodes)</dt><dd>are the computers
|
|
|
|
that actually store the data in a grid.</dd>
|
|
|
|
<dt>Client Nodes</dt><dd>talk to the storage nodes to put files
|
|
|
|
onto the grid and get them back off again.</dd>
|
|
|
|
<dt>Introducer Node</dt><dd>is responsible for getting everybody
|
|
|
|
talking to each other.</dd>
|
|
|
|
</dl>
|
|
|
|
|
|
|
|
<p>If you're getting started we recommend you try connecting to
|
2010-06-16 14:02:27 +00:00
|
|
|
the <a href="http://allmydata.org/trac/Tahoe-LAFS/wiki/TestGrid">the
|
2009-08-09 20:14:16 +00:00
|
|
|
public test grid</a> as you only need to create a client node.
|
|
|
|
When you want to create your own grid you'll need to create the
|
|
|
|
introducer and an initial storage nodes.</p>
|
2009-06-21 17:50:05 +00:00
|
|
|
|
2009-08-09 20:14:16 +00:00
|
|
|
<p>To construct a client node, run
|
2010-06-16 14:02:27 +00:00
|
|
|
"<code><strong>path-to-the-tahoe-bin-directory</strong>/Tahoe-LAFS
|
2009-08-09 20:14:16 +00:00
|
|
|
create-client</code>", which will create <code>~/.tahoe</code> to be the
|
|
|
|
node's base directory. Acquire a copy of the <code>introducer.furl</code>
|
2010-01-12 04:44:09 +00:00
|
|
|
from the introducer and put it into this directory, then use
|
2010-06-16 14:02:27 +00:00
|
|
|
"<code><strong>path-to-the-tahoe-bin-directory</strong>/Tahoe-LAFS
|
2010-01-12 04:44:09 +00:00
|
|
|
run</code>". After that, the node should be off and running. The first
|
2009-06-21 17:50:05 +00:00
|
|
|
thing it will do is connect to the introducer and get itself connected to
|
2009-08-09 20:14:16 +00:00
|
|
|
all other nodes on the grid. By default, a node will serve as a storage
|
|
|
|
node, meaning that it offers its disk space to other nodes. To configure
|
2009-06-21 17:50:05 +00:00
|
|
|
other behavior, see <a href="configuration.txt">configuration.txt</a>.</p>
|
|
|
|
|
2009-08-09 20:14:16 +00:00
|
|
|
|
|
|
|
<p>To construct an introducer, create a new base directory for it (the name
|
|
|
|
of the directory is up to you), cd into it, and run
|
2010-06-16 14:02:27 +00:00
|
|
|
"<code><strong>path-to-the-tahoe-bin-directory</strong>/Tahoe-LAFS
|
2010-01-12 04:44:09 +00:00
|
|
|
create-introducer .</code>". Now run the introducer using
|
2010-06-16 14:02:27 +00:00
|
|
|
"<code>Tahoe-LAFS start .</code>". After it starts, it will write a file named
|
2009-08-09 20:14:16 +00:00
|
|
|
<code>introducer.furl</code> in that base directory. This file contains the
|
|
|
|
URL the other nodes must use in order to connect to this introducer.</p>
|
2009-06-21 17:50:05 +00:00
|
|
|
|
2010-01-12 04:44:09 +00:00
|
|
|
|
2010-06-16 14:02:27 +00:00
|
|
|
<p>The "<code>Tahoe-LAFS run</code>" command above
|
2010-01-12 04:44:09 +00:00
|
|
|
will run the node in the foreground. On Unix, you can run it in the background
|
2010-06-16 14:02:27 +00:00
|
|
|
instead by using the "<code>Tahoe-LAFS start</code>" command.
|
|
|
|
To stop a node started in this way, use "<code>Tahoe-LAFS stop</code>".
|
|
|
|
<code>Tahoe-LAFS --help</code> gives a summary of all commands.</p>
|
2009-08-09 20:14:16 +00:00
|
|
|
|
|
|
|
|
|
|
|
<p>See <a href="configuration.txt">configuration.txt</a> for more
|
|
|
|
details about how to configure tahoe.</p>
|
|
|
|
|
|
|
|
|
|
|
|
<h2>A note about firewalls</h2>
|
|
|
|
|
2010-06-09 08:11:03 +00:00
|
|
|
<p>If your node is behind a firewall or NAT device and you want other
|
|
|
|
clients to connect to it then you'll need to <em>open a port</em> in your
|
2010-06-16 14:02:27 +00:00
|
|
|
firewall. To do that you'll need to know which port Tahoe-LAFS is listening on.
|
|
|
|
If you haven't already set a port number, Tahoe-LAFS picks a random port to
|
2010-06-09 08:11:03 +00:00
|
|
|
listen on and remembers this port number in the
|
2010-06-16 14:02:27 +00:00
|
|
|
<code>~/.tahoe/client.port</code> file. To tell Tahoe-LAFS to listen to a fixed
|
2010-06-09 08:11:03 +00:00
|
|
|
port, open the <code>~/.tahoe/tahoe.cfg</code> file in your favourite text
|
|
|
|
editor and changing the <code>tub.port</code> line to something like the
|
2009-08-09 20:14:16 +00:00
|
|
|
following:</p>
|
|
|
|
|
|
|
|
<pre>tub.port = 8098</pre>
|
|
|
|
|
2010-06-16 14:02:27 +00:00
|
|
|
<p>This tells Tahoe-LAFS to always listen on port 8098 of your
|
2009-08-09 20:14:16 +00:00
|
|
|
computer. The next issue is that your computer may be behind a
|
|
|
|
NATing router and isn't directly connected to the internet but
|
|
|
|
goes through a router to get out. If that's the case then you'll
|
2010-06-16 14:02:27 +00:00
|
|
|
need to set the <code>tub.location</code> option so that Tahoe-LAFS
|
2009-08-09 20:14:16 +00:00
|
|
|
tells the introducer where you're really listening:</p>
|
|
|
|
|
|
|
|
<pre>tub.location = myserver.mydomain.org:8098</pre>
|
|
|
|
|
|
|
|
<p>or probably more likely</p>
|
|
|
|
|
|
|
|
<pre>tub.location = 123.456.789.012:8098</pre>
|
|
|
|
|
|
|
|
<p>The <a href="configuration.txt">configuration.txt</a> file contains more details</p>
|
2008-01-02 04:50:46 +00:00
|
|
|
|
2010-06-16 14:02:27 +00:00
|
|
|
<h2>A note about small grids</h2>
|
|
|
|
|
|
|
|
<p>By default, Tahoe-LAFS ships with the configuration parameter
|
|
|
|
<code>shares.happy</code> set to 7. If you are using Tahoe-LAFS on a
|
|
|
|
grid with fewer than 7 storage nodes, this won't work well for you
|
|
|
|
-- none of your uploads will succeed. To fix this, see <a
|
|
|
|
href='configuration.txt'>configuration.txt</a> to learn how to set
|
|
|
|
<code>shares.happy</code> to a more suitable value for your
|
|
|
|
grid.</p>
|
|
|
|
|
2008-02-14 15:54:34 +00:00
|
|
|
<h2>Do Stuff With It</h2>
|
2008-01-08 17:32:41 +00:00
|
|
|
|
2009-06-21 17:50:05 +00:00
|
|
|
<p>Now you have a decentralized filesystem. See <a
|
|
|
|
href="using.html">using.html</a> for instructions about how to interact
|
|
|
|
with it.</p>
|
2008-01-02 04:50:46 +00:00
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
</html>
|