一种实现不停机迁移业务系统的系统及方法与流程

文档序号:22428670发布日期:2020-10-02 10:06阅读:238来源:国知局
一种实现不停机迁移业务系统的系统及方法与流程

本发明涉及计算机网络和数据复制技术领域,特别是涉及一种实现不停机迁移业务系统的系统及方法。



背景技术:

信息化时代,企事业的信息系统主要由物理服务器,以及在其环境中运行的操作系统和应用构成的,其中物理服务器属于硬件,操作系统及应用属于软件。本发明中业务系统指的是由操作系统和应用的所组成的软件部分。

随着时间推移,物理服务器的硬件需要更新换代,信息技术的基础设施也发生了变革,逐步向虚拟化和云计算发展,这也意味着业务系统需要向新的环境转移。

本发明所指的业务系统主要包括操作系统和应用,其中操作系统主要是linux和windows,而应用则是非常的多样化,想要在另一个环境重新构建一套和原来一样的业务系统,往往是非常庞大的工程。

目前,业务系统的迁移的做法主要有如下几种:

1、将需要迁移的源系统关闭,用启动盘重新启动。目标端系统同样以启动盘启动。通过源端和目标端启动盘中的软件完成数据同步。同步完成后,目标端关闭,取出启动盘,再重新进入系统。这种做法需要关闭源端系统,导致源端系统不能继续提供服务;

2、不关闭需要迁移的源系统,而是对源端系统做一个快照。目标端系统以启动盘启动。通过在源端系统安装的软件和目标端系统启动盘中的软件完成数据同步。同步完成后,目标端关闭,取出启动盘,再重新进入系统。这种做法由于只对源端系统做快照,只传输快照数据,迁移过程中产生的新数据无法同步到目标端

3、不关闭需要迁移的源系统,在同步源端已有数据的同时,捕获源端系统的磁盘的变化数据并传输目标端。目标端系统以启动盘启动,通过目标端启动盘中的软件接收源端数据以完成数据同步。同步完成后,目标端关闭,取出启动盘,再重新进入系统。这种做法有如下缺点:一、该方法通过捕获源端系统磁盘变化、基于磁盘块级的同步方式,导致同步到目标端后,由于源端缺少目标端所需要的驱动,目标端系统无法正常启动,即使手动注入驱动,不仅繁琐,而且不一定能解决驱动问题,最终可能导致迁移失败;而且目标端需要启动光盘,如果目标端是云主机,由于云主机不具备让用户挂载启动光盘的条件,从而使得需要启动光盘的迁移方式不可行。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种实现不停机迁移业务系统的系统及方法,以在不中断源端系统运行情况,实时捕获源端变化数据传输到目标端,无需挂载启动光盘且无需手动注入驱动,实现业务系统迁移的目的。

为达上述目的,本发明提供一种实现不停机迁移业务系统的系统,包括:

源端,遍历并读取源端系统的所有目录和文件,并实时监控所述源端系统的目录和文件的变化产生日志信息,将读取及监控的内容传送至目标端;

目标端,用于接收所述源端发送的数据并进行相应处理,根据接收到的数据与目标端驱动信息进行适配,并将适配后的数据覆盖目标端相应的数据。

优选地,所述源端还包括:

数据读取模块,用于遍历并读取源端系统的所有目录和文件,获得源端文件系统的目录结构,以及所有文件的内容和元数据;

实时数据捕获模块,用于实时监控所述源端系统的目录和文件的变化,产生日志信息;

数据传输模块,用于将所述数据读取模块读取的内容以及所述实时数据捕获模块实时监控获取的内容传输到目标端。

优选地,所述数据读取模块还获取包含源端系统的源数据的目录与目标端系统中存放该源数据的目录的映射关系的控制信息。

优选地,所述数据读取模块对于只存在源端系统内存中的目录直接跳过,对于独占打开的文件,直接读取该文件所在的磁盘扇区的数据。

优选地,所述日志信息记录的内容包括但不限于变化的目录和文件的名字、变化的类型、改变的内容、改变的内容在文件中的偏移量、以及变化数据的时间戳。

优选地,所述目标端进一步包括:

数据接收模块,用于接收所述源端发送的数据,并根据接收的数据类型进行对应处理;

