操作目的

基于heartbeat v2和heartbeat-ldirectord实现LVS(DR)中Director的高可用,基于httpd提供web服务,并通过hb_gui的图形界面进行;

规划

准备工作:三台主机, 分别配置如图所示的IP 和主机名

注意:1、rs1和rs2提供的不同的页面,目的是让效果明显
2 、VIP,即虚拟地址,不能被其他主机占用
3、director中的ipvsadm和vip都要确保是关闭的,让CRM来管理这些资源

一、配置LVS(DR)模型

  1. rs1
  2. #setenforce 0   //关闭selinux
  3. #yum -y install httpd
  4. # echo "<h1>rs1</h1>" >> /var/www/html/index.html   //提供页面文件
  5. #service httpd start
  6. # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
  7. # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  8. # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
  9. # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  10. # ifconfig lo:0 172.16.220.100 broadcast 172.16.220.100 netmask 255.255.255.255 up
  11. # route add -host 172.16.220.100 dev lo:0
  12. # elinks -dump http://172.16.220.21   //测试
  13. rs1
  14. # elinks -dump http://172.16.220.10
  15. rs1
  16. rs2:
  17. #setenforce 0
  18. # yum -y install httpd
  19. # echo "<h1>rs2</h1>" >> /var/www/html/index.html
  20. #service httpd start
  21. # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
  22. # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  23. # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
  24. # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  25. # ifconfig lo:0 172.16.220.100 broadcast 172.16.220.100 netmask 255.255.255.255 up
  26. # route add -host 172.16.220.100 dev lo:0
  27. # elinks -dump http://172.16.220.22
  28. rs2
  29. # elinks -dump http://172.16.220.100
  30. rs2
  31. Directory :node1
  32. #setenforce 0
  33. # yum -y install ipvsadm   //安装ipvsam
  34. # ifconfig eth0:0 172.16.220.100 broadcast 172.16.220.100 netmask 255.255.255.255 up
  35. # route add -host 172.16.220.100 dev eth0:0
  36. # echo 1 > /proc/sys/net/ipv4/ip_forward
  37. # ipvsadm -A -t 172.16.220.100:80 -s r
  38. # ipvsadm -a -t 172.16.220.100:80 -r 172.16.220.21 -g
  39. # ipvsadm -a -t 172.16.220.100:80 -r 172.16.220.22 -g
  40. # ipvsadm -ln
  41. IP Virtual Server version 1.2.1 (size=4096)
  42. Prot LocalAddress:Port Scheduler Flags
  43. -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  44. TCP  172.16.220.100:80 rr
  45. -> 172.16.220.22:80             Route   1      0          0
  46. -> 172.16.220.21:80             Route   1      0          0
  47. 测试;172.16.220.100 效果是rs1 rs2的轮询
  48. 到此,一个LVS的DR模型创建成功了。

二、把Director做成高可用

node1 node2 做成高可用集群中,如规划图所示

1 停止node1的相关资源

  1. node1:
  2. #ipvsadm -S > /etc/sysconfig/ipvsadm
  3. #service ipvsadm restart
  4. #ipvsadm -ln
  5. #service ipvsadm stop
  6. #chkconfig ipvsadm off
  7. #chkconfig --list ipvsadm
  8. # ifconfig eth0:0 down

2  把node2做成director

  1. #setenforce 0
  2. #yum -y install ipvsadm
  3. # ifconfig eth0:0 172.16.220.100 broadcast 172.16.220.100 netmask 255.255.255.255 up
  4. # route add -host 172.16.200.100 dev eth0:0
  5. # echo 1 > /proc/sys/net/ipv4/ip_forward
  6. # ipvsadm -A -t 172.16.220.100:80 -s rr
  7. # ipvsadm -a -t 172.16.220.100:80 -r 172.16.220.21 -g
  8. # ipvsadm -a -t 172.16.220.100:80 -r 172.16.220.22 -g
  9. # ipvsadm -ln   //查看定义的结果
  10. IP Virtual Server version 1.2.1 (size=4096)
  11. Prot LocalAddress:Port Scheduler Flags
  12. -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  13. TCP  172.16.220.100:80 rr
  14. -> 172.16.220.22:80             Route   1      0          0
  15. -> 172.16.220.21:80             Route   1      0          0
  16. 测试:浏览器输入172.16.220.100 结果rs1 rs2轮询,工作正常

