Heartbeat服务搭建高可用集群

时间:2021-05-13 03:13:58

heartbeat服务的配置

1.下载安装心跳软件
(必须得先配置好yum源)

    heartbeat-3.0.4-2.el6.x86_64.rpm
heartbeat-devel-3.0.4-2.el6.x86_64.rpm
heartbeat-libs-3.0.4-2.el6.x86_64.rpm
yum install -y heartbeat-*

2.修改heartbeat配置文件(heartbeat没有健康检查)

cd /etc/ha.d/

目录下的三个文件作用为

ha.cf       Main configuration file(主配置文件)
haresources Resource configuration file(资源定义文件)
authkeys Authentication information(认证文件)

复制主配置文件到/etc/ha.d/才能生效

cd /usr/share/doc/heartbeat-3.0.4/
cp ha.cf authkeys haresources /etc/ha.d/

修改主配置文件(在主节点修改)

cd /etc/ha.d/
vim ha.cf #调用ipfaill插件用于主备切换,实现高可用

文件修改如下

34 logfacility     local0
48 keepalive 2 心跳检测的频率
56 deadtime 30 多久不响应认定死亡
61 warntime 10 多久警告一次
71 initdead 60 初始化时间
76 udpport 733 端口连接
91 bcast eth0 广播发送的硬件
157 auto_failback on 自动回切
211 node server1
212 node server4 节点的主机号
220 ping 172.25.40.250
253 respawn hacluster /usr/lib64/heartbeat/ipfail(64位)
259 apiauth ipfail gid=haclient uid=hacluster api认证,在装rpm包时候,用户已经被创建

修改认证文件

cd /etc/ha.d/
vim authkeys

文件修改如下

23 auth 1
24 1 crc

随后修改权限

 chmod 600 authkeys #认证key需要600权限

修改资源定义文件

cd /etc/ha.d/       
vim haresources

修改如下

151 server1 IPaddr::172.25.39.100/24/eth0 httpd #IPaddr:资源脚本名;后面传参(】eth0:vip生效的地方

3.发送相同的三个文件到server4

scp ha.cf authkeys haresources server4:/etc/ha.d/

4.两个节点上开启heartbeat服务

/etc/init.d/heartbeat start

5.测试:

vim /var/www/html/index.html #编写好测试页
(/etc/init.d/heartbeat stop
/etc/init.d/heartbeat start)

高可用与负载均衡的整合

lvs(linuxvirtualserver)虚拟主机
虚拟主机server1
真实主机server2 server3
搭建主要为DR模式
1.安装rpm包ldirectord-3.9.5-3.1.x86_64.rpm

yum install ldirectord-3.9.5-3.1.x86_64.rpm -y
  1. 在目录下复制文件
cd /usr/share/doc/ldirectord-3.9.5/
cp ldirectord.cf /etc/ha.d/ #只有在这个目录下才能生效

3.两个节点关闭心跳服务

 /etc/init.d/heartbeat stop

4.安装ipvsadm

 yum install -y ipvsadm
ipvsadm -L #查看策略

5.添加策略

ip addr add 172.25.39.100/24 dev eth0 #把100加到eth0上

包括两个提供httpd的真实主机上也需要进行以上操作
三台主机也要加

ipvsadm -A -t 172.25.39.100:80 -s rr #rr是负载均衡算法(轮询)
ipvsadm -a -t 172.25.39.100:80 -r 172.25.39.3:80 -g
ipvsadm -a -t 172.25.39.100:80 -r 172.25.39.2:80 -g #添加两个真实主机
/etc/init.d/ipvsadm save #保存策略
/etc/init.d/ipvsadm start #开启服务

6.在server2和server3两个真实主机上进行如下操作

/etc/init.d/httpd start #开启httpd服务
yum install -y arptables_jf #针对arp协议的火墙
arptables -L #查看策略

更改策略

   arptables -A IN -d 172.25.39.100 -j DROP #丢弃到100的请求,防止IP冲突
arptables -A OUT -s 172.25.39.100 -j mangle --mangle-ip-s 172.25.40.2 #出去的时候使用真实主机的IP,3上写3
/etc/init.d/arptables_jf save #保存策略
arptables -nL #查看

7.测试:在物理机上查看100连接点

arp -an | grep 100  #结果需要为提供虚拟服务器的主机mac地址

curl 172.25.40.100
出现轮询

curl 172.25.39.100
<h1> server2 </h1>
curl 172.25.39.100
<h1> server3 </h1>

使用ldirectord完成高可用和负载均衡的整合

1.在主节点
安装ldirector组件后,关闭心跳服务,修改配置文件

/etc/init.d/heartbeat stop
cd /etc/ha.d/
vim ldirectord.cf

修改如下

25 virtual=172.25.39.100:80 #VIP
26 real=172.25.39.2:80 gate #两台真实服务器的IP
27 real=172.25.39.3:80 gate
28 fallback=127.0.0.1:80 gate #如果真实主机挂掉后,选择自己来提供服务
29 service=http
30 scheduler=rr
31 #persistent=600
32 #netmask=255.255.255.255
33 protocol=tcp
34 checktype=negotiate
35 checkport=80
36 request="index.html"
37 # receive="Test Page"
38 # virtualhost=www.x.y.z
/etc/init.d/ldirectord start #开启服务

2.分别在server2和server3上关掉http,在server1上打开httpd服务测试

curl 172.25.40.100
<h1>please wait </h1>

编写配置文件

cd /etc/ha.d/
vim haresources

将ldirectord服务放入高可用里面
编写如下

server1 IPaddr::172.25.39.100/24/eth0 httpd ldirectord #可以自动开启健康检查的服务

5.打开心跳

/etc/init.d/heartbeat start

6.测试

curl 172.25.39.100
arp -an | grep 100