CARP-Like Solution With Machines On Different Networks?
cswiger at mac.com
Mon Nov 17 11:22:30 PST 2008
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
to transparently offload network load on a single
distribute the load across a pool of servers. This
is known as LSNAT (RFC 2391). For example, the
tcp www1:http,www2:http,www3:http www:http
means that incoming HTTP requests for host www will
parently redirected to one of the www1, www2 or
www3, where a
host is selected simply on a round-robin basis,
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.
More information about the freebsd-questions