一种实现负载平衡与高可用性的系统及其方法

文档序号:7959845阅读:236来源:国知局
专利名称:一种实现负载平衡与高可用性的系统及其方法
技术领域
本发明涉及一种实现负载平衡与高可用性的系统及其方法,尤其涉及一种利用心跳判断是否代理另一服务器,并依据闲置度判断处理请求的服务器,使两服务器实现负载平衡与高可用性的系统及其方法。
背景技术
在网络技术发展上,频宽的增加速度远远领先服务器整体效能的增加速度,在这样的情况下,把若干台服务器集合在一起,对外看起来仅一台服务器提供服务,也就是丛集(Cluster),成为一种必然的发展趋势。
以下举出目前常使用的两类丛集高可用性(High Availability,HA)丛集、负载平衡(Load Balance)丛集。高可用性丛集以保障服务器群对外提供稳定而连续的服务为目的,丛集中的每台服务器都能够对外服务,彼此之间还通过被称为心跳(Heart Beat)的特殊连接互相检测状态。HA的工作方式是主动式备援(Active/Standby,A/S)的模式,在一个时刻只有一台服务器(主服务器)对外提供服务,其它服务器只处于Standby的状态,作为备份服务器。当主服务器出现故障时,备份服务器通过心跳检测到这一情况并通过一定的算法在所有备份服务器中产生出新的对外提供服务的服务器;一旦主服务器恢复了,就需要通过手动或是软件控制的方式重新让主服务器对外提供服务;负载平衡丛集通过算法平衡服务器群中各个服务器上的负载,以提高对外服务的总体效能。传统的负载平衡丛集由一台对外服务器的前导服务器(Director/Load Balancer)和若干台节点(Node)的实体服务器(RealServer)构成。其中前导服务器充当一个负载调度器,所有对丛集的连接都是通过前导服务器进行的,前导服务器通过一定的算法把所有请求分发到各个节点上,然后由各个节点真正提供服务,并把处理结果响应给请求端。
如上述的丛集虽然常使用,但是在实用上还存在一些问题高可用性丛集保证服务器群对外提供连续不中断的服务,但在主服务器没有出现故障的时候,备份服务器仅处于闲置状态,在服务器的使用率上是很大的浪费;而负载平衡丛集虽然平衡了各个服务器的负载,使得对外提供服务的总体效能得到了提升,但是,建构一个负载平衡的系统需要三台或三台以上主机,而其中作为负载调度器的前导服务器所起到的作用仅仅是分发请求,却又是作为负载平衡丛集中不可缺少的一个组成部分,在一定程度上也构成了服务器的浪费。

