LVS–虚拟服务
LVS介绍
LVS是Linux virtual server的缩写,为linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对于用户来说,看不到Web后端具体的应用
LVS组成
ipvs:内核态 核心代码 钩子函数(内核的机制)
ipvsadm:用户态 命令行管理工具
LVS集群结构
LVS集群分为三个结构:
负载调度器(Load Blancer):是整个LVS集群对外的前端机器,负责接受client的请求转发到一组服务器上执行,而client则认为返回来是同一个IP(通常把这个IP成为虚拟ip或VIP)
服务器池(Server Pool):一组真正执行clinet请求的服务器,一般是web服务器;除了web,还有FTP、MAIL、DNS等
共享存储(Shared Stord):它为server pool提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务
LVS的相关术语
DS:Director Server,指的是前端负载均衡器节点
RS:Real Server,后端真实的工作服务器
VIP:Virtual IP ,向外部直接面向用户请求,作为用户请求的目标的IP地址
DIP:Director Server IP,主要用于和内部主机通讯的IP地址
RIP:Real Server IP,后端服务器的IP地址
CIP:Client IP,访问客户端的IP地址
LVS的三种工作模式
NAT:路由转发模式
DR:直接路由模式
TUN:隧道模式
性能比较:DR < YUN < NAT
LVS NAT:路由转发模式
原理:用户请求LVS到达DS,DS将请求的报文的目的IP改为RIP,同时将报文的目标端口也改为RS的相应端口,最后将报文发送到RS上,RS将数据返回给DS,DS再把数据发送给用户
LVS NAT模式的特性
1、DR必须位于RS与C之间,并且充当RS的网关(RS的网关必须指向VIP,且RS的IP为私网IP) 2、RS与DR必须处于同一个广播域以及同一个网段 3、支持端口映射(负载调度器的端口可以和真实服务器的端口不一致) 4、RS操作系统是任意的,但是负载调度器必须是Linux系统 5、入站出站数据报文都经过DR,所以LVS可能会成为一个系统的瓶颈问题
LVS DR:直接路由模式
原理:用户请求LVS到达DS,DS将请求的报文的目的MAC地址改为后端的RS的MAC地址,目的IP为VIP(不变),源IP为client IP地址(不变),然后DS将报文发送到RS,RS检测到目的地址为自己本地的VIP,如果在同一网段,将请求直接返回给用户,如果用户跟RS不在同一个网段,则需要通过网关返回给用户
LVS DR模式的特性
1、RS跟DS必须在同一个物理网络中 2、不支持地址转换,不支持端口映射 3、RS和DR必须都是 Linux 操作系统 4、所有的请求报文经由DS,响应报文由RS转发 5、所有的RS都有VIP地址(RS上的lo接口配置VIP的IP地址) 6、RS的网关绝不允许指向DIP(因为我们不允许他经过DR) 7、RS可以使用私有地址;也可以是公网地址 8、DR的VIP对外可见,RS的VIP和MAC地址对外不可见
LVS TUN:隧道模式
原理:用户的请求到达LVS的DS,DS会将CR的请求的数据报文重写封装,在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标IIP为VIP),外层IP首部(源地址为DIP,目标IP为RIP),DS将重新封装好的请求报文发送给RS,RS收到请求之后发现目标IP是自己的IP,然后对报文进行拆分,拆掉最外部的首部发现,里边还有一个首部,源地址为DIP,目标IP为lo:VIP,此时RS开始处理此请求,处理完成之后,通过lo接口送给eth0网卡,然后向外传递。 此时的源IP地址为VIP,目标IP为CIP,最终将请求报文发送给客户端。
LVS TUN模式的特性
1、RS的网关不能指向DIP 2、所有的请求报文经由DS,但响应报文必须是RS发送给CS 3、不支持端口映射 4、RS系统支持隧道 5、隧道模式运维起来会比较难,所以一般不用 6、RIP,DIP,VIP全得是公网地址
LVS提高并发策略
1.提高负载调度器的性能,优先提高性能(分割业务比较复杂)
2.减轻单集群压力,分割业务