本章主要配置heartbeat v2基于crm+hb_gui接口,配置高可用+ipvs负载均衡集群。

Heartbeat


如何安装heartbeat v2、httpd、nfs、配置心跳连接、ssh密钥通信、同步时间、添加名称解析、配置yum源等请参照:

>> Linux高可用集群方案之配置heartbeat v2基于haresources配置文件的httpd高可用集群

http://ccschan.blog.51cto.com/11854461/1922966


 ll  本文导航 

  · 前期准备

  · 基于crm+hb_gui接口配置ipvs高可用集群

  · 基于crm+hb_gui+ldirectord接口配置ipvs高可用集群


  前期准备 

1、heartbeat服务主机规划

主机接口ip服务用途
node1.chanedu.cometh0192.168.1.131

heartbeat

httpd

ipvs

ipvsadm

LAN数据转发
心跳信息链路

Director Server

eth0:0为配置ip为VIP,提供给客户端访问http


eth1192.168.2.131

eth0:0192.168.1.161
node1.chanedu.cometh0192.168.1.132

heartbeat

httpd

ipvs

ipvsadm

LAN数据转发

心跳信息链路

directore

eth0:0为配置ip为VIP,提供给客户端访问


eth1192.168.2.132

eth0:0192.168.1.161
rs1.chanedu.cometh0192.168.1.150httpd

LAN数据转发

Real Server

lo:0为配置ip为VIP

lo:0192.168.1.161
rs2.chanedu.cometh0192.168.1.10httpd

LAN数据转发

Real Server

lo:0为配置ip为VIP


lo:0192.168.1.161


2、集群架构

wKiom1khqzHSdY9iAAP5y38JA3Y746.jpg



  基于crm+hb_gui接口配置ipvs高可用集群 

在rs1和rs2安装httpd并保存能正常访问,然后设置参数,配置VIP,添加路由

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
# ifconfig lo:0 192.168.1.161 netmask 255.255.255.255 broadcast 192.168.1.161 up
# route add -host 192.168.1.161 dev lo:0



在node1和node2上分别安装ipvsadm。

基于DR模型配置director

关闭防火墙,配置VIP,添加路由,配置集群

# yum -y install ipvsadm
# iptables -t filter -F
# ifconfig eth0:0 192.168.1.161 netmask 255.255.255.255 broadcast 192.168.1.161 up
# route add -host 192.168.1.161 dev eth0:0

在node1和node2上分别配置集群服务并保存集群的配置信息至/etc/sysconfig/ipvsadm

而后清除集群

# ipvsadm -A -t 192.168.1.161:80 -s rr
# ipvsadm -a -t 192.168.1.161:80 -r 192.168.1.150 -g -w 1
# ipvsadm -a -t 192.168.1.161:80 -r 192.168.1.10 -g -w 2
# ipvsadm-save > /etc/sysconfig/ipvsadm
# ipvsadm -C


启动node1和node2上的heartbeat服务,并启动hb_gui图形配置界面

[root@node1 ~]# service heartbeat start
logd is already running
Starting High-Availability services: 
Done.
[root@node1 ~]# ssh node2 'service heartbeat start'
logd is already running
Starting High-Availability services: 
Done.
[root@node1 ~]# hb_gui &

wKiom1kbDcSTdqZSAAC_7twHACs356.png

wKiom1kbHu7g6sJjAADw8j7kchk271.png

wKioL1kbDcWC7HK8AAEE-guLvMo326.png

wKiom1kbDcXSDIhcAABC-EX-vgQ565.png

wKioL1kbDcayJG2qAACjy3VQWr4939.png

wKiom1kbDcbwWY5yAAEQvDBxSn4115.png

wKioL1kbDcbzko8HAAAku6CPVug829.png


  基于crm+hb_gui+ldirectord接口配置ipvs高可用集群 

1、将上面的高可用集群信息所配置的资源都删除,停止heartbeat,并将node1和node2上的ipvs配置文件/etc/sysconfig/ipvsadm删除。

[root@node1 ~]# service heartbeat stop
Stopping High-Availability services: 
Done.
[root@node1 ~]# ssh node2 'service heartbeat stop'
Stopping High-Availability services: 
Done.
[root@node1 ~]# rm /etc/sysconfig/ipvsadm
rm: remove regular file `/etc/sysconfig/ipvsadm'? y
[root@node1 ~]# ssh node2 'rm /etc/sysconfig/ipvsadm'

2、在node1和node2上分别安装ldirectord组件

在node1上安装,直接rpm安装不成功,需要解决依赖关系,改为yum安装,可解决依赖关系

[root@node1 heartbeat_v2]# rpm -ivh heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm 

error: Failed dependencies:

perl(Mail::Send) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64

[root@node1 heartbeat_v2]# yum -y install heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm 


[root@node2 heartbeat_v2]# yum -y install heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm


3、复制配置文件

在node1上将/usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf复制到/etc/ha.d/目录下。

wKioL1kbGIXyUCYyAAAX9HpqQZs712.png

# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
# cat /etc/ha.d/ldirectord.cf | grep -E -v '^#|^$'
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=yes
virtual=192.168.1.161:80
	real=192.168.1.10:80 gate
	real=192.168.1.150:80 gate
 	fallback=127.0.0.1:80 gate
	service=http
	request=".health.html"
	receive="OK"
	scheduler=rr
	#persistent=600
	#netmask=255.255.255.255
# scp /etc/ha.d/ldirectord.cf node2:/etc/ha.d/
# scp /etc/ha.d/ldirectord.cf node2:/etc/ha.d/
ldirectord.cf                                            100% 7500     7.3KB/s   00:0

4、在node1和node2启动httpd,并创建内容为Maintenance Time的.health.html页面,当RS都不在线时,将在客户端显示此页面内容。

将httpd.conf配置文件中的Directored Index项的第一个位置修改为.health.html页面

# service httpd start
# vim /var/www/html/.health.html
# cat /var/www/html/.health.html
<h1>Maintenance Time</h1>

5、在rs1和rs2启动httpd,并创建内容为OK的.health.html页面,这个页面是指RS的健康状态检测页

# service httpd start
# vim /var/www/html/.health.html
# cat /var/www/html/.health.html
OK

6、配置高可用集群

新建名为ipvs_service的资源组

wKiom1kbJPXw8MwQAADeiBNT890234.png

配置vip资源

wKioL1kbJPajAkLhAADw8j7kchk694.png

配置ldirectord,指定configfile文件的位置为/etc/ha.d/ldirectord.cf

wKiom1kbJPawK4k9AAC1xy_3Tsk457.png

启动ipvs_service资源组

wKioL1kbJPfjyAgZAAEFhhDtBa4936.png

客户端访问

wKiom1kcWkizUuXoAAAcppn3280555.pngwKiom1kcWkjAgosyAAAc5D_jGX4768.png


让RS1和RS2下线。

wKioL1kcWkmQLSUwAAAjiKPuZG0050.png