Friday, 13 April 2012

High Availability for Lotus iNotes Installation

High Availability for Lotus iNotes Installation

I am looking for various options available for achieving High Availability with Lotus iNotes installation. The article outlines the options available, work that Domino experts have done and the best option that suits my requirement.

Following available options are possible:

1. ICM (Internet Cluster Manager): ICM only provides initial redirect to correct Domino Web Server. But once user has opened a webpage and server goes down, user has to manually switch the URL to point to the other server or browse the ICM URL again.
http://www-12.lotus.com/ldd/doc/domino_notes/Rnext/help6_admin.nsf/c1f2605b7be6a95985256b870069c0a8/36fd13678096637585256c1d0039a59b?OpenDocument

2. Hardware based Load Balancer

3. Software based Load Balancer: 

Following two options are possible with Domino: Websphere Edge Proxy Server and Apache Web Server. In this article, we'll use Apache Web Server for Reverse Proxy and Load Balancer configuration. 

It seems like Daniel has already done all the hard work.. He has published a great series on the same topic !! The article is in Spanish, but can easily be translated in English via Google Translate. Please copy the code from Original version only.. 

http://www.noteros.com/inotes-apache-reverse-proxy/

http://www.noteros.com/inotes-con-reverse-proxy-apache-parte-2/

http://www.noteros.com/inotes-con-reverse-proxy-apache-parte-3/

http://www.noteros.com/inotes-con-reverse-proxy-apache-parte-4/

I setup the following piece of code in httpd.conf: 

I setup two Domino Clusters as follows: 

Cluster1 - Server1, Server2

Cluster2 - Server3, Server4

<Proxy balancer://Cluster1/>

BalancerMember http://server1.demo.com:80/ route=Server1

BalancerMember http://server2.demo.com:80/ route=Server2

ProxySet lbmethod=byrequests

</Proxy>

 

<Proxy balancer://Cluster2/>

BalancerMember http://server3.demo.com:80/ route=Server3

BalancerMember http://server4.demo.com:80/ route=Server4

ProxySet lbmethod=byrequests

</Proxy>

 

ProxyPass / balancer://Cluster1/ stickysession=inotesses nofailover=Off

ProxyPassReverse / http://server1.demo.com/ 

ProxyPassReverse / http://server2.demo.com/ 

 

ProxyPass / balancer://Cluster2/ stickysession=inotesses nofailover=Off

ProxyPassReverse / http://server3.demo.com/ 

ProxyPassReverse / http://server4.demo.com/ 

 

RewriteCond %{HTTP_COOKIE} _clusterses=Cluster1 [NC]

RewriteRule ^/((mail|iNotes|icons|domjava)/.*)$ balancer://Cluster1/$1 [P]

 

RewriteCond %{HTTP_COOKIE} _clusterses=Cluster2 [NC]

RewriteRule ^/((mail|iNotes|icons|domjava)/.*)$ balancer://Cluster2/$1 [P]

 

Reference:

https://www.ibm.com/developerworks/mydeveloperworks/blogs/gvkempen/entry/configuring_inotes_reversed_proxy_using_apache_on_ubuntu?lang=en

http://www-10.lotus.com/ldd/dominowiki.nsf/dx/using-apache-as-a-reverse-proxy-and-load-balancer-for-domino-clustered-servers

http://www.ibm.com/developerworks/lotus/library/inotes-avail/index.html

http://www-10.lotus.com/ldd/dominowiki.nsf/dx/iNotes_High_Availability_Configuration#Why+prefer+Load+Balancer+to+ICM+solution

http://socialaboration.blogspot.in/2010/09/ubuntu-as-inotes-reverse-proxybalancer.html