Don't just build a Domino server on IBM i. Build two or three Domino servers and cluster them!
Have you ever seen the Mel Brooks comedy Spaceballs? There's a scene where Dark Helmet and Colonel Sandurz (played by Rick Moranis and George Wyner, respectively) take their spaceship called Spaceball One through light speed all the way up to "ludicrous speed." In the world of performance computing and platform-specific features, running Domino on any other platform than IBM i would be the equivalent to light speed. As Dark Helmet says, "No. No. No. Light speed is too slow!"
One of the great things about running IBM Lotus Domino on IBM i is the ability to run multiple Domino servers independently from one another. While other operating systems have just begun to support this, IBM i has been doing it since the early 1990s on its great-grandfather OS/400.
The ability to run 99 Domino servers in a single partition is nothing new, but what makes this a rock solid solution is the ability to do high availability clustering between those servers. What an idea!
Creating a Cluster
A cluster is a collection of Domino servers deployed to ensure users have constant access to data. This means email or any other applications you run on your Domino servers will be accessible in a high availability environment. The servers in a cluster, called cluster mates, each have replicas of databases that you want to keep in sync with one another. If a Lotus Notes user is in his email and his primary mail server goes down, the Notes client will automatically fail over to a cluster mate in order for the user to get his email. Ideally, this transition should be transparent to a user.
It's very simple to do. If you're starting from scratch, then build your first Domino server. It will, by default, run in subsystem DOMINO01. Then you add other servers and eventually create the cluster. This is the same as putting a cluster on a few separate servers except you're doing it on one IBM i partition.
This allows you the following unmatched benefits:
Security
Security on IBM i is second to none. Every now and then, in bulletins, I hear about platform holes that need to be plugged. Oh, how I love seeing the little asterisks at the bottom that say something like "does not apply to IBM i." Just because there's a hole that needs plugging in PHP, it doesn't mean that the hole affects your IBM i if you run PHP natively. IBM i's object-based design makes it impervious to malicious code and viruses. Detractors may make excuses, but if you find me an instance of IBM i being damaged by malicious code, then please speak up. I've been waiting a long time. IBM i administrators don't download patches to plug holes every few days like Windows administrators. We don't need to.
I won't go into the subject of security because of the oodles of information on it already, but I'll advise you that the IBM i Security Guide is a great start.
Stability
Come on. IBM i is more stable than Ward Cleaver with too much starch in his shirt.
My Domino servers go down 99.999% of the time only because I intended it to happen. Over the years, numerous studies have declared IBM i the clear winner in terms of up-time over AIX, Windows, Linux on x86-64, Power Linux, and even zOS. Yes, zOS. That's no small potatoes. Do you ever tout that your primary business system is more stable than a mainframe? Go tell your boss tomorrow. You've earned it.
Up-time of one Domino server on IBM i is unmatched. Two is absolutely bulletproof. Hell, why not add a tertiary system for even more resiliency? Some may think that's way too much overkill, but I disagree. With three clustered Domino servers, you're always having two servers up at all times in case of a failure or, most likely, an upgrade or backup. Chances are, you may have more disk and memory than you need and can spare a little for more Domino servers. Since those other two Domino servers will be fairly idle as they're not accepting client connections (only server-to-server cluster replication), then it's not too much overhead at all. If you can think of a better way to ensure up-time on a single IBM i partition, I'd love to hear about it. In fact, email me at
Scalability
Benchmark tests from a few years ago show a Domino release 6 server on a dual-core System i Model 520 handling 28,000 users with a 92 millisecond response time. Does that sound like a machine you've had experience with? Probably. It was a lower end machine at that time. How does it scale upward? Well, a model 595 16-way system handled 175,000 users with a 33 millisecond response time. That's six years ago on Power5 processor technology, not modern POWER7 processors. Also, modern Domino 8.5.x server code is far more efficient now than in the past, which begs for some new benchmark tests. I'd bet that modern Power Systems hardware running IBM i 7.1 and Domino 8.5.3 servers will blow those very impressive six-year-old benchmark tests right out of the water. Personally, we run our RPG-based business applications, Domino for email/applications, IBM Quickr for document management, IBM Sametime Standard for instant messaging and Web meetings, Zend PHP server, and a whole other raft of services on our little Power Systems 720 Express. That's an entry-level server with a ton of horsepower. Compare the specs on that system with an entry-level AS/400 model 170 with 30 CPW to support 1300 email users that was an oft-sold system as a Dedicated Server for Domino many years ago. Don't believe me? Check the Redpaper on the old girl.
Ease of Installation/Upgrade
Let's say you already have a Domino server running on IBM i. How fast can you create a brand new cluster mate? How fast can you upgrade a few of them? Well, once you've registered the server using Domino Administrator (which takes the same amount of time no matter what platform), creating a Domino server takes literally a matter of seconds. Since you already have the Domino licensed program installed on your IBM i, it's just a matter of using the CFGDOMSVR *ADD command, which creates the new server right away. You don't have to load any media or download images.
If you want to upgrade a Domino server to a level that's already loaded on your system, it's just a matter of using a single command. Again, no downloading or fiddling with media. Below, I'll upgrade the Domino server called mail1 to Domino release 8.5.3.
UPDDOMSVR SERVER('mail1') TORLS('8.5.3')
I pour, not drink, a cup of coffee, and it's done.
Miscellaneous
I can run multiple versions of Domino alongside each other on the same IBM i partition. This means I can upgrade one server in the cluster without affecting the others. If I have problems, I can just take it offline.
If you're running Domino transactional logging, you don't need a separate disk array on IBM i.
Communication between cluster mates, or just Domino servers on IBM i in general, is via the system bus. I don't have hardware like cables or switches in the middle, which means fewer points of failure and communication at 6 Gbps. That's pretty darn impressive.
You don't need to worry about buying operating system licenses for x86-64 based Domino servers that can't handle the workload of your one Power Systems server running IBM i. Take that savings and justify yourself a new executive-style office chair. I did a few years ago, much to the chagrin of my manager.
How Do We Do It Then?
It's very simple. I'll take it for granted that you already have one Domino server running on IBM i. With that being said, you need to do the following (in very basic terms):
- Register the new server (or servers) in the Domino Administrator client.
- Set up new IP addresses and host names for the two new servers and optionally use different Ethernet ports for each of these addresses. This will offer you more protection in the odd chance you have one Ethernet port fail.
- Create your new servers using the CFGDOMSVR *ADD command and specify ADVSVC *PARTITION *CLUSTER.
- Ensure you do a CFGDOMSVR and specify ADVSVC *PARTITION *CLUSTER on the primary Domino server.
- Set up scheduled replication between all servers.
- Replicate "like" databases from the primary server to the two new ones. If you want to provide high availability for email, replicate all mail databases to the two new servers.
- Create a new cluster in the Domino Administrator client.
- Add the two new servers to the cluster.
- Make sure you add the HidePromptFailoverInc=1 notes.ini variable on your Domino servers. This will ensure users are not prompted to switch to a replica on another server if their primary server is unavailable.
I'm fairly certain that IBM fully supports, with Collaboration Express entitlement, clustering your servers as long as you have all clients communicating to one server at a time. If you have half of your users on one Domino server and the other half on another, you may need to purchase full Enterprise entitlement. Please get clarification from your IBM Business Partner to ensure you can get support from IBM if you need it.
That's about it. Please read the documentation on clustering in your Domino administrator client for step-by-step instructions and best practices. Each environment is different, so plan with yours in mind.
With all of these fantastic benefits, launching a clustered solution directly on your IBM i is the equivalent of Domino servers working at "ludicrous speed."
One More Thing…
I'd like to offer a quick plug to Trevor Perry and his 20i2 campaign. Mr. Perry has launched a survey to determine how we, as IBM i enthusiasts, perceive the platform. As a show of IBM i community support, please take a couple of minutes to complete the survey. Thanks!
LATEST COMMENTS
MC Press Online