操作系统适配模块,用于将接收到的数据与目标端驱动信息进行适配,并将适配后的数据覆盖目标端相应的文件。

优选地,对于所述数据读取模块读取的内容,所述数据接收模块根据所接收到的控制信息中的目录映射关系把将所述数据读取模块遍历源端系统得到的所有目录和文件等数据保存到目标端指定的目录下,对于所述实时数据捕获模块获取的内容,所述数据接收模块根据所述日志信息的类型,对相应的数据重新执行一遍操作。

优选地,所述操作系统适配模块将目标端的操作系统的注册表中驱动相关的信息与接收到的数据进行适配,获取所述源端系统传输过来的源端操作系统的注册表文件,并将目标端的操作系统的注册表中驱动相关的信息合并到从所述源端系统传输过来的源端操作系统的注册表文件中,利用合并后的注册表文件替换目标端操作系统的注册表文件,从而使得迁移过来的源端操作系统正确加载目标端系统所需的驱动。

优选地,所述目标端与源端安装对应版本的操作系统。

为达到上述目的,本发明还提供一种实现不停机迁移业务系统的方法,包括如下步骤:

步骤s1,源端遍历并读取源端系统的所有目录和文件,并实时监控所述源端系统的目录和文件的变化产生日志信息,将读取及监控的内容传送至目标端;

步骤s2,于目标端接收源端发送的数据并进行相应处理,根据接收到的数据与目标端驱动信息进行适配,将适配后的数据覆盖目标端相应的数据。

与现有技术相比,本发明一种实现不停机迁移业务系统的系统及方法通过遍历并读取源端系统的所有目录和文件,实时监控所述源端系统的目录和文件的变化产生日志信息,将读取及监控的内容传送至目标端,于目标端将接收到的所述源端发送的数据保存至对应的目标端目录,根据接收到的数据与目标端驱动信息进行适配,并将适配后的数据覆盖目标端相应的数据,从而使得迁移过来的源端操作系统正确加载目标端系统所需的驱动,本发明可在不中断源端系统运行情况,实时捕获源端变化数据传输到目标端,无需挂载启动光盘且无需手动注入驱动,实现业务系统迁移的目的。

附图说明

图1为本发明一种实现不停机迁移业务系统的系统的系统架构图;

图2为本发明一种实现不停机迁移业务系统的方法的步骤流程图;

图3为本发明实施例中不停机迁移业务系统的过程示意图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种实现不停机迁移业务系统的系统的系统架构图。如图1所示,本发明一种实现不停机迁移业务系统的系统,包括:

源端10,遍历并读取源端系统的所有目录和文件,并实时监控所述源端系统的目录和文件的变化产生日志信息,将读取及监控的内容传送至目标端。

具体地,源端10进一步包括:

数据读取模块101,用于遍历并读取源端系统的所有目录和文件,获得源端文件系统的目录结构,以及所有文件的内容和元数据。

在本发明具体实施例中,数据读取模块101对于只存在源端系统内存中的目录(由于只存在内存中的数据没有在磁盘上保存信息,所以无需同步至目标端),例如假设源端操作系统为linux系统,linux下的/proc,数据读取模块101会直接跳过,而对于独占打开的文件,数据读取模块101则直接读取文件所在的磁盘扇区的数据。除了源端系统数据,数据读取模块101还会获取一些控制信息,所述控制信息主要包含源端系统的源数据的目录与目标端系统中存放该源数据的目录的映射关系,由数据传输模块103传输至目标端,具体地说,在本发明中,对于系统运行时需要的数据不能直接覆盖目标端对应的数据,比如源端的c:\windows目录,是需要将其存在目标端的临时目录下的,例如存放在目标端的c:\ffo\windows路径下,这样就需要获取该映射关系,而非系统运行需要的数据则直接覆盖,在本发明中,该映射关系是预先确定的,开始传输文件前,由源端服务器将该映射关系发到目标端,目标端则建立对应的目录,例如目标端获得映射关系为c:\windows→c:\ffo\windows,则目标端收到源端服务器传输过来的c:\windows\xxx文件或者目录时,通过该映射关系,会把这些文件或者目录放到c:\ffo\windows下,变成c:\ffo\windows\xxx。

