一种基于动态备份虚拟机的高可靠服务系统构建方法

文档序号:7770992阅读:146来源:国知局
一种基于动态备份虚拟机的高可靠服务系统构建方法
【专利摘要】本发明涉及一种基于动态备份虚拟机的高可靠服务系统构建方法,其将客户端的请求数据包同时发送给主虚拟机和后备虚拟机,并比较两个虚拟机产生的响应数据包。只要后备虚拟机产生的响应数据包能和主虚拟机的响应数据包保持一致,那么就认为后备虚拟机是主虚拟机的合法备份,且后备虚拟机能够在主虚拟机发生故障后替代主虚拟机继续向客户端提供服务。当两个虚拟机产生的响应数据包不一致时,将主虚拟机的状态同步到后备虚拟机,以保证后备虚拟机仍然是主虚拟机的合法备份,从而提高了服务的整体可靠性。
【专利说明】一种基于动态备份虚拟机的高可靠服务系统构建方法
【技术领域】
[0001]本发明涉及一种基于动态备份虚拟机的高可靠服务系统构建方法,针对虚拟机环 境,可以提供高可靠的服务环境。
【背景技术】
[0002]随着互联网、虚拟化技术的发展,网络服务已经覆盖到了各个领域。由于服务器发 生故障会带来一定程度的损失,因此,网络服务器的高可靠性至关重要。虚拟机状态同步 (将主虚拟机的状态以一定方式同步到后备虚拟机)是当前普遍认为可以提高网络服务器 高可靠性的技术。然而,现存的基于虚拟机状态同步的高可靠方案由于过分地进行状态同 步使得性能不理想。

【发明内容】

[0003]本发明要解决的技术问题是提供一种即保证性能又具有高可靠性的网络服务器 系统的构建方法。
[0004]为了解决上述技术问题,本发明的技术方案是提供了一种基于动态备份虚拟机的 高可靠服务系统构建方法,其步骤为:
[0005]步骤1、为主服务器至少配备一台后备服务器,在主服务器上运行主虚拟机,在后 备服务器上则运行后备虚拟机,所有网络服务运行在主虚拟机上;
[0006]步骤2、在系统初始化时,后备虚拟机将主虚拟机的状态完全拷贝过来,其特征在 于:
[0007]步骤3、当主虚拟机向客户端提供服务后,客户端发送至服务器端的请求数据包首 先抵达主虚拟机,该请求数据包将同时转发到后备虚拟机上,主虚拟机与后备虚拟机在收 到请求数据包将各自产生响应数据包;
[0008]步骤4、由比较模块比较主虚拟机输出的响应数据包与后备虚拟机输出的响应数 据包是否相同,若相同,则将两个响应数据包中的任意一个释放给客户端,另外一个则舍 弃,若不相同,则比较模块将会通知控制器触发一次状态同步事件,将主虚拟机的状态发送 到后备虚拟机,使得后备虚拟机的状态同步成主虚拟机的状态,同步完成后,将主虚拟机输 出的响应数据包释放给客户端。
[0009]优选地,在步骤4中,后备虚拟机与主虚拟机状态同步过程中,比较模块将停止数 据包的比较,同时也不释放任何数据包给客户端,控制器也会阻止网络请求报文输入给主 虚拟机,并将这些网络请求报文暂时缓存起来。
[0010]优选地,在完成步骤2的系统初始化后,主服务器以固定周期向后备服务器发送 心跳数据包,若后备服务器没有接收到心跳数据包,则认为主虚拟机已经宕机,后备服务器 将采取故障恢复措施用后备虚拟机代替主虚拟机继续提供服务,在这种情况下,客户端发 送过来的请求数据包将直接到达后备虚拟机,后备虚拟机产生响应数据包之后直接释放给 客户端。[0011]本发明有选择地进行主虚拟机与后备虚拟机之间的状态同步,在保证了服务器高 可靠性的同时,提高了性能。
【专利附图】

