实现源数据实时转化为虚拟机镜像的系统及方法

文档序号:10552791阅读:427来源:国知局
实现源数据实时转化为虚拟机镜像的系统及方法
【专利摘要】本发明涉及一种实现源数据实时转化为虚拟机镜像的系统及方法,其中系统包括数据监控模块、数据传输客户端模块、数据传输服务端模块和数据存储模块,其中:数据监控模块对源数据进行实时监控、监控每次写操作的信息并记录;数据传输客户端模块读取数据监控模块记录的写操作的信息,读取磁盘数据;数据传输服务端模块接收数据传输客户端模块发送的磁盘数据并将数据发送至数据存储模块;数据存储模块将数据传输服务端模块发送的磁盘数据存入虚拟机镜像文件中。采用该种结构的实现源数据实时转化为虚拟机镜像的系统及方法,可以在不影响源数据所在的系统正常运行的前提下,实时的将随时间变化的源数据转换为虚拟机镜像文件,具有更广泛的应用范围。
【专利说明】
实现源数据实时转化为虚拟机镜像的系统及方法
技术领域
[0001]本发明涉及数据备份技术领域,尤其涉及虚拟机镜像技术领域,具体是指一种实现源数据实时转化为虚拟机镜像的系统及方法。
【背景技术】
[0002]近年来,随着信息技术的发展,互联网技术在正以前所未有的速度蓬勃发展,并以前所未有的深度和广度介入到经济社会的各领域,各种各样的业务、服务系统也如雨后春笋般的涌现出来了,而服务器是支撑这些系统长期、稳定、高效运行的物理载体。由于这些业务系统的复杂程度越来越高,与服务器相关的硬件投入、升级、扩展及维护成本也随之增加。
[0003]随着虚拟化技术的大力发展,尤其是硬件虚拟化技术如CPU、内存、网卡虚拟化技术取得了里程碑式的突破,使得很大一部分只能在物理服务器上运行的业务,已经可以在虚拟机中正常运行。
[0004]但是虚拟化技术本身的稳定性还有待提高,而用户却对系统的稳定性提出了苛刻的要求,这就对虚拟化的运行维护提出了更高的要求,即在不影响虚拟机中业务正常运行的前提下,对其做一个快照或者备份,以便将来该虚拟机出现问题时,能够基于此快照或者备份重建一台新的虚拟机,替代原先出问题的系统,并使其正常运行,以便基本不影响用户的正常使用。
[0005]而为了实现这个最终目标,就必须有一个方法和系统能够将源数据实时转换为虚拟机镜像文件,而不影响原有系统的正常运行。该源数据可以是物理机中的系统数据,可以是虚拟机中的数据,也可以是存储在任意一种介质上的存储数据。
[0006]在需要对源数据(包括但不限于物理机中的数据、虚拟机中的数据、存储介质上的数据)转换为虚拟机镜像时,普遍的作法如下:
[0007]1.使用P2v,v2v软件制作引导盘,为了保证数据的一致性,将源数据所在的系统重启,通过系统引导进入软件控制界面,进行虚拟机的转换;
[0008]2.对于虚拟机,通过虚拟机软件先将虚拟机暂停,然后执行快照,再恢复虚拟机的运行;
[0009]现有的方案,有以下主要问题:
[0010]1、将源数据转换为虚拟机数据格式的镜像时,必须先将源数据的系统暂停运行甚至关机,影响了原有系统的正常运行;
[0011]2、源数据更新后,无法及时更新已经转换成功的目标镜像文件。

【发明内容】