实时数据捕获模块102,用于实时监控所述源端系统的目录和文件的变化,产生日志信息,所述日志信息记录的内容包括但不限于变化的目录和文件的名字、变化的类型、改变的内容、改变的内容在文件中的偏移量、以及变化数据的时间戳。

数据传输模块103,用于将数据读取模块101读取的内容以及实时数据捕获模块102监控获取的内容传输到目标端。在本发明具体实施例中,为减少数据传输量,数据传输模块103在数据传输过程中还会对所传输的数据进行压缩和加密处理,由于这里采用的加密和压缩技术均为现有技术,在此不予赘述。

目标端20,用于接收源端10发送的数据进行相应处理,并根据接收到的数据与目标端驱动信息进行适配,将适配后的数据覆盖目标端相应的数据。在本发明中,目标端20与源端需安装对应版本的操作系统。

具体地,目标端20进一步包括:

数据接收模块201,用于接收源端10发送的数据,并根据接收的数据类型进行对应处理。

在本发明中,数据接收模块201接收的数据有两种类型:第一种是源端的数据读取模块101遍历源端系统得到的所有目录和文件,以及一些控制信息;第二种是源端的实时数据捕获模块102实时监控并记录的目录和文件变化的日志信息。对于第一种数据,数据接收模块201会根据获得的目录和文件或根据所接收到的控制信息中的目录映射关系把将数据读取模块101遍历源端系统得到的所有目录和文件等数据保存到目标端指定的目录下,对于第二种数据,数据接收模块201则根据日志信息的类型,对相应的数据重新执行一遍操作,如日志记录的是对a文件的写操作,该a文件保存在目标端的d目录下(根据第一种数据中的目录映射关系),数据接收模块201会对目标端的d目录下的a文件执行一次写操作。

操作系统适配模块202,用于将接收到的数据与目标端驱动信息进行适配,并将适配后的数据覆盖目标端相应的数据,以使得迁移过来的源端操作系统正确加载目标端系统所需的驱动。

具体地,对于windows系统,操作系统适配模块202将目标端的操作系统的注册表中驱动相关的信息与接收到的数据进行适配,即获取源端系统传输过来的源端操作系统的注册表文件,将目标端的操作系统的注册表中驱动相关的信息合并到从源端系统传输过来的源端操作系统的注册表文件中,并利用合并后的注册表文件替换目标端操作系统的注册表文件,从而使得迁移过来的源端操作系统正确加载目标端系统所需的驱动。也就是说,对于系统运行时的数据,源端系统传输过来的数据是存储在目标端的临时目录下的,需将目标端操作系统的注册表中驱动相关的信息与其合并后再替换目标端操作系统的注册表文件,才能使得迁移过来的源端操作系统正确加载目标端系统所需的驱动。

图2为本发明一种实现不停机迁移业务系统的方法的步骤流程图。如图2所示,本发明一种实现不停机迁移业务系统的方法,包括如下步骤:

步骤s1,源端遍历并读取源端系统的所有目录和文件,并实时监控所述源端系统的目录和文件的变化产生日志信息,将读取及监控的内容传送至目标端。

具体地,步骤s1进一步包括:

步骤s100,遍历并读取源端系统的所有目录和文件,获得源端文件系统的目录结构,以及所有文件的内容和元数据。

在本发明具体实施例中,对于只存在源端系统内存中的目录,如源端操作系统为linux系统,linux下的/proc,会直接跳过,对于独占打开的文件,则直接读取文件所在的磁盘扇区的数据。除了源端系统数据,于步骤s1中,还会读取一些控制信息,所述控制信息主要包含源端系统的源数据的目录与目标端系统中存放该源数据的目录的映射关系,也就是说,在本发明中,对于系统运行时需要的数据不能直接覆盖目标端对应的数据,比如源端的c:\windows目录,是需要将其存在目标端的临时目录下的,例如存放在目标端的c:\ffo\windows路径下,这样就需要获取该映射关系,而非系统运行需要的数据则直接覆盖,在本发明中,该映射关系是预先确定的,开始传输文件前,由源端服务器将该映射关系发到目标端,目标端则建立对应的目录,例如目标端获得映射关系为c:\windows→c:\ffo\windows,则目标端收到源端服务器传输过来的c:\windows\xxx文件或者目录时,通过该映射关系,会把这些文件或者目录放到c:\ffo\windows下,变成c:\ffo\windows\xxx。。

