head	1.5;
access;
symbols;
locks; strict;
comment	@# @;


1.5
date	2001.08.03.20.29.19;	author dlr;	state Exp;
branches;
next	1.4;

1.4
date	2001.08.03.20.28.22;	author dlr;	state Exp;
branches;
next	1.3;

1.3
date	2001.08.03.20.14.51;	author dlr;	state Exp;
branches;
next	1.2;

1.2
date	2001.07.24.17.11.04;	author leonardr;	state Exp;
branches;
next	1.1;

1.1
date	2001.05.23.22.37.25;	author leonardr;	state Exp;
branches;
next	;


desc
@@


1.5
log
@Improved formatting of last commit.
@
text
@<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
 <head>
  <title>Clustering a Tigris Install</title>
  <!-- Changed by: Daniel L. Rall, 03-Aug-2001 -->
 </head>

<body>

<h1>Clustering a Tigris Install</h1>

<p>Leonard Richardson &lt;leonardr at collab dot net&gt;<br>
May 23, 2001<br>
<small>$Id: cluster.html,v 1.4 2001/08/03 20:28:22 dlr Exp $</small>

<p>There are several ways of clustering a hosted instance of the
Tigris tools. The default Tigris installation assumes a setup with
every service on the same machine, but with some configuration changes
and some system administration work, you can deploy Tigris across a
cluster of machines.

<p>An easy first step is to put the database on a dedicated server,
away from JServ. Tests indicate that on a high-speed network this has
no real affect on performance; the latency introduced by the network
is balanced by the additional resources free for the JServ processes.

<p>The real performance benefit is felt when additional JServ machines
are added to a cluster with a dedicated database. Adding JServ
machines to the cluster effectively scales linearly the throughput of
the web portion of the Tigris installation, up to the limits of the
database.

<h2>Setup of a Tigris Cluster</h2>

<ol>

<li><b>Install Tigris on every machine</b>

<p>All the JServ machines should have a full Tigris install. A
dedicated database machine does not need to have a Tigris install.

<li><b>Configure each machine with cluster information</b>

<p>In addition to the setup required of a non-clustered Tigris
install, you will need to change three variables in env.sh to enable
clustering:

<ol>

<li>DATABASE_HOST should be set to the hostname of the (possibly
dedicated) machine which is running the database.</li>

<li>CLUSTER_APP_SERVER_IPS should be set to the IP addresses of the
machines running JServ. This information is used to build the JServ
load balancing configuration.</li>

<li>JSERV_BIND_IP will be set differently on each host.  In a
single-JServ configuration, this is set to the IP address of the
loopback interface (127.0.0.1).  When multiple JServ instances are up
and running, JSERV_BIND_IP should be set to the IP address of the
public network interface of the host (this will be one of the
addresses appearing in CLUSTER_APP_SERVER_IPS).  This information is
also used to build load balancing configuration.</ol>

<p>I recommend writing this configuration once and <tt>scp</tt>ing it
over to all the cluster machines. Afterwards, do a top-level make on
every machine. 

<li><b>Set up the database</b>

<p>To give the JServ machines access to the database, you need to run
the script
<tt>$SANDBOX_HOME/helm/sql/org/tigris/helm/setup_user.sql</tt>. You
need to run this script on the machine with the database, so if you
have a standalone database server you must <tt>scp</tt> it over and
then run it.

<p>Once the JServ machines have database access, you can run
<tt>$SANDBOX_HOME/helm/scripts/create_tigris_database</tt> from any
JServ machine to initialize the Tigris database.

<li><b>NFS mount $SANDBOX_HOME/data</b>

<p>Add a line like the following to your /etc/fstab to auto-mount the
NFS volume at boot:

<p><code>my.nfs.server:/vol/vol2/1 &nbsp; /data &nbsp; nfs &nbsp;
wsize=8192,rsize=8192,intr,hard &nbsp; 0 &nbsp; 0</code></p>

<p>We use NFS v3, which requires a 2.4.x series Linux kernel.  You can
check that you have such a kernel installed by looking at the output
of <code>uname -a</code>, which should look something like the
following:</p>

<p><code>Linux my.cluster.host 2.4.3 #1 SMP Tue May 22 22:10:43 PDT
2001 i686 unknown</code></p>

<li><b>Dedicated Apache machine? Tie-in with JSERV_BIND_IP?</b>

<li><b>Dedicated CVS box: how?</b>

<li><b>More steps?</b>

</ol>

<h2>The Future</h2>

<p>We need a tool for deploying across multiple machines.</p>

</body>
</html>
@


1.4
log
@Added blub about NFS mount installation.
@
text
@d14 1
a14 1
<small>$Id: cluster.html,v 1.3 2001/08/03 20:14:51 dlr Exp $</small>
d93 4
a96 2
following: <code>Linux my.cluster.host 2.4.3 #1 SMP Tue May 22
22:10:43 PDT 2001 i686 unknown</code></p>.
@


1.3
log
@Fleshed out JSERV_BIND_IP description.
@
text
@d14 1
a14 1
<small>$Id: cluster.html,v 1.2 2001/07/24 17:11:04 leonardr Exp $</small>
d84 11
a94 1
<p>How?
@


1.2
log
@Maybe people will read this if it's not all <h1>.
@
text
@d5 1
d14 1
a14 1
<small>$Id: cluster.html,v 1.1 2001/05/23 22:37:25 leonardr Exp $</small>
d51 1
a51 1
dedicated) machine which is running the database.
d55 1
a55 1
load balancing configuration.
d57 7
a63 2
<li>TODO: How to set JSERV_BIND_IP? 
</ol>
@


1.1
log
@New (but incomplete) document describing how to set up a Tigris cluster.
@
text
@d9 1
a9 1
<h1>Clustering a Tigris Install<h1>
d13 1
a13 1
<small>$Id: migration.html,v 1.1 2001/05/16 16:35:24 leonardr Exp $</small>
@

