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

[经验分享] WEB Lvs Director DR实现高可用(corosync)

[复制链接]

尚未签到

发表于 2019-1-3 09:40:33 | 显示全部楼层 |阅读模式
  废话不多说,直接开始,整体规划如下:

  实验通过虚拟机实现,基于Red Hat 5.8来完成
  1.资源分析
  在做实验之前,首先要知道高可用用于分配的资源有哪些,由于我们做的是Lvs DR模型Director的高可用,用到得资源有两个:
  1)VIP:用户用来访问
  2)ipvsadm
  清楚了需要分配的资源,做起来就明朗多了,在实现高可用之前,我们要首先保证我们的Lvs是可以正常工作的。
  2.验证资源的可用性
  2.1验证实现Lvs
  1)RS的配置
  关于RS上的web不需要过于复杂的配置,通过ip地址访问即可,为了达到能清楚了解实验结果的目的,将我们两台RS上的网页文件修改成不一致,使我们跟好看到效果


  • #echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
  • #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  • 设定本地IP地址发出arp回应的限制级别,arp回应中的ip地址为设备上的ip地址,非发送地址,即vip
  • #echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
  • #echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  • 定义对目标地址为本地IP的arp询问,本地的不用应答模式,只对arp查询的目标地址为来访接口的地址予以回应
  • #ifconfig eth0 172.16.99.2/16
  • #ifconfig lo:0 172.16.98.1 broadcast 172.16.98.1 netmask 255.255.255.255 up
  • #route add -host 172.16.98.1 dev lo:0
  • 设置路由,凡是对172.16.98.1的IP请求,都通过lo:0设备来响应

  RS2的配置过程同上,其中RIP为172.16.99.2
  2)DR的配置


  • #yum install ipvsadm
  • #ifconfig eth0 172.16.99.1/16
  • #ifconfig eth0:0 172.16.98.1 broadcast 172.16.98.1 netmask 255.255.255.255 up
  • #echo 1 > /proc/sys/net/ipv4/ip_forward
  • 开启路由转发
  • #ipvsadm -A -t 172.16.98.1:80 -s rr
  • #ipvsadm -a -t 172.16.98.1 -r 172.16.99.2 -g
  • #ipvsadm -a -t 172.16.98.1 -r 172.16.99.3 -g

  打开网页通过vip172.16.98.1访问一下,验证Lvs
  #ipvsadm -L
  通过命令参看我们Director是否进行转发,通向将另一台备用的Director也进行如上的验证操作
  3.高可用的配置
  3.1高可用之前的准备


  • (DC上的配置)
  • #hostname node1.ying.com
  • #vim /etc/hosts
  • 172.16.99.2 node1.ying.com node1
  • 172.16.99.3 node2.ying.com node2
  • 节点之间是通过主机名来进行解析
  • #ssh-keygen -t rsa
  • #ssh-copy-id -i .ssh/id_rsa.pub root@node2
  • 建立双机互信,方便操作,资源的开启关闭,不能直接通过在本机上设置,要通过DC来实现,当然必须你的备用Director已经改为node2了

  • !!还有一点要注意的是,高可用主备之间,根据心跳信息的到达时间来判断DC的健康状态,所以主备之间的机器时间一定要保持一致。

  3.2实现高可用


  • #ipvsadm -S > /etc/sysconfig/ipvsadm
  • 保存我们定义的策略,ipvsadm开启需要的文件
  • #service ipvsadm stop
  • #scp /etc/rc.d/init.d/ipvsadm node2:/etc/rc.d/init.d
  • #scp /etc/sysconfig/ipvsadm node2:/etc/sysconfig
  • #ssh node2 'service ipvsadm stop'
  • (rpm包安装corosync+pacemaker)
  • #yum -y --nogpgcheck install cluster-glue-1.0.6-1.6.el5.i386.rpm cluster-glue-libs-1.0.6-1.6.el5.i386.rpm corosync-1.2.7-1.1.el5.i386.rpm corosynclib-1.2.7-1.1.el5.i386.rpm heartbeat-3.0.3-2.3.el5.i386.rpm heartbeat-libs-3.0.3-2.3.el5.i386.rpm libesmtp-1.0.4-5.el5.i386.rpm pacemaker-1.1.5-1.1.el5.i386.rpm pacemaker-cts-1.1.5-1.1.el5.i386.rpm pacemaker-libs-1.1.5-1.1.el5.i386.rpm perl-TimeDate-1.16-5.el5.noarch.rpm resource-agents-1.0.4-1.1.el5.i386.rp
  • #cd /etc/corosync
  • #cp corosync.conf.example corosync.conf
  • #vim corosync.conf
  • secauth:on    心跳信息签名,如果确定高可用的就这2台设备,最好不要开启
  • #to_syslog:yes 注释掉此行,并添加以下内容支持pacemaker
  • service {
  •     ver:0
  •     name:pacemaker
  • }
  • #corosync-keygen 生成心跳信息签名文件
  • #mkdir /var/log/cluster 创建日志文件
  • #scp authkeys corosync.conf node2:/etc/corosync
  • 在备Director上安装corosync后,将这两个文件考本过去,节省配置时间
  • #service corosync start
  • #ssh node2 'service corosync start'
  • #crm 直接进入corosync的交互式界面
  • crm(live)# configure  
  • crm(live)configure# primitive vip ocf:heartbeat:IPaddr params ip=172.16.98.1
  • crm(live)configure# primitive ipvsadm lsb:ipvsadm  
  • 定义两个资源
  • crm(live)configure# colocation vip_with_ipvsadm inf: ipvsdm vip
  • crm(live)configure# order ipvsadm_after_vip inf: vip ipvsadm  
  • 定义资源的排列约束和次序约束
  • crm(live)configure# property no-quorum-policy=ignore
  • 没有仲裁设备,所以设置忽略计票记过
  • crm(live)configure# property stonith-enabled=false
  • 因为没有stonith设备,会一直报错,取消掉并不影响实验
  • crm(live)configure# verify 验证配置
  • crm(live)configure# commit
  • 提交配置到并同步到各个节点的CIB
  • crm(live)configure# exit
  • #crm_mon  
  • 配置完成,查看高可用工作信息,显示工作的节点和资源,以及资源工作的位置
  • #crm node standby  
  • 将此节点设置为备用,再次使用上个命令查看下结果的不同
  • #crm node online 上线
  • #ssh node2 'crm node standby'
  • 将节点2设置为备用

  3.3扩展
  通过监控RS状态来实时更改ipvsadm转发配置,避免RS出现异常Director依然转发,这里要用到的两个RPM包。
  ldirectord-1.0.1-1.el5.i386.rpm
  perl-MailTools-1.77-1.el5.noarch.rpm
  1)ldirectord的安装



  • #yum -y --nogpgcheck install perl-MailTools-1.77-1.el5.noarch.rpm  

  • ldirectord-1.0.1-1.el5.i386.rpm  
  • # cp /usr/share/doc/ldirectord-1.0.1/ldirectord.cf /etc/ha.d/ld.cf  
  • 配置文件的名字可以自定义  
  • #vim /etc/ha.d/ld.cf  
  • virtual=172.16.98.1:80                     指定集群VIP  
  •         real=172.16.99.2:80 gate           添加的RS1  
  •         real=172.16.9.3:80 gate            添加的RS2  
  •         #fallback=127.0.0.1:80 gate        当访问的RS不存在,请求发到哪里
  •         service=http                        
  •         scheduler=rr  
  •         #persistent=600  
  •         #netmask=255.255.255.255  
  •         protocol=tcp  
  •         checktype=negotiate  
  •         checkport=80  
  •         request="test.html"  ldirectord用来检查RS状态的网页文件,在网站根目录下创建  
  •         receive="ok"         从网页文件中得到‘ok’字符,表示RS在线  
  •     #   virtualhost=www.x.y.z             没有定义就注释掉,没有影响  
  • #scp /etc/ha.d/ld.cf node2:/etc/ha.d/ldirectord.cf
  • 安装好node2的软件,从node1上复制配置文件即可,节省时间

  2)RS上web 页面的创建
  #echo 'ok' > /var/www/html/text.html
  3)DC上资源的配置
  ldirectord的配置


  • crm(live)configure#primitive ld lsb:ldirectord  
  • crm(live)configure#delete vip_with_ipvsadm  
  • crm(live)configure#colocation vip_ld_ipvsadm inf: vip_ld_ipvsadm  
  • crm(live)configure#verify  
  • crm(live)configure#commit  

  如果我们自定义了ldirectord配置文件的名字,改/etc/rc.d/init.d/ldirectord中配置文件路径,或者将ldirectord定义为ocf资源的类型


  • [root@node1 ~]# crm  
  • crm(live)# ra  
  • crm(live)ra# meta ocf:heartbeat:ldirectord  
  • 对资源的配置有详细的说明  
  • crm(live)configure# primitive ld ocf:heartbeat:ldirectord params configfile=/path/ ldirectord=/path/
  • 指定ldirectord的配置文件路径,和命令路径





运维网声明 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-658858-1-1.html 上篇帖子: LVS负载均衡集 下篇帖子: lvs负载调度原理和方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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