3 停止node2的相关资源

  1. # ipvsadm -S > /etc/sysconfig/ipvsadm
  2. #service ipvsadm restart
  3. #ipvsadm -ln
  4. #service ipvsadm stop
  5. #chkconfig ipvsadm off
  6. #chkconfig --list ipvsadm
  7. # ifconfig eth0:0 down

4 把node1 node2做成集群

4.1 配置时间同步、ssh 互连

  1. node1:
  2. #hwclock -s   //与系统时间一致
  3. #vim /etc/hosts
  4. 添加
  5. 172.16.220.11   node1
  6. 172.16.220.12   node2
  7. # ssh-keygen -t rsa  //交互的方式,Enter即可
  8. Generating public/private rsa key pair.
  9. Enter file in which to save the key (/root/.ssh/id_rsa):
  10. Created directory '/root/.ssh'.
  11. Enter passphrase (empty for no passphrase):
  12. Enter same passphrase again:
  13. Your identification has been saved in /root/.ssh/id_rsa.
  14. Your public key has been saved in /root/.ssh/id_rsa.pub.
  15. The key fingerprint is:
  16. 9e:2f:7d:c7:c3:ab:cb:11:da:04:6c:4a:d6:31:29:78 root@node1
  17. # ssh-copy-id -i .ssh/id_rsa.pub root@node2  //与node2建立通信
  18. 15
  19. The authenticity of host 'node2 (172.16.220.12)' can't be established.
  20. RSA key fingerprint is 16:15:c4:65:45:d7:ea:c2:a7:29:4b:25:d1:ff:72:c8.
  21. Are you sure you want to continue connecting (yes/no)? yes
  22. Warning: Permanently added 'node2,172.16.220.12' (RSA) to the list of known hosts.
  23. root@node2's password:
  24. Now try logging into the machine, with "ssh 'root@node2'", and check in:
  25. .ssh/authorized_keys
  26. to make sure we haven't added extra keys that you weren't expecting.
  27. #ssh node2 'ifconfig'              //测试 ,显示node2的"ifconfig"的相关内容
  28. node2:
  29. #hwclock -s
  30. #vim /etc/hosts
  31. 添加
  32. 172.16.220.11   node1
  33. 172.16.220.12   node2
  34. # ssh-keygen -t rsa (交互中的Enter即可)
  35. # ssh-copy-id -i .ssh/id_rsa.pub root@node1
  36. #ssh node1 'ifconfig'        //测试 即可

4.2 在集群节点node1 node2上安装heartbeat

