实验拓扑



 实验步骤

一、配置lvs-DR

1、配置RealServer (在这里以配置node1为例,node2与node1配置相同)

(1)配置web服务

  1. 使用yum安装
  2. #yum -y install httpd
  3. #service httpd start
  4. #echo "node1" > /var/www/html/index.html  //添加访问页面
  5. #echo "Test Page" > /var/www/html/.test.html  //测试页面
  6. #elinks -dump http://192.168.0.11
  7. node1    //访问成功

(2)配置参数及VIP

  1. #echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
  2. #echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
  3. #echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  4. #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  5. 配置VIP
  6. #ifconfig lo:0 172.16.19.1 broadcast 172.16.19.1
  7. netmask 255.255.255.255 up
  8. #route add -host 172.16.19.1 dev lo:0 //添加路由
  9. #ifconfig    //查看VIP是否添加成功

2、配置Director 
(与RealServer一样,在此以Dir1为例配置。Dir2做相同配置即可)

(1)配置VIP

  1. #ifconfig eth0:0 172.16.19.1 broadcast 172.16.19.1
  2. netmask 255.255.255.255 up
  3. #route add -host 172.16.19.1 dev eth0:0
  4. #echo 1 > /proc/sys/net/ipv4/ip_forward //打开路由转发

(2)安装ipvsadm并定义规则

  1. #yum -y install ipvsadm
  2. #ipvsadm -A -t 172.16.19.1:80 -s rr
  3. #ipvsadm -a -t 172.16.19.1:80 -r 192.168.0.11 -g
  4. #ipvsadm -a -t 172.16.19.1:80 -r 192.168.0.66 -g

(3)访问http://172.16.19.1,查看负载均衡效果

(4)保存规则,关闭服务

  1. #ipvsadm -S > /etc/sysconfig/ipvsadm
  2. #service ipvsadm stop
  3. #chkconfig ipvsadm off
  4. 停用VIP 因为VIP也是高可用资源
  5. #ifconfig eth0:0 down

二、配置Director高可用

在这里我们使用除了使用heartbeat相关软件外,还要安装heartbeat-ldirectord包和它的依赖包perl-MailTools。它相当于heartbeat的一个模块,它可以管理集群的虚拟化和资源,同时还可以检查后端节点健康状况,非常符合实际需求。

1、安装前的准备工作

  1. Dir1与Dir2保证时间同步,可使用date命令
  2. #vim /etc/hosts  //添加如下两行,做主机名称解析
  3. 192.168.0.100    Dir1
  4. 192.168.0.101    Dir2
  5. 建立双机互信以便Dir1远程启动Dir2的heartbeat服务
  6. #ssh-keygen -t rsa  //产生私钥
  7. #ssh-copy-id -i ./ssh/id_rsa.pub root@Dir2
  8. #ssh Dir2 'uname -n'  //测试ssh
  9. #scp /etc/hosts Dir2:/etc  //Dir1与Dir2的hosts文件保持一致
  10. 在Dir2上
  11. #ssh-keygen -t rsa  //产生私钥
  12. #ssh-copy-id -i ./ssh/id_rsa.pub root@Dir2
  13. #ssh Dir2 'uname -n'  //测试ssh

2、安装配置软件

  1. #yum -y --nogpgpcheck localinstall heartbeat-2.1.4-9.el5.i386.rpm
  2. heartbeat-pils-2.1.4-10.el5.i386.rpm
  3. heartbeat-gui-2.1.4-9.el5.i386.rpm
  4. heartbeat-stonith-2.1.4-10.el5.i386.rpm  libnet-1.1.4-3.el5.i386.rpm
  5. heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
  6. perl-MailTools-1.77-1.el5.noarch.rpm
  7. #cd /usr/share/doc/heartbeat-2.1.4/
  8. #cp authkeys ha.cnf haresource /etc/ha.d/
  9. #cd ..heartbeat-ldirectord-2.1.4/
  10. #cp ldirectord.cf /etc/ha.d
  11. #cd /etc/ha.d/
  12. #vim ha.cf  //编辑主配置文件
  13. initdead 120 //第一次启动时等待其他节点启动的时间
  14. bcast eth0   //心跳信息传播方式
  15. auto_failback on  //夺回资源是否开启
  16. node    Dir1     //定义节点
  17. node    Dir2
  18. ping  172.16.0.1  //当接收不到其他节点的心跳信息时,
  19. 通过ping前端路由证实不是本节点发生故障
  20. compression  bz2 //定义压缩方式
  21. compression_threshold 2 //文件大于2k时才压缩
  22. crm   on
  23. #chmod 600 authkeys //必须改变其权限,否则服务无法启动
  24. #vim authkeys
  25. auth 1
  26. 1 md5 f4ecab5e96446b2986
  27. //此处的字符串可以使用 dd if=/dev/urandom count=512 bs=1 | md5sum
  28. 命令生成的随即数
  29. #vim ldirectord.cf
  30. checktimeout=3  //当检查不到RealServer时的超时时间
  31. checkintervel=1  //每隔多长时间检查一个RealServer
  32. autoreload=yes    //当此前配置文件发生改变时会不会自动加载
  33. logfile="/var/log/ldirectord.log"
  34. virtual=172.16.19.1:80  //VIP
  35. real=192.168.0.11:80 gate  //定义RealServer
  36. real=192.168.0.66:80 gate
  37. fallback=127.0.0.1:80 gate
  38. service=http   //提供的服务
  39. request=".test.html" //通过此页面判断RS是否工作
  40. receive="Test Page"  //页面返回结果
  41. #virtualhost=some.domain.com.au //可定义虚拟主机
  42. scheduler=rr  //使用的算法
  43. protocol=tcp
  44. checktype=negotiate
  45. checkport=80
  46. #scp authkeys ha.cf ldirectord.cf Dir2:/etc/ha.d
  47. #service ldirectord stop
  48. #chkconfig ldirector off
  49. #passwd haclustet //给hacluster用户添加密码redhat,在启动图形界面时要使用

