CN105302662B - 一种多机备份的方法和系统 - Google Patents

一种多机备份的方法和系统 Download PDF

Info

Publication number
CN105302662B
CN105302662B CN201410359971.5A CN201410359971A CN105302662B CN 105302662 B CN105302662 B CN 105302662B CN 201410359971 A CN201410359971 A CN 201410359971A CN 105302662 B CN105302662 B CN 105302662B
Authority
CN
China
Prior art keywords
machine
backup
data
memory
business process
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410359971.5A
Other languages
English (en)
Other versions
CN105302662A (zh
Inventor
孙子荀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410359971.5A priority Critical patent/CN105302662B/zh
Publication of CN105302662A publication Critical patent/CN105302662A/zh
Application granted granted Critical
Publication of CN105302662B publication Critical patent/CN105302662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种多机备份的方法和系统,能够避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。该方法包括:原始机器调用业务进程的创建内存映像函数mmap(),将业务进程的数据映射进内存,且标明内存中映射数据的映射区域为共享;原始机器调用刷新变化函数msync(),将映射区域内的业务进程的数据写入到后备文件中;其中,后备文件位于磁盘中;原始机器将后备文件中的数据发送给备份机器。本发明适用于业务系统的多机备份。

Description

一种多机备份的方法和系统
技术领域
本发明涉及计算机领域,尤其涉及一种多机备份的方法和系统。
背景技术
对于大型的业务系统,往往需要保证业务进程的可靠性及连续性,例如通过在多台机器上部署业务进程,在原始机器执行业务进程宕机时,其它的机器可以作为备份机器执行该业务进程,从而及时恢复该业务进程。
其中,为了备份机器能够顺利接管原始机器执行该业务进程,其需要该业务进程在原始机器宕机时的数据。例如,对于QQ、淘宝等大型业务系统,在原始机器宕机后,备份机器接管原始机器后执行业务进程,其需要QQ、淘宝等业务系统中的用户注册信息、用户的等级信息、用户收藏夹信息等等。否则备份机器执行业务进程后,将无法识别哪些用户是注册用户,哪些是非注册用户。
现有技术中,通常仅在业务进程中定义存储在磁盘中的数据的类型,如用户注册信息、用户的等级信息及用户收藏夹信息等等需要保存记录的信息。这样在业务进程执行过程中,若存在执行用户注册的任务时,用户进程将用户注册信息存储在磁盘中,其它执行过程中的数据仅记录在业务进程的内存,以供业务进程在执行过程中调用。
但是,原始机器宕机该业务进程停止之后,该业务进程在原始机器的内存空间的数据就会丢失。在备份机器接管原始机器执行该业务进程时,原始机器仅能将该业务进程在磁盘中的数据备份给备份机器,无法将该内存空间的数据备份给备份机器。这样备份机器如果基于存储在磁盘中的数据恢复该业务进程,会造成备份机器执行业务进程时和原始机器宕机时,该业务进程的状态不一致,例如,在宕机之前,业务进程的状态为用户登录在线,备份机器接管原始机器后,由于备份机器并没有用户登录在线数据,业务进程的状态为用户不在线的状态。
发明内容
本发明的实施例提供一种多机备份的方法和系统,原始机器通过调用业务进程的mmap(),并定义业务进程的内存为共享,以使得通过调用mysnc()将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供了一种多机备份的方法,所述多机包括原始机器和至少一台与其连接的备份机器,该方法包括:
原始机器调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;
所述原始机器调用刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;
所述原始机器将所述后备文件中的数据发送给备份机器。
另一方面,本发明实施例提供了一种多机备份系统,所述系统包括原始机器和至少一台与其连接的备份机器,所述原始机器包括内存映射模块、数据刷新模块和数据发送模块;
所述内存映射模块,用于调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;
所述数据刷新模块,用于调用刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;
所述数据发送模块,用于将所述后备文件中的数据发送给备份机器。
本发明实施例提供的一种多机备份的方法和系统,该方法包括:原始机器调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;所述原始机器调用刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;所述原始机器将所述后备文件中的数据发送给备份机器。基于上述的技术方案,由于原始机器通过调用业务进程的mmap(),并定义业务进程的内存为共享,以使得通过调用mysnc()将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种多机备份系统框架示意图;
图2为本发明实施例提供的一种多机备份的方法流程示意图;
图3为本发明实施例提供的另一种多机备份的方法流程示意图;
图4为本发明实施例提供的一种多机备份系统框架示意图一;
图5为本发明实施例提供的一种多机备份系统框架示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示的多机备份系统框图,本发明实施例提供的一种多机备份的方法基于该多机备份的系统,该多机备份系统包括原始机器11和至少一台与其连接的备份机器12。其中,该多机备份系统中包括的机器,其用于运行不同的业务,保证业务正常运行。具体的,该多机备份系统包括的机器运行的业务,可以是如QQ即时消息业务及其相关的业务,淘宝等网络交易业务、以及QQ游戏等游戏业务。本申请中所描述的业务进程即是指如QQ、淘宝等网络交易业务、以及QQ游戏等游戏业务的进程。
需要说明的是,该方法应用具有Linux或Unix系统的原始机器和备份机器上。其Linux和Unix是一种支持多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
由于这两种操作系统易读、易修改且易移植,其被广泛应用在现有的一些大型业务系统中。
具体的,如图2所示,该方法包括:
101、原始机器调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享。
现有技术中,原始机器宕机后,为了备份机器能够顺利接管原始机器执行该业务进程,避免备份机器执行业务进程的状态与原始机器宕机时的业务进程的状态不一致,原始机器还需要将该业务进程的数据发送给备份机器。但是,正如背景技术中所描述的,现有技术中磁盘中存储的数据仅包括有用户在该业务系统中的注册信息、用户的等级信息及用户收藏夹信息等业务系统需要保存记录的信息。但是,其并未考虑到用户在使用该业务系统的实时数据信息,如用户A当前在线的状态信息、用户A当前在业务系统中浏览的信息等等,这些实时数据信息仅是在业务进程执行过程中,实时的映射存储至该业务进程的内存中。这致使备份机器接管原始机器后,备份机器和原始机器的业务进程具有不同内存页面。
其中,需要说明的是,本发明实施例中所描述的业务进程的数据是指,业务进程在执行过程中,所执行的任务的数据。例如,执行用户A登录业务系统的任务时,其存储至内存中数据包括:用户的登录信息、登录页面等信息。
举例来说,对于淘宝业务系统来说,用户在淘宝业务系统的客户端登录,其输入用户名和密码且登录成功的过程中,执行淘宝业务系统的登录进程的数据包括用户的登录信息(即用户名和密码)、登录的页面、以及登录时间等信息,当然可能包括其它的数据,本发明实施例对此不再赘述。
为了保证备份机器在接管原始机器后,其业务进程和原始机器的业务进程所使用的数据相同,即备份机器和原始机器的业务进程具有相同的内存页面,本发明实施例中的原始机器调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享。
其中,该内存映射函数mmap(),用于将一个文件或者其它对象映射进内存。
例如,调用内存映射函数mmap()的代码如下所示:
#include<sys/mman.h>
void*mmap(void*start,size_t length,int prot,int flags,
int fd,off_t offset);
其中,如上所述的代码段,该函数包括了以下参数:
start:映射区的开始地址,设置为0时表示由系统决定映射区的起始地址。
length:映射区的长度。//长度单位是以字节为单位,不足一内存页按一内存页处理
prot:期望的内存保护标志,不能与文件的打开模式冲突。是以下的某个值,可以通过或运算合理地组合在一起;
PROT_EXEC//页内容可以被执行
PROT_READ//页内容可以被读取
PROT_WRITE//页可以被写入
PROT_NONE//页不可访问
flags:指定映射对象的类型,映射选项和映射页是否可以共享。它的值可以是一个或者多个以下位的组合体;
MAP_FIXED//使用指定的映射起始地址,如果由start和len参数指定的内存区重叠于现存的映射空间,重叠部分将会被丢弃。如果指定的起始地址不可用,操作将会失败。并且起始地址必须落在页的边界上。
MAP_SHARED//与其它所有映射这个对象的进程共享映射空间。对共享区的写入,相当于输出到文件。直到msync()或者munmap()被调用,文件实际上不会被更新。
MAP_PRIVATE//建立一个写入时拷贝的私有映射。内存区域的写入不会影响到原文件。这个标志和以上标志是互斥的,只能使用其中一个。
MAP_DENYWRITE//这个标志被忽略。
MAP_EXECUTABLE//这个标志被忽略。
MAP_NORESERVE//不要为这个映射保留交换空间。当交换空间被保留,对映射区修改的可能会得到保证。当交换空间不被保留,同时内存不足,对映射区的修改会引起段违例信号。
MAP_LOCKED//锁定映射区的页面,从而防止页面被交换出内存。
MAP_GROWSDOWN//用于堆栈,告诉内核VM系统,映射区可以向下扩展。
MAP_ANONYMOUS//匿名映射,映射区不与任何文件关联。
MAP_ANON//MAP_ANONYMOUS的别称,不再被使用。
MAP_FILE//兼容标志,被忽略。
MAP_32BIT//将映射区放在进程地址空间的低2GB,MAP_FIXED指定时会被忽略。当前这个标志只在x86-64平台上得到支持。
MAP_POPULATE//为文件映射通过预读的方式准备好页表。随后对映射区的访问不会被页违例阻塞。
MAP_NONBLOCK//仅和MAP_POPULATE一起使用时才有意义。不执行预读,只为已存在于内存中的页面建立页表入口。
fd:有效的文件描述词。一般是由open()函数返回,其值也可以设置为-1,此时需要指定flags参数中的MAP_ANON,表明进行的是匿名映射。
offset:被映射对象内容的起点。
其中,在本发明实施例中,为了保证原始机器能够将业务进程的数据,写入至磁盘中发送至备份机器,其调用函数mmap(),其采用参数MAP_SHARED标志业务进程的数据映射的内存是共享的;同时采用后备文件的模式,在操作系统的固定目录下产生一个文件,称为后备文件。这样就可以采用刷新变化函数msync()将业务进程映射至共享内存的数据写入到后备文件,其中后备文件位于磁盘中。
102、所述原始机器调用刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中。
其中,通过调用刷新变化函数msync()来实现磁盘后备文件内容与共享内存区中的内容一致,即同步操作。具体的,通过调用函数mysnc(),其可将业务进程映射至内存的数据写入至后备文件中。
需要说明的是,在某些场景下,业务进程在映射空间对共享内存的数据的改变并不直接写回到磁盘文件中,往往在调用munmap()后才通过调用msync()函数来实现磁盘文件内容与共享内存区中的内容一致,即同步操作。
可选的,由于调用函数mmap(),所述原始机器为所述业务进程申请的内存的属性为共享内存,那么其它进程也可访问该共享内存。基于此,所述备份机器可以调用业务进程的刷新变化函数msync()将所述映射区域内的所述业务进程的数据写入到后备文件中;也可以调用同步业务进程的刷新变化函数msync()将所述映射区域内的所述业务进程的数据写入到后备文件中。
其中,需要说明的是,对于本领域技术人员来说,可以理解的是调用业务进程的刷新变化函数mysnc(),或者调用同步业务进程的刷新变化函数mysnc(),是指业务进程用于将映射至共享内存的数据写入后备文件,或者同步业务进程将映射至共享内存的数据写入后备文件。
其中,需要说明的是,对于所述业务进程将映射至共享内存的数据写入后备文件的情况,业务进程可以确定正在执行的任务是否完成,其可以在完成执行某一任务后,才将所述数据写入后备文件中;而对于所述同步业务进程将映射至共享内存的数据写入后备文件的情况,由于同步业务进程无法获知业务进程是否完成执行的任务,这样同步业务进程写入至后备文件的数据可能存在不完整的问题。
其中,所述同步业务进程为与所述业务进程不同的一进程。
103、所述原始机器将所述后备文件中的数据发送给备份机器。
具体的,所述原始机器可以调用所述业务进程,将所述后备文件中的数据发送给备份机器;当然,所述原始机器可以调用所述同步业务进程,将所述后备文件中的数据发送给备份机器。
当然,在保证业务进程所述执行的业务的性能的前提下,优选的调用所述同步业务进程,将所述后备文件中的数据发送给备份机器。
进一步的,所述原始机器可以周期性的将所述后备文件中的数据发送给备份机器。
作为一种优选的方式,在保证不浪费网络资源的情况下,又能及时同步原始机器和备份机器的业务进程的内存数据,所述原始机器可采用inotify机制监控所述后备文件的数据是否发生变化;若监控到所述后备文件的数据发送变化后,所述原始机器才将所述后备文件中的数据发送给备份机器。
其中,inotify机制是一个Linux内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。其还可以跟踪活动的源头和目标等细节。
基于inotify机制的特性,具体可以用于监控是否对后备文件进行写操作,若监控到对所述后备文件进行监控操作,所述同步业务进程可以将所述后备文件发送给备份机器。
基于上述的技术方案,由于其通过调用业务进程的mmap(),并定义业务进程的内存为共享,以使得通过调用mysnc()将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
实施例二、
基于实施例一所述的一种多机备份的方法,本发明实施例还提供了一种多机备份的方法,如图3所所示,该方法包括:
301、原始机器调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享。
302、所述原始机器调用刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中。
303、所述原始机器将所述后备文件中的数据发送给备份机器。
需要说明的是,步骤301-303的详细描述,可参考步骤101-103的描述,本发明实施例在此不再赘述。
304、所述备份机器将接收到的所述原始机器发送的所述数据存入一预置的固定目录下的同步文件内,所述预置的固定目录下的同步文件位于所述备份机器的磁盘内。
其中,所述备份机器接收所述原始机器发送的所述后备文件的数据,然后将该后备文件的数据存入一预置的固定目录下的文件中,该文件可称为同步文件,所述同步文件位于所述备份机器的磁盘内。
需要说明的是,在备份机器上所述业务进程的数据可以映射至非共享内存,也可以调用函数mmap()采用后备文件模式,所述业务进程的数据映射至共享内存。
其中,若所述业务进程的数据映射至共享内存,则所述同步文件为位于磁盘中的,在操作系统的固定目录下生成的一文件。
305、所述备份机器调用内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
具体的,可以在所述备份机器接管所述原始机器后,所述备份机器调用内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。采用这一方式,备份机器接管所述原始机器之前,不需要在每接收到一次原始机器的数据后就将该数据重映射至内存,可以减轻所述备份机器的工作量。
当然,所述备份机器也可以采用inotify机制发现所述固定目录下的备份文件中的内容发生变化,则调用内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。采用这一方式,备份机器可以实时重映射所述原始机器的数据,以保证所述备份机器能够快速接管原始机器。
306、在所述备份机器接管所述原始机器后,所述备份机器基于重新映射至内存的数据执行所述业务进程。
基于上述的技术方案,由于原始机器通过调用业务进程的mmap(),并定义业务进程的内存为共享,以使得通过调用mysnc()将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
实施例三、
本发明实施例提供了一种多机备份系统,如图1所述,所述系统包括原始机器和至少一台与其连接的备份机器。具体的,如图4所示,所述原始机器包括内存映射模块41、数据刷新模块42和数据发送模块43;
所述内存映射模块41,用于调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;
所述数据刷新模块42,用于调用刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;
所述数据发送模块43,用于将所述后备文件中的数据发送给备份机器。
可选的,所述数据刷新模块42,具体用于调用所述业务进程的刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中。
可选的,所述数据发送模块43,具体用于调用同步业务进程,将所述后备文件中的数据发送给备份机器。
可选的,所述数据刷新模块42,具体用于在所述业务进程接收所述同步业务进程的指令后,将所述原始机器调用刷新变化函数msync(),将所述映射区域内的所述业务进程的数据写入到后备文件中。
可选的,所述数据发送模块43,具体用于采用inotify机制监控到所述后备文件的数据发生变化后,将所述后备文件中的数据发送给备份机器。
可选的,如图5所示,所述备份机器12包括:数据接收模块44、内存重映射模块45和执行模块46;
所述数据接收模块44,用于将接收到的所述原始机器发送的所述数据存入一预置的固定目录下的备份文件内,所述预置的固定目录下的备份文件位于所述磁盘内。
所述内存重映射模块45,用于内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
所述执行模块46,用于在所述备份机器接管所述原始机器后,基于重新映射至内存的数据执行所述业务进程。
可选的,所述内存重映射模块45,具体用于在所述备份机器接管所述原始机器后,内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
可选的,所述内存重映射模块45,具体用于采用inotify机制发现所述固定目录下的备份文件中的内容发生变化,则内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
基于上述的技术方案,由于原始机器通过调用业务进程的mmap(),并定义业务进程的内存为共享,以使得通过调用mysnc()将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种多机备份的方法,应用于多机备份系统,所述多机备份系统包括原始机器和至少一台与所述原始机器连接的备份机器,在每台机器上运行不同的业务,其特征在于,该方法包括:
原始机器调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,所述业务进程的数据指所述业务进程在执行过程中所执行的任务的用户数据,且设置所述内存映像函数mmap()中的参数以标明所述内存中映射所述数据的映射区域为共享,并采用后备文件的模式,在操作系统的固定目录下产生后备文件;
所述原始机器调用所述业务进程的刷新变化函数msync(),在所述业务进程确定正在执行的任务完成后,将所述映射区域内的所述业务进程的用户数据写入到所述后备文件中;
在保证所述业务进程所执行的业务的性能时,所述原始机器在所述业务进程和同步业务进程之间,优先调用所述同步业务进程,并采用inotify机制,在监控到所述后备文件的数据发生变化后,所述同步业务进程将所述后备文件中的数据发送给所述备份机器,以使所述备份机器在接管所述原始机器后,基于所述后备文件中的数据恢复所述业务进程。
2.根据权利要求1所述的方法,其特征在于,所述同步业务进程为与所述业务进程不同的一进程。
3.根据权利要求1所述的方法,其特征在于,所述业务进程包括网络交易业务进程、游戏业务进程中的任一个。
4.根据权利要求1所述的方法,其特征在于,所述用户数据包括用户的登录信息、登录页面的信息中的任一项。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述监控到所述后备文件的数据发生变化是指监控到对所述后备文件进行写操作。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述备份机器在接管所述原始机器后,基于所述后备文件中的数据恢复所述业务进程具体包括:
所述备份机器将接收到的所述原始机器发送的所述数据存入一预置的固定目录下的备份文件内,所述预置的固定目录下的备份文件位于磁盘内;
所述备份机器调用内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射;
在所述备份机器接管所述原始机器后,所述备份机器基于重新映射至内存的数据执行所述业务进程。
7.根据权利要求6所述的方法,其特征在于,所述备份机器调用内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射具体包括:
在所述备份机器接管所述原始机器后,所述备份机器调用所述内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
8.根据权利要求6所述的方法,其特征在于,所述备份机器调用内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射具体包括:
所述备份机器采用inotify机制发现所述固定目录下的备份文件中的内容发生变化,则调用所述内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
9.一种多机备份系统,所述系统包括原始机器和至少一台与所述原始机器连接的备份机器,在每台机器上运行不同的业务,其特征在于,所述原始机器包括内存映射模块、数据刷新模块和数据发送模块;
所述内存映射模块,用于调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,所述业务进程的数据指所述业务进程在执行过程中所执行的任务的用户数据,且设置所述内存映像函数mmap()中的参数以标明所述内存中映射所述数据的映射区域为共享,并采用后备文件的模式,在操作系统的固定目录下产生后备文件;
所述数据刷新模块,用于所述原始机器调用所述业务进程的刷新变化函数msync(),在所述业务进程确定正在执行的任务完成后,将所述映射区域内的所述业务进程的用户数据写入到所述后备文件中;
所述数据发送模块,用于在保证所述业务进程所执行的业务的性能时,在所述业务进程和同步业务进程之间,优先调用所述同步业务进程,并采用inotify机制,在监控到所述后备文件的数据发生变化后,所述同步业务进程将所述后备文件中的数据发送给所述备份机器,以使所述备份机器在接管所述原始机器后,基于所述后备文件中的数据恢复所述业务进程。
10.根据权利要求9所述的系统,其特征在于,所述同步业务进程为与所述业务进程不同的一进程。
11.根据权利要求9所述的系统,其特征在于,所述业务进程包括网络交易业务进程、游戏业务进程中的任一个。
12.根据权利要求9所述的系统,其特征在于,所述用户数据包括用户的登录信息、登录页面的信息中的任一项。
13.根据权利要求 9-12任一项所述的系统,其特征在于,所述监控到所述后备文件的数据发生变化是指监控到对所述后备文件进行写操作。
14.根据权利要求9-12任一项所述的系统,其特征在于,所述备份机器包括:数据接收模块、内存重映射模块和执行模块;
所述数据接收模块,用于将接收到的所述原始机器发送的所述数据存入一预置的固定目录下的备份文件内,所述预置的固定目录下的备份文件位于磁盘内;
所述内存重映射模块,用于内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射;
所述执行模块,用于在所述备份机器接管所述原始机器后,基于重新映射至内存的数据执行所述业务进程。
15.根据权利要求14所述的系统,其特征在于,所述内存重映射模块,具体用于在所述备份机器接管所述原始机器后,调用所述内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
16.根据权利要求14所述的系统,其特征在于,所述内存重映射模块,具体用于采用inotify机制发现所述固定目录下的备份文件中的内容发生变化,则调用所述内存重映射函数mremap(),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
17.一种计算机可读存储介质,其特征在于,存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,实现如权利要求1至8中任一项所述的方法。
CN201410359971.5A 2014-07-25 2014-07-25 一种多机备份的方法和系统 Active CN105302662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410359971.5A CN105302662B (zh) 2014-07-25 2014-07-25 一种多机备份的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410359971.5A CN105302662B (zh) 2014-07-25 2014-07-25 一种多机备份的方法和系统

Publications (2)

Publication Number Publication Date
CN105302662A CN105302662A (zh) 2016-02-03
CN105302662B true CN105302662B (zh) 2020-11-06

Family

ID=55199954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410359971.5A Active CN105302662B (zh) 2014-07-25 2014-07-25 一种多机备份的方法和系统

Country Status (1)

Country Link
CN (1) CN105302662B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255624A (zh) * 2018-02-02 2018-07-06 中国银行股份有限公司 一种数据的处理方法及处理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286429A (zh) * 1999-11-20 2001-03-07 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
CN1862504A (zh) * 2005-05-11 2006-11-15 华为技术有限公司 多机备份的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4394298B2 (ja) * 2001-02-20 2010-01-06 日本電気株式会社 マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム
CN100375034C (zh) * 2005-01-05 2008-03-12 联想(新加坡)私人有限公司 在计算机系统中用于对进程进行休眠的方法和系统
US8954697B2 (en) * 2010-08-05 2015-02-10 Red Hat, Inc. Access to shared memory segments by multiple application processes
CN102467404A (zh) * 2011-10-14 2012-05-23 海尔集团技术研发中心 一种基于物理内存实现软件快速切换的方法及装置
CN103678036B (zh) * 2013-11-15 2016-08-17 上海爱数信息技术股份有限公司 一种基于虚拟机运行信息数据发现的备份方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286429A (zh) * 1999-11-20 2001-03-07 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
CN1862504A (zh) * 2005-05-11 2006-11-15 华为技术有限公司 多机备份的方法

Also Published As

Publication number Publication date
CN105302662A (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
US11392461B2 (en) Method and apparatus for processing information
EP2840495B1 (en) Container-based processing method and apparatus
US20140317369A1 (en) Snapshot creation from block lists
WO2017049828A1 (zh) 基于Linux的数据处理方法、装置和系统
CN108469986B (zh) 一种数据迁移方法及装置
US10067692B2 (en) Method and apparatus for backing up and restoring cross-virtual machine application
CN107209683B (zh) 备份映像恢复
US10983908B1 (en) Method and system for garbage collection of data protection virtual machines in cloud computing networks
US9417973B2 (en) Apparatus and method for fault recovery
CN109033328B (zh) 一种访问请求处理方法、装置、设备及可读存储介质
US10609141B2 (en) Methods and apparatuses for cluster switching
CN108804189B (zh) 一种云桌面管理方法及系统
JP6987340B2 (ja) データベースのデータ変更要求処理方法及び装置
CN107463426B (zh) 一种kvm虚拟化下虚拟机克隆的方法及装置
CN113407383A (zh) 主备系统切换方法、装置、服务器及主备系统
US20150106334A1 (en) Systems and methods for backing up a live virtual machine
US10977049B2 (en) Installing of operating system
US9262274B2 (en) Persistent data across reboots
US20130054868A1 (en) Image storage optimization in virtual environments
US9924002B1 (en) Managing stateless processes
WO2016107219A1 (zh) 数据恢复方法及装置
JP6365085B2 (ja) データ移行方法及びデータ移行装置
CN105302662B (zh) 一种多机备份的方法和系统
CN114328007B (zh) 一种容器备份还原方法、装置及其介质
CN114995958A (zh) 一种虚拟化平台信息一致性的控制方法、装置及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant