From owner-freebsd-cluster Sat Nov 9 14:30:30 2002 Delivered-To: freebsd-cluster@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8685437B401 for ; Sat, 9 Nov 2002 14:30:28 -0800 (PST) Received: from yello.shallow.net (yello.shallow.net [203.18.243.120]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F9C143E4A for ; Sat, 9 Nov 2002 14:30:20 -0800 (PST) (envelope-from joshua@shallow.net) Received: by yello.shallow.net (Postfix, from userid 1001) id F12C62A5B; Sun, 10 Nov 2002 09:30:08 +1100 (EST) Date: Sun, 10 Nov 2002 09:30:08 +1100 From: Joshua Goodall To: Michael Grant Cc: freebsd-cluster@FreeBSD.ORG Subject: Re: clustering freebsd Message-ID: <20021109223008.GE33758@roughtrade.net> References: <200211092113.gA9LDFG28495@splat.grant.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200211092113.gA9LDFG28495@splat.grant.org> User-Agent: Mutt/1.5.1i Sender: owner-freebsd-cluster@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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