应用Linux上的OpenLDAP集群应用Word格式.docx

上传人:b****4 文档编号:6296765 上传时间:2023-05-06 格式:DOCX 页数:15 大小:33.47KB
下载 相关 举报
应用Linux上的OpenLDAP集群应用Word格式.docx_第1页
第1页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第2页
第2页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第3页
第3页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第4页
第4页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第5页
第5页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第6页
第6页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第7页
第7页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第8页
第8页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第9页
第9页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第10页
第10页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第11页
第11页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第12页
第12页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第13页
第13页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第14页
第14页 / 共15页
应用Linux上的OpenLDAP集群应用Word格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

应用Linux上的OpenLDAP集群应用Word格式.docx

《应用Linux上的OpenLDAP集群应用Word格式.docx》由会员分享,可在线阅读,更多相关《应用Linux上的OpenLDAP集群应用Word格式.docx(15页珍藏版)》请在冰点文库上搜索。

应用Linux上的OpenLDAP集群应用Word格式.docx

例如,以后有可能将后台的LDAP数据库换为其它数据库,如Oracle等,这时只需要更改midd的配置文件,而不需要对应用程序进行任何更改。

◆通过采用进程池的方式来提供应用程序的查询速度。

midd能通过对前端应用程序的访问负载,自动调节进程池的进程数量。

同时进程池中的每个进程和后台的LDAP数据库保持一个长连接,这样可以避免一般条件下每次查询都要开一个连接的资源浪费和延时。

◆每个应用服务器上都部署一个midd。

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

◆midd在两台LDAP数据库active-active模式下的应用模式。

midd根据启动时的参数能够自动区别读、写请求,会将写请求分配到MasterLDAP数据库上,这是由于SlaveLDAP数据库只能进行读操作。

在整个网络负载大、两台LDAP数据库同时提供服务的情况下,使用midd的这一模式,可以避免SlaveLDAP数据库不能更改数据导致两台服务器不能保持数据同步的问题。

根据以上流程的要求,系统必须解决两个问题,首先是由于作为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.主LDAP服务器(master)上的配置文件如下,这是一个简单的配置例子。

配置文件名:

slapd.conf

文件内容:

include/Opt/LDAP/etc/openldap/schema/core.schema

include/Opt/LDAP/etc/openldap/schema/corba.schema

include/Opt/LDAP/etc/openldap/schema/cosine.schema

include/Opt/LDAP/etc/openldap/schema/inetorgperson.schema

include/Opt/LDAP/etc/openldap/schema/java.schema

include/Opt/LDAP/etc/openldap/schema/nis.schema

include/Opt/LDAP/etc/openldap/schema/misc.schema

include/Opt/LDAP/etc/openldap/schema/mail.schema

include/Opt/LDAP/etc/openldap/schema/openldap.schema

accessto*

byselfwrite

bydn.base="

cn=Manager,dc=yourdomain,dc=com"

write

by*read

pidfile/Opt/LDAP/var/slapd.pid

argsfile/Opt/LDAP/var/slapd.args

#ldbmdatabasedefinitions

#databasebdb

databaseldbm

suffix"

dc=yourdomain,dc=com"

rootdn"

#Cleartextpasswords,especiallyfortherootdn,should

#beavoid.Seeslappasswd(8)andslapd.conf(5)fordetails.

#Useofstrongauthenticationencouraged.

rootpwtest

#ThedatabasedirectoryMUSTexistpriortorunningslapdAND

#shouldonlybeaccessiblebytheslapd/tools.Mode700recommended.

replogfile/Opt/LDAP/var/slapd.replog

directory/Opt/LDAP/var/ldbm

#Indicestomaintain

accesstoattr=userPassword

byanonymousauth

by*none

by*node

indexobjectClasseq

replicahost=slave:

389

binddn="

bindmethod=simplecredentials=test

∙ 

2.从LDAP服务器(slave)上的配置文件。

slapd.conf

#replogfile/Opt/LDAP/var/slapd.replog

byselfread

bydn="

updatedn"

分别对主、从LDAP数据库进行配置后,初始化主LDAP数据库中的数据,可以利用OpenLDAP本身提供的工具完成。

3.数据同步。

在运行主、从模式前,必须先将主、从LDAP服务器上的数据同步。

可以通过把master上的数据文件(本例中是ldbm目录下的所有文件)直接拷贝到从LDAP服务器上,实现节点数据的完全一致。

4.启动服务

分别启动服务,测试数据的同步是否有效。

先启动主LDAP服务器上的两个进程:

#/opt/LDAP/libexec/slapd-f/opt/LDAP/etc/openldap/slapd.conf-d5>

/dev/null2>

&

1&

#/opt/LDAP/libexec/slurpd-f/opt/LDAP/etc/openldap/slapd.conf-d5>

然后启动从LDAP服务器上的进程:

对主LDAP服务器上的数据进行各种更新操作,包括增加、删除、修改等动作,然后在从LDAP服务器上查看数据是否保持与主LDAP服务器同步更新。

通过以上测试,主、从LDAP数据库服务器已经达到了数据同步复制的效果。

∙使用Heartbeat实现自动检测和任务接管

1.Linux下HA软件简要介绍

(1)TheHighAvailabilityLinuxProject

其Heartbeat软件不仅可以作为高可靠性的HA软件独立使用,也可以配合其它IP分发器做BalancingCluster应用。

参见http:

//www.linux-ha.org。

(2)Lifekeeper

