LVS–DR 负载均衡+Keepalived

文章目录

    • Linux虚拟服务器:LVS
    • keepalived 简单概述
    • LVS-DR集群配置
    • LVS–DR+Keepalived 部署步骤
        • 1:LVS调度服务器配置
          • (1)安装ipvsadm软件包,为VIP创建虚拟服务器,使用rr算法
          • (2)为ens33、配置IP地址, 为ens33:0配置绑定VIP地址
          • (3)配置完成,启动各种服务
          • (4)配置keepalived双击热备
        • 2:Web节点服务器配置
          • (1)安装http服务,关闭防火墙。
          • (2)为VIP创建虚拟服务器,使用rr算法
          • (3)为ens33配置IP地址, 为lo:0配置绑定VIP地址
          • (3)配置完成,启动各种服务
        • 3:客户端测试

Linux虚拟服务器:LVS

LVS是Linux Virtual Server的简称,即Linux虚拟服务器,最初是由国内的章文嵩博士于1998年发起的自由软件项目。目前LVS项目已经被集成到Linux内核中,在Linux2.4内核之前,要使用LVS功能就必须重新编译内核以支持LVS功能模块,但从Linux2.4之后,LVS的各个功能模块已经被内置入Linux内核中,无需进行额外的安装和内核重新编译,便可直接使用LVS提供的各种功能。LVS具有良好的可靠性、可扩展性和可操作性,加上其实现最优的集群服务性能所需的低廉成本,LVS的负载均衡功能经常被用于高性能、高可用的服务器群集中。
在LVS项目架构的服务器集群系统中,通常包含三个功能:最前端的负载均衡、中间的物理服务器群 以及最底端的数据共享存储。在LVS负载均衡集群架构中,尽管整个集群内部有多个物理节点在处理用户发出的请求,但是在用户看来,所有的内部应用都是透明的,用户只是在使用一个虚拟服务器提供的高性能服务。

LVS的核心功能是为集群服务提供软件负载均衡,执行效率最高的是IP负载均衡技术,LVS采用的便是IP负载均衡。LVS的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,其主要安装在集群的Director Server上,并在Director Server上虚拟出一个服务IP地址,用户对服务的访问只能通过该虚拟IP地址实现。这个虚拟IP通常称为LVS的VIP(VirtualIP),用户的访问请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中按照一定的负载均衡算法选取一个服务节点响应用户的请求。IPVS实现数据路由转发的机制有三种,分别是NAT、TUN和DR技术。

keepalived 简单概述

Keepalived最初是由Alexandre Cassen使用C语言编写的开源软件项目,主要目标是简化LVS项目的配置并增强其稳定性,即Keepalived是对LVS项目的扩展增强。Keepalived为Linux系统和基于Linux的架构提供了负载均衡和高可用能力,其负载均衡功能主要源自集成在Linux内核中的LVS项目模块IPVS(IP VirtualServer),基于IPVS提供的4层TCP/IP协议负载均衡,Keepalived也具备负载均衡的功能,此外,Keepalived还实现了基于多层TCP/IP协议(3层、4层、5/7层)的健康检查机制,
因此,Keepalived在LVS负载均衡功能的基础上,还提供了LVS集群物理服务器池健康检查和故障节点隔离的功能。除了扩展LVS的负载均衡服务器健康检查能力,Keepalived还基于虚拟路由冗余协议(Virtual Route Redundancy Protocol, VRRP)实现了LVS负载均衡服务器的故障切换转移,即Keepalived还实现了LVS负载均衡器的高可用性。Keepalived就是为LVS集群节点提供健康检查和为LVS负载均衡服务器提供故障切换的用户空间进程。
Keepalived可实现多机热备,每个热备组可有多台服务器,最常用的就是双机热备,双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器。
Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。

LVS-DR集群配置

DR模式–通过改写请求报文的MAC地址,将请求直接发送到选中的Real Server,而Real Server则将响应直接返回给客户端。因此,这种技术不仅避免了VSNAT中的IP地址转换,同时也避免了VSTUN中的IP隧道开销,所以VSDR是三种负载调度机制中性能最高的实现方案。但是,在这种方案下,DirectorServer与Real Server必须在同一物理网段上存在互联。

