共计 2110 个字符,预计需要花费 6 分钟才能阅读完成。
今天小编和大家介绍一下 LVS, 希望能给大家带来一定的收获!
一、LVS 简介
LVS(Linux Virtual Server)即 Linux 虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前 LVS 已经被集成到 Linux 内核模块中。该项目在 Linux 内核中实现了基于 IP 的数据请求负载均衡调度方案,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的 Web 请求会发送给 LVS 调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台 Web 服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问 LVS 调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据 LVS 工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS 工作模式分为 NAT 模式、TUN 模式、以及 DR 模式。
二、LVS 的构成
从物理层面上讲,LVS 的主要组成:
负载调度器 (load balancer/ Director),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个 IP 地址(我们可称之为虚拟 IP 地址) 上的。
服务器池(server pool/ Realserver),是一组真正执行客户请求的服务器,执行的服务一般有 WEB、MAIL、FTP 和 DNS 等。
共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
注:一般为了实现高可用会使用两台以上的调度服务器,作为备份,提高安全性。
从软件层面上讲,LVS 由 2 部分程序组成,包括 ipvs 和 ipvsadm。
1、ipvs(ip virtual server):工作在内核空间的一段代码,叫 ipvs,是真正生效实现调度的代码。
2、ipvsadm:另外一段是工作在用户空间,叫 ipvsadm,负责为 ipvs 内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server),然后由内核代码实现真正的调度算法及功能。
三、LVS 三种工作模式
3.1、基于 NAT 的 LVS 模式负载均衡
NAT(Network Address Translation)即网络地址转换,其作用是通过数据报头的修改,使得位于企业内部的私有 IP 地址可以访问外网,以及外部用户可以访问于公司内部的私有 IP 主机。
LVS 负载调度器可以使用两块网卡配置不同的 IP 地址,eth0 设置为私钥 IP 与内部网络通过交换设备相互连接,eth1 设备为外网 IP 与外部网络联通。
第一步,用户通过互联网 DNS 服务器解析到公司负载均衡设备上面的外网地址,相对于真实服务器而言,LVS 外网 IP 又称 VIP(Virtual IP Address),用户通过访问 VIP,即可连接后端的真实服务器(Real Server),而这一切对用户而言都是透明的,用户以为自己访问的就是真实服务器,但他并不知道自己访问的 VIP 仅仅是一个调度器,也不清楚后端的真实服务器到底在哪里、有多少真实服务器。
第二步,用户将请求发送至 124.126.147.168,此时 LVS 将根据预设的算法选择后端的一台真实服务器(192.168.0.1~192.168.0.3),将数据请求包转发给真实服务器,并且在转发之前 LVS 会修改数据包中的目标地址以及目标端口,目标地址与目标端口将被修改为选出的真实服务器 IP 地址以及相应的端口。
第三步,真实的服务器将响应数据包返回给 LVS 调度器,调度器在得到响应的数据包后会将源地址和源端口修改为 VIP 及调度器相应的端口,修改完成后,由调度器将响应数据包发送回终端用户,另外,由于 LVS 调度器有一个连接 Hash 表,该表中会记录连接请求及转发信息,当同一个连接的下一个数据包发送给调度器时,从该 Hash 表中可以直接找到之前的连接记录,并根据记录信息选出相同的真实服务器及端口信息。
NAT 模式详细说明:
1、client 请求资源,当报文到达 director 时,源和目标 IP 是 CIP-VIP,IPVS 会强行修改目标地址为 RIP,将报文从 INPUT 发向 POSTROUTING,源和目标 IP 修改为 CIP-RIP,RS 验证目标地址是本地地址,则接受报文并处理请求。
2、RS 响应请求,由于请求报文源 IP 是 CIP,所以响应报文的目标 IP 是 CIP;将响应报文发送给网关 director 后,director 会通过 SNAT 将源 IP 修改为 VIP,这样 client 才可以明确是响应它请求报文的数据包。
特点:
director 与 RS 必须在同一个局域网呢
RS 的网关必须指向 director 的私网 DIP。
请求和响应报文都需要 director 转发,会成为整个系统的瓶颈。
支持端口映射,client 访问 80 端口,dire。
好啦!今天的分享到这里就结束了,希望大家能够持续关注 马哥教育 官网,每天都会有大量优质内容与大家分享!
声明:文章转载于网络,版权归原作者所有!