设为首页 收藏本站
查看: 730|回复: 0

[经验分享] 负载均衡(LVS)DR+(HA)heartbeat主备模式配置案例

[复制链接]

尚未签到

发表于 2019-1-3 09:36:59 | 显示全部楼层 |阅读模式
  负载均衡(LVS)DR+(HA)heartbeat主备模式配置案例
HA—高可用:服务的可用性比较高,即我们的服务不会因为某台服务器的宕机而造成我们整个服务的停止,它的工作模式就是将一个具有故障的服务转交给一个正常工作的服务器,保证服务不会中断。
实验:
拓扑图

  



要求:使用HA--HeartbeatLVS--DR模式对两台服务器实现负载均衡
首先在实验之前我们应该讲一下什么是HA—Heartbeat,通俗的讲就是HA—Heartbeat群集中的主机如果一台是激活状态,比如HA,那么另外一台主机就是停止状态,比如HB,但是,要是主机HA突然死掉了,那么HB主机怎么知道HA主机已经死掉了呢,这就需要在两台主机之间连接一根线,让HB主机通过这根线来不停的发送包来探测HA主机是否存活,如果HA死掉了,那么HB立即启动,接替HB的工作,HAHB连接的线就叫心跳线,这种模式就叫HA—Heartbeat.
为了配置的明了,我们分三部分来分解配置
一.HA配置
1>Ha-server1 配置
1.先按照拓扑图配置IP地址,并且关闭防火墙与SELinux
2.安装软件包
需要的软件包如下
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
在安装之前最好配置YUM源,这样可以解决依赖的问题,别忘了挂载镜像。
采用yum本地安装
[root@localhost ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-ldirectord-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm--nogpgcheck
3.设置本机名称为Ha-server1并配置域名解析
[root@localhost ~]# hostname Ha-server1
[root@Ha-server1 ~]# vim /etc/hosts添加如下内容
192.168.2.10Ha-server1
192.168.2.20Ha-server2
4.从拷备配置文件到/etc/ha.d/目录中,并进行文件的配置
[root@localhost ~]# cd /usr/share/doc/heartbeat-2.1.4/
[root@localhost heartbeat-2.1.4]# cp ha.cf haresources authkeys /etc/ha.d/
[root@localhost ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
(1)配置结点文件
添加如下内容
[root@localhost heartbeat-2.1.4]# cd /etc/ha.d
[root@localhost ha.d]# vim ha.cf
bcast eth1//广播给网卡eth1
node Ha-server1//指明Ha-server1节点
node Ha-server2//指明Ha-server2节点
(2)配置双方的相互验证文件
随机生成一个md5,用作两个Ha-server之间的认证,两台主机必须是一样的。
[root@Ha-server1 ~]# dd if=/dev/random bs=512 count=1 | openssl md5
0+1 records in
0+1 records out
128 bytes (128 B) copied, 0.000360555 seconds, 355 kB/s
ebe6e661e422ec2ae2f9fb9484d4aefc
[root@localhost ha.d]# vim authkeys添加如下内容
auth 3
3 md5 ebe6e661e422ec2ae2f9fb9484d4aefc
修改权限,这个一定要修改如下
[root@localhost ha.d]# chmod 600 authkeys
(3) 配置心跳文件
[root@localhost ha.d]# vim haresources添加如下内容
Ha-server1 192.168.2.11/24/eth0 ldirectord::ldirectord.cf//这个是定义外网访问时的虚拟接口及IP,还有启动的资源。
(4) 配置文件ldirectord.cf
[root@Ha-server2 ha.d]# vim ldirectord.cf修改如下

(5) 拷备启动文件到/etc/ha.d/resource.d/,这一步可以不做,在安装文件时系统就把这个文件在此文件夹中做了一个链接
[root@localhost ha.d]# cp /etc/init.d/ldirectord /etc/ha.d/resource.d/

2>Ha-server2 配置
Ha-server2的配置与Ha-server1的配置基本相同,我们可以直接使用Ha-server1的配置文件
(1)先安装软件
(2)设置主机名
[root@localhost ~]# hostname Ha-server2
(3)配置域名解析
[root@Ha-server2 ~]# vim /etc/hosts
192.168.2.10Ha-server1
192.168.2.20Ha-server2
3> 我们可以先启动一下,看配置是否成功
二.LVS-DR配置
1>web1配置
1.先按照拓扑图配置IP地址,再重新建立一个lo:0接口,配置ip为:192.168.2.11network255.255.255.255
2.添加系统主机名
[root@localhost ~]# hostname web1
3.安装httpd软件
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm
4.编辑一个与ldirectord.cf中指定的确认页
[root@localhost ~]# echo "ok"> /var/www/html/.test.html
5.配置arp隐藏
[root@localhost ~]# echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf
        [root@localhost ~]# echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf
[root@localhost ~]# echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
        [root@localhost ~]# echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf
6.配置路由

[root@localhost ~]# route add -host 192.168.2.11 dev lo:0
7.开启服务
[root@localhost Server]# service httpd start
8. 自己测试httpd环境正常工作
2>web2 配置
web2的配置与web1的配置基本相同,我们只需要修改如下几个点就行了
1.主机名称
[root@localhost Server]# hostname web2
3>启动服务
[root@localhost Server]# service httpd start
4>自己测试httpd环境正常工作
三.测试
1>首先开启两个directoryheartbeat服务
[root@Ha-server1 ha.d]# service heartbeat start
Starting High-Availability services:
2012/12/29_04:04:30 INFO:Resource is stopped
[OK]
[root@Ha-server2 ha.d]# service heartbeat start
Starting High-Availability services:
2012/12/29_04:04:30 INFO:Resource is stopped
[OK]
2>因为我们把Ha-server1为主director,所以我们可以查看Ha-server1上的ip地址
可以看到如下一个IP
eth0:0Link encap:EthernetHWaddr 00:0C:29:82:AB:2B
inet addr:192.168.2.11Bcast:192.168.2.255Mask:255.255.255.0
UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
Interrupt:67 Base address:0x2024
也可以看到Ha-server1上存在ipvsadm的规则
[root@Ha-server1 ha.d]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.2.11:80 rr
-> 192.168.2.32:80Route100
-> 192.168.2.31:80Route100
但是etho:0 IP地址与Ipvsadm规则在Ha-server2上都不存在的,因为它只是一个备份,只有在Ha-server1死掉之后,都会接管Ha-server1的工作。
看一下Ha-server2有没有ipvsadm规则
[root@Ha-server2 ha.d]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
[root@Ha-server2 ha.d]#
可以看到没有规则
现在可以访问自己的主页了,但是我们的要求是这两个Director形成HA负载均衡,所以要模仿把Ha-server1杀死,看Ha-server2会不会完全的接替Ha-server1的工作。
HA群集里面有专业用来模仿杀死HA成员的文件,如下我们杀死Ha-server1,看Ha-server2变化
[root@Ha-server1 ha.d]# cd /usr/share/heartbeat/
[root@Ha-server1 heartbeat]# ./hb_standby
2012/12/29_17:21:50 Going standby [all].
这样即可,我们再次看一下Ha-server1上还有没有ipvsadm规则
[root@Ha-server1 heartbeat]# ./hb_standby
2012/12/29_17:24:49 Going standby [all].
[root@Ha-server1 heartbeat]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
[root@Ha-server1 heartbeat]#
已经没有了规则
Ha-server2上的规则
[root@Ha-server2 ha.d]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.2.11:80 rr
-> 192.168.2.32:80Route100
-> 192.168.2.31:80Route100
[root@Ha-server2 ha.d]#
Ha-server2上重新出现,已经接管了Ha-server1的工作,实验成功
现在我们再把Ha-server1激活,规则又会出现在Ha-server1上,并且它们之间的转换中没有间隔的,没有数据包丢失
[root@Ha-server1 heartbeat]# ./hb_takeover




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658856-1-1.html 上篇帖子: 整合heartbeat+lvs 下篇帖子: LVS+Heartbeat+Ipvsadm+Ldirectord
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表