Linux Failover? 203
Anton asks: "This is a question about Linux failover in business situations. We are a growing B2B company; our product runs on Apache/Linux. We contracted professional services to properly set up our network. After all the hellishly expensive CISCO hardware had been set up it turns out that for our servers to be configured for failover, each one needs two dual-port NICs configured for one IP connected to two different switches, furthermore the driver needs to intelligently switch the ports when the active port fails ... We've never heard of such beasts for Linux and a net search revealed nothing. Our consultant however claims that 'Linux is biting itself in the foot' for not supporting that, and that other industrial strength OS's like solaris in fact do support this. Has anyone run into this before or have other ideas? " [nik suggests]: Take a look at Polyserve Understudy, which might be an alternative. FreeBSD and Linux versions are available (and bundled with FreeBSD 4.0).
Set realistic targets, then pick a solution (Score:1)
You: What availability do you want?
Client: 100% - It cannot ever go down at all or the world ends
You: Right, that'll be 10 million a year
Client: How about we schedule some downtime every week?
Be careful of references to 'industrial strength' operating systems. There are some very good products available but they are not part of the base OS, they can cost serious money and manufacturers will make you go through hoops to deploy them.
For example AFAIK SunCluster configurations are built and validated by Sun and then shipped to you. They are also only available on cluster certified hardware models. If you want to run non standard software on them they will probably want that signed off as well.
You do not automatically get application failover unless the application supports it in that particular cluster environment. Commercial cluster products tend to be biased towards transaction processing and database environments (because that's where the need and the big money is) and may not be the best option for web serving etc.
If you want more details the enterprise computing sites of all the big manufacturers have a stack of three hundred page white papers that conclusively prove they are all the best at everything
Posting anon again because Slashdot never seems to send email to Demon users.
Martin (martin@nospam.sharrow.demon.co.uk)
Ethernet Link Protector (Score:1)
Linux Journal Article with HA solution... (Score:1)
I published it in the Linux Journal last year:
http://ww w.linuxjournal.com/cgi-bin/frames.pl/lj-issues/is
source/scripts:
ftp://ftp.ssc.com/pub
It would solve your problem with layer-2 and layer-3 failover but, without modification, would require two identical servers.
Yes, it will decide which switch/router is actually still live for the next hop routing aswell - it can determine which switch has failed if any by pinging a list of 'supposed to be reachable' addresses.
It is a bit dated and I haven't really kept the code upto date but the principles are there and it is has been used for a long time with no major problems.
Philip J Lewis
Network Consultant
Dome Computer Consultants Ltd
UK
mailto:slashdot@*REMOVEME*linuxcentre.net
Ramix (Score:1)
Re:Ethernet Link Protector (Score:1)
-Peter
Here's the answer (Score:1)
1) Compile the kernel with the bonding device as a module.
2) Set your ethernet cards up through a bond device.
3) Plug NIC #1 into switch #1, and NIC #2 into switch #2. Let's say they're on vlan 100.
4) Trunk vlan 100 between the 2 switches.
5) Set your spanning tree config to favor devices seen through switch 1 (your primary).
6) Activate the bonding device. Once you do this, both switches will see the same MAC address, and switch #2's spanning tree config should cause it to administratively shut down the port that is connected to NIC #2.
What happens next is that all traffic goes through NIC #1, and switch #1. However, if switch #1 goes down, or if NIC #1 goes down, then switch #1 will surrender to switch #2 and allow switch #2 to bring up NIC #2, which will share the same IP address and MAC address as NIC #1 (read the doco for the bonding driver if you don't understand how this works).
Actually, this doesn't even require trunking the vlan, but it does require that you have switches that have spanning tree, that you pay careful attention to the spanning tree config, and that both interfaces can see each other so the spanning tree config will isolate them on the network.
NOTE!!! YMMV I don't know for sure that this works under linux. I know that this config should work with sun trunking, and reading the bond_xmit() function in the bonding driver it looks like it should work. I will test it on some cisco equipment if I get a chance.
If you want me to help you set this up, send me email, as I'm available to do such work.
-Peter
Re:Shoot your consulatnt (Score:1)
Actually, this should be doable with channel bonding (where the MAC address is identical across all interfaces) combined with a conservative spanning tree configuration (having trunking between both switches would be sugar on top, in case of the upstream interface dying on the switch).
See my other post for a likely configuration.
-Peter
Re:Failure to implement open standards. (Score:1)
-Peter
Re:Can be done with scripts... (Score:1)
Linux's bonding driver addresses this, too.
-Peter
Re:Linux "shooting self in foot" (Score:1)
*BLECH*
-Peter
Re:Linux Channel Bonding Might help (Score:1)
This solution expands to an arbitrary number of switches and an arbitrary number of host interfaces.
-Peter
Re:What is needed for real NIC failover. (Score:1)
while (good == 0) {
slave = queue->current_slave->dev;
if (slave->flags & (IFF_UP|IFF_RUNNING)) {
skb->dev = slave;
skb->priority = 1;
dev_queue_xmit(skb);
good = 1;
}
if (queue->current_slave->next != NULL) {
queue->current_slave = queue->current_slave->next;
} else {
queue->current_slave = queue->head;
}
}
Care to explain where the problem lies in detecting if the card is active or not, and how this is less reliable then an IGP?
-Peter
Re:What is needed for real NIC failover. (Score:1)
-Peter
Re:How Much / What Type of redundancy (Score:1)
-Peter
Re:Been there, wrote it myself (Score:1)
Right, it isn't the best design. However the redundant machines are designed so we can operatue without them for several minutes if need be. The recovery procedure if the Master really does fail involves the backup rebooting. (These machine control other hardware that must work all the time, and that hardware is both more robust and can operate without the controllers for a short time if need be. You just lose access to the disc so you cannot reconfigure them.
I didn't want to get into all the head aches we faced due to the bad design above, it is byond the scope of the orginal question. We are however re-doing things to fix that.
Re:Linux "shooting self in foot" (Score:1)
Uh, your knowledge has been shot in the foot. You dont need a 3rd party app for failover in Solaris. Sun offers Sun Cluster (current version is 2.2, 3.0 is going to be released next month for Solaris 8)
There is also Veritas First Watch.
Re:BIG/IP from F5 Networks... (Score:1)
Re:This is the wrong question (Score:1)
It's the same everywhere, where have you been?
I just remembered this old Metallica song. . .
What is needed for real NIC failover. (Score:1)
SCO UnixWare does support NIC failover (for cards that support MAC address reprogramming), unfortunately it's not one of the most stable OS that I saw.
Sometimes the same computer must complete the transaction, using another one is not an option (telephony come to mind).
Link Redundancy? (Score:1)
Two Unix based 'routing' daemons are:
Alternatively, assuming you've eliminated another single point of failure by running two routers, is to run HSRP ( since you mentioned Cisco ) on the routers. You could set up the network in such a way that you can dual home each server to a separate switch, without needing link failover or even a routing protocol.
There are several ways to kill this "problem", but the way your *ahem* consultant is recommending sounds like the most overly complex solution. Your consultant may know their systems/lan configuration, but shows little knowledge of routing.
My 2 cents is get a new consultant.
------
Re:Failure to implement open standards. (Score:1)
You are talking complete bollocks, just ask Bay, Alteon etc. VRRP works, easy to configure & a lifesaver operationally.
>But of course they didn't even bother to >contribute it back to the FreeBSD Project. Talk >about clueless corporate idiots.
The only clueless idiot around here is the gobshite who posted the prior article.
>Ah, whatever. Sorry for the rant - this whole HA >scene seems to be more annoying than the rest of >the bunch. They all operate in "a customer who >needs that must have money to burn - let's >charge him hefty" mode.
Hmmm you have a peculiar notion of what is HA. Banks etc are not interested in mickey mouse h0x3r solutions with no support.
greg
Re:Hardware Support (Score:1)
Jerk.
Fail-over (Score:1)
In addition to linux-ha [linux-ha.org], which includes links to Linux Virtual Server [linuxvirtualserver.org], Piranha [redhat.com], Ultramonkey [sourceforge.net], you can also find organizations that do this for a living. One (the company I work for, to be honest) is Mission Critical Linux [missioncriticallinux.com]. Specify what your needs are, exactly (web service, database failover, file system, etc), then look around.
By the way, is your consultant a reseller of Solaris (since I see he suggested that)?
jeff
foot shooting? (Score:1)
Re:Changing MAC addresses (Score:1)
I haven't actually seen a network card that doesn't support arbitrary MAC, but I suppose that some old 8-bit ISA cards may still exist--if you have such a beast, mount it on your wall and get a network card capable of at least a megabit of throughput after host bus overhead.
Note this change usually isn't permanent, i.e. we're not overwriting the NVRAM on the card or anything. The capability is simply due to the fact that the chip doesn't prepend the ethernet header for you, so the software has to fill in the second six bytes of each packet. Linux reads the MAC address from the card's ROM as a default, but you can override this with 'ifconfig', and for Linux bridging the source MAC address is set for each packet forwarded across the bridge.
I'm willing to bet that a lot of NIC chipset designers intend for their chips (or at least most of the die) to be useful inside switches as well as inside network cards. Why design two different devices when you can just design one and sell it twice?
Dual Nic and Solaris (Score:1)
Both hme0/hme1 have the Same IP and Same MAC address.
Just a little perl script, failover the card and reconfigures EFS on the fly.
Works ok, but could be more automated. This would work perfectly on any Linux box.
Then of course there is multiple catalysts, local directors, multiple pipes with multiple carriers, OSPF... Very good network design.
Only outage is when GTE/USWEST cuts those damn fiber cables....
Right now we are working on 100% failover, 5 Nine HA solutions. Sun cluster, Veritias file system, Oracle HA solutions. Even moving up too a few Sun 10Ks.
Depends on how far you want to go for Reliability.
-IronWolve
Linux "shooting self in foot" (Score:1)
I've got news for your consultant; Solaris folks buy a third-party product when they want failover capability, such as Legato (formerly Qualix) HA+.
Is Sun shooting themselves in the foot, too?
Third-party products are available for Linux, just like they are for Solaris etc. Buy them if you need them.
--
Re:Linux "shooting self in foot" (Score:1)
Sun Cluster certainly exists. Legato HA+ does a booming business.
There are reasons for that; but since you seem to think you're the expert, I'll leave their discovery as an exercise for your.
--
we have a product (Score:1)
Re:BIG/IP from F5 Networks... (Score:1)
There are a number of commercial products from F5, Alteon, Extreme, Intel, and others.
Re: network failure should be handled by network (Score:1)
Slashdot has been saturated with 'IANAL' for several weeks now. I think we need a new acronym for this discussion: IDKCAHA. 'I Don't Know Crap About High Availability.'
I've been trained in IBM's high availability product, HACMP [ibm.com], 'High Availability Cluster MultiProcessing' and manage a few production clusters.
This is typical of what I'm hearing on Slashdot today...
If a network node goes down, it's better if network equipment handles the failover.
It ain't that simple. The node that went down has resources other than network ports. What about the application? What about the filesystems? What if the network connection is up but the application or filesystem is down? Show me a chunk of networking equipment that can handle those failures and I'll send you a dollar.
In our production environment, we have an Oracle database running in an IBM HACMP cluster. The SSA (think: SCSI over token ring) drives are shared between the primary node and the backup node but can only be active on one node at a time.
Should a network card fail, in the primary node, it will down the sick interface and bring up the IP and MAC on the backup card. Linux, too, can do that rather easily.
But what if the problem isn't the network. What if the applicaiton on the primary node has failed? HACMP can down the primary node and bring the application up on the backup node, taking the disk drives with it. I have yet to find a Linux tool that will do disk failover.
I've also seen comments in this discussion to the effect that secondary heartbeat paths are 'silly [slashdot.org]'. Obviously, the person who made that comment is insane. (We use a target mode SCSI over SSA for a heatbeat.)
If your only heartbeat is running over the network and the network fails, neither node knows if the other is up and both nodes will attempt to claim the disk resources, come up on the same IP/MAC address and start the applicaiton. This is Very Bad. What do you think will happen when the network comes back online? I'll give you a hint. All of a sudden you've got duplicate nodes on the network. That's never good.
To answer the consultant question, I think the person is stearing you in the wrong direction. Either you need to rethink your failover solution or you need to move to a platform that better supports the type of failover you want to do such as AIX or Solaris.
Real Soon Now, I expect that there will a viable Linux HA solution. However, there ain't one now and that's where you are. Since you're a B2B startup with venture funds to burn, I suggest you throw some of that money toward IBM's HACMP or another commercial solution on a platform that has had an HA solution for more than a few months. I'd hate for your company to save a few bucks by using Linux and lose lots of money to downtime.
InitZero
(let the flames begin)
Re:Ewww...can u explain the append line? (Score:1)
--Charlie
Troll Question? (Score:1)
Scott Ruttencutter
Re:Q: is this a good solution? (Score:1)
Free as in non-proffit...
Sun dosn't make any money but your paying for shipping.
Thats not free...
Re:Hardware Fault Tolerance (Score:1)
There's also a problem with the LD if you need sessions in your application. As long as you have big enough servers that can handle all the traffic coming from behind proxies you can always use the IP-sticky in the LD but experience with this has shown me that sometimes the load balancing can be really bad with this scheme. If the LD just happens to throw three or four big proxy addresses at one machine it will get bogged down and the whole idea with the LD is lost.
There is ofcourse the ssl-sticky for ssl sessions over http. But there's a problem with that too. If the client uses IE and sits behind a proxy the ssl-session ID will not come from the client. IE by default uses http 1.0 when talking to a proxy which doesn't allow sessions. This is probably due to the fact that up to a very late point in time MS supplied proxies that talked only 1.0 and now they correct that by disabling the newer protocol in their browser.
At the webserver end it seems like the client would be talking 1.1 but that is not true since the protocol info comes from the proxy, which talks 1.1.
There might be a solution to this but I haven't been able to find anything yet. Otherwise the LD is a working solution that also provides failover for itself if you have two of them.
Re:Linux Virtual Server (Score:1)
Did I say it was anyhing else? I only stated that I didn't use the Pirhana package.
In fact, according to the LVS site, its not linux virtual server.
Piranha is the clustering product from Red Hat Inc., it includes the LVS kernel code, a GUI-based cluster configuration tool and cluster monitoring tool.
Not to be a loser.. but... (Score:1)
what other software are you using, and why are you cheaping out to use linux?
I mean, look.. I love linux... don't get me wrong. And linux *can* do this, but it'll take work.
But if you want something that already does it, and considering the money being spent.. why not go with what the consultant said and pick up the suns he recomments and the failover gear he recommends?
Sheesh. I wanna use linux at work too, but when it comes to a platform for a $60,000 piece of sofwtare, it sure didn't make much sense to argue that linux was 'cheaper' than solaris..
Re:BIG/IP from F5 Networks... (Score:1)
Re:Feh! (Score:1)
funny, that's why I just got into consulting...
I figured if people who don't know what they are doing can make good money telling people how to run their shops, think of what someone who does know something could make.
Re:Changing MAC addresses (Score:2)
As the other poster said, it depends on the driver. Thats the bad news
The good news is DecNet requires the driver (and hardware) be able to change the MAC address. Thus even for cheap cards most of them can just in case the vender ever has the chance to sell to the last shop out there still running decnet.
re: MAC address (Score:2)
Many cards can have their MAC address set. Linux ethernet drivers support that where available.
Re:This is the wrong question (Score:2)
This is D-Link's 4-port 10/100 NIC.. It has Linux drivers, and it's only $165.
Re:This is the wrong question (Score:2)
So, for example, if you have a TCP stream going to a specific NIC and the link between the NIC and the switch gets cut, or the NIC fails or something, then you need to be able to continue the same TCP stream on a second interface.
You end up with several issues: On a lot of NICs, it's not that easy to figure out when it's having problems. Secondly, the second NIC is typically at a different hardware address, so you need to update the ARP cache of any machine sending to you. And, you have to figure out how to tell when the first NIC is working again.
Re:This is the wrong question (Score:2)
The SBus QFE part may have been space constrained (SBus cards are small), which will bump the price a little. Multi-port PCI NICs normally need a PCI bridge part (actually it's been a while since I bought one, maybe they do it all in one multifunction PCI chip now), which pushes the cost up a little too.
But the big reason is economy of scale. It costs a lot of money to design a product, document it, write drivers, set up distribution channels, and so on. Cost that is mostly fixed regardless of how few of the product you sell.
Contimplate the following example:
Assume for the sake of argument that it costs $1,000,000 to design a PCI board. Now assume I make a 4 port ethernet (with a parts cost of $40), and you make a one port ehternet (with a parts cost of $10). Also assume there are (only) 1,000,000 people on the earth (and all want to be in on the big LAN party). Some of them are uber-graks and will buy the 4-porter so they can have a 4-porter. Some want a "reliable gaming experance" and will buy the 4-porter because they have 3 more ports if hte first fails. Some want to run the LAN server and need more bandwidth. In all 100,000 people are intrested in my product. 900,000 in yours. To exactly cover our costs you need to charge $10 for the parts and a bit over $1 for the "overhead" -- a $11 price, I have to charge $40 and a bit over $10 in overhead -- a $50 price.
Alot of the people who wanted a "reliable game experiance" are now swayed by your argument that they can buy two cards and get "enough" reliability. Or even 4 of yours ($44), and an extra $6 to buy another ethernet cable in case their breaks! A few more are swayed by the argument that $50 is alot to pay for a network card, look over there a $10 card. Maybe they should keep the rest of the money, or buy a new game, or save up for a monkey. Soon only 10,000 people want my card. Your overhead drops a little (it is still about $1), but mine rockets to $100!
With a $140 price tag even the uber-geeks start rethinking, and decided maybe they would rater show their geekeness with a $130 EFF contribution, and a nifty EFF bumper sticker on the side of their case.
That's when things really start to suck, only the 5 guys holding the LAN party that need my card are now intrested in it. The price rockets to $200,040. At that price the 5 guys will spend a long time trying to figure out a way to do the whole gig without my card. In the end maybe they just charge everyone on the planet $5 to get into the LAN party and end up with "free" cards.
There are lots of little things wrong with this example (the guys running the part could probbably use 4 of your cards at once), there are more then 1,000,000 people, the overhead costs can vary from product to product, some people will buy even seriously overpriced goods. But I think it does go a long ways towards showing why a Sun QFE costs $1,500 and a Intel Ether Express 100+ is $25.
Re:Choice of enterprise solutions (Score:2)
As for offering your customers a product with a company who stands behind it's guarantee - you're giving them MS? Why? That is pure FUD. Did you hear about the court case that handed down a couple weeks ago where the software supplier was held immune due to the "we don't guarantee this software for any use" clause in the shrink-wrap agreement. Pretty much leaves the concept of a "Big company" being needed out in the cold.
A few things to consider (Score:2)
1) Do you need High Availability of 1 machine? (ie 99+% of a single machine) If the answer is yes, then clustering is the way to go. But doing that right is very expensive (hardware, software)
2) Does it make sense to have a farm of identicaly configured machines? If you're using Linux / FreeBSD as your webservers and if you only run web servers on them, then you can get away from clustering proper and just throw a ton of machines at the problem. ie farm of web servers.
3) Sounds like the Consultant has the right idea with the "expensive Cisco hardware" in making sure Layer 2 is fully redundant. Good step forward. Now ya just need to make sure your hardware that is connected to it will utilize it. Do you?
4) If your running Solaris, then Alternate Pathing becomes your friend (especially with Quad Fast Ethernet cards), as well as Dynamic Reconfiguration. Are you, or is this a moot thread?
5) Overall, what are you trying to accomplish? Uptime of hardware, uptime of the application, or raw uptime of the web servers? If you got a set up like
Basically, that's pretty much it. Personally I wouldn't bother with clustering or complicating the web servers that much, I'd cluster the back end supporting stuff for the web farm. ie the back end database, fully redundant hardware, alternate paths and so on. And then let Cisco's Local Director take care of load balancing and checking the web server is up or not. (From what my network guy at work tells me, it can do that. I won't personally believe it until I see it).
Re:B2B buzzword (Score:2)
Oh well at least I'm not seeing "architect" used as a verb anymore. I was just itching to shoot someone then.
Intelligent NIC with Failover (Score:2)
Re:Shoot your consulatnt (Score:2)
I could give you a detailed rant style answer but I think it is not worth it.
Most root DNS servers, primary mail relays, etc use exactly what I said. And there is no such thing as what you said. Been there done, that.
Please get a clue.
Solutions using routing protocols cause serious trouble if and only if designed and ipmplemented by Minesweeper Consultants and Solitaire Experts.
Re:Shoot your consulatnt (Score:2)
I have to remind you - you do not use physicals. Apache listens on loopback only. So the client retransmits, it goes via the other interface and you have no problem. Session is alive.
talk to (resp. across) a small set of routers (or routing protocol using hosts).
Correct. You talk to two routers or just differnt ifaces on one that connect you to the backbone (via different layer 2 devices - switches or hubs). And from there on with the entire internet.
In a similar internal corporate scenario you talk to the routers or the RSM on the switch that separate the servers from the lusers.
I can give you a number of examples where it won't work at all.
Yeah, sure. I have seen gazillion of b0rken network designs written by experts. Most of them with a minesweeper and/or solar sertificate. I am not beeing biased but core networking is not a subject in neither of these sertifications. Officially core network support in Slowarez is considered with a "to be or not to be" status in Sol 8. Check the zebra archive for details. With minesweepers it is not even considered.
You don't happen to post in certain de newgroups ... ? This somehow sounds ... familiar
No. Never used news. But I am not the only BOFH around.
Re:What is needed for real NIC failover. (Score:2)
So, overall: OSPF instead.
Re:This is the wrong question (Score:2)
The problem is that a bunch of carma w** who are out of their scope have immediately flooded the article with comments about piraniah, clusters and other irrelevant things. The question is about failover in case of link failure. The consulatnat thought of winhoze and chose layer 2. You have a unix system. Unix knows about routing and IP. Hence what you need is a layer 3 solution. For example:
http://slashdot.org/com ments.pl?sid=00/05/21/1853216&cid=90 [slashdot.org]
Re:Failure to implement open standards. (Score:2)
Juniper, 3Com, and Alcatel was at least working on it for a time in 1999. Yeah, that sounds like "just Nokia". :)
HSRP is a hacked version of VRRP v1. Where do you think they got the ideas from???
And no, I don't work for the IPRG group. I've got some friends who used to, and one that still does, but no, I don't work for them.
--
Fire the consultant and hire a hacker (Score:2)
If you need multiple ethernet interfaces on a machine they should be separate cards for robust redundant failover. I run 12 linux boxes with 4 ethernet cards in each; my
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.5-15smp
label=linux-smp
append="ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3"
root=/dev/sda8
initrd=/boot/initrd-2.2.5-15.img
read-only
The append line activates my additional ethernet cards, all of which are 3com 100bTs using Donald Becker's excellent open-source drivers.
Combining this with round-robin DNS using the latest ISC BIND code, you can get incredible fault tolerance at a very low cost. You can even do IDE RAID (hard or soft) if you are too cheap for SCSI, and you can use rsync to keep your servers clones.
Unless your application is extremely unusual and non-wwwebby, you can accomplish what you need without any expensive Cisco stuff or fancy double-headed cards at all. The consultant is taking you to the cleaners due to greed or a total lack of competence.
--Charlie
Re:Choice of enterprise solutions (Score:2)
HP is also good but my personal bise prevents me from recomending them for software solutions.
Linux Virtual Server (Score:2)
Without RedHat's Pirhana package. ;-)
No.. THIS is the wrong question. (Score:2)
where's the solution? Was he just speaking theoretically?
A dual port nic sounds strange, especially with this behavior. From a networking point of view, this makes sense.
Sure, a dual port nic will help you, *if* it's set up to get arond transciever failure by bringing up the other port.
Two nic's would be better, where the box itself could attempt to configure and use the other nic if it loses network connectivity.
An even better (and more obvious?) solution is to have two computers..... complete redundancy.
Re: (Score:2)
Re:Failure to implement open standards. (Score:2)
I have an alpha implementation of VRRP for Linux that I'll be GPLing within the next week or so.
We're using it and it seems to work very well.
Currently for 2.2.x only.
Watch for announcements.
Can be done with scripts... (Score:2)
Although I'm sure the options have changed some since I was fully up on this stuff about three years ago, there were only a handful of failover options at that point, and only one of them worked really well.
That one, interestingly was in reality a bag of (very good) scripts, which implemented a heartbeat function and when it detected something wrong, would down the interfaces, re-plumb them if necessary, reset addrs, and up them again. Although it's worth the money they charge, if you're into a serious DIY mode, there's no reason you couldn't write such scripts yourself, and there are almost certainly some already out there, probably as part of the Linux HA project.
Oh, and as an aside, I would stick with the script-based solutions whether you build or buy: they're more reliable, and they leverage the OS better than the proprietary methods. (Qualix's main competitor back when I worked for Sun consulting for customers on such things was OpenVision HA, which was a huge, slick, impressive monolith of GUI binaries that had a well-earned reputation for leaving a trail of dead bodies behind it. FirstWatch, on the other hand, was simple and unimpressive in a demo, but it just worked, and worked well, in the real world.
Qualix was bought by Veritas a few years ago - check with them if you want a decent supported package. (And let's face it - HA is certainly one area where it may not pay to roll your own, since a failure in the HA system in production would be a serious career-limiting move...)
Re:Feh! (Score:2)
Let's see here...either (1) you've never worked in a corporate environment where you've had to deal with consultants or (2) you're a consultant yourself and "resemble that remark." From the (admittedly limited) experience I have with them, the original poster's remarks were on-target, though. Those who can, do; those who can't, consult.
It's not an "anti-corporate" bias; it's an "anti-moron" bias. :-)
BIG/IP from F5 Networks... (Score:2)
One thing... Make sure you're pluging it into 120VAC. The power supply get's very unhappy if you don't... You learn these things when someone labels a 240VAC strip as 120...... Go figure.
Re:You have no clue what you are talking about (Score:2)
I'm not sure, but if true, I find that prospect somewhat revolting. It's a basic admission that companies care more about money than about quality. Usually smaller companies are okay, but the big conglomerates make me skeptical of the good of capitalism in the big picture.
Re:What are you talking about? (Score:2)
But you said, a few posts up, that your customers want a "tried and tested platform backed by a company that truly cares about their satisfaction." But now you imply that your company doesn't truly care about their satisfaction, but only about truly about their money. Which is it?
I assume you care only enough about their satisfaction as it will bring in the dollars. Ie, you want to barely keep them satisfied enough, such that they'll buy more products. Such is capitalism at its extreme. You choose money over product quality.
Re:You have no clue what you are talking about (Score:2)
Hahaha, a sleezy capitalist fearing his/her eventual demise. Anyway, doesn't this 'company' you speak of truly care more about their shareholdrs than about it's customers' satisfaction?
Re:Hardware Support (Score:2)
> two of those pieces of hardware with
Well thats nice. Look, I have no use for these
things myself. I don't know what the product is
called, I never bought one. I was simply trying
to offer an idea and point in the right dircetion.
I never claimed to be able to do more.
I probably could find out the name of the product,
but not in the time frame where it would matter
wrt slashdot comments.
> I think you want two servers with the same RAID
> array....[snip]
Yup...a very good way to do it...I agree (of
course it doesn't handle the raid array itself
having a catastrofic failure...but given the
redundancy in a good array, that should be more
rare than a system blowing)
>> Of course, why thats even needed is beyond me.
> apparantly..
Thank you for changing the order of what I said
so that it looks like I said something different
than I did.
If you were to look at my original comment, I said
this about the case of SIMPLE ethernet line
failover NOT the redundant servers case.
-Steve
Re:Cost of redundant servers (Score:2)
However, you should note that I offered 2 solutions. One of them being almost exactly what he asked for, but implimented in hardware (and as someone else pointed out, possibly firmware too) which requires no driver software to work (beyond that of whatever existing ethernet card one has)
The other solution, yes its alot more costly. Yes it MAY not be right for the given situation. However, I felt it should be offered up anyway, and to let the person in that situation decide.
Re: This is the wrong question / Multiport NICs (Score:2)
Sorry to be a bit off-topic, but there is a reasonably priced 4-port ethernet solution out there. Compex, Inc. [cpx.com] makes a quad port ethernet card (P/N FL400TX/PCI) that sells for $189.95 on buy.com. Looks like it's out of stock right now though.
I purchased one of these for our server (Linux based of course) here at work and have been quite happy with it. I'm using it for subnetting our network (vs. fail-over network links.)
B2B buzzword (Score:2)
Re:Shoot your consulatnt (Score:2)
Re:Linux High Availability project (Score:2)
I worked on an HP-mini, and it used a similar setup. Basically, the two *identical* minis shared a SCSI bus with redundent media. The backup mini would ping the other one over the SCSI bus, and if it didn't get a response it would take the IP of the first one. Worked damn well.
The only drawback is that the backup isn't doing anything but issuing a ping, mirroring the system RAM in machine 1, and waiting. The upside is that short of a missle strike, you had very high reliablity. Most failures didn't even cause a pause.
I don't see any problem with using the same method with more systems, though a cluster starts to look attractive after a while.
SGI and High Availability Linux Clusters (Score:2)
Hope this helps
regards,
Benjamin Carlson
Every Ethernet chip you will ever encounter does.. (Score:2)
This feature isn't needed for all fail-over schemes, but it does exist for those schemes which use it.
Hardware Fault Tolerance (Score:2)
Solaris "Alternate Pathing" (Score:3)
The main reason for AP is for the DR or Dynamic Reconfiguration feature. If you've got three system boards, then you can have some redundant hardware so that you can take down and remove a system board *while the OS is still running*, and keep your network connection going without missing a beat. (Same for disk.) Neat stuff.
Been there, wrote it myself (Score:3)
I wrote software for Solaris (Which as others have pointed out does not do this without 3rd party software) because we found that no solution would fit our needs well. When looking at the prive tag we concluded that we could do better. (Come to think of it there is High avaiable Solaris, but it isn't cheaper or better then 3rd party stuff)
Basicly we ping something on the other side of the router every 5 seconds, and if the ping doesn't come back we switch to the other port. That is the overview, but you need to do some more isolation before you blindly switch ports.
I strongly recomend you put in some other path between you and the box you are pinging. Several times we have been bitten when the box we weere pinging went down and not the router, or alternaticly the network was so busy the ping didn't get through within our timeout period.
There is no portable way in solaris to tell if one ethernet port has signal. You can find out from some drivers, but when you change to a different ehternet card you have to do something else to find out.
linux option (Score:3)
including
Piranha [redhat.com]
--
dual port nics? (Score:3)
that said, linux can do routing. why not set up a loopback device and then have it route through either nic? ip was designed to deal with multiple routes, why must your consultant reinvent the wheel? (loopback addresses are published, so they'll be seen on the network)
Q: is this a good solution? (Score:3)
So I won't lie.. I'm happy to tell you....
This may not be the right solution.
The problem isn't the consultents. They know there stuff otherwise you wouldn't be paying them.
They come with years of experence and bieses.
Expect a consultent who isn't friendly with Linux to dig up a solution that will not work on Linux.
Yes Solarus can do a lot of great things Linux can not. In the end Linux has one great advantage and thats price. Source code and quick security patch relases is a bonus.
This rule holds for an NT shop....
And don't put a consultent past finding a feature Solarus dosn't have. Your talking with some of the greater frelance tallent in some cases and if a defect is to be found they can find it. Once found that defect becomes a case for switching to something the consultent likes.
So once you pick a platform for your shop pick a consultent who is buddy with your choice. If then he recomends something else it will be after bleeding dry all posablitys.
This may not be the only way to do it...
and... it may be the worst way to get it done...
Linux has it's limits don't get me wrong but you can allways find more than one solution. Linux may support 4 out of 8 solutions.. if your only presented 1... there may be a reason...
OS Level failover (Score:3)
This is the wrong question (Score:3)
What you want to know: "Here's our problem. Here's the solution the consultant came up with. What improvements can
For instance, why do you need dual-port NICs? If it's just for the throughput, why not just use 2 single-ports? This also provides redundancy in the hardware department.
--
Have Exchange users? Want to run Linux? Can't afford OpenMail?
Re:Failure to implement open standards. (Score:3)
I believe Juniper and 3Com also support the use of VRRP.
You may not be able to implement HSRP without paying Cisco a license fee. I'm not sure if anyone has approached Cisco from an open-source viewpoint though.
As for a public implementation - I should have a Linux VRRP implementation out this week.
network failure should be handled by network HW (Score:3)
Say you have a machine with two dual port NICs or even two NICs. Have a script that checks the main network interface every ten seconds. If the main interface becomes unavailable, unload it and load the second interface with the same IP and reset all of your routing information.
If you have a server with that kind of "need" then maybe you should consider having a better routing setup altogether. Consider how www.netscape.com will actually resolve to several IP addresses. The options are numerous. The main issue, is that linux works just fine. (Although freebsd has sexier networking)
Hardware Support (Score:3)
Good to know that you are buzzword compliant...
I understand thats very important to some people,
and if I ever figure out who those people are, I
will probably avoid them like the plague.
As for fallover...check out 3com....long ago a
man (who would later go on to teach Unix courses
at WPI and be one of the best teachers I ever
had for anything) designed a piece of hardware
with 1 ethernet port on one side, and 2 on the
other...it was designed to do JUST THAT.
Completely in hardware. He did it for a company
that was later bought out by 3com...he claimed
(a couple of years ago, when I was in his course)
that they still sell the product that he designed.
Of course, why thats even needed is beyond me.
For better redundancy, you really want seprate
redundant servers, each with RAID arrays and
probably a couple of localdirectors (or round
robin DNS for a cheaper solution) direcing
connections between them (giving both fallover and
increased availability) but...thats just IMNSHO.
Afterall, if a CPU fries, or a power supply starts
letting its magic smoke out...all the duel port
NICs in the world wont help.
Other thoughts (Score:3)
Otherwise, you can put two NICs in (one on each switch) and assign them each their own IP address... no need to fail over... although I would look at the F5 BIG/IP - as it can make sure that your servers are serving up content... the Local director isn't as good at this.
redhat piranha? (Score:3)
Re:huh ? (Score:3)
Building Linux Clusters - O'Reilly (Score:3)
Building Linux Clusters [oreilly.com] is just what you should read.... Uncoftunately it won't be out until August.
What you need (Score:4)
Everything you need is at High Availability Linux [linux-ha.org].
I too am/have built a B2B exchange on the linux platform and found JServ [apache.org] to be *INCREDIABLE* at HA/Failover safe features.
As for the 2 network cards for each machine, that too is a *VERY GOOD* thing. It allows you to partition out your network traffic to achieve much better response time. For example our network has 2 NICs in each machine. There is "Web Server to Database" network, There is a firewall to webserver network, and we have a seperate network for office web surfing and misc stuff like that. Access to the "WebServer to Firewall" network is handled across the router.
One thing to keep in mind when dealing with DB aware web applications is that unless your code is *VERY POORLY* written the biggest bottleneck will be in network latentcy.
-GrimsaadoIgnorance of options is not a failure (Score:4)
Just a general observation - Linux is pretty well fleshed out with about anything you can think of in one form or another, it just isn't chasing you down with in-your-face ads and high pressure sales promos like other comercial products, so it may appear to be deficient but more often than not just a few days (for us slow pokes) search and trials will usually turn up an inexpensive quality solution in some stage of development hidden somewhere.
Failure to implement open standards. (Score:4)
Has anyone considered VRRP [ietf.org] (Virtual Router Redundancy Protocol)? It's an actual open standard, and it works. It not only works, it works amazingly well.
One of the major users of VRRP technology is Nokia. They've done extensive work on the protocol, and use it in their line of firewalls (which btw run a heavily modified FreeBSD codebase).
VRRP uses multicast packets that are similar to OSPF "Hello" packets to let the partner(s) know it is alive. If the primary machine dies, the backup instantly takes over. When the takeover happens, it not only assumes the IP address of the dead machine, but it also answers for the MAC address of the dead machine.
--
Re:Linux High Availability project (Score:4)
"...dual-port NICs...switch the ports when the active port fails...
Oh, I see. When one port (or its path) fails, you want to switch the IP to a different port? I don't think "the driver" needs to do that, just change the IP assignments with ifconfig.
Re:This is the wrong question (Score:4)
On Suns at least, the dual (well, quad) port NICs are used as a heartbeat signal between the active server and the failover box (when using FirstWatch).
True, you could use two separate NICs in each box to provide the same solution, but then you are using up three PCI slots since the heartbeat NICs do not carry any packets.
I am wondering why NICs with more than one port are so danged expensive though? I can see a bit of an increase in price, but there is no way these things should be $400 and up (last time I looked..)
Feh! (Score:4)
I think we need more information here. (Score:4)
If you wanted a web-farm, that's dead stupid easy. Fail-over database/ftp/nfs isn't too hard, but (presently) requires commercial software. Understudy Polyserve [polyserve.com], Wizard Watchdog [wizard.de], or even RSF-1 [high-availability.com] are just some of the HA clustering products available.
Easy solutions (Score:5)
A non-kernel invasive version of this would be a script that configures one port with the desired IP/mask and creates the default route. It then puts the other port in promiscuous mode and monitors it for traffic using a libpcap based program or even a possibly modified tcpdump. As soon as it sees any traffic, it switches the configuration and starts monitoring the other port. This could probably be written in 2-4 hours given a network to test it in.
For a possibly simpler solution (i.e. no code to write), use a pair of additional Linux systems. Configure each of them to load balance with LinuxVirtualServer (aka LinuxDirector) or the Pirhana version of it to as many backend servers as you have, BUT to Different internal IP addresses. Good choices would be 10.* addresses, say 10.0.1.* and 10.0.2.*. Using either a dual NIC or two NIC cards in each server, create two networks with one for each of the load distribution servers. Configure Apache et al to respond to the IP addresses of each network the same.
BTW, there are 4 port 100-base-T cards out there, from Adaptec I think.
Good Luck!
Linux High Availability project (Score:5)
The "heartbeat" application implements node-to-node monitoring over a serial line and UDP and can initiate IP address takeover based on a notion of resources provided by nodes and resource groups. It worked well for me. However, this was only a very basic two-node setup.
Shoot your consulatnt (Score:5)
1. Your consultant should learn routing protocols
2. Your consultant should learn the concept of a loopback alias.
3. Your consulatnt should have an IQ of above 25
4. There is absolutely no need for link layer 2 failover where layer 3 will do. Unix is not WinHoze. It knows about routing.
So your task list is:
Comment removed (Score:5)
Wrong failure being addressed (Score:5)