Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Nov 2002 09:30:08 +1100
From:      Joshua Goodall <joshua@roughtrade.net>
To:        Michael Grant <mg-fbsd3@grant.org>
Cc:        freebsd-cluster@FreeBSD.ORG
Subject:   Re: clustering freebsd
Message-ID:  <20021109223008.GE33758@roughtrade.net>
In-Reply-To: <200211092113.gA9LDFG28495@splat.grant.org>
References:  <200211092113.gA9LDFG28495@splat.grant.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Nov 09, 2002 at 10:13:15PM +0100, Michael Grant wrote:
> It's possible that what I want doesn't exist (yet). I would like to
> make something highly reliable, but not necessarily something that
> involves failover to a hot spare.  In my mind, I'd rather have 2 or
> more boxes there available to answer requests rather than one sitting
> there uselessly until the other fails.

Typically one would specify a load balancer sitting in front of the
application servers.  The LB is responsible for handing off inbound
connections to a destination server, using a variety of algorithms
and detecting server failures.

Where I have used them, I've preferred the appliance-style dedicated
LB hardware (e.g. the Foundry ServerIron).  There are a couple of
software tools in the ports collection (net/balance and net/loadd)
but I've not tried them.

In a true HA situation, I'd deploy two LB's that share a virtual
IP address (e.g. via VRRP).

Behind the LBs is where server clustering comes in.

Right now, none of the following are possible with FreeBSD out of
the box:

a) Shared-mount filesystems
b) Distributed resource locking
c) Cluster membership service
d) Atomically reliable group communications
e) System-system-image management.

Together these five elements form the basis of most application
clustering toolkits (e.g. TruCluster, Sun Cluster, VMS, Oracle
Parallel Server).

You can do some of the above at the application layer with software
tools.  The Spread toolkit (www.spread.org or ports/net/spread, of
which I'm the maintainer) can be used to synthesise application
clusters.  It'll give you (c) and (d).  Spread is one of the two
targets of the postgresql-r project.  See also http://www.spread.org/

You'll usually need to modify applications to be cluster-aware,
however, and that's not trivial.  Those multi-CPU systems where you
don't are basically NUMA machines.  I believe ccNUMA on FreeBSD
is a long-term goal of Andy Sporner's, and good luck to him.

Joshua

-- 
Joshua Goodall
joshua@roughtrade.net               "Your byte hit ratio is weak, old man"
"If you cache me now, I will dump more core than you can possibly imagine"

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-cluster" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021109223008.GE33758>