3、启动服务,管理资源

  1. #service heartbeat start
  2. #ssh node2 '/etc/init.d/heartbeat start'
  3. #hb_gui &  //启动gui界面

输入密码便可管理界面

(1)首先添加ldirectord资源

右击'Rescources' ,选择"Add new items"。点击"Add Parameter"提交。

(2)添加VIP

同样方法进入定义页面:

(3)查看定义的资源

此时没有定义约束,资源以负载均衡的方式定义在了两个节点上。

(4)定义并列约束

约束定义好后,两个资源都被定义在了Dir1上。此时访问,http://172.16.19.1一切正常。

还可以定义顺序约束,方法同上不再演示。

三、测试实验

1、测试Director是否高可用

由上图可知,此时资源都定义在了Dir1上。现在我们模拟Dir1不能正常工作,查看资源的流转状况。

ok。资源顺利的转移到了dir2上。Director高可用成功。

2、Director是否能够检查RealServer的健康状况

我们现有两个realserver,我们通过iptables来限制192.168.0.66的80端口。

  1. #iptables -A INPUT -d 192.168.0.66 -p tcp --dport 80 -j DROP

再次访问http://172.16.19.1。此时会发现访问页面只会出现“node1”。使用iptables -F 清除规则后,两台RealServer重新恢复负载均衡。现在可以证明Director可以实现检查后端节点健康状况的功能。



至此,实验结束。

转载于:https://blog.51cto.com/yuan00/955187

heartbeat v2 + lvs-DR实现Director的高可用相关推荐

  1. LVS——DR模式+Keepalived(高可用)

    1.什么是keepalived keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障. Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作 ...

  2. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...

  3. 基于heartbeat v1配置mysql和httpd的高可用双主模型

    一.配置高可用集群的前提:(以两节点的heartbeat为例) ⑴时间必须保持同步 ⑵节点之间必须用名称互相通信 建议使用/etc/hosts,而不要用DNS 集群中使用的主机名为`uname -n` ...

  4. LVS实现负载均衡及高可用

    LVS实现负载均衡及高可用 1 实验环境 1.1 虚拟机最小化封装 1.1.1 虚拟机母机安装 1.1.2 清理和压缩母机 1.1.3 创建子机 1.2 名词理解 2 lvs的工作模式 2.1 NAT ...

  5. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  6. heartbeat+drbd+mysql:实现最廉价的高可用组合

    1.什么是DRBD DRBD(Distributed Replicated Block Device),DRBD 号称是 "网络 RAID",开源软件,由 LINBIT 公司开发. ...

  7. LVS原理详解及部署之五:LVS+keepalived实现负载均衡高可用

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

  8. LVS+Keepalived实现负载均衡高可用

    使用脚本实现LVS负载均衡 环境: 3台主机 DS:192.168.100.1 RS1:192.168.100.11 RS2:192.168.100.12 VIP:192.168.100.100 安装 ...

  9. LVS负载均衡与Keepalive高可用

    LVS负载均衡与Keepalive高可用负载均衡 一.LVS介绍 二.LVS的三种工作模式 1.NAT模式 2.TUN模式 3.DR模式 三.ipvsadm实现Apache负载均衡横 四.keepal ...

最新文章

  1. /etc/profile ,/etc/bashrc ,~/.bash_profile,~/ .bashrc 区别与联系
  2. tomcat配置文件server.xml具体解释
  3. 【Linux】vim简单配置
  4. 使用 intellijIDEA + gradle构建的项目如何debug
  5. ORA-30649: 缺少DIRECTORY关键字的问题解决方法
  6. Django REST FRAMEWORK swagger(一)框架详解
  7. 中油C语言第一次在线作业,中石油华东《程序设计(C语言)》2020年春季学期在线作业(二)...
  8. python打印进程号与线程号
  9. 数据治理的目的与意义
  10. 浅谈工业级物联网项目架构设计及实施
  11. 优云软件又双叒通过CMMI ML3评估 , 研发和质量管理水平创新高
  12. android 微信地址选择,安卓微信位置实时修改
  13. iir滤波器c语言程序,请教C语言做iir滤波器问题
  14. 采用高通CRS8635的一款蓝牙耳机低功耗评测数据,供交流讨论!
  15. 方便面又好卖了!康师傅天猫618狂增10倍,还说这只是起点
  16. html正则邮箱格式,JS正则表达式判断邮箱格式是否正确
  17. 笔记本 键盘 唤醒计算机,笔记本电脑进入睡眠状态后无法通过鼠标或键盘来唤醒屏幕怎么解决...
  18. 全球及中国非接触式红外数字温度计行业研究及十四五规划分析报告
  19. 网易云音乐(移动端)
  20. FPGA设计编程(二) 8-3线优先编码器与3-8线译码器

热门文章

  1. 2021年上半年软考及格分数线是多少?
  2. 生产者和消费者(linux)
  3. DirectX—昨天,今天,明天[1]
  4. 智邦国际ERP系统帮助企业控制成本
  5. java signal信号_signal 信号具体含义解释~
  6. 比太钱包使用方法及冷钱包存储方案-1
  7. 织女星开发板能移植linux吗,织女星开发板启动模式修改——从ARM M4核启动
  8. 以太网PHY层芯片LAN8720A简介
  9. accdb原有的数据怎么清除_数据库存储(database storage)
  10. wf 《计算机专业英语》,IE(Industrial Engineer)专业英语