一种多机备份的方法和系统的制作方法

文档序号:9547044阅读:469来源:国知局
一种多机备份的方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种多机备份的方法和系统。
【背景技术】
[0002]对于大型的业务系统,往往需要保证业务进程的可靠性及连续性,例如通过在多台机器上部署业务进程,在原始机器执行业务进程宕机时,其它的机器可以作为备份机器执行该业务进程,从而及时恢复该业务进程。
[0003]其中,为了备份机器能够顺利接管原始机器执行该业务进程,其需要该业务进程在原始机器宕机时的数据。例如,对于QQ、淘宝等大型业务系统,在原始机器宕机后,备份机器接管原始机器后执行业务进程,其需要QQ、淘宝等业务系统中的用户注册信息、用户的等级信息、用户收藏夹信息等等。否则备份机器执行业务进程后,将无法识别哪些用户是注册用户,哪些是非注册用户。
[0004]现有技术中,通常仅在业务进程中定义存储在磁盘中的数据的类型,如用户注册信息、用户的等级信息及用户收藏夹信息等等需要保存记录的信息。这样在业务进程执行过程中,若存在执行用户注册的任务时,用户进程将用户注册信息存储在磁盘中,其它执行过程中的数据仅记录在业务进程的内存,以供业务进程在执行过程中调用。
[0005]但是,原始机器宕机该业务进程停止之后,该业务进程在原始机器的内存空间的数据就会丢失。在备份机器接管原始机器执行该业务进程时,原始机器仅能将该业务进程在磁盘中的数据备份给备份机器,无法将该内存空间的数据备份给备份机器。这样备份机器如果基于存储在磁盘中的数据恢复该业务进程,会造成备份机器执行业务进程时和原始机器宕机时,该业务进程的状态不一致,例如,在宕机之前,业务进程的状态为用户登录在线,备份机器接管原始机器后,由于备份机器并没有用户登录在线数据,业务进程的状态为用户不在线的状态。

【发明内容】

[0006]本发明的实施例提供一种多机备份的方法和系统,原始机器通过调用业务进程的mmap (),并定义业务进程的内存为共享,以使得通过调用mysncO将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]一方面,本发明实施例提供了一种多机备份的方法,所述多机包括原始机器和至少一台与其连接的备份机器,该方法包括:
[0009]原始机器调用业务进程的创建内存映像函数mmap (),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;
[0010]所述原始机器调用刷新变化函数msync (),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;
[0011 ] 所述原始机器将所述后备文件中的数据发送给备份机器。
[0012]另一方面,本发明实施例提供了一种多机备份系统,所述系统包括原始机器和至少一台与其连接的备份机器,所述原始机器包括内存映射模块、数据刷新模块和数据发送模块;
[0013]所述内存映射模块,用于调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;
[0014]所述数据刷新模块,用于调用刷新变化函数msync (),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;
[0015]所述数据发送模块,用于将所述后备文件中的数据发送给备份机器。
[0016]本发明实施例提供的一种多机备份的方法和系统,该方法包括:原始机器调用业务进程的创建内存映像函数mmap (),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;所述原始机器调用刷新变化函数msyncO,将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;所述原始机器将所述后备文件中的数据发送给备份机器。基于上述的技术方案,由于原始机器通过调用业务进程的mmap (),并定义业务进程的内存为共享,以使得通过调用mysnc ()将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为一种多机备份系统框架意图;
[0019]图2为本发明实施例提供的一种多机备份的方法流程示意图;
[0020]图3为本发明实施例提供的另一种多机备份的方法流程示意图;
[0021]图4为本发明实施例提供的一种多机备份系统框架示意图一;
[0022]图5为本发明实施例提供的一种多机备份系统框架示意图二。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]实施例一
[0025]如图1所示的多机备份系统框图,本发明实施例提供的一种多机备份的方法基于该多机备份的系统,该多机备份系统包括原始机器11和至少一台与其连接的备份机器12。其中,该多机备份系统中包括的机器,其用于运行不同的业务,保证业务正常运行。具体的,该多机备份系统包括的机器运行的业务,可以是如QQ即时消息业务及其相关的业务,淘宝等网络交易业务、以及QQ游戏等游戏业务。本申请中所描述的业务进程即是指如QQ、淘宝等网络交易业务、以及QQ游戏等游戏业务的进程。
[0026]需要说明的是,该方法应用具有Linux或Unix系统的原始机器和备份机器上。其Linux和Unix是一种支持多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了 Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
[0027]由于这两种操作系统易读、易修改且易移植,其被广泛应用在现有的一些大型业务系统中。
[0028]具体的,如图2所示,该方法包括:
[0029]101、原始机器调用业务进程的创建内存映像函数mmap (),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享。
[0030]现有技术中,原始机器宕机后,为了备份机器能够顺利接管原始机器执行该业务进程,避免备份机器执行业务进程的状态与原始机器宕机时的业务进程的状态不一致,原始机器还需要将该业务进程的数据发送给备份机器。但是,正如【背景技术】中所描述的,现有技术中磁盘中存储的数据仅包括有用户在
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1