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

文档序号:9547044阅读:来源:国知局
进程不同的一进程。
[0072]103、所述原始机器将所述后备文件中的数据发送给备份机器。
[0073]具体的,所述原始机器可以调用所述业务进程,将所述后备文件中的数据发送给备份机器;当然,所述原始机器可以调用所述同步业务进程,将所述后备文件中的数据发送给备份机器。
[0074]当然,在保证业务进程所述执行的业务的性能的前提下,优选的调用所述同步业务进程,将所述后备文件中的数据发送给备份机器。
[0075]进一步的,所述原始机器可以周期性的将所述后备文件中的数据发送给备份机器。
[0076]作为一种优选的方式,在保证不浪费网络资源的情况下,又能及时同步原始机器和备份机器的业务进程的内存数据,所述原始机器可采用inotify机制监控所述后备文件的数据是否发生变化;若监控到所述后备文件的数据发送变化后,所述原始机器才将所述后备文件中的数据发送给备份机器。
[0077]其中,inotify机制是一个Linux内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。其还可以跟踪活动的源头和目标等细节。
[0078]基于inotify机制的特性,具体可以用于监控是否对后备文件进行写操作,若监控到对所述后备文件进行监控操作,所述同步业务进程可以将所述后备文件发送给备份机器。
[0079]基于上述的技术方案,由于其通过调用业务进程的mmap(),并定义业务进程的内存为共享,以使得通过调用mysnc ()将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
[0080]实施例二、
[0081]基于实施例一所述的一种多机备份的方法,本发明实施例还提供了一种多机备份的方法,如图3所所示,该方法包括:
[0082]301、原始机器调用业务进程的创建内存映像函数mmap (),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享。
[0083]302、所述原始机器调用刷新变化函数msync (),将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中。
[0084]303、所述原始机器将所述后备文件中的数据发送给备份机器。
[0085]需要说明的是,步骤301-303的详细描述,可参考步骤101-103的描述,本发明实施例在此不再赘述。
[0086]304、所述备份机器将接收到的所述原始机器发送的所述数据存入一预置的固定目录下的同步文件内,所述预置的固定目录下的同步文件位于所述备份机器的磁盘内。
[0087]其中,所述备份机器接收所述原始机器发送的所述后备文件的数据,然后将该后备文件的数据存入一预置的固定目录下的文件中,该文件可称为同步文件,所述同步文件位于所述备份机器的磁盘内。
[0088]需要说明的是,在备份机器上所述业务进程的数据可以映射至非共享内存,也可以调用函数mmapO采用后备文件模式,所述业务进程的数据映射至共享内存。
[0089]其中,若所述业务进程的数据映射至共享内存,则所述同步文件为位于磁盘中的,在操作系统的固定目录下生成的一文件。
[0090]305、所述备份机器调用内存重映射函数mremap (),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
[0091]具体的,可以在所述备份机器接管所述原始机器后,所述备份机器调用内存重映射函数mremap (),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。采用这一方式,备份机器接管所述原始机器之前,不需要在每接收到一次原始机器的数据后就将该数据重映射至内存,可以减轻所述备份机器的工作量。
[0092]当然,所述备份机器也可以采用inotify机制发现所述固定目录下的备份文件中的内容发生变化,则调用内存重映射函数mremap (),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。采用这一方式,备份机器可以实时重映射所述原始机器的数据,以保证所述备份机器能够快速接管原始机器。
[0093]306、在所述备份机器接管所述原始机器后,所述备份机器基于重新映射至内存的数据执行所述业务进程。
[0094]基于上述的技术方案,由于原始机器通过调用业务进程的mmap(),并定义业务进程的内存为共享,以使得通过调用mysncO将业务进程中的内存中数据能够写入磁盘中,这样在将磁盘中的数据发送给备份机器后,备份机器在接管原始机器后,其基于原始机器的业务进程的内存中的数据恢复该业务进程,从而保证了原始机器和备份机器的业务进程的内存级数据的同步,进而避免了备份机器恢复业务进程后,和原始机器的业务进程状态不一致的问题。
[0095]实施例三、
[0096]本发明实施例提供了一种多机备份系统,如图1所述,所述系统包括原始机器和至少一台与其连接的备份机器。具体的,如图4所示,所述原始机器包括内存映射模块41、数据刷新模块42和数据发送模块43 ;
[0097]所述内存映射模块41,用于调用业务进程的创建内存映像函数mmap(),将所述业务进程的数据映射进内存,且标明所述内存中映射所述数据的映射区域为共享;
[0098]所述数据刷新模块42,用于调用刷新变化函数msyncO,将所述映射区域内的所述业务进程的数据写入到后备文件中;其中,所述后备文件位于磁盘中;
[0099]所述数据发送模块43,用于将所述后备文件中的数据发送给备份机器。
[0100]可选的,所述数据刷新模块42,具体用于调用所述业务进程的刷新变化函数msync (),将所述映射区域内的所述业务进程的数据写入到后备文件中。
[0101]可选的,所述数据发送模块43,具体用于调用同步业务进程,将所述后备文件中的数据发送给备份机器。
[0102]可选的,所述数据刷新模块42,具体用于在所述业务进程接收所述同步业务进程的指令后,将所述原始机器调用刷新变化函数msync (),将所述映射区域内的所述业务进程的数据写入到后备文件中。
[0103]可选的,所述数据发送模块43,具体用于采用inotify机制监控到所述后备文件的数据发生变化后,将所述后备文件中的数据发送给备份机器。
[0104]可选的,如图5所示,所述备份机器12包括:数据接收模块44、内存重映射模块45和执行模块46 ;
[0105]所述数据接收模块44,用于将接收到的所述原始机器发送的所述数据存入一预置的固定目录下的备份文件内,所述预置的固定目录下的备份文件位于所述磁盘内。
[0106]所述内存重映射模块45,用于内存重映射函数mremap (),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
[0107]所述执行模块46,用于在所述备份机器接管所述原始机器后,基于重新映射至内存的数据执行所述业务进程。
[0108]可选的,所述内存重映射模块45,具体用于在所述备份机器接管所述原始机器后,内存重映射函数mremap (),将所述固定目录下的备份文件中的内容重新进行本机的内存映射。
[0109]可选的,所述内存重映射模块45,具体用于采用inotify机制发现所述固定目录下的备
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1