什么是lvs

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

1、LVS的宗旨

使用集群技术和Linux操作系统实现一个高性能、高可用的服务器。
很好的可伸缩性(Scalability)
很好的可靠性(Reliability)
很好的可管理性(Manageability
2、Keepalived的介绍

keepalived起初是专门针对lvs设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能(判断lvs负载调度器,节点服务器的可用性,以及随时隔离并替换新的服务器),当故障机恢复后将其重新加入群集中。

●支持故障自动切换(Failover)

●支持节点健康状态检查(Health Checking)

判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正常,当 master 故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。

3、Keepalived实现原理剖析

●keepalived采用VRRP热备份协议实现Linux 服务器的多机热备功能

●VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案。

●由多台路由器组成一个热备份组,通过共用的虚拟IP地址对外提供服务

●每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态

●若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

基本架设示意图

4 keepalived+lvs实现高可用负载均衡

lvs实现代理,安装在代理服务上,keepalived 实现高可用,也安装在代理服务器上

一、几个概念

1,热备份 keepalived采用VRRP(virtual Router Redundant Protocol, 虚拟路由冗余协议)热备份协议,以软件的方式实现liunx服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案————由多台路由器组成一个热备份组,通过虚拟ip地址对外提供服务,每个热备份组内同一时刻只有一台主路由提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由会自动接替(通过优先级决定顺序)

2,高可用 keepalived不仅仅做用于双机热备。使用keepalived构建lvs群集更加简便易用,主要优势体现在热备切换,提高可用性,对节点服务器进行健康检查,自动移除失效的节点,恢复后再重新加入。

二,工作原理 Layer3,4,5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下: Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。

Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。

Layer5:Layer5对指定的URL执行HTTP GET。然后使用MD5算法对HTTP GET结果进行求和。如果这个总数与预期值不符,那么测试是错误的,服务器将从服务器池中移除。该模块对同一服务实施多URL获取检查。如果您使用承载多个应用程序服务器的服务器,则此功能很有用。此功能使您能够检查应用程序服务器是否正常工作。MD5摘要是使用genhash实用程序(包含在keepalived软件包中)生成的。 SSL_GET与HTTP_GET相同,但使用SSL连接到远程Web服务器。 MISC_CHECK:此检查允许用户定义的脚本作为运行状况检查程序运行。结果必须是0或1.该脚本在导演盒上运行,这是测试内部应用程序的理想方式。可以使用完整路径(即/path_to_script/script.sh)调用可以不带参数运行的脚本。那些需要参数的需要用双引号括起来(即“/path_to_script/script.sh arg 1 … arg n”)

三、群集的类型
负载均衡群集(Load Balancer) 主要是提高应用系统的响应能力,从而获得高并发、高负载然后提高整体性能 例: DNS轮询、应用层交换、反向代理等

高可用群集(High Available) 主要是提高应用系统的可靠性,使用两台或多台节点服务器进行切换等 例: 故障切换、双击热备、多机热备 工作方式主要是: 1.双工:所有节点同时在线 2.主从:主节点在线,从节点在主节点发生故障时自动切换为主节点

高性能运算群集(High Performance Computer,这个用的比较少) 主要是提高应用系统的CPU运算速度,扩展硬件资源和分析能力 例: 云计算、网格计算,依赖于分布式计算和并行计算

————在特殊环境中可以合并使用这几种群集模式,我们这里只说负载均衡群集————

负载均衡群集的结构

第一层:负载调度器 (Load Balancer或Director,至少需要一个) 即访问这个群集系统的唯一入口,对外为VIP地址 (虚拟ip/群集ip地址) ,通常配置为主、从方式的双击热备,确保群集的高可用性

第二层:服务器池 (Server Pool,这里使用的是大量的真实服务器) 首先每个节点都有独立的rip (即真实ip) ,这里的节点服务器只处理调度器分发的客户机请求,当某个节点服务器暂时失效时,负责调度器的容错机制会将其隔离,在错误排除后再重新纳入服务器池

第三层:共享存储 (Share Storage) 这里是为服务器池提供稳定的、一致的文件存储服务,确保群集的数据统一性,可以使用NAS设备或者搭建NFS共享服务的专用服务器

负载均衡群集的工作模式
工作模式有: 基于ip、端口、内容等,基于ip的工作模式效率是最高的 因为在工作中一般使用最多的是基于ip的工作模式,所以这里只说基于ip的模式

地址转换模式(NAT模式)

原理: 调度器为节点服务器的网关,是客户机的访问入口和各节点服务器的回应出口。即调度器同时提供访问入口和回应出口 结构: 服务器和调度器使用私有ip,在同一物理网络,安全性优于IP隧道模式和直接路由模式

IP隧道模式(TUN模式)

原理: 调度器为客户机的访问入口,节点服务器通过专用ip隧道与调度器互相通信,然后节点服务器直接回应客户机。即客户机访问调度器,调度器通过专用ip隧道和节点服务器进行通信,再通过节点服务器直接回应客户机 结构: 是开放式的网络结构,节点服务器都具有独立的公网ip,分散在不同的地方,可以直接回应客户机

直接路由模式(DR模式)

原理: 调度器只为客户机提供访问入口,然后传给节点服务器,再通过节点服务器直接回应客户机。即客户机访问调度器,调度器通过本地网络和节点服务器进行通信,然后节点服务器直接回应客户机 结构: 是半开放式的网络结构,节点服务器集中在一起,和调度器在同一物理网络,通过本地连接

——————————————————总结——————————————————

NAT模式只需要一个公网ip,最易于使用,而且安全性高,许多硬件负载均衡器会采用。DR模式和TUN模式的负载能力更强大,使用的范围更广,但是节点的安全性稍微低一点。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:番茄网 » 什么是lvs

分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

像番茄一样 表里如一

表里如一表里如一
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活