摘要
Linux 虚拟服务器管理系统以 Linux Virtual Server 和 Keepalived 为基础,为企业提供一个稳定的、可维护的、可扩展的、高可用性负载均衡管理的解决方案。本论文主要研究内容包括对虚拟服务器集群的管理、对虚拟服务器集群运行状态的监测、对虚拟服务器集群运行数据的统计、对 Keepalived 配置文件的热加载等几个部分。对于传统使用 Linux 虚拟服务器和 Keepalived 搭建的负载均衡服务器集群,需要手动对每一台 Linux 虚拟服务器进行配置,并且对配置的修改也需要在每一台 Linux 虚拟服务器上进行,这样扩展性非常低。
而且传统的负载均衡服务器集群不能对负载均衡服务器集群的状态进行监测,也不能很方便的得到全局的负载均衡服务器集负载情况。
Linux 虚拟服务器集群管理系统为以 Linux 虚拟服务器和 Keepalived 为基础搭建的负载均衡服务器集群提供了一个中心化的配置管理系统。能够把Linux虚拟服务器组成集群,对集群中的 Linux 虚拟服务器进行远程的、批量的配置。
而且还提供了对配置文件的备份处理,以便配置出错时能够及时回滚。管理系统提供了对集群中服务器运行状态的监测、报警程序,能够实时对集群中所有的服务器进行有效的监测。管理系统还提供了统一的对集群负载情况进行采集的程序,实时的采集虚拟服务器集群中每台服务器的负载情况,方便了对集群总体负载情况进行了解。而且还为 Keepalived 提供了配置文件热加载功能,这改变了以往改变配置文件都需要重启 Keepalived 的模式,使得在 Keepalived一直运行的状态下,动态加载配置,极大的提高了系统的性能。
关键词:Linux 虚拟服务器;管理系统;负载均衡;Keepalived;热加载
Abstract
Linux Virtual Server management system based on Linux Virtual Server and Keepalived, provide enterprises with a stable, maintainable, scalable, high availability load balancing management solutions. In this paper the main research contents include the management of the virtual server cluster, monitoring of running status of the virtual server cluster, the virtual server cluster operation data statistics,the heat load of the Keepalived configuration file. For traditional load balancing based on Linux virtual server and Keepalived need to manually configure each Linux virtual server, and if the configuration changes, also need to configure each Linux virtual server again. The scalability of this method is very low. And the traditional load balancing server cluster can’t monitor the state of the load balancing server cluster, also can't get a global load balancing statistics of the cluster.
Linux virtual server management system provides a centralized configuration management system for load balancing server cluster which is based on the Linux virtual server and Keepalived. Set up the Linux virtual server as a cluster, then configure the cluster of the Linux virtual server remotely and batch. But also the system provides for a backup configuration file processing for error operations.
Management system provides monitoring and alarm for server in the cluster, which can monitoring status of the cluster effectively. Management system also provides a uniform procedures for collection of cluster load. Collect load statistics of each server in the cluster in real time, which makes get cluster load statistics easier. Linux virtual server management system also provides a heat loading for configuration file of Keepalived, which changes the method that need to restart Keepalived to make the system load configuration file. This make Keepalived can load configuration dynamically when it has been running, which improve the performance of the system greatly.
Keywords: linux virtual server, management system, load balancing, keepalived,heat loading
随着信息技术的发展,网络通信越来越频繁,数据流量急剧增加。特别是对于数据中心、大型企业以及门户网站等的访问,其访问流量已经是单台服务器不能够承受的,同时大部分网站都需要提供全天不间断的服务。但是对于一些企业,要自己搭建负载均衡服务器集群是非常困难的。于是这些企业把目光转向了云计算。
云计算厂商为企业或个人提供可靠的负载均衡服务,保证企业服务的正常运行。但是对于云计算厂商所需要提供的负载均衡服务和传统的负载均衡服务有较大差别。传统负载均衡服务是固定配置的,负载均衡服务器集群搭建之后的很长一段时间,都不需要修改其配置结构,并且没有一个统一的监测系统来保证负载均衡运行的稳定性,没有一个统一的负载数据采集系统来为负载均衡运行负载情况进行统计。对于云计算厂商提供的负载均衡服务,需要根据用户的不同需求,提供可变的负载均衡服务。比如用户在某一段时间需要向负载均衡集群中添加一台服务器,过一段时间之后撤出这台服务器。这对于传统的固定配置的负载均衡服务器集群是不能够满足这样的需求的。云计算厂商也需要为用户提供负载均衡运行情况的统计信息等一些其他需求。
本论文致力于设计实现一个 Linux 虚拟服务器管理系统,为负载均衡集群提供一个可维护的、可扩展的、高可用性负载均衡管理的解决方案。Linux 虚拟服务器项目发展至今,已经衍生出很多版本,满足各种不同情况下的使用。LVS 在 Linux2.4 内核以后,已经被集成到 Linux 内核中。
LVS 现在已经是一个非常稳定的项目。可以利用 LVS 实现高性能、高稳定性的网络服务,例如 WWW 服务[3,4,5]、Cache 服务[6]、DNS 服务[7]、FTP 服务[8]、MAIL 服务[9][10]、视频/音频[11,12]点播服务、游戏服务[13]等等,有许多比较着名网站和组织都在使用 LVS 架设的集群系统,例如:淘宝网、Linux 门户网站、全球最大的开源网站等[14]。而把分布式系统与 LVS 实现的负载均衡相结合,更能实现高负载,高可用性的超级服务器集群[15]。
Linux 虚拟服务器是构建在真实服务器集群上的一个高性能、高可用性的服务器,有很好的可伸缩性、可靠性、可管理性[16,17]。LVS 主要用于多服务器的负载均衡。它工作在网络层,结合集群文件系统[18],或共享文件系统[19],可以实现高性能,高可用的服务器集群技术。LVS 支持 4 层负载均衡,同时也可以使用 LVS 的 4 层负载均衡实现 7 层的负载均衡,这使得 LVS 更符合一些上层业务逻辑的需求[20]。LVS 廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。LVS 的配置非常简单,且有多种负载均衡的方法。LVS 稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果[21]。
Linux虚拟服务器管理系统界面演示:
MgmtServer 模块数据库 E-R 图
用户操作监测时序图
RPC 接口模块测试结果
目 录
摘 要
Abstract
第1章 绪 论
1.1 课题背景及研究的目的和意义
1.2 国内外研究现状
1.2.1 Linux 虚拟服务器
1.2.2 Keepalived
1.3 本文的主要研究内容及论文结构
第2章 需求分析与总体设计
2.1 需求分析
2.1.1 功能需求分析
2.1.2 非功能需求分析
2.2 系统总体设计
2.2.1 总体结构
2.2.2 系统模块说明
2.3 本章小结
第3章 系统详细设计与实现
3.1 MgmtAgent 模块的设计与实现
3.1.1 RPC 接口模块的设计与实现
3.1.2 统计模块的设计与实现
3.2 MgmtServer 模块的设计与实现
3.2.1 业务逻辑层的设计与实现
3.2.2 通用层的设计与实现
3.2.3 数据库的设计与实现
3.2.4 Model 层的设计与实现
3.3 MgmtMonitor 模块的设计与实现
3.3.1 用户操作监测模块的设计与实现
3.3.2 进程状态监测模块的设计与实现
3.3.3 一致性检查模块的设计与实现
3.4 Keepalived HotConf 模块的设计与实现
3.4.1 初始化模块的设计与实现
3.4.2 接收命令模块的设计与实现
3.4.3 加载配置模块的设计设计与实现
3.5 本章小结
第4章 系统测试与性能分析
4.1 MgmtAgent 模块测试用例
4.1.1 RPC 接口模块测试
4.1.2 统计模块测试
4.2 MgmtServer 模块测试用例
4.2.1 用户验证测试
4.2.2 LVS 集群操作测试
4.2.3 LVS 操作测试
4.2.4 VS 操作测试
4.2.5 RS 操作测试
4.3 MgmtMonitor 模块测试用例
4.3.1 用户操作监测测试
4.3.2 进程状态监测测试
4.3.3 一致性检查监测测试
4.4 Keepalived 的 HotConf 模块测试用例
4.5 程序结果
4.5.1 LB 管理
4.5.2 VIP 管理
4.5.3 统计查询
4.6 本章小结
结 论
参考文献
哈尔滨工业大学学位论文原创性声明和使用权限
致 谢
个人简历
(如您需要查看本篇毕业设计全文,请您联系客服索取)