[0012]本发明的目的是克服了上述现有技术的缺点,针对将源数据转换为虚拟机格式镜像中主要存在的问题,即影响原系统的运行和无法实时更新增量数据,提供了一种能够实现在不需要关闭或者暂停原有系统的前提下、实时监控源数据的变化情况、并将变化的数据实时地转换为虚拟机镜像文件的实现源数据实时转化为虚拟机镜像的系统及方法。
[0013]为了实现上述目的,本发明具有如下构成:
[0014]该实现源数据实时转化为虚拟机镜像的系统,其主要特点是,所述的系统包括数据监控模块、数据传输客户端模块、数据传输服务端模块和数据存储模块,其中:
[0015]数据监控模块对源数据进行实时监控、监控每次写操作的信息并记录;
[0016]数据传输客户端模块读取数据监控模块记录的写操作的信息,读取对应的磁盘数据;
[0017]数据传输服务端模块接收数据传输客户端模块发送的磁盘数据并将数据发送至数据存储模块;
[0018]数据存储模块将数据传输服务端模块发送的磁盘数据存入虚拟机镜像文件中。
[0019]较佳地,所述的写操作的信息包括写操作对应的逻辑偏移、写操作的长度和基于各种应用场景的信息。
[0020]较佳地,所述的数据存储模块还用以创建虚拟机镜像文件、读取指定偏移及指定长度的数据写入指定的位置、创建虚拟机镜像文件的快照文件以及虚拟机镜像文件的管理。
[0021 ]较佳地,所述的源数据包括系统数据和业务数据。
[0022]较佳地,所述的虚拟机镜像文件的格式为VD1、VHD、VHDX、VMDK、QCOW、QC0W2、QC0W3、RAW、BOCKS、QED、TAP、TAP2 和 FILE 中的至少一种。
[0023]本发明还涉及一种基于所述的系统实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的方法包括以下步骤:
[0024](I)数据监控模块对源数据进行实时监控、监控每次写操作的信息并记录;
[0025](2)数据传输客户端模块读取数据监控模块记录的写操作的信息,读取对应的磁盘数据;
[0026](3)数据传输服务端模块接收数据传输客户端模块发送的磁盘数据并将数据发送至数据存储模块;
[0027](4)数据存储模块将数据传输服务端模块发送的磁盘数据存入虚拟机镜像文件中。
[0028]较佳地,所述的步骤(I)之前,还包括以下步骤:
[0029 ] (O)基于源数据创建虚拟机镜像文件。
[0030]更佳地,所述的基于源数据创建虚拟机镜像文件,包括以下步骤:
[0031 ] (0-1)数据存储模块创建虚拟机格式的文件;
[0032](0-2)数据传输客户端模块获取指定的源数据并发送至数据传输服务端模块;
[0033](0-3)数据传输服务模块将源数据发送至数据存储模块;
[0034](0-4)数据存储模块将源数据写入创建的文件形成虚拟机镜像文件。
[0035]更进一步地,所述的数据存储模块将源数据写入创建的文件,具体为:
[0036]所述的数据存储模块将源数据根据原始顺序从头至尾写入创建的文件或将源数据内的各个数据顺序以随机顺序写入创建的文件。
[0037]较佳地,所述的步骤(4),包括以下步骤:
[0038](4-1)数据存储模块判断是否存在与磁盘数据对应的偏移位置信息,如果是,则继续步骤(4-2),否则继续步骤(4-3);
[0039](4-2)数据存储模块将磁盘数据写入偏移位置信息对应的位置;
[0040](4-3)数据存储模块将磁盘数据写入分配的偏移位置并将偏移位置写入索引表中。
[0041]更佳地,所述的偏移位置信息中包含一级索引值、二级索引值和簇内偏移值,所述的将磁盘数据写入偏移位置信息对应的位置,包括以下步骤:
[0042](4-2-1)根据虚拟机镜像文件的文件头信息获取一级索引表的起始位置;
[0043](4-2-2)根据一级索引值获得二级索引表在虚拟机镜像文件内部的存储位置;
[0044](4-2-3)根据二级索引表的存储位置和二级索引值得到对应簇的存储位置;
[0045](4-2-4)根据簇内偏移值找到磁盘数据在虚拟机镜像文件内部的存储位置。
[0046]较佳地,所述的步骤(2)和(3)之间,还包括以下步骤:
[0047](2-1)对数据传输客户端模块读取的磁盘数据进行加密。
[0048]较佳地,所述的数据传输服务端模块接收数据传输客户端模块发送的磁盘数据,具体为:
[0049]所述的数据传输服务端模块基于网络协议或通过内存数据拷贝接收数据传输客户端模块发送的磁盘数据。
[0050]较佳地,所述的源数据存储在物理磁盘HDD、SSD、NVMe或基于FC/ISCSI/NBD挂载的磁盘,所述的虚拟机镜像文件的存储介质为物理磁盘HDD、SSD、NVMe或基于FC/ISCSI/NBD挂载的磁盘。
[0051]较佳地,所述的虚拟机镜像文件所应用的虚拟解决方案场景为VMWare、Xen或Qemu-KVM虚拟化解决方案。
[0052]采用了该发明中的实现源数据实时转化为虚拟机镜像的系统及方法,可以在不影响源数据所在的系统正常运行的前提下,实时的将随时间变化的源数据转换为虚拟机镜像文件,该虚拟机镜像文件可以在以下场景中发挥有益效果:
[0053](I)在未来某一时间,源数据所在的系统损坏,造成该系统中止运行,以及该系统中运行的业务系统长期无法正常运行,由此对该业务系统的使用者产生巨大影响。而通过本发明提供的方法,可以基于实时转换后的虚拟机镜像文件创建虚拟机,在很短的时间内(秒级)顶替源数据所在系统的运行,该方法极大的减少了因相关系统中运行的业务的长期暂停而对大批用户产生影响。
[0054](2)在未来某一时间,源数据所在的存储介质损坏,该极其重要的源数据无法在短时间内恢复或查看,由此对源数据的管理者维护者或拥有者造成极大的影响。而通过本发明提供的方法,则可以将源数据以虚拟机的方式在很短的时间内(秒级)供用户查看,因此本发将大大地减少了此种场景下对大量用户产生的巨大影响。
[0055](3)在未来某一时间,通过其它方法只能转换比较久远的时间点的数据,因此对用户产生巨大影响。通过本发明,可以将源数据实时的转换为虚拟机格式的镜像文件,从而极大地减少了这种影响。
【附图说明】
[0056]图1为本发明的实现源数据实时转化为虚拟机镜像的系统的结构示意图。
[0057]图2为本发明的实现源数据实时转化为虚拟机镜像的方法的流程图。
[0058]图3为本发明的一实施例中QC0W2的格式图。
【具体实施方式】
[0059]为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
[0060]本发明使用了源数据的监控技术,以及虚拟机镜像格式的分析技术。通过对源数据的监控,获取实时变化的增量数据;通过对虚拟机镜像格式的分析,将数据存储到指定的虚拟机格式文件中。
[0061]本发明提出一个将源数据转换为虚拟机镜像的方法和系统,主要包括以下几个模块:数据监控模块、数据传输客户端模块、数据传输服务端模块、数据存储模块。
[0062]数据监控模块对源数据进行实时监控,监控每一次写操作对应的逻辑偏移和写数据的长度以及基于不同的应用场景所需要的与此相关的信息;记录所有写操作的这些信息。
[0063]数据传输客户端模块读取数据监控模块的写操作信息,并将对应的磁盘数据读取出来发送给数据存输服务端模块;
[0064]数据传输服务端模块接收客户端模块传送过来的数据,并将数据递交给数据存储模块进行后续处理。
[0065]数据存储模块主要完成以下功能:创建虚拟机镜像文件;将数据传输服务端模块递交过来的数据,存入虚拟机镜像文件中;读取指定偏移及指定长度的数据交给需要的模块;创建虚拟机镜像文件的快照文件;管理虚拟机镜像文件,如合并、删除等。
[0066]实现源数据实时转化为虚拟机影像的方法包括以下步骤:
[0067]首先,数据存储模块根据虚拟机格式的标准,按照指定的信息创建虚拟机格式的文件,并在所需的位置写入文件头信息,写入索引数据信息,写入所需的其它信息。
[0068]其次,数据传输客户端模块获取指定的源数据,包括但不限于系统数据、业务数据或用户数据,将这些全部的源数据,按照约定的格式依次传输给数据传输服务端模块;传输方式包括但不限于,通过网络协议传输,或内存块之间的拷贝。
[0069]然后,数据传输服务端模块接收这些数据流,并将其交给数据存储模块;数据存储模块解析约定的格式,按照虚拟机镜像文件的格式要求,根据必要信息找到虚拟镜像文件内部的偏移,将实际的数据写入该位置,并更新与之对应的信息到虚拟机镜像文件中。待所有源数据分段并全部存储到虚拟机镜像文件后,该源数据已经转换为虚拟机格式的镜像文件了。
[0070]所述源数据包括但不限于:系统数据,业务数据,或者同时包含系统数据和业务数据;通过肉眼可以直观的、很容易识别的有一定意义的数据,或者不直观的、很难分析的特定格式的数据。
[0071]所述将源数据按照特定的虚拟机镜像格式全部写入虚拟机镜像文件,源数据写入的顺序包括但不限于:顺序从头至尾或者从尾至头;乱序的,即将头部、中间、尾部的数据全部打乱以一定规则或者毫无规则的方式写入。
[0072]所述将将源数据按照特定的虚拟机镜像格式全部写入虚拟机镜像文件,针对源数据,包括但不限于:一次写入一种虚拟机镜像文件;写入多种虚拟机镜像文件。
[0073]所述将源数据按照特定的虚拟机镜像格式全部写入虚拟机镜像文件,依据特定的使用场景及源数据的特性,包括但不限于:将源数据全部写入虚拟机镜像文件;将部分源数据写入虚拟机镜像文件。
[0074]最后,通过数据监控模块对源数据所在磁盘,包括但不限于系统磁盘或数据磁盘,进行监控,将所有写操作的必要信息按条目依次保存起来;数据传输客户端模块将这些信息读取出来,并按条目依次读取存储介质上的对应的写操作的数据即变化数据,按约定的格式将必要信息和变化数据发送给数据传输服务端模块,该模块接收这些变化的数据和对应格式的必要信息,一并将其交给数据存储模块处理;数据存储模块按条目依次进行以下处理:根据必要信息查找虚拟机格式文件中的数据存储内部偏移,根据其格式标准,在索引区域包括但不限于,一级索引或者多级索引中查找是否已经存在对应的内部偏移,如果已经存在则将本条目对应的变化数据直接写入指定的偏移位置;根据虚拟机格式标准,如果没有找到内部偏移,则在包括但不限于文件尾部或都内部其它位置,写入本条目的变化数据,并将该偏移位置更新到要求的索引区域,并更新与此相关的其它索引信息或者其它必须更新的信息。至此,所有的条目均已被处理,所有的变化数据均已被更新到虚拟机镜像文件中。
[0075]至此,源数据已经实时成功的转换为虚拟机镜像文件,在需要的场景下,如源数据损坏或者源数据在服务器之间移动时,即可基于该源数据在虚拟化解决方案环境中,创建虚拟机,并做一些必要的设置,启动虚拟机即可达到用户需要的目的,如顶替原有业务正常运行,恢复数据,查看数据等等。
[0076]为了便于管理虚拟机,为了提高虚拟机镜像文件的稳定性,数据存储模块可以按需创建快照,该快照可以存储在包括但不限于其父文件中,或存储在单独的文件中。如果快照文件是独立的文件,更新相关的文件头信息,以标识该快照文件与父文件关系,包括但不限于位置、路径和名字信息。
[0077]为了提高传输过程中的安全性,为了提高文件存储的安全性,数据传输客户端模块可以将读取出的源数据进行加密,数据存储模块将数据传输服务端模块接收到的实际数据的加密数据存入虚拟机镜像文件中。关于加密算法的选择,需要受限于以下的一种、几种、或全部约束:
[0078]1、需要考虑加密算法的安全级别[0079 ] 2、需要考虑加密算法对系统性能的影响
[0080]3、选择的加密算法必须被虚拟化解决方案所支持,即数据存储模块依据此加密算法加密过的数据,存入虚拟机格式文件中,必须按照其对应的标准更新相关的信息;各虚拟化解决方案(如VMffare,Xen,KVM等)基于此虚拟机格式的镜像文件创建的虚拟机,在不需要改动的情况下,可以成功启动,并且该虚拟机可以给用户正常使用。
[0081 ]本发明可以将源数据实时的转换为虚拟机格式的镜像文件,即源数据在实时变化时,其变化的数据,将被实时的传输给数据存储模块,并被实时地写入到虚拟机格式的镜像文件中。为了更好的达到实时的效度,在源数据和数据存储模块之间可以构建高效的专用存储链路,如FC光纤网络;在源数据和存储模块两端配置高端的CPU和高效的内存;在数据存储模块端,配置高端的存储介质如高性能的SSD、NVMe等。
[0082]本发明在将源数据实时转换为虚拟机格式的镜像文件的过程中,几乎不会影响源数据之上的业务的正常运行。
[0083]本发明中涉及到的源数据所在的存储介质可以是一般的物理磁盘HDD、SSD,NVMe、基于FC/ISCSI/NBD等挂载过来的磁盘以及其它的光盘、磁带等介质。
[0084]本发明中涉及到的虚拟机镜像格式可以是VD1、VHD、VHDX、VMDK、QCOff、QC0W2、QC0W3、RAW、BOCKS、QED、TAP、TAP2、FILE等。所述创建的虚拟机镜像文件,针对源数据,包括但不限于:一次创建一种虚拟机镜像格式;同时创建多种依据此处提到的格式。
[0085]所述的虚拟机镜像文件的存储介质包括但不限于:物理磁盘HDD、SSD、NVMe、基于FC/ISCSI/NBD等挂载过来的磁盘以及其它的光盘、磁带等可以存储数据的任何介质。
[0086]本发明中涉及到的虚拟化解决方案可以是VMWare、Xen、Qemu-KVM以及其它虚拟化解决方案。
[0087]本发明提供将源数据实时转换为虚拟机格式的镜像文件的方法和系统,本发明的目的是:当源数据因各种原因无法访问时,本发明提供的方法可以将源数据及时同步到虚拟机格式的文件中,同步后的最新时间点即为源数据损坏之前的某一时间点或者几乎就是损坏时的这一时间点;同时根据用户的设置,可以提供之前任意用户设定的时间点的数据文件。而基于此时间点的文件,用户可以创建虚拟机,以顶替原系统中的业务;或者查看相关的数据。
[0088]所述的虚拟机镜像格式所应用的虚拟化解决方案场景,包括但不限于VMWare、Xen或Qemu-KVM虚拟化解决方案。为使本发明的目的、技术方案、系统组成更加清晰,更加明确,本部分结合说明书附图中的附图,以磁盘存储介质为源数据的载体的特例、以Qemu-KVM作为虚拟化解决方案的特例、以QC0W2格式作为虚拟机镜像文件格式的特例,对本发明提供的方法和系统进行实例举例,以便进一步澄清本发明的技术细节。
[0089]图1为本发明实施例一将源数据实时转换为虚拟机镜像的流程图。具体步骤如下:
[0090]步骤101:对源数据进行实时监控,将系统对源数据的写操作进行监控,并将每次1的信息记录下来,其中包括但不限于数据的偏移位置、数据的长度信息。
[0091]所述监控并记录源数据的实时变化情况,监控的级别或者间隔时间,包括但不限于:比较长的时间间隔,如年,月、天、小时;比较小的时间间隔,如分钟、秒、毫秒、微秒和纳秒。
[0092]所述监控并记录源数据的实时变化情况,包括但不限于:将源数据的变化情况记录至各种不同性能的存储介质上;记录在物理内存中;记录在特定的文件中。
[0093]所述监控并记录源数据的实时变化情况,记录源数据实时变化的信息,包括但不限于:只包含基本的偏移位置和长度;包含其它依据不同的实际场景所需要的各种其它信息。
[0094]步骤102:读取每一个1的条目信息(包括偏移位置、数据长度等信息),并把基于此信息的数据从源数据所在的磁盘中读取出来,将这以上信息传递给数据传输服务端模块;每传输一定数量大小的数据后,发送检验确认信息,以确保这些数据均被服务端正确处理。
[0095]所述读取实时变化的数据并将其传输至数据传输服务端模块,读取实时变化的数据,包括但不限于:连续读取所有的变化数据;不连续的、间断的读取。
[0096]所述读取实时变化的数据并将其传输至数据传输服务端模块,传输的方式包括但不限于:基于TCP/UDP协议;基于其上的经过封装、优化、修改的其它协议;其它协议如FC、ISCSI协议;内存中的数据拷贝。
[0097]所述读取实时变化的数据并将其传输至数据传输服务端模块,包括但不限于:数据传输服务端与源数据在同一台物理或虚拟设备中;数据传输服务端与源数据在不同的物理设备或虚拟设备中。
[0098]所述取实时变化的数据并将其传输至数据传输客户端模块,传输的数据格式,包括但不限于:只包含基本信息的格式如偏移、长度、数据;依据不同的场景还包含其它的信息。
[0099]所述取实时变化的数据并将其传输至数据传输服务端模块,传输的数据所采用的加密算法包括但不限于:不采用加密算法;依据简单加密算法如基本的异或运算;高级的加密算法;其它的未来将出来的新的加密算法。
[0100]步骤103:数据传输服务端模块接收传递过来的数据,并将收到的数据递交给存储服务模块;同时当处理一定数据的数据后,反馈数据的处理状态发送给客户端。
[0101 ]步骤104:数据存储模块,根据偏移位置信息,根据QC0W2格式,获取一级索引值、二级索引值、簇内偏移值信息;根据文件头的信息,获取第一级索引表的起始位置;然后根据一级索引值获得二级索引表在文件内部的存储位置;根据二级索引表的存储位置和二级索引值找到对应簇的存储位置,根据簇的偏移值找到数据对应的文件内部的存储位置。
[0102]所述虚拟机镜像文件包括但不限于:基于文件系统创建的普通的文件;基于各种文件系统创建的具有一定特性的文件(如稀疏文件);基于各种文件系统协作管理的文件或直接储存在存储介质上的文件。
[0103]如果找到数据对应的文件内部的存储位置,下一步进行步骤106;否则,下一步执行步骤105。
[0104]所述数据传输服务端模块收取实时变化的数据并按照特定的虚拟机格式写入虚拟机镜像文件的相应位置,写入的虚拟机镜像文件的方法,需要依据不同的虚拟机镜像格式标准,逐级读取分析索引,找到最终的数据存储位置,并最终写入相应的数据。
[0105]步骤105:分配相应的文件内部的偏移位置,并将该位置存入对应的索引表中。
[0106]步骤106:将数据写入到簇内的偏移位置处。
[0107]所述的写入虚拟机镜像文件的数据,包括但不限于加密过的数据;没有加密的数据。
[0108]所述的加密数据所用的加密方法,可以是AES算法,也可以是依据虚拟机镜像文件格式所支持的其它加密算法。
[0109]图2为本发明实施例一种QC0W2格式图:
[0110]本图以簇大小为12位为例进行举例描述。
[0111]QC0W2格式是QEMU-KVM虚拟化解决方案所支持的虚拟机的镜像格式,该格式主要包含以下几部分:文件头,一级索引,二级索引,引用计数信息,及实际的数据;
[0112]而逻辑偏移量(64位)由以下几部分构成:一级索引值(63?21位)+二级索引值(20?12位)+簇内偏移(I I?O)。
[0113]读写QC0W2文件时,根据偏移量解析出一级索引值、二级索引值、簇内偏移,然后再逐级获得各自的偏移位置,据此获得数据的实际存储位置,最终在该处读取/写入数据。
[0114]图2中:201为逻辑地址,202为一级索引表,203为二级索引表,204为簇。
[0115]图3为本发明的系统构成图,主要包含以下模块:
[0116]301为数据监控模块,数据监控模块对源数据进行实时监控,监控每一次写操作对应的逻辑偏移和写数据的长度;记录所有写操作的这些信息。
[0117]302为数据传输客户端模块,数据传输客户端模块读取数据监控模块的写操作信息,并将对应的磁盘数据读取出来发送给数据存储模块。
[0118]303为数据传输服务端模块,数据传输服务端模块接收客户端模块传送过来的数据,并将数据递交给数据存储模块进行后续处理。
[0119]304为数据存储模块,数据存储模块主要完成以下功能:创建虚拟机镜像文件;将数据传输服务端模块递交过来的数据,存入虚拟机镜像文件中;读取指定偏移及指定长度的数据交给需要的模块;创建虚拟机镜像文件的快照文件;管理虚拟机镜像文件,如合并、删除等。
[0120]数据监控模块记录源数据的变化情况,数据传输客户端模块根据数据监控模块记录的信息,从存储介质上读取实际的数据,并将其传输给数据传输服务端模块,数据传输服务端模块接收相应的数据,数据存储模块将数据存储存入虚拟机镜像文件。
[0121 ]在将源数据实时转换为虚拟机格式的镜像文件的过程中,几乎不会影响源数据之上的业务的正常运行,数据监控模块只监控数据的写入操作,并且,经过测试,该模块的源数据所在存储介质的正常1操作的影响极小,在5%以内。
[0122]所述的数据监控模块,数据传输客户端模块,数据传输服务端模块,数据存储模块,可以运行在同一台设备上,也可以运行在不同的设备上。所述的设备,可以是物理设备,也可以是虚拟设备。所述的数据传输客户端模块,其传输数据的方式可以是通过网络协议传输,也可以是通过内存拷贝的方式传输。所述的数据传输服务端模块,其传输数据的方式可以是通过网络协议传输,也可以是通过内存拷贝的方式传输。
[0123]采用了该发明中的实现源数据实时转化为虚拟机镜像的系统及方法,可以在不影响源数据所在的系统正常运行的前提下,实时的将随时间变化的源数据转换为虚拟机镜像文件,该虚拟机镜像文件可以在以下场景中发挥有益效果:
[0124](I)在未来某一时间,源数据所在的系统损坏,造成该系统中止运行,以及该系统中运行的业务系统长期无法正常运行,由此对该业务系统的使用者产生巨大影响。而通过本发明提供的方法,可以基于实时转换后的虚拟机镜像文件创建虚拟机,在很短的时间内(秒级)顶替源数据所在系统的运行,该方法极大的减少了因相关系统中运行的业务的长期暂停而对大批用户产生影响。
[0125](2)在未来某一时间,源数据所在的存储介质损坏,该极其重要的源数据无法在短时间内恢复或查看,由此对源数据的管理者维护者或拥有者造成极大的影响。而通过本发明提供的方法,则可以将源数据以虚拟机的方式在很短的时间内(秒级)供用户查看,因此本发将大大地减少了此种场景下对大量用户产生的巨大影响。
[0126](3)在未来某一时间,通过其它方法只能转换比较久远的时间点的数据,因此对用户产生巨大影响。通过本发明,可以将源数据实时的转换为虚拟机格式的镜像文件,从而极大地减少了这种影响。
[0127]在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
【主权项】
1.一种实现源数据实时转化为虚拟机镜像的系统,其特征在于,所述的系统包括数据监控模块、数据传输客户端模块、数据传输服务端模块和数据存储模块,其中: 数据监控模块对源数据进行实时监控、监控每次写操作的信息并记录; 数据传输客户端模块读取数据监控模块记录的写操作的信息,读取对应的磁盘数据; 数据传输服务端模块接收数据传输客户端模块发送的磁盘数据并将数据发送至数据存储模块; 数据存储模块将数据传输服务端模块发送的磁盘数据存入虚拟机镜像文件中。2.根据权利要求1所述的实现源数据实时转化为虚拟机镜像的系统,其特征在于,所述的写操作的信息包括写操作对应的逻辑偏移、写操作的长度和基于各种应用场景的信息。3.根据权利要求1所述的实现源数据实时转化为虚拟机镜像的系统,其特征在于,所述的数据存储模块还用以创建虚拟机镜像文件、读取指定偏移及指定长度的数据写入指定的位置、创建虚拟机镜像文件的快照文件以及虚拟机镜像文件的管理。4.根据权利要求1所述的实现源数据实时转化为虚拟机镜像的系统,其特征在于,所述的源数据包括系统数据和业务数据。5.根据权利要求1所述的实现源数据实时转化为虚拟机镜像的系统,其特征在于,所述的虚拟机镜像文件的格式为VD1、VHD、VHDX、VMDK、QC0W、QC0W2、QC0W3、RAW、B0CKS、QED、TAP、TAP2和FILE中的至少一种。6.—种基于权利要求1至5中任一项所述的系统实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的方法包括以下步骤: (1)数据监控模块对源数据进行实时监控、监控每次写操作的信息并记录; (2)数据传输客户端模块读取数据监控模块记录的写操作的信息,读取对应的磁盘数据; (3)数据传输服务端模块接收数据传输客户端模块发送的磁盘数据并将数据发送至数据存储模块; (4)数据存储模块将数据传输服务端模块发送的磁盘数据存入虚拟机镜像文件中。7.根据权利要求6所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的步骤(I)之前,还包括以下步骤: (O)基于源数据创建虚拟机镜像文件。8.根据权利要求7所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的基于源数据创建虚拟机镜像文件,包括以下步骤: (0-1)数据存储模块创建虚拟机格式的文件; (0-2)数据传输客户端模块获取指定的源数据并发送至数据传输服务端模块; (0-3)数据传输服务模块将源数据发送至数据存储模块; (0-4)数据存储模块将源数据写入创建的文件形成虚拟机镜像文件。9.根据权利要求8所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的数据存储模块将源数据写入创建的文件,具体为: 所述的数据存储模块将源数据根据原始顺序从头至尾写入创建的文件或将源数据内的各个数据顺序以随机顺序写入创建的文件。10.根据权利要求6所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的步骤(4),包括以下步骤: (4-1)数据存储模块判断是否存在与磁盘数据对应的偏移位置信息,如果是,则继续步骤(4-2),否则继续步骤(4-3); (4-2)数据存储模块将磁盘数据写入偏移位置信息对应的位置; (4-3)数据存储模块将磁盘数据写入分配的偏移位置并将偏移位置写入索引表中。11.根据权利要求10所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的偏移位置信息中包含一级索引值、二级索引值和簇内偏移值,所述的将磁盘数据写入偏移位置信息对应的位置,包括以下步骤: (4-2-1)根据虚拟机镜像文件的文件头信息获取一级索引表的起始位置; (4-2-2)根据一级索引值获得二级索引表在虚拟机镜像文件内部的存储位置; (4-2-3)根据二级索引表的存储位置和二级索引值得到对应簇的存储位置; (4-2-4)根据簇内偏移值找到磁盘数据在虚拟机镜像文件内部的存储位置。12.根据权利要求6所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的步骤(2)和(3)之间,还包括以下步骤: (2-1)对数据传输客户端模块读取的磁盘数据进行加密。13.根据权利要求6所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的数据传输服务端模块接收数据传输客户端模块发送的磁盘数据,具体为: 所述的数据传输服务端模块基于网络协议或通过内存数据拷贝接收数据传输客户端模块发送的磁盘数据。14.根据权利要求6所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的源数据存储在物理磁盘HDD、SSD、NVMe或基于FC/ISCSI/NBD挂载的磁盘,所述的虚拟机镜像文件的存储介质为物理磁盘HDD、SSD、NVMe或基于FC/ISCSI/NBD挂载的磁盘。15.根据权利要求6所述的实现源数据实时转化为虚拟机镜像的方法,其特征在于,所述的虚拟机镜像文件所应用的虚拟解决方案场景为VMWare、Xen或Qemu-KVM虚拟化解决方案。
【文档编号】G06F3/06GK105912428SQ201610341799
【公开日】2016年8月31日
【申请日】2016年5月20日
【发明人】骈海生
【申请人】上海数腾软件科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1