Redundant Servers. Seemed like a good idea at the time. But are they still?
(Note: this post refers to the use of redundant servers in a license management system, similar to, say, FLEXlm(R) from Macrovision.)
To answer that question, we have to step back to 1988. Do you remember 1988? Back then, PCs ran DOS. Unix was the Next Great Thing. And disk drives and systems failed – and stayed down for days at a time. Hard to imagine now. Well, that was the environment when I designed redundant servers for FLEXlm.
It was a good idea at the time. I don’t think anyone would question that. No one wanted to put all their licenses on a system that might be down for a couple of days at a stretch. In fact, no one even wanted to split their licenses across a few servers where one might be down for several days.
But there was a cost. Instead of managing one server, you were now managing 3. (The original FLEXlm design allowed for up to 11 redundant servers, but we pared that down to 3 very quickly!)
And it was easy to mis-configure your license servers and end up with no redundancy – for example, by NFS-mounting a license file from a single file server that all 3 servers would read, in order to simplify configuration. Of course, this leaves you with a single point of failure, which completely defeats the purpose of redundant servers. Another more subtle way to defeat redundancy is to have all 3 servers writing log files to the same filesystem. In short, it was fairly easy to make a small mistake and have no redundancy as a result. Most of the work and none of the benefit.
But times have changed. It’s now rare to see a system down for days at a time. I maintain that redundant servers long ago outlived their usefulness. Today, partitioning licenses across 2 or more servers prevents total loss of licenses in the event of license server hardware failure, and simplifies administration.
It’s like the old joke: Patient: “every time I smash my head against the wall, it hurts”. Doctor: “don’t do that.”
Redundant servers – their time has long passed.
It’s interesting to run onto your blog after seeing your name accross many Flexlm source files. I was wondering if you had come accross the new Activation API from the Flex team at Macrovision, which is some sort of blend between Safecast and the Flexible API? If so, I’d like to see your thoughts posted on your blog.
Also would be curious on your thoughts on “queues” that RLM uses, and how this influenced your distributed model architecture.
Given the current design of the Redundant server system I would agree.
But some users do want to consolidate their licenses on a single location to provide 100% availability.
What are your thoughts on having an architecture where you have a server managing a set of servers to provide load balancing and redundancy?