在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址。在局域网中具有相同的IP地址,势必会造成各服务器ARP通信的紊乱。
当一个ARP广播发送到LVS-DR集群时因为负载均衡器和节点服务器都是连接到相同的网络上的,它们都会接收到ARP广播。此时只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP播。要对节点服务器进行处理,使其不响应针对VIP的ARP请求使用虚接口lo:0承载VIP地址,需设置内核参数arp_ignore=1 系统只响应目的IP为本地IP的ARP请求

模拟简单实验
两台LVS负载均衡
两台web服务器
一台客户端
LVS调度服务器选用DR模式,并与两台web服务端 配置同一个VIP,当客户机请求访问,是通过VIP进入访问。为验证 两台web服务端采用轮询的方式响应客户端请求,两台web服务器首页内容不同,以此验证。在企业应用中,单台服务器承担应用存在单点故障的危险,在企业应用集群中,存在了至少两处单点故障危险,单点故障一旦发生,企业服务将发生中断,造成极大的危害。Keepalived工具是专为LVS和HA设计的一款健康检查工具:既支持故障自动切换(Failover),也支持节点健康状态检查(Health Checking)

LVS–DR+Keepalived 部署步骤

1:LVS调度服务器配置

(两台LVS服务器步骤一样,只有ens33的IP地址不同,同步操作)

(1)安装ipvsadm软件包,为VIP创建虚拟服务器,使用rr算法

LVS--DR 负载均衡+Keepalived
(2)为ens33、配置IP地址, 为ens33:0配置绑定VIP地址
(3)配置完成,启动各种服务

LVS--DR 负载均衡+Keepalived
(4)配置keepalived双击热备

(两台LVS中keepalived配置文件的修改不同,一台为主,一台为备)
在Keepalieved的热备配置基础上,添加”virtual_ server VIP端口{…}”区段来配置虚拟服务器,主要包括对负载调度算法、群集工作模式、健康检查间隔、真实服务器地址等参数的设置
主:

在另一台LVS服务器上修改:

LVS--DR 负载均衡+Keepalived
LVS--DR 负载均衡+Keepalived
在LVS调度器中执行ipvsadm -In命令 可查看群集节点状态
在LVS调度器中执行ipvsadm -Inc命令 可查看负载连接及分配情况

2:Web节点服务器配置

(两台web步骤一样,只有ens33 IP地址不同,首页内容不同)

(1)安装http服务,关闭防火墙。
(2)为VIP创建虚拟服务器,使用rr算法

(创建虚拟服务器,抑制ARP响应)

(3)为ens33配置IP地址, 为lo:0配置绑定VIP地址

VIP地址仅用作Web响应数据包的源地址,并不监听客户机的访问请求

(3)配置完成,启动各种服务

自检:在LVS配置keepalived之前,可以访问两台web网站首页,验证网站是否搭建成功。
web1:

LVS--DR 负载均衡+Keepalived

3:客户端测试

用一台win 10 浏览器检验:
首先先绑定IP地址 子网 网关,要是同网段的192.168.100.0网段的
首先ping通VIP
#ping 192.168.100.10 –ping VIP
如果不通,两台DR服务器重启网卡服务,再ping一次试试

ping通之后,浏览器里输入VIP地址,可以看到其中一台web服务器首页内容,清除缓存,过1分钟,再次刷新,会看到另一台web服务器的首页内容。

LVS--DR 负载均衡+Keepalived
群集测试:
在客户机浏览器中,能够通过群集的VIP地址(192.168.10.72)正常访问Web页面内容
当主、从调度器任何一个失效时, Web站点仍然可以访问
只要服务器池有两台及以上的真实服务器可用,就可以实现访问量的负载均衡

当其中一台LVS服务器宕机:

LVS--DR 负载均衡+Keepalived

来源:中o诚

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月12日
下一篇 2020年2月12日

相关推荐