冗余的系统架构方法

文档序号:7822700阅读:665来源:国知局
冗余的系统架构方法
【专利摘要】本发明涉及一种计算机系统架构方法,公开了一种冗余的系统架构方法,包括以下具体步骤:使用至少两台分别使用不同的网络地址且相互连接的服务器作为处理用户请求的负载集群;所述负载集群中的服务器分别独立地接收用户的请求,并在其中一台服务器发生故障时,将故障服务器接收的用户请求转移到另一台服务器并由该服务器处理转移得到的用户请求。本发明的优点在于,采用无中心节点节点的对称结构,无单点故障缺陷,存储容量和性能可以线性扩展,且支持数据自动恢复,自动化程度高。
【专利说明】
冗余的系统架构方法

【技术领域】
[0001]本发明涉及一种计算机系统架构方法,特别涉及一种冗余的系统架构方法。

【背景技术】
[0002]在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作。提供稳定可靠的服务,可以给用户带来良好的体验,保证用户的正常访问使用,在网站的可靠性方面,有很多的技术可以来提供,这类技术可以分为:
[0003]高可用:保证服务的可靠,稳定,实现故障的屏蔽,避免了单点故障。
[0004]高性能:多台服务器连接起来,处理一个复杂的计算问题。
[0005]负载均衡:将用户请求引导到后端多台服务器,实现服务器请求的负载。
[0006]具体而言,现有技术中已经存在基于单点的故障转移切换的负载均衡技术,从而提供高可用的网络接入。但现有技术中基于单点故障转移切换容易造成系统资源浪费,同时还存在的问题包括系统不稳定,处理数据量大,切换较慢。


【发明内容】

[0007]本发明针对现有技术基于单点故障转移切换容易造成系统资源浪费的缺点,提供了一种冗余的系统架构方法,能够有效地解决上述目的并实现提高系统利用率的问题。
[0008]为实现上述目的,本发明可采取下述技术方案:
[0009]一种冗余的系统架构方法,包括以下具体步骤:
[0010]使用至少两台分别使用不同的网络地址且相互连接的服务器作为处理用户请求的负载集群;所述负载集群中的服务器分别独立地接收用户的请求,并在其中一台服务器发生故障时,将故障服务器接收的用户请求转移到另一台服务器并由该服务器处理转移得到的用户请求;为了能够确认负载集群中的服务器故障,所述负载集群中的任一服务器在等待一段时间后尚未收到负载集群中的其他服务器发来的转换通告且自己并不具有最高优先级的情况下,将自己设置为主要处理状态并向负载集群中的其他服务器发出转换通告;当所述负载集群中的服务器在接到用户请求时,依据设置为主要处理状态的服务器的数量平均地分配用户请求。
[0011]于本申请的实施例中,还包括以下具体步骤:为了能够实现用户请求在负载集群的服务器中的平均分配,将一定数量的节点与所述负载集群相连接,将待处理的数据分块后分发至所述节点分别进行存储和处理,所述节点依据其所对应的被设置为主要处理状态的服务器发送用户请求和数据。
[0012]一种冗余的系统架构方法,包括以下具体步骤:
[0013]使用至少两台分别使用不同的网络地址且相互连接的服务器作为处理用户请求的负载集群;所述负载集群中的服务器分别独立地接收用户的请求,并在其中一台服务器发生故障时,将故障服务器接收的用户请求转移到另一台服务器并由该服务器处理转移得到的用户请求;为了能够确认负载集群中的服务器故障,所述负载集群中的任一服务器在等待一段时间后尚未收到负载集群中的其他服务器发来的转换通告且自己并不具有最高优先级的情况下,将自己设置为主要处理状态并向负载集群中的其他服务器发出转换通告;当所述负载集群中的服务器在接到用户请求时,依据设置为主要处理状态的服务器的数量在服务器之间分配用户请求;将一定数量的节点与所述负载集群相连接,将待处理的数据分块后分发至所述节点分别进行存储和处理,所述节点依据其所对应的被设置为主要处理状态的服务器发送用户请求和数据。
[0014]本发明具有以下的显著技术效果:
[0015]可以较好地提高系统资源的利用率,发生单点故障时切换速度快,反应迅速,具有高可用的特征。

