Linux运维进阶-文档总结-高可用集群之heartbeat和lvs

本文介绍如何在Red Hat 6.5环境下部署Heartbeat实现高可用集群,并结合LVS进行负载均衡,同时介绍了Keepalived的安装配置及与LVS的整合,确保服务的高可用性和负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下所有操作都是在Red-hat 6.5上


实验环境:
server1和server4做heartbeat实验。

1.heartbeat

heartbeat是一个开源项目,我们可以通过他的官网下载源代码包编译,这里我们使用rpm包安装了
在server1和server4上安装hreatbeat

安装包:
heartbeat-3.0.4-2.el6.x86_64.rpm        heartbeat-libs-3.0.4-2.el6.x86_64.rpm  
heartbeat-devel-3.0.4-2.el6.x86_64.rpm  ldirectord-3.9.5-3.1.x86_64.rpm 
yum install -y heartbeat-* 
cd /etc/ha.d/ #进入管理hreatbeat目录
vim README.config #查看hreatbeat配置文件,资源分配文件是什么
rpm -q heartbeat -d  #查找配置文件的位置
cd /usr/share/doc/heartbeat-3.0.4/ 
cp ha.cf authkeys haresources /etc/ha.d/ #制作配置文件
cd -
vim ha.cf    #hreatbeat配置文件
34 logfacility     local0  #日志类型
48 keepalive 2         #心跳频率
56 deadtime 30         #死亡时间(达到30s没反应就挂掉)
61 warntime 10         #警告时间
71 initdead 60         #初始化时间
76 udpport 69441       #udp端口(每个人的端口要不一样)
91 bcast   eth0            # Linux
157 auto_failback on       #开启回切
211 node    server1        #节点位置(I只能写server1)
212 node    server4
220 ping 172.25.41.254     #设置ping的网段
253 respawn hacluster /usr/lib64/heartbeat/ipfail #回切(如果是64位系统就写lib64,如果是32就写32)
259 apiauth ipfail gid=haclient uid=hacluster #给定uid和gid(在安装hraet的时候就给定uid和gid)

vim authkeys(密钥文件)
23 auth 1
24 1 crc
chmod 600 authkeys #密钥文件必须给定600才能使用

vim haresources
150 server1 IPaddr::172.25.41.100/24/eth0 httpd (server1在server4上不用改,在写上http参数后,测试的后,就不能开启httpd)

scp ha.cf authkeys haresources root@172.25.41.4:/etc/ha.d/ #将写好的配置为文件发到server4上
/etc/init.d/heartbeat start #打开hreatbeat

2.lvs负载均衡(轮叫)

 刷掉arp缓存命令是 arp -d IP
关闭server1和server4的heartbeats 
在server1上 yum install ldirectord -y
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/  
ip addr add 172.25.41.100/32 dev eth0 #在server1,2,3上添加虚拟ip地址
ipvsadm -A -t 172.25.41.100:80 -s rr #添加轮询机制 -A是添加一个虚拟服务,-s是scheduler-method
ipvsadm -a -t 172.25.41.100:80 -r 172.25.41.2:80 -g   -a是添加一个服务  -r是真实服务
ipvsadm -a -t 172.25.41.100:80 -r 172.25.41.3:80 -g
/etc/init.d/ipvsadm save  #保存策略

在server2和server3上操作:
/etc/init.d/httpd start #打开http服务
yum install arptables_jf -y (server2和server3都安装)
server2  
arptables -A IN -d 172.25.41.100 -j DROP  #-d 目的地
arptables -A OUT -s 172.25.41.100 -j mangle --mangle-ip-s 172.25.41.2
/etc/init.d/arptables_jf save   #保存策略

server3
arptables -A IN -d 172.25.41.100 -j DROP
arptables -A OUT -s 172.25.41.100 -j mangle --mangle-ip-s 172.25.41.3
/etc/init.d/arptables_jf save   #保存策略

