LVS是什么

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org。
现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。
LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等,有许多比较著名网站和组织都在使用LVS架设的集群系统,例如:Linux的门户网站(www.linux.com)、向RealPlayer提供音频视频服务而闻名的Real公司(www.real.com)、全球最大的开源网站(sourceforge.net)等。
LVS软件作用:通过LVS提供的负载均衡技术和Linux操作系统
实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。
从而以低廉的成本实现最优的服务性能。

LVS特性

高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。
稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。
成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。
配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。
支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用
支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。
应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等
缺点:工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。

LVS核心组件和专业术语

LVS的管理工具和内核模块ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务及集群服务上的RS等;
ipvs:工作于内核上的netfilter INPUT钩子之上的程序,可根据用户定义的集群实现请求转发; VS:Virtual Server #虚拟服务
Director, Balancer #负载均衡器、分发器
RS:Real Server #后端请求处理服务器
CIP: Client IP #用户端IP
Director Virtual IP: VIP #负载均衡器虚拟IP
Director IP: DIP #负载均衡器IP
Real Server IP: RIP #后端请求处理服务器IP

LVS工作流程

LVS工作内核模型

1.当客户端的请求到达负载均衡器的内核空间时,首先会到达PREROUTING链。
2.当内核发现请求数据包的目的地址是本机时,将数据包送往INPUT链。
3.LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将被放行至用户空间。
4.如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。
5.最后经由POSTROUTING链发往后端服务器。

最新文章

  1. [bzoj1269][AHOI2006文本编辑器editor] (splay模版题 or pb_ds [rope]大法)
  2. 【转】NVelocity模板引擎初学总结
  3. 为自己搭建一个鹊桥 -- Native Page与Web View之间的JSBridge实现方式
  4. SharePoint 2016 开发 工具Preview发布
  5. wordpress为dashboard添加样式
  6. Java的synchronized关键字:同步机制总结
  7. Struts2 本是非单例的,与Spring集成就默认为单例
  8. eclipse Maven构建的project无法公布lib到tomcat的解决方法
  9. 关于delete使用limit的一些注意事项
  10. cpp常用函数总结
  11. 2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest
  12. React 组件库框架搭建
  13. CF1106F Lunar New Year and a Recursive Sequence 线性递推 + k次剩余
  14. DedeCMS织梦文章页图片地址为绝对路径实现方法
  15. Unity3d游戏地图生成器MapMagic World Generator v1.9.1
  16. Android -- 重写BaseAdapter以及对ListView的优化
  17. [Vue]webpack的require与require.context
  18. Shiro: 权限管理
  19. [Atcoder Grand Contest 003] Tutorial
  20. C++语言基础(10)-虚继承

热门文章

  1. 刷题-力扣-122. 买卖股票的最佳时机 II
  2. Spring系列之集成Druid连接池及监控配置
  3. 你知道 ES6~ES12等叫法是怎么来的吗?
  4. mybatis第一个程序随笔
  5. Spring系列之事物是如何管理的
  6. D3之svg transform 与 css3 transform 区别与联系
  7. JDBC简介及JDBC编写步骤及常见API
  8. NOIP模拟16:「Star Way To Heaven·God Knows·Loost My Music」
  9. Intel® QAT加速卡之同步异步模式
  10. 转:C#根据条件设置datagridview行的颜色