【附图说明】
[0012]图1为一种基于动态备份虚拟机的高可靠服务系统。
【具体实施方式】
[0013]为使本发明更明显易懂,兹以优选实施例,并配合附图作详细说明如下。
[0014]结合图1,本发明提供了一种基于动态备份虚拟机的高可靠服务系统构建方法,其 步骤为:
[0015]步骤I I为主服务器配备一台后备服务器,在主服务器上运行主虚拟机PVM,在后 备服务器上则运行后备虚拟机BVM,所有网络服务如如FTP和WEB服务等运行在主虚拟机 PVM 上。
[0016]本领域技术人员可根据需要为主服务器配备多个后备服务器,多个后备服务器的 作用完全相同、等价。此时,主服务器可以根据使用简单多数的投票机制,将多数后备服务 器返回的相同的数据请求处理结果返回给请求端,少数不相同的结果丢弃,同时,使用多数 返回相同结果的后备虚拟机BVM状态更新少数返回不同结果的后备虚拟机BVM状态。
[0017]步骤2、在系统初始化时,后备虚拟机BVM将主虚拟机PVM的状态完全拷贝过来。
[0018]步骤3、当主虚拟机PVM向客户端提供服务后,客户端发送至服务器端的请求数据 包首先抵达主虚拟机PVM,该请求数据包将同时转发到后备虚拟机BVM上,主虚拟机PVM与 后备虚拟机BVM在收到请求数据包将各自产生响应数据包,该响应数据包将存入主虚拟机 PVM与后备虚拟机BVM各自的输出缓存中;
[0019]步骤4、后备虚拟机BVM的响应数据包会被转发回主虚拟机PVM所在的主服务器 上,主服务器存在一个比较模块来负责比较主虚拟机PVM和后备虚拟机BVM输出的响应数 据包是否相同。比较模块将一个一个依次比较主虚拟机PVM和后备虚拟机BVM输出的响 应数据包,若两个数据包相同,那么其中一个会释放给客户端,另外一个数据包将被舍弃。 若两个数据包不相同,那么,比较模块将会通知控制器触发一次状态同步事件,将主虚拟机 PVM的状态发送到后备虚拟机BVM,使得后备虚拟机BVM的状态同步成主虚拟机PVM的状 态。当然,在状态同步期间,比较模块将停止数据包的比较,同时也不释放任何数据包给客 户端。控制器也会阻止网络请求报文输入给虚拟机,并将这些报文暂时缓存起来。当同步 完成后,比较模块将检查一下主虚拟机PVM的输出缓存,释放其中所有的数据包给客户端, 而在后备虚拟机BVM的输出缓存里面的数据包将全部被丢弃。控制器将恢复网络报文的输 入。由于主虚拟机PVM和后备虚拟机BVM的状态又变成一致,在输入相同的请求数据包后, 他们将会在一段时间内又产生相同的响应数据包。
[0020]本发明还引入了心跳机制,该机制用于后备服务器监测主服务器上的主虚拟机 PVM是否还继续存活。如果后备服务器没有接收到主服务器发送的心跳数据包,就会认为主 虚拟机PVM已经宕机,将采取故障恢复措施以替代主虚拟机PVM继续提供服务。在这种情 况下,客户端发送过来的请求数据包将直接到达后备虚拟机BVM,后备虚拟机BVM的服务程 序处理产生响应数据包之后,不再发送回主虚拟机PVM,而是直接释放给客户端。客户端根本不会发现服务端进行了一次快速的故障恢复。
【权利要求】
1.一种基于动态备份虚拟机的高可靠服务系统构建方法,其步骤为:步骤1、为主服务器至少配备一台后备服务器,在主服务器上运行主虚拟机(PVM),在 后备服务器上则运行后备虚拟机(BVM),所有网络服务运行在主虚拟机(PVM)上;步骤2、在系统初始化时,后备虚拟机(BVM)将主虚拟机(PVM)的状态完全拷贝过来,其 特征在于:步骤3、当主虚拟机(PVM)向客户端提供服务后,客户端发送至服务器端的请求数据 包首先抵达主虚拟机(PVM),该请求数据包将同时转发到后备虚拟机(BVM)上,主虚拟机 (PVM)与后备虚拟机(BVM)在收到请求数据包将各自产生响应数据包;步骤4、由比较模块比较主虚拟机(PVM)输出的响应数据包与后备虚拟机(BVM)输出的 响应数据包是否相同,若相同,则将两个响应数据包中的任意一个释放给客户端,另外一个 则舍弃,若不相同,则比较模块将会通知控制器触发一次状态同步事件,将主虚拟机(PVM) 的状态发送到后备虚拟机(BVM),使得后备虚拟机(BVM)的状态同步成主虚拟机(PVM)的状 态,同步完成后,将主虚拟机(PVM)输出的响应数据包释放给客户端。
2.如权利要求1所述的一种基于动态备份虚拟机的高可靠服务系统构建方法,其特征 在于:在步骤4中,后备虚拟机(BVM)与主虚拟机(PVM)状态同步过程中,比较模块将停止 数据包的比较,同时也不释放任何数据包铪客户端,控制器也会阻止网络请求报文输入给 主虚拟机(PVM),并将这些网络请求报文暂时缓存起来。
3.如权利要求1所述的一种基于动态备份虚拟机的高可靠服务系统构建方法,其特征 在于:在完成步骤2的系统初始化后,主服务器以固定周期向后备服务器发送心跳数据包, 若后备服务器没有接收到心跳数据包,则认为主虚拟机(PVM)已经宕机,后备服务器将采 取故障恢复措施用后备虚拟机(BVM)代替主虚拟机(PVM)继续提供服务,在这种情况下,客 户端发送过来的请求数据包将直接到达后备虚拟机(BVM),后备虚拟机(BVM)产生响应数 据包之后直接释放给客户端。
【文档编号】H04L29/06GK103501290SQ201310429872
【公开日】2014年1月8日 申请日期:2013年9月18日 优先权日:2013年9月18日
【发明者】李光亚, 陈诚, 李剑华 申请人:万达信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1