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>