发明内容
本发明所要解决的技术问题在于提供一种实现负载平衡与高可用性的系统及其方法,利用数据传输信道连结两服务器,使两服务器可通过数据传输信道传输心跳、闲置度、与客户端的请求,并依据心跳判断是否代理另一服务器,及依据闲置度判断处理请求的服务器,如此便可以提高服务器的使用率,并实现负载平衡与高可用性的功效。
为实现上述目的,本发明所揭露的实现负载平衡与高可用性的系统,包括有第一闲置度检测模块、第一筛选模块、第一服务模块、第一心跳发送模块、第一心跳接收模块、第二闲置度检测模块、第二筛选模块、第二服务模块、第二修改模块、第二心跳发送模块、第二心跳接收模块、数据传输模块。
而且,为实现上述目的,本发明所提供的实现负载平衡与高可用性的方法包括有下列步骤第二服务器接收第一服务器的心跳,判断该心跳与预期不符时,增加(bind)第一服务器的网络地址至第二服务器上;及第一服务器判断第一与第二服务器何者闲置度较高,并将请求由闲置度较高的服务器处理。本发明所提的闲置度,为服务器上的闲置资源的占总资源的比例,例如未使用的内存与总内存、中央处理器未使用的百分率等,但不以此为限。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为本发明所提的实现负载平衡与高可用性的系统架构图;图2A为本发明所提的实现负载平衡与高可用性的筛选方法流程图;图2B为本发明所提的实现负载平衡与高可用性的判断采取操作的方法流程图;
图2C为本发明所提的实现负载平衡与高可用性的修改响应方法流程图;图2D为本发明所提的实现负载平衡与高可用性的代理方法流程图。
其中,附图标记100A第一服务器 100B第二服务器101数据传输模块 102网络110A筛选模块110B筛选模块120修改模块 130服务模块140闲置度检测模块 150心跳发送模块160A心跳接收模块160B心跳接收模块步骤210接收请求步骤220请求是否来自数据传输信道步骤230判断对请求采取的操作步骤231第二服务器心跳是否符合预期步骤232两服务器是否均不可处理请求步骤233是否仅第一服务器可处理请求步骤234是否仅第二服务器可处理请求步骤235第二服务器是否较闲置步骤240接受请求步骤250转发请求步骤260拒绝请求步骤270接收响应步骤280修改来源地址步骤290发送回应步骤310第一服务器心跳是否符合预期步骤320增加网络地址步骤330接收请求步骤340接受请求步骤350拒绝请求步骤360删除网络地址
具体实施例方式
图1为本发明的实现负载平衡与高可用性的系统架构图,通过图1来说明本发明的系统运作。在第一服务器100A,包含有筛选模块110A、修改模块120、服务模块130、闲置度检测模块140、心跳发送模块150、心跳接收模块160A、数据传输模块101,第二服务器100B中,各包含有筛选模块110B、修改模块120、服务模块130、闲置度检测模块140、心跳发送模块150、心跳接收模块160B、数据传输模块101。其中第一服务器100A的筛选模块110A负责接收请求,并将其中非第二服务器100B的筛选模块110B所传来的请求,依据第一服务器100A与第二服务器100B的闲置度判断对该请求采取接受、拒绝或转发的操作;第二服务器100B的筛选模块110B负责接受第一服务器100A的筛选模块110A所传来的请求或是在第一服务器100A通过数据传输模块101所传来的心跳不为预期时,接收客户端的请求;修改模块120负责将服务模块130产生的响应的来源地址修改为第一服务器100A的网络102地址,并把响应送回给客户端;服务模块130负责处理筛选模块所接受的请求,并产生一个响应;闲置度检测模块140负责检测所处的服务器的闲置度,以提供给筛选模块110A作为是否要转发请求的依据;心跳发送模块150负责通过数据传输模块101传送代表所处服务器状态的心跳至另一服务器的心跳接收模块;心跳接收模块负责接收另一服务器的心跳,且第二服务器100B的心跳模块160B还会判断接收的心跳不为预期时,增加第一服务器100A的网络地址至第二服务器100B上,并通知筛选模块110B接收客户端的请求;数据传输模块101负责提供数据传输信道给第一服务器与第二服务器传输心跳、闲置度、与客户端的请求。
接着以一个实施例来解说本发明的运作系统与方法,并请参照图2A、图2B、图2C、图2D的流程图及图1,有第一服务器100A与第二服务器100B构建本发明所述的丛集,第一服务器可提供FTP服务、HTTP服务,第二服务器提供数据库服务、HTTP服务,并以未使用的内存占总内存的百分比为闲置度。
在第一服务器100A与第二服务器100B的状态均正常(即第一服务器100A的心跳与第二服务器100B的心跳均为预期的正常值)的第一时刻,第一计算机向第一服务器100A发送第一请求,第一请求为HTTP服务的请求,第一服务器100A的筛选模块110A在接收第一请求之后(步骤210),判断发现第一请求并非来自数据传输信道(步骤220),于是判断应对第一请求采取何种操作(步骤230),以下为步骤230的判断过程,但判断的方式不局限于此,首先判断第二服务器100B的心跳是否正常,若否,则接收第一请求,并交由服务模块130处理,若是,则判断是否两服务器均不可处理这一请求(步骤232),若是,则拒绝第一请求,若否,则判断是否只有第一服务器100A可处理(步骤233),若是,则接受第一请求,若否,则判断是否只有第二服务器100B可处理(步骤234),若是,则转发第一请求至第二服务器100B处理,因两服务器都能够处理第一请求,故步骤233、步骤234均不成立,所以进一步比较两台服务器的闲置度(步骤235),若第一服务器100A的闲置度检测模块140发现第一服务器100A使用了328/1024MB的内存,第二服务器100B的闲置度检测模块140发现第二服务器100B使用了83/512MB的内存,故本发明会使用闲置度高的第二服务器100B来处理第一请求,于是第一服务器100A的筛选模块110A将第一请求转发给第二服务器100B的筛选模块110B(步骤250),第二服务器100B便接收、接受并处理第一请求,并在服务模块130处理完成产生第一响应后(步骤270),修改模块120修改第一响应的网络地址为第一服务器100A的网络地址(步骤280),并将第一响应送至网络上给第一计算机(步骤290);如果第二服务器100B当时的内存使用量为164MB,则因为判断两服务器的闲置度相同(步骤230),则第一服务器将自行接受并处理这一请求(步骤240)。
在第二时刻第二服务器100B的心跳接收模块160B没有收到第一服务器100A的心跳发送模块150所传出的心跳(步骤310),第二服务器100B会判断第一服务器100A发生故障,那么第二服务器100B将把第一服务器100A的网络地址增加到自己的网络卡上(步骤320),如此一来,第二服务器100B的筛选模块110B将可以接收到所有对第一服务器100A的请求,若此时有请求HTTP服务的第二请求被第二服务器100B的筛选模块110B接收(步骤330),因为第二服务器100B能够提供HTTP服务,于是第二服务器100B将予以接受并由服务模块130处理(步骤340);但若有请求FTP服务的第三请求被第二服务器接收,因为第二服务器无法提供FTP服务,因此第三请求都被拒绝(步骤350)。
延续上一个实施例,在第三时刻第二服务器100B接收到第一服务器100A的正常心跳,则第二服务器100B认为第一服务器100A已恢复,于是将第一服务器的网络地址由自己的网络卡上删除(步骤360),若此时有请求数据库服务的第四请求被第二服务器接收,则因为第一服务器已正常运作,故第二服务器100B的筛选模块110B将拒绝第四请求(步骤350),不提供数据库服务来进行处理。
若在第一服务器100A与第二服务器100B正常工作的第四时刻,第一服务器100A接收到请求FTP服务的第五请求,由于只有第一服务器100A能够提供FTP服务,所以第一服务器100A直接接受该请求(步骤233)并由服务模块130处理;若第五请求为数据库服务的请求,由于只有第二伺服100B器能够提供数据库服务(步骤234),所以第一服务器100A的筛选模块110A通过数据传输信道将第五请求转发给第二服务器100B的筛选模块110B,筛选模块110B判断第五请求是由第一服务器100A转发而来,故第二服务器100B的筛选模块110B接受第五请求并交由服务模块130处理,处理完毕后第二服务器100B修改模块120修改处理产生的响应的来源地址为第一服务器的网络地址,并将响应送回给客户端;若第五请求为SMB服务的请求,第一服务器判断第一服务器和第二服务器都不提供SMB服务(步骤232),所以第一服务器将拒绝第五请求(步骤260)。
继续延续上一个实施例,但闲置度改以中央处理器(CPU)的负载为衡量基准,在第五时刻,第二服务器内存发生错误,因此发出的心跳有一位(bit)由0变为1,则第一服务器接收到第二服务器发出的心跳后,认定第二服务器发生故障(步骤231),若此时接收到请求有HTTP服务的第六请求,则第一服务器不再比较自己与第二服务器的CPU负载何者较低,将直接接受并处理第六请求,若第六请求为数据库服务的请求,则第一服务器将直接拒绝第六请求,直到第二服务器的心跳回复正常状态。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种实现负载平衡与高可用性的系统,利用具有第一网络卡的第一服务器,与具有第二网络卡的第二服务器以实现该系统,其中该第一网络卡具有第一网络地址,其特征在于,该系统包含第一闲置度检测模块,作用于该第一服务器上,用以检测该第一服务器并产生第一闲置度;第二闲置度检测模块,作用于该第二服务器上,用以检测该第二服务器并产生第二闲置度;第一筛选模块,作用于第一服务器上,用以接收一客户端的一第一请求,并将该第一请求采取接受、或转发的操作其中之一,其中转发的操作发生于判断该第二闲置度高于该第一闲置度之时;第一服务模块,作用于第一服务器上,用以处理该第一请求,在该请求处理完成后产生第一响应,并将该第一响应送回给该客户端;第一心跳发送模块,作用于第一服务器上,用以于间隔一固定时间时,产生代表该第一服务器状态的一第一心跳,并将该第一心跳送往该第二服务器;第二筛选模块,作用于该第二服务器上,用以接收一第二请求,并将该第二请求采取接受的操作;第二服务模块,作用于该第二服务器上,用以处理该第二请求,在该第二请求处理完成后产生第二响应;第二修改模块,作用于该第二服务器上,用以修改该第二响应的来源地址为第一网络地址,并在修改完成之后将该第二响应送回该客户端;第二心跳发送模块,作用于该第二服务器上,用以检测该第一心跳,检测该第一心跳为非预期时,将该第一网络地址增加至该第二网络卡上;及一数据传输模块,连接第一服务器与第二服务器,用以传送该第一心跳、该第一服务器转发的第一请求。
2.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第一筛选模块还包含判断该第一请求仅第一服务器可处理时,采取接受的操作,其中该判断发生在转发该第一请求至第二服务器之前。
3.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第一筛选模块还包含判断该第一请求仅第二服务器可处理时,采取转发至第二服务器的操作。
4.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第一筛选模块还包含判断该第一服务器与该第二服务器均无法处理该第一请求时,采取拒绝该第一请求的操作。
5.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第二筛选模块还包含采取转发第二请求至第一服务器的操作,该操作发生在判断该第二服务器无法处理该一请求之时。
6.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第二筛选模块还包含判断该第二服务器无法处理该第二请求且该第一心跳为非预期时,采取拒绝该第二请求的操作。
7.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第二筛选模块还包含判断该第一心跳为预期时,采取拒绝该第二请求的操作。
8.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第一服务器还包含一第一修改模块,用以接收该第一服务模块所产生的第一响应,并将该第一响应送回该客户端。
9.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该第二心跳检测模块再次检测第一心跳如预期时,将第一网络地址由第二网络卡上移除。
10.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,该数据传输模块可以实体连接或是无线通信的方式传输数据。
11.根据权利要求1所述的实现负载平衡与高可用性的系统,其特征在于,还包含第二心跳发送模块,作用于第二服务器上,用以在间隔一固定时间时,产生代表该第二服务器状态的一第二心跳,并将该第二心跳通过该数据传输模块送往该第一服务器;及第一心跳接收模块,作用一第一服务器上,用以接收该第二心跳,当该第二心跳与预期不同时,停止转发该第一请求至该第二服务器。
12.一种实现负载平衡与高可用性的方法,利用具有第一网络卡的第一服务器,与具有第二网络卡的第二服务器以实现该方法,其中该第一网络卡具有第一网络地址,其特征在于,该方法包含下列步骤a.该第二服务器接收该第一服务器每隔一固定时间所传来的代表该第一服务器状态的一心跳,判断该心跳与预期不符时,增加该第一网络地址至该第二网络卡上;及b.该第一服务器接收一请求,并判断该第二服务器检测该第二服务器产生的第二闲置度高于该第一服务器检测该第一服务器产生的第一闲置度时,转发该请求至第二服务器。
13.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,该步骤a与该步骤b的先后顺序可替换。
14.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,该步骤a之后还包含一步骤c,检测该心跳为预期时,在第二网络卡上删除该第一网络地址。
15.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,该步骤a之前还包含一步骤a1,该第二服务器检测该心跳为预期时,拒绝非该第一服务器转送的所有请求。
16.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,该步骤b还包含一步骤,该第一服务器判断该请求仅该第一服务器可处理时,接受并处理该请求。
17.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,该步骤b还包含一步骤,该第一服务器判断该请求为该第一服务器与该第二服务器均不可处理时,拒绝该请求。
18.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,该步骤b还包含下列步骤b1.该第一服务器判断该请求仅该第二服务器可处理时,转发该请求至该第二服务器处理;b2.该第二服务器判断该第二服务器是否可处理该请求,若是,则接受并处理该请求;及b3.该第二服务器处理完该请求后,产生一响应,并修改该响应的来源地址为第一网络地址。
19.根据权利要求18所述的实现负载平衡与高可用性的方法,其特征在于,该步骤b2判断该请求非该第二服务器可处理时,转发该请求至该第一服务器。
20.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,该步骤a之前还包含一步骤,建立第一服务器与第二服务器之间的一数据传输信道。
21.根据权利要求20所述的实现负载平衡与高可用性的方法,其特征在于,该数据传输信道可以实体连接或无线通信的方式建立。
22.根据权利要求12所述的实现负载平衡与高可用性的方法,其特征在于,还包含一步骤d,该第一服务器接收该第二服务器每隔一固定时间所传来的代表该第二服务器状态的一心跳,判断代表该第二服务器状态的该心跳与预期不符时,该第一服务器不转发该请求至第二服务器,直至该代表第二服务器状态的该心跳符合预期。
全文摘要
本发明公开了一种实现负载平衡与高可用性的系统及其方法,利用数据传输信道使两服务器传输心跳、闲置度、与客户端的请求,并依据心跳判断是否代理另一服务器,及依据闲置度判断处理请求的服务器,得以提高服务器的使用率,并实现负载平衡与高可用性的功效。
文档编号H04L29/06GK101060424SQ20061007449
公开日2007年10月24日 申请日期2006年4月21日 优先权日2006年4月21日
发明者庄钦平, 陈玄同, 刘文涵 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1