heartbeat+ldirector 构建高可用LVS-DR集群

上篇文章实现了,脚本自动化管理LVS-DR集群,现在我们通过heartbeat的一个插件ldriector来实现项目功能。(上篇文章链接:)

项目实践:配置LVS Director(WEB LVS)的HA集群,要求:

1、DR模型;

2、能监控后台RealServer的健康状态;

clip_p_w_picpath002

相关网卡配置见上篇文章,这里只说明ldrictor的使用。

 

1安装

需要准备的软件包(已经安装过heartbeat v2):

perl-MaliTools heartbeat-ldirectored

将其放在一个文件夹

yum --nogpgcheck localinstall *.rpm

2.复制ld的配置文件到/etc/ha.d

[root@node1 /]# cd /usr/share/doc/heartbeat-ldirectord-2.1.4/

[root@node1 heartbeat-ldirectord-2.1.4]# ls

COPYING ldirectord.cf README

[root@node1 heartbeat-ldirectord-2.1.4]# cp ldirectord.cf /etc/ha.d/

[root@node1 heartbeat-ldirectord-2.1.4]# cd /etc/ha.d/

[root@node1 ha.d]# ls

authkeys harc ldirectord.cf README.config shellfuncs

ha.cf haresources rc.d resource.d

只需要把LVS需要定义的集群定义到/etc/ha.d/ldirector.cf,不需要ipvsadm来实现

 

3.修改 ldirector

vim ldirector.cf

 

 
  
  1. # 修改配置文件,只启用如下内容  
  2.  
  3. checktimeout=10 
  4.  
  5. # ldirectord等待Realserver健康检查完成的时间,单位为秒;  
  6.  
  7. # 任何原因的检查错误或超过此时间限制,ldirector将会将此Realserver从IPVS表中移除;  
  8.  
  9. checkinterval=2 
  10.  
  11. autoreload=yes  
  12.  
  13. # 此项用来定义ldirectord是否定期每隔一段时间检查此配置文件是否发生改变并自动重新加载此文件;  
  14.  
  15. logfile="/var/log/ldirectord.log" 
  16.  
  17. # 定义日志文件存放位置;  
  18.  
  19. quiescent=yes  
  20.  
  21. # 当某台Realserver出现异常,此项可将其设置为静默状态(即其权重为“0”)从而不再响应客户端的访问请求;  
  22.  
  23. virtual=172.16.14.1:80 
  24.  
  25. # 此项用来定义LVS服务及其使用的VIP和PORT  
  26.  
  27. real=172.16.14.21:80 gate 1 
  28.  
  29. real=172.16.14.22:80 gate 2 
  30.  
  31. real=172.16.14.23:80 gate 3 
  32.  
  33. fallback=127.0.0.1:80 gate  
  34.  
  35. # 当IPVS表没有任何可用的Realserver时,此“地址:端口”作为最后响应的服务;  
  36.  
  37. # 一般指向127.0.0.1,并可以通过一个包含错误信息的页面通知用户服务发生了异常;  
  38.  
  39. service=http  
  40.  
  41. # 定义基于什么服务来测试Realserver;  
  42.  
  43. request="index.html" 
  44.  
  45. receive="Test Page" 
  46.  
  47. scheduler=wlc  
  48.  
  49. protocol=tcp  
  50.  
  51. # 定义此虚拟服务用到的协议;  
  52.  
  53. checktype=negotiate  
  54.  
  55. # ldirectord进程用于监控Realserver的方法;{negotiate|connect|A number|off}  
  56.  
  57. checkport=80 

 

 

在haresource里添加如下行,以启用ldriector

vim haresorce

node1.a.org 172.16.14.1/32/eth0/172.16.14.1 ldirectord::ldirectord.cf

拷贝这两个文件到node2上

scp haresources ldirectord.cf node2:/etc/ha.d

启用服务

/etc/init.d/heartbeat start

ssh node2 -- '/etc/init.d/heartbeat start'

 

 

至此,ldirector配置完成,我只做相关测试而没有配置后台的三个RSS,来看一下效果

clip_p_w_picpath004

由于后台三个RSS就没有开启(相当于当机),ldirictor默认将他们的权重都设为0既不生效,而把本地的80开启,这个外界访问时,将看到一个提示界面(可以自己定义一些内容,比如网站维护中等)