1.Keepalived简介

Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。使用多台节点安装keepalived。其 他的节点用来提供真实的服务,同样的,他们对外表现一个虚拟的IP。主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用 性。

keepalived的原理图如下所示:

最左边是客户机,它访问我们的虚拟IP。然后我们有master(主控制节点)和backup(备用控制节点)。最右边的就是我们提供服务的真机了。

Linux服务器LB群集之LVS-NAT http://www.linuxidc.com/Linux/2013-05/84774.htm

Linux下群集服务之LB集群-LVS-NAT模式 http://www.linuxidc.com/Linux/2012-05/59839.htm

LVS-NAT+ipvsadm实现RHEL 5.7上的服务集群 http://www.linuxidc.com/Linux/2012-04/58936.htm

Linux虚拟服务器LVS-NAT 和 LVS-DR 模型的实现 http://www.linuxidc.com/Linux/2011-09/42934.htm

2.搭建keepalived服务

我们使用四个节点来做这个实验,两个充当控制节点,另外两个提供服务。然后用真机的浏览器访问虚拟IP。

注意事项:

1.所有节点要做好解析。

2.时间同步

3.yum源设置好(除了基本的源,高可用等也要添加)

如图是我们的操作控制台:

keepalived的安装包为:

keepalived-1.2.13.tar.gz

两个控制节点分别解压和编译、安装keepalived:

在编译keepalived之前我们需要安装一些相关的包:

编译keepalived源码包:

这个是我们的 编译结果:

然后我们进行安装:

上述的步骤在两个控制节点上都要进行,最后在配置文件中我们再设定主副节点。

建立软链接,把keepalived的配置文件和服务启动文件链接到指定位置:

设置配置文件:

我们设置了邮件的发送地址和ip,MASTER制定为主控制节点,虚拟id两个节点必须相同。delay_loop 指定6秒检测服务状态。

设置虚拟ip,这是我们客户机访问的IP。

这个是剩余的配置文件内容,我们设置连接方式为直连方式DR,负载策略为轮叫方式rr,协议威TCP。然后我们设置了两个提供服务节点的IP和端口。分别为192.168.2.108和192.168.2.109的80端口。也就是网页访问服务。

然后我们设置备机的配置文件,模式设置为BACKUP,权重修改为50。这样才可以优先让主控制节点接管。

然后我们打开keepalived服务,并查看日志,发现已经识别了192.168.2.110虚拟IP:

在两个提供真机的服务节点上安装arptable_jf软件:

设置arptables的策略:

然后我们要在两个控制节点上安装ipvsadm软件来监控服务的状态:

如果无法安装的话,查看yum源,设置成如下所示:

在两个提供服务的真机上安装httpd,设置完默认发布内容后启动服务:

然后我们在主控制节点上查看当前的监控信息:

在真机的浏览器上查看192.168.2.110的信息。因为是轮叫策略,所以会轮换显示192.168.2.108和192.168.2.109的默认发布内容:

3小结:

这样我们就搭建了keepalived下的高可用集群。这个的复杂程度要低于heartbeat,在生产环境中也是非常常见的。

最新文章

  1. 安装gem所需知道的
  2. linux下文件搜索命令学习笔记
  3. php常用关键字
  4. Software Development Principle
  5. babel 无法解析jsx (webpack react )
  6. shiro和quartz同时存在于项目中,解决冲突的方案
  7. 匹配 prev 元素之后的所有 siblings 元素
  8. Achieving High Availability and Scalability - ARR and NLB
  9. Qt库的静态编译
  10. JAXB - XML Schema Types, Defining an Enumeration
  11. POJ 1862 Stripies
  12. monkey测试的脚本
  13. RabbitMQ疑惑释义
  14. Java 8 StampedLock解决同步问题
  15. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二:按键模块① - 消抖
  16. 加载更多的ajax 字符串拼接
  17. python全栈 函数名 闭包及迭代器
  18. 【bzoj4676】 两双手
  19. AndroidStudio 中查看获取MD5和SHA1值以及如何查看手机应用信息以及读取*.db数据库里面数据
  20. mac上Homebrew安装以及python安装

热门文章

  1. 2015年最热门前端框架React 入门实例教程
  2. asp.net Get和Post传参和接收参数
  3. C# 修改电脑DNS和IP方法
  4. web安全——防火墙
  5. Java 进程占用 VIRT 虚拟内存超高的问题研究
  6. 【.net程序破解】实战之标志位破解绕过注册法
  7. javascript函数中的三个技巧【一】
  8. [经验][JS]如何观察网站,进而模仿
  9. javascript的三个组成部分
  10. UtilDev Web Server Pro