需要的包有

  1. heartbeat-2.1.4-9.el5.i386.rpm
  2. heartbeat-pils-2.1.4-10.el5.i386.rpm
  3. heartbeat-stonith-2.1.4-10.el5.i386.rpm
  4. libnet-1.1.4-3.el5.i386.rpm
  5. perl-MailTools-1.77-1.el5.noarch.rpm
  6. heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
  7. heartbeat-gui-2.1.4-9.el5.i386.rpm
  1. node1 node1安装软件包:
  2. # yum -y --nogpgcheck localinstall heartbeat-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 heartbeat-ldirectord-2.1.4-9.el5.i386.rpm heartbeat-gui-2.1.4-9.el5.i386.rpm
  3. node1:(以下的配置都是在node1上完成的,node2不需要再操作)
  4. #cp /usr/share/doc/heartbeat-2.1.4/ha.cf authkeys haresources  /etc/ha.d/
  5. #cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
  6. #cd /etc/ha.d/
  7. #chmod 600 authkeys
  8. #vim authkeys
  9. auth 1          (dd if=/dev/urandom count=512 bs=1 | md5sum生成的随机字符串,最后一行)
  10. 1   md5 7b1b89ead5bcc0265a8d419ef91de7f7
  11. # vim ha.cf
  12. 将#bcast  eth0            # Linux启用
    改为 bcast   eth0
  13. 将#node   ken3
    #node   kathy
    启用并修改为:
    node    node1
    node    node2
  14. 将#ping 10.10.10.254
    启用,并改为:
    ping 172.16.0.1
  15. compression_threshold 2
    compression     bz2
    并添加;
    crm on
  16. #vim haresources
  17. 添加
  18. node1   172.16.220.100/16/eth0/172.16.220.255 httpd
  19. #vim ldirectord.cf
  20. 内容如下:
  21. checktimeout=3
  22. checkinterval=1
  23. utoreload=yes
  24. logfile="/var/log/ldirectord.log"
  25. quiescent=yes
  26. virtual=172.16.220.100:80
  27. real=172.16.220.21:80 gate
  28. real=172.16.220.22:80 gate
  29. fallback=127.0.0.1:80 gate
  30. service=http
  31. request=".test.html"
  32. receive="OK"
  33. scheduler=rr
  34. protocol=tcp
  35. checktype=negotiate
  36. checkport=80
  37. #scp -p authkeys ha.cf haresources ldirectord.cf   node2:/etc/ha.d/
  38. (注意此时在rs1 rs2的上分别配置;echo "<h1>OK</h1>" >> /var/www/html/.test.html)
  39. #chkconfig ldirectord off
  40. #passwd hacluster   //在此节点上修改hacluster的密码
  41. redhat
  42. #service heartbeat start   //启动本节点服务
  43. #ssh node2 '/etc/rc.d/init.d/heartbeat start'   //启动node2节点的服务
  44. #hb_gui &   //打开图像界面配置

1)出现图形界面 Connection --Login

输入密码:redhat,点击OK即可
进入之后观察node1 node2都处于running状态为正常

2)添加资源

第一个资源:
Resource IP:ldrictord
Type 选中ldirecotd  点击Add 即可 资源上右击--Start 发现运行在其中一个节点上

第二个资源:

Resource IP:vip
Type 选中IPaddr
Name 下面给ip一个地址为 172.16.220.100
Add Parameter 选中lvs_support  并为true 
点击Add即可  --资源上右击--Start 运行在其中一个节点上

3)定义资源约束
Colocations--Add New Item  默认点击OK即可,配置如下

Order---Add New Item  默认点击OK即可,配置如下

4)启动资源并测试
配置后的结果如下

在node2上做测试

  1. #ifconfig
  2. eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:5B:DC:50
  3. inet addr:172.16.220.100  Bcast:172.16.255.255  Mask:255.255.0.0
  4. UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  5. Interrupt:67 Base address:0x2000
  6. #ipvsadm -ln
  7. IP Virtual Server version 1.2.1 (size=4096)
  8. Prot LocalAddress:Port Scheduler Flags
  9. -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  10. TCP  172.16.220.100:80 rr
  11. -> 172.16.220.21:80             Route   1      0          0
  12. -> 172.16.220.22:80             Route   1      0          0

最后浏览172.16.220.100 效果是rs1 rs2的轮询

                

转载于:https://blog.51cto.com/xinghuiru/954743

