应用Linux上的OpenLDAP集群

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  Linux服务器具有低成本、性能卓越、代码开放等特性。越来越多的企业正在准备或已经采用Linux担起了企业应用服务器的重任。本文要介绍的是笔者在实际工作中,采用Linux和其它开放套件共同部署高可靠性LDAP认证服务的实例。

  系统所要用到的软件包括:

  ◆ Red Hat 7.2;

  ◆ OpenLDAP 2.1,www.openldap.org;

  ◆ Heartbeat 1.04,www.linux-ha.org。

  合理的流程提供高可靠性

  OpenLDAP在该系统的网络应用体系中用于对所有应用提供统一的身份认证服务,还包括如邮件路由、地址、联系人信息等其它信息的查询。LDAP作为一种特殊的数据库,通过对读取、查询操作进行特别的优化和处理,以保证在查询速度方面的优势,所以特别适合用来统一企业的各种认证服务,从而规范各种业务系统的同一登录身份和口令。当然,它的缺点和优点一样明显,比如不善于update、insert等操作,但是如果把它作为中央认证数据库,则正好可以利用它的长处而回避它的弱点。

  由于系统采用了LDAP作为所有应用的中央认证数据库,一旦该LDAP服务器失效,则系统网络环境中所有依赖于该数据库的应用都会受到影响,甚至停止提供相应的服务。为了避免这种情况的发生,就要通过两台LDAP服务器建立一个高可靠性的认证数据库集群,同时对其它应用系统提供统一的数据库访问网络接口。

  整个系统分为三层:应用服务器、数据库中间引擎和OpenLDAP数据库集群。所有的应用服务器通过数据库中间引擎(midd)来访问192.168.1.200,并通过这一统一的数据库网络接口来访问LDAP数据库。对于系统的要求是,正常情况下master服务器(192.168.1.100)绑定在192.168.1.200上提供服务,slave服务器处于备机状态,一旦master发生故障,slave 能够自动接管任务,同时通过某种通信方式通知系统管理员(如邮件、手机短信)。

  这里,midd数据库中间引擎是根据需要编写的一个简单工具,使用它要达到以下几个目的:

  ◆ 统一应用服务器上的应用程序访问各种数据库的接口。例如,以后有可能将后台的LDAP数据库换为其它数据库,如Oracle等,这时只需要更改midd的配置文件,而不需要对应用程序进行任何更改。

  ◆ 通过采用进程池的方式来提供应用程序的查询速度。midd能通过对前端应用程序的访问负载,自动调节进程池的进程数量。同时进程池中的每个进程和后台的LDAP数据库保持一个长连接,这样可以避免一般条件下每次查询都要开一个连接的资源浪费和延时。

  ◆ 每个应用服务器上都部署一个midd。这样应用程序每次请求的时候都是通过本地IPC与midd进行通信,避免了TCP方式连接的开销。

  ◆ midd在两台LDAP数据库active-active模式下的应用模式。midd根据启动时的参数能够自动区别读、写请求,会将写请求分配到 Master LDAP数据库上,这是由于Slave LDAP数据库只能进行读操作。在整个网络负载大、两台LDAP数据库同时提供服务的情况下,使用midd的这一模式,可以避免Slave LDAP数据库不能更改数据导致两台服务器不能保持数据同步的问题。

  根据以上流程的要求,系统必须解决两个问题,首先是由于作为LDAP数据库的两台服务器并没有实现存储共享,因此要求 master和slave两台数据库服务器的数据必须实时同步,才能保证一旦slave接管任务后能够提供完整的服务。其次,master和slave必须能够实时检测对方的健康状态,一旦发现对方有故障,自己能够接管各种任务,包括切换虚拟IP地址、LDAP服务(变为主LDAP服务,意味着其能对写进行操作,从而要求master服务器恢复后必须先和slave进行一次数据同步),以及通过rsh方式来执行其它远程应用服务器上的midd启动模式(在 active-active模式下)。

  下面就将解决以上数据同步和任务接管两个问题。

  主、从LDAP服务器的数据同步

  OpenLDAP本身提供了一种复制机制来保证网络上主、从节点之间的数据同步。slurpd守护程序实现了这一功能,它通过定期活动检查主服务器master上的日志文件,检查master上的数据是否有更新。如果有更新,那么把更新的数据传递到各个从服务器。读(查询)请求可以由LDAP数据群中的任一服务器应答,但写操作(update、insert)只能在主服务器master上进行,这就是为什么midd数据库中间引擎必须采用不同的启动模式来处理读写的原因。

  下面主要说明主、从LDAP服务器的配置过程。有关OpenLDAP的安装过程可以查看http://www.openldap.org上的安装文档,本文不再赘述。将OpenLDAP安装到两台服务器上,并对它们分别进行主、从配置。

[1][2][3][4]

下午某时,天气晴,我在某地,想念你。

应用Linux上的OpenLDAP集群

相关文章:

你感兴趣的文章:

标签云: