1.LVS介绍
(1)LVS是linux virtual server的简称,是由章文嵩博士发起的自由软件项目,现在lvs已经是linux标准内核的一部分,在linux2.4内核以前,使用lvs必须要重新编译内核以支持lvs模块;但在linux2.4之后,已经完全内置了lvs的各个功能模块,直接使用。
(2)lvs自从1998年开始,发展到现在已经是一个比较成熟的技术项目了;可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如www服务、cache服务、dns服务、视频点播服务等。
(3)LVS软件的作用
通过LVS提供的负载均衡技术和linux操作系统实现一个高性能、高可用的服务器集群,它具有良好的可靠性、可扩展性和可操作性,从而以低廉的成本实现最优的服务性能。
2.LVS的优势和不足
(1)优势:
高并发连接:lvs基于内核网络层面之上,有超强的承载能力和并发处理能力,单台lvs负载均衡器,可支持上万并发
稳定性强:是工作在四层的,仅分发作用
成本低廉:硬件负载均衡少则十几万,多则几十上百万,lvs仅需一台服务器就能免费部署使用
配置简单:lvs配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理
支持多种算法
支持多种工作模式
应用范围广
(2)不足
工作在四层,不支持七层规则修改,机制过于庞大,不适合小规模应用
3.LVS核心组件和专业术语
(1)核心组件
LVS管理工具和内核模块 ipvsadm/ipvs
ipvsadm #用户空间的命令行工具,用于管理集群服务以及集群服务上的RS等
ipvs #工作于内核上的netfilter INPUT钩子之上的程序,可根据用户定义的集群实现请求转发
(2)专业术语
VS # virtual server虚拟服务
director,balancer #负载均衡器
RS # real server 后端请求处理服务器
CIP # client ip 用户端IP
VIP # director virtual server负载均衡虚拟IP
DIP # director ip 负载均衡器IP
RIP # real server ip后端请求处理服务器ip
4.LVS工作内核模型及工作模式
(1)当客户端的请求到达负载均衡服务器的内核空间时,首先会到达PREROUTING
链;
(2)当内核发现请求数据包的目的地址是本机时,将数据包发送往INPUT
链;
(3)LVS由用户空间的ipvsadm和内核空间的ipvs组成,ipvsadm用来定义规则,ipvs利用ipvsadm定义的规则工作,ipvs工作在INPUT链上,当数据包到达INPUT
链时,首先会被IPVS检测,如果数据包里面的目的地址和端口没有在规则里面,那么这条数据包将被放行至用户空间;
(4)如果数据包里面的目的地址和端口在规则内,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并往POSTROUTING
链;
(5)最后经由POSTROUTING
链发往后端服务器