一、LVS的基础介绍
1、LVS是Linux虚拟服务(Linux Virtual Server)的简称,是一个虚拟的服务器集群系统,是国内最早的一批自由软件项目,由章文嵩博士发起。现在LVS项目已经被Linux内核收录,成为Linux表针内核的一个重要组成部分。
2、随着互联网大潮的不断发展,纵向拓展的高额成本和逐渐降低的性能提升不足以满足用户的正常访问,因此横向拓展便成为主要的发展方向。通过使用LVS提供的负载均衡技术和Linux操作系统进而实现一个高性能,高可用的服务器集群,它具有着良好的可靠性,可拓展性和可操作性,从而能够以较低廉的成本价格来提供更好的性能提升。
3、LVS项目自从1998年提出开始,随机不断的发展,现在已经成为了一个相当成熟的技术项目。可以利用LVS技术来实现高度的可伸缩性和高可用性的网络服务;有效的可管理性提供了便捷的异地管理主机;价格的有效性实现了整个系统的经济性和成本的可控性。
4、LVS是一个自由软件项目。LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。
二.LVS的结构
LVS构建的集群系统大致可分为三个部分组成:前端的负载均衡层,中间的服务器集群层和最底层的共享数据层。负载调度器能够无缝隙的将网络请求调度到后端的真实提供服务的服务器上,从而使得服务器集群的结构是透明的,用户在访问整个集群的服务时就像是在访问一台高性能,高可用性的真实服务器一样。客户端的程序不会受到服务器集群的修改而受到影响,服务器集群的可伸缩性在于可以通过向集群中加入或者删除节点来实现,通过对应的节点故障检测和系统重置可以实现高度的可用性。
三、LVS的各层次的具体划分
1、负载均衡层:
处于整个集群的最前端,由一台或者多台调度器构成,LVS模块部署在调度器上,调度器根据既定的算法来实现将网络请求调度到不同后端服务器,完成对应的功能。
2、服务器集群层:
由一组实际运行着应用服务的服务器构成,后端服务器支持的服务包括,web服务,邮件服务,FTP服务,DNS服务等一个或者多个,每个服务器之间可以通过LAN或者更大范围的WAN相连,在实际的应用场景中,调取服务器也可以作为应用服务器提供服务。
3、共享数据层:
向服务器集群中的所有real server提供共享存储空间和内容一致性的存储区域。一般是由磁盘阵列组成,提供数据的一致性。也可以由NFS提供。目前来说磁盘阵列更为适合,NFS受网络影响较大,不太稳定。
注意:调度器在整个LVS体系中最为关键,是整个系统的核心部分。目前来说调度器系统仅仅支持Linux,内核2.6之后已经无需设置就原生支持LVS,但是reaslserver的系统并不受限制,大多数常见的系统均可作为应用服务器提供服务。
四、LVS的优缺点
通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。LVS的主要优缺点有以下几个方面:
优点
1、高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持几十万并发连接。
2、稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。
3、成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。
4、配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。
5、支持多种算法:支持多种轮调算法,可根据业务场景灵活调配进行使用支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。
6、应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等