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服务器集群