【具体实施方式】
[0016]下面结合实施例对本发明作进一步的详细描述。
[0017]实施例1
[0018]一种冗余的系统架构方法,本实施例所记载方法一般情况下更为适用于路由器或者三层交换机的冗余设计,但经过稍许调整,也可以用于其他的场合,其特点是在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性,利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务,充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求,包括以下具体步骤:
[0019]使用至少两台分别使用不同的网络地址且相互连接的服务器作为处理用户请求的负载集群,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供166服务的集群,对外界来看是一个大166服务器。不过集群的节点也可以单独提供服务。较为特殊的是,与通常的服务器不同,本实施例中所述的负载集群中的服务器对用户请求的处理仅限于对外部网络接口的带宽的分配和管理,一旦确定了用户请求所请求的外部网络地址,则将该请求的内容转发至相应的网络地址并代为接收反馈,作为内部网络与外部网络接口的桥梁。具体而言,该两台服务器均具有各自独立的网络地址/1?地址,但同时,每台服务器分别与另一个网络地址相对应,该网络地址是给定的,通常由预设的配置文件给出,且是对内部网络可见的并作为内部网络中的节点访问外部网络的地址,本实施例中称之为访问地址。为了能够提供足够的冗余量,访问地址的数量较多,至少不应当少于负载集群中的服务器的数量,负载集群中的每个服务器均保有上述访问地址的列表,作为一种可选的方式,需要将上述访问地址加入负载集群的服务器与内部网络节点之间进行通讯的数据表头,从而将访问地址在负载集群中散布分发。
[0020]所述负载集群中的服务器分别独立地接收用户的请求,并在其中一台服务器发生故障时,将故障服务器接收的用户请求转移到另一台服务器并由该服务器处理转移得到的用户请求;为了能够确认负载集群中的服务器故障,所述负载集群中的任一服务器在等待一段时间后尚未收到负载集群中的其他服务器发来的转换通告且自己并不具有最高优先级的情况下,将自己设置为主要处理状态并向负载集群中的其他服务器发出转换通告;当所述负载集群中的服务器在接到用户请求时,依据设置为主要处理状态的服务器的数量平均地分配用户请求。
[0021]上述的具体步骤的一个可用的示例为,将内部网络中的节点,或者是PC机进行分组设置,通常将不同的组对应不同的服务器即网段中,换而言之令不同的组处于不同的网段中,作为另一种可选的方案,不同的组也可以位于同样的网段中。例如,办公网络的网络为192.168.222.0,设置的缺省网关为192.168.222.100,而多媒体教室的网络地址为192.168.223.0,设置的缺省网关为192.168.223.100。进一步地,在负载集群的服务器中,将服务器A对应节点组1的优先级设置为一个较高的数值,例如120,需要注意的是,初始优先级不能设置为最高的255,而应当设置在100-200之间,其他作为保留值。将服务器B对应节点组1的优先级设置为一个较低的数字,例如100 ;因此节点组1自动地按照优先级,选择较高的服务器A进行网络通讯。同样地,服务器B的对应节点组2的优先级设置为一个相同的数字,也是120,服务器A的对应节点组2的优先级设置为一个较低的数值,例如100,应当指出的是,尽管在这里服务器A与服务器B所对应的优先级是相同的,但作为一种可选的方案,可以使用一种具有一定梯度间隔的优先级设置方式,例如,在一定程度上错开服务器A以及服务器B的可能的优先级上下浮动范围,从而得到一个能够体现负载集群的服务器的相对优先的顺序。此外还包括一个额外的监测进程,该检测进程位于负载集群的服务器上,当检查到MASTER上服务不可用了,就会通知本机上的兄弟子进程,让他删除通告,并且去掉该MASTER上所对应的访问地址,将其转换为BACKUP状态,即非主要处理状态。
[0022]进一步地,为了能够搭建一个具有高可扩展性,高可用性的负债均衡方案,所述的冗余的系统架构方法还包括以下具体步骤,下述步骤是为了能够配合上文所记载的服务器设置方法,提高服务器的整体性能而制定的:为了能够实现用户请求在负载集群的服务器中的平均分配,将一定数量的节点与所述负载集群相连接,将待处理的数据分块后分发至所述节点分别进行存储和处理,所述节点依据其所对应的被设置为主要处理状态的服务器发送用户请求和数据。作为负载集群管理的一部分,在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议,实现HA心跳信息传输,最终完成负载集群成员的管理和成员间的通讯传递。上述用户请求在负载集群的服务器中的平均分配由数据分块实现。在负载集群的服务器和内部网络的节点之间增设一个新的中间层,将数据的存储形式由文件变更为块。作为一种可以选择的策略,可以采用分块打散策略以及触发式增量分块搬迁策略。具体而言,为了实现上述的分块打散策略,从逻辑层次上建立三个层,第一层为面向客户端的块驱动层,负责建立一个基于虚拟机的块虚拟设备。第二层是一个基于定长数据段,且用一个足够长度的对象标识进行标识的存储系统,该存储系统以对象的形式存储数据,其要点在于,所有的数据以对象而非文件的形式进行存储。第三层为集群管理层,负责检测节点故障,处理节点加入和退出,保证所有服务器看到一致的集群成员关系,此外,该层还负责全局协调和同步,在不同的节点之间进行状态同步,实现集群管理。上述的对象存储至少应当包括以下步骤:接收客户端请求,且根据一致性哈希计算定位目标节点,并路由请求到这些节点;以及,在对象的基础上实现对本地对象的存储管理,同时进行对象的读取操作,即对DataObject的读写操作。具体而言,上述的数据分块和对象划分要求将所有数据以定长,通常可以是4M长度划分为数据块,数据块至少包括一个足够长度的对象标识进行标识,包括4位对象类型,24位虚拟磁盘映像标识,用于表示数据段所在的虚拟磁盘,32位本地对象标识,用于标识数据段在虚拟磁盘中的位置。在此基础上,每个节点划分成多个虚拟节点,虚拟节点和013』601:10 —样,采用64位整数唯一标识,每个虚拟节点负责一段包含节点10在内的046(^10区间。副本存在046(^10对应的虚拟节点,及在后续的几个节点上。采用一致性哈希的好处是,无需维护映射表,节点加入或者失效时受影响的数据较小——只影响到哈希环上相邻的两个节点。为了增加数据迁移和恢复的速度,一致性哈希一般搭配虚拟节点使用,避免对某一个物理服务器造成很大压力。
[0023]进一步地,在数据存储方面,上述单独存储成一个文件,路径是/81:01-6^(111-/0)3^/^6150011/10]。直接读写在进行直接读写的基础上,更新时使用数据日志以保证一致性。
[0024]此外,还包括空间延迟分配的步骤:0社21013』601:中维护一个整数数组
1(1 ^1^X^0^1^08181,该数组第V项记录第V个所对应的虚拟磁盘映像标识,如果(131:11(11?等于零,说明第&个尚未分配,写数据时要事先创建0^1:8013^601:,并设置(131:11(1?]。
[0025]在上述的数据块存储和对象存储的基础上,基于的?开发框架管理集群成员关系,以支持全局有序且可靠的消息投递,特别是在负载集群的服务器之间的通告分发,节点加入或者退出集群作为一种消息按序投递到所有节点,每个节点看到的集群成员关系最终能达到一致。在此过程中,需要维护集群成员关系历史,存储路径是/81:0^6^111761)0011/
[61)0011 11111111361-] , 61)0(^是一个全局递增的数值,用以描述集群成员关系的版本,每当节点加入和退出时,需要增加印0也。基于印0也可以快速判断两个节点是否拥有相同的集群成员关系视图。
[0026]进一步地,节点加入分为两个阶段,第一阶段新加入节点向'发送加入请求,所述的'可以被视为设置为主要处理状态的服务器,但在实际运行中,一台服务器可以同时被设置为或者非状态,第二阶段,1112181:61~检查节点是否可以加入,如果可以加入广播节点加入消息到集群其它节点。节点故障时,另外一个节点自动成为111881:61~的负载很低,迁移很快,不会带来性能瓶颈和可用性问题。
[0027]节点退出时,马上进行处理故障,如果节点假死,可能造成网络和磁盘资源浪费。
[0028]节点加入和退出都会导致数据迁移,大致流程是:首先从其他节点得到集群中的01^6(:1:10 集合,将属于本节点的 01^6(:1:10 保存到 /81:0^6^11:^/01^/111:116 0111-1-0111:61)0011] /1181:,根据上一个61)0011的集群成员关系确定0社21013』601:的源,发送读请求到源节点读取数据,写入到迁移与读写请求不能并发进行,如果0社未迁移完成,则读写请求被阻塞。为了降低阻塞时间,需要优先恢复即将被访问的存储对象。每个副本完全保证一致,读操作可以在任意副本完成,更新操作并行的发往所有副本,当所有副本都更新成功之后,网关才告诉客户端更新操作成功。1/0请求中带有网关的6?0也信息,如果副本印0也版本不同于网关,则请求处理失败,网关重试请求直到印0也匹配为止(仅仅重试出错节点可能是有问题的,因为网关的印0也可能是错误的)。值的注意是的,网关故障可能导致部分副本更新成功,使用读时修复机制处理这种不一致性:网关初次读取0社21013』601:的时候,读取整个0社21013』601:,并覆盖所有其他副本。读时修复机制带来几个问题:1)第一次读取的响应时间非常长;2)网关需要记录读过的ObjectlDo
[0029]由于一个虚拟磁盘映像在同一个时刻只能为一个客户端或者节点所挂载,因此还包括以下具体步骤:对虚拟磁盘映像进行加锁,可保证虚拟磁盘映像同时只能被一个客户端或者节点所访问。由于消息投递顺序是全局有序的,最后k个lock volume b请求在所有服务器上都会被拒绝。
[0030]总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
【权利要求】
1.一种冗余的系统架构方法,其特征在于,包括以下具体步骤: 使用至少两台分别使用不同的网络地址且相互连接的服务器作为处理用户请求的负载集群;所述负载集群中的服务器分别独立地接收用户的请求,并在其中一台服务器发生故障时,将故障服务器接收的用户请求转移到另一台服务器并由该服务器处理转移得到的用户请求;为了能够确认负载集群中的服务器故障,所述负载集群中的任一服务器在等待一段时间后尚未收到负载集群中的其他服务器发来的转换通告且自己并不具有最高优先级的情况下,将自己设置为主要处理状态并向负载集群中的其他服务器发出转换通告;当所述负载集群中的服务器在接到用户请求时,依据设置为主要处理状态的服务器的数量平均地分配用户请求。
2.根据权利要求1所述的系统架构方法,其特征在于,还包括以下具体步骤: 为了能够实现用户请求在负载集群的服务器中的平均分配,将一定数量的节点与所述负载集群相连接,将待处理的数据分块后分发至所述节点分别进行存储和处理,所述节点依据其所对应的被设置为主要处理状态的服务器发送用户请求和数据。
3.—种冗余的系统架构方法,其特征在于,包括以下具体步骤: 使用至少两台分别使用不同的网络地址且相互连接的服务器作为处理用户请求的负载集群;所述负载集群中的服务器分别独立地接收用户的请求,并在其中一台服务器发生故障时,将故障服务器接收的用户请求转移到另一台服务器并由该服务器处理转移得到的用户请求;为了能够确认负载集群中的服务器故障,所述负载集群中的任一服务器在等待一段时间后尚未收到负载集群中的其他服务器发来的转换通告且自己并不具有最高优先级的情况下,将自己设置为主要处理状态并向负载集群中的其他服务器发出转换通告;当所述负载集群中的服务器在接到用户请求时,依据设置为主要处理状态的服务器的数量在服务器之间分配用户请求;将一定数量的节点与所述负载集群相连接,将待处理的数据分块后分发至所述节点分别进行存储和处理,所述节点依据其所对应的被设置为主要处理状态的服务器发送用户请求和数据。
【文档编号】H04L12/24GK104410531SQ201410764728
【公开日】2015年3月11日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】许小龙, 倪凯俊 申请人:上海百事通信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1