Date: Mon, 17 Nov 2008 11:22:28 -0800 From: Chuck Swiger <cswiger@mac.com> To: Alex Kirk <alex@schnarff.com> Cc: questions@freebsd.org Subject: Re: CARP-Like Solution With Machines On Different Networks? Message-ID: <5C9AC885-CFC2-4A35-A21E-CEAFB64694A2@mac.com> In-Reply-To: <20081117105714.19994onozp83obs4@mail.schnarff.com> References: <20081117105714.19994onozp83obs4@mail.schnarff.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Nov 17, 2008, at 7:57 AM, Alex Kirk wrote:
> After doing some research on the matter, it looks like CARP would be
> a winning solution - but only if the backup system was on the same
> network segment as the primary box. Given that there's no money to
> colocate a second backup system at the same facility as the main
> machine (and protection against failure at the colo facility is one
> of the primary drivers for the failover setup), however, it looks
> like CARP wouldn't be useful.
If you can't or aren't willing to pay for a second machine, I doubt
that any clustering solution is going to be workable for you, frankly.
Most of the high-availability clusters I know about depend either on a
multipath SAN or NAS setup to provide a common filestorage point for
cluster members to synchronize with (the "quorum" drive for M$
clustered SQL server, similar for Sybase ASE cluster or Oracle
Parallel Server [now Oracle RAC]), or require something like a
hardware loadbalancer (Foundry ServerIron, NetScaler, etc) which acts
to distribute transactions only onto the parts of the cluster which
are up and working.
> That said, are there any solutions which behave similarly to CARP
> that I could use for a pair of machines connected solely via the
> Internet? For now, I'd even be happy if there was some way to simply
> do TCP port-level proxying, so to speak (i.e. connections come in to
> a given machine, and are proxied to the main system if it's up, but
> go to the backup box if not)?
>
> Thanks in advance for any advice you can provide.
TCP level proxying is suitable for shared read-only distribution of
traffic (ie, such as static web content going against a pool of
webservers, all of which can serve any of the traffic coming their
way). IPFW + natd can do this much via:
-redirect_address localIP[,localIP[,...]] publicIP
These forms of -redirect_port and -redirect_address
are used
to transparently offload network load on a single
server and
distribute the load across a pool of servers. This
function
is known as LSNAT (RFC 2391). For example, the
argument
tcp www1:http,www2:http,www3:http www:http
means that incoming HTTP requests for host www will
be trans-
parently redirected to one of the www1, www2 or
www3, where a
host is selected simply on a round-robin basis,
without
regard to load on the net.
...but this paradigm simply won't work for content-aware traffic (ie,
anything which has a per-user "session") and it definitely won't work
for a database. MySQL clustering is a less expensive possibility than
most of the vendors listed above (M$ SQLServer EE is $25K per CPU,
Oracle RAC is $60K per CPU), but even so Sun wants to bill at $2500
per day for a week of consulting to set it up for you.
Regards,
--
-Chuck
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5C9AC885-CFC2-4A35-A21E-CEAFB64694A2>