heartbeat v2+ldirectord+LVS集群相关推荐

  1. Heartbeat(v1、v2、pacemaker)集群组件概述

    一.什么是Heartbeat Heartbeat 是一个基于Linux开源的高可用集群系统.主要包括心跳服务和资源接管两个高可用集群组件.心跳监测服务可以通过网络链路和串口进行,而且支持冗余链路, 它 ...

  2. Linux服务器集群系统(二)——LVS集群的体系结构

    原文地址:  http://www.linuxvirtualserver.org/zh/lvs2.html 本文主要介绍了LVS集群的体系结构.先给出LVS集群的通用体系结构,并讨论了其的设计原则 ...

  3. lvs集群实现lvs-dr模型和lvs-nat模型

    ipvsadm ipvsadm命令是lvs集群在应用层的管理工具,我们可以通过此ipvsadm来管理lvs的配置,其实现了集群服务管理:增.删.改,集群服务的RS管理:增.删.改以及查看集群状态. 管 ...

  4. php lvs,LVS(四)LVS集群DR模式

    LVS集群DR模式 系统:CentOS-7-x86_64-Minimal-1611.iso 三台虚拟机网络规划: Director (桥接网卡) enp0s3DIP:192.168.43.201 19 ...

  5. LVS集群---做前端调度器搭建使用

    LVS集群--->在这里做前端调度器搭建使用,工作模式用的LVS-nat和LVS-dr. ++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  6. lvs集群基础及lvs-nat、dr、fwm实践

    集群基础知识点: 集群类型:LB.HA.HP.DS LB:load balance,负载均衡集群,director:负载均衡器或者调度器,上游服务(upstream server),后端服务器称为re ...

  7. LVS集群-DR负载均衡集群

    LVS集群-DR负载均衡集群 服务介绍 Director 分配请求到不同的real server. real server 处理请求后直接回应给用户,这样director 负载均衡器仅处理客户机与服务 ...

  8. Linux系统(四)LVS集群负载均衡NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  9. Linux系统(五)负载均衡LVS集群之DR模式

    序言 DR模式是lvs集群中三种负载均衡模式的其中一种,那么上一篇中我写啦关于NAT模式的搭建与原理,为什么还要有DR模式与IP隧道模式呢? 首先我们来看3张图.LVS/NAT模式如下图: LVS/I ...

最新文章

  1. 算法设计思想(3)— 迭代法
  2. 计算机网络基础 单选题) 作业,南开大学《计算机网络基础》在线作业及答案
  3. Centos 安装 jdk 和配置环境变量
  4. WebSocket之仿QQWeb即时聊天系统(上)
  5. JeeWx 捷微 2.2 发布,微信管家平台
  6. 将模块放入到一个项目中展示_一个号称NB的开源电商系统
  7. Netfilter分析
  8. MyEclipse和Eclipse中修改编码
  9. php 回调通知 连连支付_微信小程序支付及退款流程详解
  10. 8.MongoDB之分片集群
  11. scala 主构造函数_Scala主构造器和辅助构造器
  12. 511遇见易语言大漠多线程模块教程(1-12课)
  13. syscall 系统调用陷入_MIPS中的异常处理和系统调用【转】-阿里云开发者社区
  14. ios 代理和委托的区别
  15. [data engineering] (一)数据工程师的工作内容以及需要的软硬实力
  16. NLP逻辑回归模型(LR)实现分类问题实例详解
  17. day3:多元统计模型
  18. traceback说明
  19. 虚拟机防火墙关了怎么端口还是不能访问
  20. 运行LLVM Pass的两种方式

热门文章

  1. ssg国际数字货币商城源码货币商城+数字货币+双端APP
  2. 为什么要监控sql语句,以及如何监控,都有哪几种方式可以监控。
  3. Apache Rewrite伪静态基本及URL跳转
  4. Http压力测试之ab
  5. 远程服务器,你不得不知道的命令行操作(一)
  6. oracle清空回收站
  7. Linux——如何打开或者安装g++
  8. 【jupyter】notebook屏蔽warning信息输出
  9. 【今日CV 视觉论文速览】 Part2 25 Jan 2019
  10. dj鲜生-24-含资源-模板操作-注册与登陆页的模板继承