Keepalived + LVS-DR搭建高可用Web服务器集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keepalived + LVS-DR搭建高可用Web服务器集群相关的知识,希望对你有一定的参考价值。

导航:

  • Keepalived概述
  • LVS概述
  • 编译安装keepalived
  • 配置主调度器
  • 双机热备

    一、Keepalived概述

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成,不需人工干涉,需要人工做的只是修复故障的web服务器。
Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。Layer4主要以TCP端口的状态来决定服务器工作正常与否。
如webserver的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。

二、LVS概述

LVS,Linux virtual server,Linux虚拟服务器,是一个虚拟的服务集群系统,本项目是1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

LVS集群采用IP负载均衡技术,属于IP层的交换(L4)具有很好的吞吐率。调度器分析客户端到服务器的IP报头信息,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。主要包含四大部分:

负载调度器(loadbalancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。当客户请求到达时,调度器只根据负载情况从服务器池中选出一个服务器,将该请求转发到选出的服务器,并记录这个调度;

服务器池(serverpool),是一组真正执行客户请求的服务器,执行的任务有WEB、MAIL、FTP和DNS等。服务器池的结点数目是可变的,当整个系统收到的负载超过目前所有结点的处理能力时,可以在服务器池中增加服务器来满足不断增长的请求负载

后端存储(backend storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务

Graphic Monitor是为系统管理员提供整个集群系统的监视器,它可以监视系统中每个结点的状况。

LVS+keepalived架构图

技术分享图片
测试环境:
名称 操作系统 IP地址
LVS-Master Centos7.3-x86_64 192.168.92.134
LVS-Backup Centos7.3-x86_64 192.168.92.135
WebserverA Centos7.3-x86_64 192.168.1.103
WebserverB Centos7.3-x86_64 192.168.1.105
Client Windows10x86_64 192.168.1.101

三、编译安装keepalived

安装所需的软件 (以下是Master操作)

yum install -y openssl-devel popt-devel && yum install -y ipvsadm && wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz && cd /root && tar zxf keepalived-1.2.13.tar.gz && cd keepalived-1.2.13/ && ./configure --prefix=/ && make && make install && chkconfig --add keepalived && chkconfig keepalived on

keepalived装完给backup装,一样的操作。

四、配置主调度器

安装完成后主配置文件目录:/etc/keepalived/keepalived.conf中,打开主配置修改如下:

vim /etc/keepalived/keepalived.conf

技术分享图片

技术分享图片

从调度器和主的差不多,直接上我的,对比修改

技术分享图片

修改完成后,master和backup的主配置文件到这里已经结束了。接下来启动keepalived,查看IP地址

技术分享图片
以上图中可以看到vip地址已经承载到了这块网卡上,接下来启动从服务器查看IP地址

技术分享图片

从服务器没有VIP,当master服务器宕机才会有。

3)接下来在主服务器查看节点的状态

现在就一个VIP没有导向RS,接下来配置RS

在Web1和Web2上导入测试页面,得有httpd,yum安装就成,

Web1(RS1)
echo "This is httpA" > /var/www/html/index.html
httpd 启动 ,防火墙 关闭,selinux 关闭,

技术分享图片

Web2(RS2)
技术分享图片

再次查看主服务器的节点状态,查看是否有webA&B

技术分享图片

有负载就ok了

接下来取浏览器测试192.168.1.150

技术分享图片

技术分享图片

五、接下来测试双机热备

在这里我们先看一下master和backup的ip信息。
技术分享图片

从服务器
技术分享图片

把master宕机再恢复之后从服务器IP的改变对照

技术分享图片

正如开头所说,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器,这样就实现了高可用。

以上是关于Keepalived + LVS-DR搭建高可用Web服务器集群的主要内容,如果未能解决你的问题,请参考以下文章

Keepalived + LVS-DR搭建高可用Web服务器集群

Keepalived 简单搭建高可用

Nginx+Keepalived搭建高可用负载平衡WEB 集群

LVS + Keepalived 搭建高可用的负载均衡群集

Lvs+keepalived+httpd+NFS搭建高可用

Keepalived+Haproxy搭建高可用Web群集