Lifekeeper是一款著名的高可靠性软件,能支持32个节点的应用,支持Linux、x86Solaris和Windows等操作系统。

参见

(3)SRRD

SRRD(ServiceRoutingRedundancyDaemon),支持PKI、SSL的通信认证。

//srrd.org/。

这里选择Linux-HA提供的HeartbeatHA软件来实现该系统的高可靠性,软件名Heartbeat,当前最新版本为1.2。

Heartbeat通过监控几个节点的状态来进行管理操作,监控方式支持串行线和以太网作为媒介的通信,这里使用以太网链路。

在集群中的每个节点运行一个守护程序进程,名为heartbeat。

主守护程序派生子进程,以对每个heartbeat媒介进行读写,并派生状态进程。

当检测到节点终止时,heartbeat运行Shell脚本实现资源任务的切换和接管,从而保证了整个系统的高可靠性。

2.下载安装Heartbeat

可以从http:

//www.linux-ha.org/download/下载最新的安装包,包括src和rpm。

本例下载了heartbeat-1.0.4.tar.gz包进行安装,具体操作如下:

#./configure-prefix=/opt/ha

#make

#makeinstall

在此过程中,系统可能会提醒安装其它依赖软件包,比如libnet等,按照提示进行下载安装即可。

安装完成后在/opt/ha目录下将产生相关子目录。

进入/opt/ha/etc/ha.d,在该目录下创建以下文件:

ha.cf、authkeys、haresources、myexec。

3.master配置说明:

(1)ha.cf

logfile/var/log/ha-log

logfacilitylocal0

keepalive2

deadtime30

warntime10

initdead120

ucasteth0192.168.1.101

nice_failbackon//保证slave变为master后,

即使master恢复启动服务也不转移,从而保证LDAP数据同步。

nodemaster

nodeslave

(2)authkeys

auth3

3md5test

(3)haresources

master192.168.1.200myexec

(4)进入/opt/ha/etc/ha.d/resource.d,创建执行脚本myexec。

当Heartbeat软件监控到其它节点出现故障时,会执行该脚本并完成以下工作:

如果本机是主LDAP服务器,则必须以某种方式(邮件或手机短信)来通知系统管理员,备用服务器出现故障;

如果是从服务器监控到主服务器不可用状态,则必须以主LDAP模式启动LDAP服务,并通过rsh重新启动远程midd启动模式。

∙主LDAP服务器上的myexec文件内容如下:

MASNODE='

master'

PIDFILE=/Opt/LDAP/var/slapd.pid

APP=/Opt/LDAP/libexec/slapd

SLURP=/Opt/LDAP/libexec/slurpd

MASTER=/Opt/LDAP/etc/openldap/slapd.master.conf

SLAVE=/Opt/LDAP/etc/openldap/slapd.slave.conf

./opt/ha/etc/ha.d/shellfuncs

test_start(){

#firstwekilleverythingpossible

ha_log"

info:

$0:

Starting"

if[-f$PIDFILE];

then

PID=`head-1$PIDFILE`

Appearstoalreadyberunning,killing[$PID]"

kill-9$PID>

/dev/null

rm$PIDFILE

fi

#slurpdshoulddiewhentheslapdprocessdoes,butjustincase:

foriin`ps-ef|grepslurp|grep-vgrep|awk'

{print$2}'

`

do

kill-9$i

done

#slightdelaytoallowforstability

sleep2

#nowwewillattempttostartasamaster

$APP-f$MASTER//启动slapd

if[!

-f$PIDFILE];

warn:

Slapddidnotstartproperly"

#exit1

#Nowwedetermineifthisistheprimaryorsecondarynode

#firstwaitabitforstability

sleep10

#ifwearesecondary,donothing:

otherwise

if[$HA_CURHOST==$MASNODE];

/usr/bin/rshslave'

/opt/ha/etc/ha.d/resource.d/slapd.slave'

&

//启动从服务器上的LDAP

/usr/bin/rshmailserver'

/opt/sbin/midd-mmaster-sslave'

//启动midd

$SLURP-f$MASTER//启动主服务器上的复制进程

else

slavenodeisnotresponding"

}

test_stop(){

Shuttingdown"

#Let'

sbesureit'

sdead,Jim

foriin`ps-ef|grepslap|grep-vgrep|awk'

#Seehowwewerecalled.

case"

$1"

in

start)

test_start

;

;

stop)

test_stop

restart)

$0stop

$0start

status)

echorunning

echostopped

*)

echo"

Usage:

$0{start|stop|restart|status}"

exit1

esac

exit0

(5)创建/opt/ha/etc/ha.d/resource.d/slapd.slave文件。

#/bin/sh

/opt/LDAP/libexec/slapd-f/opt/LDAP/etc/openldap/

slapd.slave.conf-d5>

至此,主服务器配置完成。

slave服务器上的配置和master服务器的完全一样,差别仅在于将“master”改为“slave”。

同时要注意,一是两台服务器上必须能够执行rsh;

二是在几个节点中,能通过设置的主机名互相解析到对方的IP地址。

这样,整个系统的HA就配置完成。

(6)启动heartbeat

首先执行#killslapd,再启动master上的heartbeat:

#/etc/init.d/heartbeatstart

然后启动slave上的heartbeat:

执行#tail-f/var/log/ha-log,确定服务是否正常启动。

如果正常运行,那么当前的状态是master提供主LDAP服务;

slave提供从LDAP服务。

测试

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2