Calendar Server 6.3 and Multiple Directory Servers

I'm working through Calendar Server 6.3 with Directory Server EE 6 (JCS 5) and it occurred to me that it would be a good thing to be able to point Calendar at multiple LDAP servers.

I'm envisioning two DSEE 6 servers running the same version of DSEE, same platform, both with comm_dssetup.pl applied for schema 2.

These servers would essentially be multimaster servers.

I can't find anything in the calendar docs specifically about doing this, I can find info for Communications Express. but this isn't quite the same thing as far as I can tell.

Can this be done in ics.conf?

Should I be using Directory Proxy Server or a hardware load balancer to do this instead - i.e. failover activity in front of the calendar server so to speak but not in the calendar server.

[806 byte] By [nate_keegana] at [2007-11-27 0:38:19]
# 1

Hi,

> I'm working through Calendar Server 6.3 with

> Directory Server EE 6 (JCS 5) and it occurred to me

> that it would be a good thing to be able to point

> Calendar at multiple LDAP servers.

This is theoretically possible, although I haven't tried it myself. This document applied to 6.1 of calendar server but should also apply to 6.3 (although I'm not sure about the final point):

1. Configure the following in ics.conf where ldaphost1 and ldaphost2 are

the names of your failover ldap servers:

local.ugldapuselocal = "yes"

local.authldaphost = "ldaphost1 ldaphost2"

local.ugldaphost = "ldaphost1 ldaphost2"

local.ldapconnecttimeout = "30"

2. Because of the increased duration of the LDAP connection timeout, it is possible that you may need to increase the ics.conf start timeout parameters:

! Number of seconds to wait between checking for started,

! stopped, or ready calendar service

service.admin.sleeptime = "10"

!

! Number of seconds to wait for any calendar service to start

service.admin.starttime = "600"

3. You may have to use repeated attempts with start-cal to get ALL the services started.

4. start-cal may incorrectly report a "Failure to start" even though the processes are running. You have to manually check the process status using "ps -ef | grep icsuser" and/or do a "more cal/data/proc/*" to make sure the process is in the "ready" state. Because of the timeout impact, it may take longer than normal to achieve.

> I'm envisioning two DSEE 6 servers running the same

> version of DSEE, same platform, both with

> comm_dssetup.pl applied for schema 2.

>

> These servers would essentially be multimaster

> servers.

Yep, for 6.X you needed to point at a MMR configuration. So for DSEE 6 you get this by default due to the new architecture.

> I can't find anything in the calendar docs

> specifically about doing this, I can find info for

> Communications Express. but this isn't quite the same

> thing as far as I can tell.

Unfortunately not documented. Which is a shame really.

> Should I be using Directory Proxy Server or a

> hardware load balancer to do this instead - i.e.

> failover activity in front of the calendar server so

> to speak but not in the calendar server.

Using a DPS leaves you with the same issue, namely a single-point-of-failure. Try the steps above and see how it goes... if you could provide feedback that would be good for future reference.

Things you could test:

-> starting up the calendar server with the 'primary' host down.

-> using calendar server when the 'primary' host goes down.

-> shutting down calendar server with the 'primary' goes down.

-> having the primary go down, then see if the fail-over and eventually fail-back works.

-> try alternating between primary then secondary then primary going down.

Regards,

Shane.

shane_hjortha at 2007-7-11 22:49:12 > top of Java-index,E-Mail, Calendar, & Collaboration,Sun Java System Calendar Server...
# 2

As part of Comms Express Ldap failover testing, this feature for CS has been tested to some extent.

The two server must be in Master to Master replicated enviornment.

And this is how you specify it in ics.conf:

local.ugldapuselocal = "yes"

local.authldaphost = "ldaphost1 ldaphost2:port2"

local.authldapport = "port1"

local.ugldaphost = "ldaphost1 ldaphost2:port2"

local.ugldapport = "port1"

Restart CS.

The testcases include those mentioned by shane :

-> starting up the calendar server with the 'primary' host down.

-> using calendar server when the 'primary' host goes down.

-> shutting down calendar server with the 'primary' goes down.

-> having the primary go down, then see if the fail-over and eventually fail-back works.

-> try alternating between primary then secondary then primary going down.

Thanks,

Ramya

ramya_ravia at 2007-7-11 22:49:12 > top of Java-index,E-Mail, Calendar, & Collaboration,Sun Java System Calendar Server...
# 3
Thank you both for your responses. I will be testing this and will report back my findings.
nate_keegana at 2007-7-11 22:49:12 > top of Java-index,E-Mail, Calendar, & Collaboration,Sun Java System Calendar Server...
# 4
Anyone successfully configured calendar ldap failover?
uoaa at 2007-7-11 22:49:12 > top of Java-index,E-Mail, Calendar, & Collaboration,Sun Java System Calendar Server...
# 5

I successfully did this today, need to do it again to confirm but here is what I did:

1. LDAP running on multi-master DSEE 6 nodes Marge and Homer for the suffixes o=comms-config, o=pab, o=PiServerDb, and my domain o=foobar.com,o=gov

2. I'm running JCS5 so I setup LDAP failover in all components around Communications Express:

Calendar ics.conf

local.authldaphost="marge homer:389"

local.ugldaphost="marge homer:389"

Restart Calendar services

Messaging Server

configutil -o local.ugldaphost -v "marge homer"

configutil -o local.service.pab.ldaphost -v "marge homer"

configutil -o local.ugldapuselocal -v "yes"

Stop and start Messaging Server services

Access Manager (we use SSO with Comm Express)

vi /etc/opt/SUNWam/config/serverconfig.xml

Add a line like this after 'Server1' line:

<Server name="Server2" host="homer" port="389" type="SIMPLE" />

Stop and start the web container

The AM docs mention this method. In the console there is a place to add additional LDAP servers for authentication:

http://server/amserver/console

Login as amadmin

Choose Configuration tab

Choose 'LDAP' under Authentication

Add my secondary server including port (homer:389)

Save

Doesn't seem to be necessary as I didn't do this in my test. Not sure what this is used for exactly in AM, need to research.

Communications Express

cd /var/opt/SUNWuwc/WEB-INF/config

vi uwcauth.properties and set the following:

ldapusersession.ldapport (should be LDAP port, 389 by default)

ldapusersession.ldaphost to marge.foobar.com,homer.foobar.com

Stop and start the web container

IM - not sure if this is supported or not

Delegated Administrator - not sure if this is supported or not

Logged into CE and then shutdown DSEE on Marge. There was a slight delay when I accessed my calendar but it worked.

Logged out of CE and logged back in with a different user account. Worked fine.

Stopped DSEE on Homer and was unable to login which is expected.

Restarted DSEE on Marge and was able to login and access mail and calendar in CE.

nate_keegana at 2007-7-11 22:49:12 > top of Java-index,E-Mail, Calendar, & Collaboration,Sun Java System Calendar Server...