LVS集群技术在教学资源库平台中的应用

2024-04-26 15:32

本文主要是介绍LVS集群技术在教学资源库平台中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘  要: 介绍了LVS集群技术的原理、框架。以CentOS操作系统为基础,描述了LVS集群的配置及实现过程,并对构建的集群系统进行了配置、功能和性能测试。测试结果表明,所构建的集群系统稳定、可靠,具有高可用性、可扩展性和负载均衡的特性。
关键词: LVS;集群;教学资源库;负载均衡;高可用性

 随着互联网规模的快速扩张,人们访问互联网的业务流量呈爆炸式的增长,网络服务器的并发响应能力面临严峻的考验;同时,更多更复杂的Web事务处理也对服务器的性能提出了更高的要求。单台的计算机提供的服务已不能胜任如此艰巨的任务,而集群技术的出现,则有效地解决了这一问题。
 根据集群的功能、结构和技术的不同,可分为高性能集群、高可用性集群和负载均衡集群,其中负载均衡是集群技术的核心,是决定集群性能的重要因素[1]。在集群技术的发展过程中,出现了许多种不同的集群技术实现方案,而Linux作为一种开源的操作系统及基于LVS实现的Linux集群技术,则更多地得到了人们的关注。
1 LVS集群技术
1.1 LVS简介

 LVS[2](Linux Virtual Server,Linux虚拟服务器)是Linux操作系统上的一个负载均衡软件,是在1998年由国防科技大学的章文嵩博士主持的一个在Linux操作系统上开发的开源集群项目[3]。目前技术发展的比较成熟,已成为Linux内核的一部分。
1.2 LVS模型
 LVS提供的可伸缩网络服务的框架如图1所示。IPVS软件提供三种IP负载均衡技术,KTCPVS实现了基于内容请求分发的应用层交换。可以利用LVS框架实现高可伸缩的、高可用的Web、FTP、Mail等网络服务,开发高可用的电子商务应用。

 LVS在两个层次上很好实现了负载均衡,基于网络层的IPVS和应用层的KTCPVS内容请求分发技术,三种负载均衡技术分别为网络地址转换模式VS/NAT、IP隧道模式VS/TUN和直接路由模式VS/DR。
1.3 LVS的通用体系结构[4]
 在图2所示中,负载调度器是集群调度的核心,是客户机通过虚拟IP访问集群系统的入口。多个真实服务器组成真实提供服务的服务器池,真实服务器的数目可根据需要动态添加,它们共享一个存储区域。整个系统对外呈现一个虚拟服务器,拥有虚拟IP,用户通过虚拟IP访问负载调度器后,根据采用的负载均衡算法将用户的请求调度到一个真实的内部服务器进行处理,多个服务器可以并行执行用户的请求,增加集群系统的整体吞吐率[5]。

 CentOS5默认安装LVS,采用Piranha图形界面进行配置管理,跳动进程Pulse是Piranha的主进程,它负责发送和检测节点之间的心跳(heartbeat)[6-7],两个节点周期性地发送heartbeat信息到网络上,指出当前节点是活动(active)的还是非活动(inactive)的。当LVS开始工作时,LVS进程通过调用ipvsadm程序配置和维护内核中的IPVS路由表,为每一个真实服务器启动一个nanny进程。nanny进程可以查看服务器上配置服务的状态,在服务故障时,通知LVS进程,LVS进程即可调用ipvsadm删除IPVS中对应的路由表项。
当backup router通过心跳通道(heartbeat channel)没有接收到active router的回应时,将调用send_arp函数重新建立虚拟IP到备份结点MAC的映射,然后通过发送命令使active router中的LVS进程关闭,在备份结点中启动LVS进程以恢复和配置服务器之间的连接。
2 基于LVS的集群技术在Linux内核2.6上的实现[7-8]
2.1 平台应用背景

 我院的共享型专业教学资源库平台建设是在近几年学校的数字化校园建设成果的基础上,依托校园网构建一个功能完整、形式多样、内容丰富的、基于Web的共享型专业教学资源库软件平台,构筑开放的教学资源环境,最大限度地满足学生自主学习的需要。为向系统用户(教师和学生)提供流畅、不间断、实时高速度的访问服务,采用了开源Linux操作系统CentOS5.4,结合基于LVS的集群技术,构建系统平台服务器。
2.2 系统拓扑
 平台系统以虚拟IP向外提供服务,图3中①、②为负载均衡主、从调度器,通过交换网络与真实服务器③、④、⑤、⑥连接,平台系统共享内部存储⑦和⑧。节点①和②负责把客户请求转发到Real Server上,当节点①负载均衡器(load balance)不正常工作时,节点①的资源和VIP(虚拟IP)自动切换到节点②,整个系统的调度策略采用LVS/DR。共享型专业教学资源库平台拓扑如图3所示。

2.4 集群系统配置过程
 在CentOS5.4中已集成了LVS,只需在系统安装时选择相应的套件即可,省去了繁琐的内核编译过程。
 (1)按拓扑要求,配置相应服务器的网络参数,并安装所需的piranha软件包。
#rpm-ivh piranha-0.8.4-7.el5.i386.rpm
#/etc/init.d/piranha-gui restart
 (2)访问http://125.219.112.X:3636,进行集群的Web界面配置。
配置包括GLOBAL SETTINGS、REDUNDANCY和VIRTUAL SERVERS,配置文档可参考文献[7],配置完成后,信息保存到/etc/sysconfig/ha/lvs.cf文件。
 (3)把主调度器上的配置文件保存到备份调度器。
 (4)在主、从调度器上分别启动piranha主进程。
#service pulse restart
3 性能测试
 在平台服务器的集群功能配置完成后,为了验证集群配置的正确性,以及是否满足负载均衡、高可用性的要求,同时对于Web站点的服务器的响应时间和吞吐量性能表现,做以下测试:
3.1 集群的调度测试

这篇关于LVS集群技术在教学资源库平台中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937958

相关文章

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

python协程实现高并发的技术详解

《python协程实现高并发的技术详解》协程是实现高并发的一种非常高效的方式,特别适合处理大量I/O操作的场景,本文我们将简单介绍python协程实现高并发的相关方法,需要的小伙伴可以了解下... 目录核心概念与简单示例高并发实践:网络请求协程如何实现高并发:核心技术协作式多任务与事件循环非阻塞I/O与连接

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

springBoot (springCloud2025)集成redisCluster 集群的操作方法

《springBoot(springCloud2025)集成redisCluster集群的操作方法》文章介绍了如何使用SpringBoot集成RedisCluster集群,并详细说明了pom.xm... 目录pom.XMLapplication.yamlcluster配置类其他配置类连接池配置类Redis

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个