步骤s101,实时监控所述源端系统的目录和文件的变化,产生日志信息,所述日志信息记录的内容包括但不限于变化的目录和文件的名字、变化的类型、改变的内容、改变的内容在文件中的偏移量、以及变化数据的时间戳。

步骤s102,将步骤s100读取的内容以及步骤s101实时监控获取的内容传输到目标端。在本发明具体实施例中,在数据传输过程中可对所传输的数据进行压缩和加密处理,由于这里采用的加密和压缩技术均为现有技术,在此不予赘述。

步骤s2,于目标端接收源端发送的数据进行相应处理,并根据接收到的数据与目标端驱动信息进行适配,将适配后的数据覆盖目标端相应的数据。在本发明中,目标端与源端需安装对应版本的操作系统。

具体地,步骤s2进一步包括:

步骤s200,接收源端发送的数据,并根据接收的数据类型进行对应处理。

在本发明中,接收的数据有两种类型:第一种是遍历源端系统得到的所有目录和文件,以及一些控制信息;第二种是实时监控并记录的源端系统的目录和文件变化的日志信息。对于第一种数据,步骤s200会根据所接收到的控制信息中的目录映射关系把将遍历源端系统得到的所有目录和文件等数据保存到目标端指定的目录下,对于第二种数据,步骤s200则根据日志信息的类型,对相应的数据重新执行一遍操作,如日志记录的是对a文件的写操作,该a文件保存在目标端的d目录下,则会对目标端的d目录下的a文件执行一次写操作。

步骤s201,将接收到的数据与目标端驱动信息进行适配,并将适配后的数据覆盖目标端相应的数据,以使得迁移过来的源端操作系统正确加载目标端系统所需的驱动。

具体地,对于windows系统,操作系统适配模块202将目标端的操作系统的注册表中驱动相关的信息与接收到的数据进行适配,获得源端系统传输过来的源端操作系统的注册表文件,并将目标端的操作系统的注册表中驱动相关的信息合并到从源端系统传输过来的源端操作系统的注册表文件中,利用合并后的注册表文件替换目标端操作系统的注册表文件,从而使得迁移过来的源端操作系统正确加载目标端系统所需的驱动。

实施例

在本实施例中,源端与目标端需安装对应版本的操作系统,例如如果源端系统是linux系统,目标端也需要安装对应版本的linux系统,如果源端是windows系统,目标端也需要安装对应版本的windows系统。如图3所示,源端有两类数据要传输,一种是已存在源端磁盘上的文件,另一种是传输过程中发生变化的文件的所改变的内容,包括改变的属性。对于第一类数据,则数据读取模块通过遍历读取源端系统的所有目录和文件获得,并通过数据传输模块传输至目标端,对于第二类数据,则实时数据捕获模块实时监控源端系统的目录和文件的变化,产生日志信息,并通过数据传输模块传输至目标端。

源端系统和目标端系统完成数据同步后,如果不执行迁移动作,则源端系统的数据会一直和目标端保持同步,即源端系统的变化的数据会实时传输到目标端;当执行迁移动作后,目标端会自动重启,重启后,迁移完成。

在本实施例中,源端可以是物理机,也可以是虚拟机,目标端也可以是物理机、虚拟机,还可以是云主机,本发明不以此为限。

综上所述,本发明一种实现不停机迁移业务系统的系统及方法通过遍历并读取源端系统的所有目录和文件,实时监控所述源端系统的目录和文件的变化产生日志信息,将读取及监控的内容传送至目标端,于目标端将接收到的所述源端发送的数据保存至对应的目标端目录,根据接收到的数据与目标端驱动信息进行适配,并将适配后的数据覆盖目标端相应的数据,从而使得迁移过来的源端操作系统正确加载目标端系统所需的驱动,本发明可在不中断源端系统运行情况,实时捕获源端变化数据传输到目标端,无需挂载启动光盘且无需手动注入驱动,实现业务系统迁移的目的。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1