3.heart+lvs(进行负载均衡,如果server1挂了,server4直接接管,同样进行负载均衡)

刷掉原有ipvsadm的策略

vim /etc/ha.d/ldirectord.cf
 25 virtual=172.25.41.100:80
 26         real=172.25.41.2:80 gate
 27         real=172.25.41.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

vim /etc/ha.d/haresources
150 server1 IPaddr::172.25.41.100/24/eth0 httpd ldirectord #添加ldirectord

在server1上和server4上同时打开heartbeats服务  心跳功能开启
一个机子上开启http和ldirectord,另外一个不开启任何一个服务,但当第一个机子挂了之后,第二台会直接接管

4.keepalived

keepalived:也是高可用的服务,分为一个master和backup,当master挂掉后,直接去backup去搞。

关掉server1和server4的心跳服务,关闭httpd ldirectord
tar zxf keepalived-1.2.8.tar.gz  #解压  
cd keepalived-1.2.8
./configure --prefix=/usr/local/keepalived  #在编译的时候,要解决依赖源的问题,根据后面的提示,直接yum安转软件就好。

make && make insatall #安装
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
chmod +x /etc/init.d/keepalived

在安装好keepalived的时候,不用在server4上编译安装,直接将server1上装好的,scp过去
scp -r /usr/local/keepalived/ root@172.25.77.4:/usr/local/

做软连接(server1和server4)
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/  做配置文件

vim /etc/keepalived/keepalived.conf
 1 ! Configuration File for keepalived
  2 
  3 global_defs {
  4    notification_email {
  5         root@localhost  #接收警报的 email 地址,可以添加多个
  6    }
  7 
  8    notification_email_from keepalived@server1
  9    smtp_server 127.0.0.1    #使用本机转发 email
 10    smtp_connect_timeout 30
 11    router_id LVS_DEVEL      #load balancer 的标识 ID,用于 email 警报
 12 }
 13 
 14 vrrp_instance VI_1 {
 15     state MASTER            #备机改为 BACKUP,此状态是由 priority 的值来决定的,当前 priority的值小于备机的值,那么将会失去 MASTER 状
 16     interface eth0          #HA 监测网络接口
 17     virtual_router_id 77    #主、备机的 virtual_router_id 必须相同(不要跟别人的重复,用自己ip数)
 18     priority 100            #主机的优先级,备份机改为 50
 19     advert_int 1            #主备之间的通告间隔秒数
 20     authentication {        #主备切换时的验证
 21         auth_type PASS
 22         auth_pass 1111
 23     }
 24     virtual_ipaddress {     #HA 虚拟 ip,可加多个
 25         172.25.77.100
 26     }
 27 }
 28 
 29 virtual_server 172.25.77.100 80 {
 30     delay_loop 6            #每隔 6 秒查询 realserver状态
 31     lb_algo rr              #lvs 调度算法,这里使用轮叫
 32     lb_kind DR          #lvs 负载均衡机制,这里使用直连路由
 33     #nat_mask 255.255.255.0 #1.2.8版本上这个行必须注释
 34     #persistence_timeout 50 #同一 IP 的连接 60 秒内被分配到同一台 realserver  
 35     protocol TCP            #用 TCP 协议检查 realserver 状态
 36 
 37     real_server 172.25.77.2 80 {
 38         weight 1
 39         TCP_CHECK {
 40                 connect_timeout 3
  41                 nb_get_retry 3   #故障重试秒数
 42                 delay_before_retry 3 #重试延迟
 43         }
 44     }
 45     real_server 172.25.77.3 80 {
 46         weight 1
 47         TCP_CHECK {
 48                 connect_timeout 3
 49                 nb_get_retry 3
 50                 delay_before_retry 3
 51         }
 52 
 53     }
 54 
 55 }

将配置文件scp到server4上,修改上面提到的几行信息,做backup

将server1和server4开启keepalived服务。
测试:
输入172.25.77.100

这里写图片描述

这里写图片描述


The End

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值