一种转换虚拟磁盘文件格式的方法与设备与流程

文档序号:13876491阅读:351来源:国知局
一种转换虚拟磁盘文件格式的方法与设备与流程

本申请涉及计算机领域,尤其涉及一种转换虚拟磁盘文件格式的技术。



背景技术:

在弹性计算云中,虚拟机的磁盘是基于虚拟磁盘文件实现的,虚拟机的所有数据都存储在这个文件中。不同的虚拟化平台,会设计和实现一套虚拟磁盘文件格式,来高效组织、管理虚拟机的磁盘空间。常见的虚拟机磁盘文件格式有:xen平台的vhd,kvm&qemu平台的qcow2,vmware的vmdk,以及原生的raw格式等。多种磁盘格式文件共存的局面,带来的问题也很明显。云计算厂商一般只会支持某一种磁盘格式,如aws只支持vhd,azure只支持vhd,ucloud只支持qcow2等。目前业界的云服务厂商,均没有实现在不同虚拟磁盘文件格式之间进行在线转换,均是事先采用离线的方式,将虚拟磁盘从一个格式转换到目标格式,拿到转换后的目标格式的虚拟磁盘文件后才能在自有的平台上使用。

显然,现有技术方案是一种离线操作,对使用者来说,一般需要等待数分钟的离线转换工作完成之后,才能启动虚拟机(如果这块磁盘是虚拟机的系统盘)或者使用这块磁盘的数据(如果这块磁盘是虚拟机的数据盘)。如果磁盘是一块大容量磁盘,如16tb,转换的bps是60mb/s,则离线转换需要超过3天的时间,很明显,服务质量难以满足用户的需求,也不满足弹性计算云快速交付资源的要求。



技术实现要素:

本申请的一个目的是提供一种转换虚拟磁盘文件格式的方法与设备,以解决在线、无缝、实时转换虚拟磁盘文件格式的问题。

根据本申请的一个方面,提供了一种转换虚拟磁盘文件格式的方法,其中,所述方法包括:

获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

检测所述目标数据中是否存在待转换格式数据;

若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;

对所述目标数据执行所述处理请求。

根据本申请的另一个方面,提供了一种转换虚拟磁盘文件格式的方法,其中,所述方法包括:

获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应;

对所述目标数据执行所述处理请求。

根据本申请的又一个方面,提供了一种转换虚拟磁盘文件格式的设备,其中,所述设备包括:

获取装置,用于获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

检测装置,用于检测所述目标数据中是否存在待转换格式数据;

转换装置,用于若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;

执行装置,用于对所述目标数据执行所述处理请求。

根据本申请的另一个方面,提供了一种转换虚拟磁盘文件格式的设备,其中,所述设备包括:

获取装置,用于获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

转换装置,用于将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应;

执行装置,用于对所述目标数据执行所述处理请求。

根据本申请的又一个方面,还提供了一种转换虚拟磁盘文件格式的设备,其中,所述设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

检测所述目标数据中是否存在待转换格式数据;

若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;

对所述目标数据执行所述处理请求。

根据本申请的又一个方面,还提供了一种转换虚拟磁盘文件格式的设备,其中,所述设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应;

对所述目标数据执行所述处理请求。

与现有技术相比,本申请获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求,然后,检测所述目标数据中是否存在待转换格式数据,若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,从而实现在线、无缝、实时转换虚拟磁盘文件格式,再对所述目标数据执行所述处理请求,保证了用户可以不需要等待任何时间就可以使用虚拟机或者虚拟机的磁盘。进一步地,本申请通过遍历转换标识位图确定所述目标虚拟磁盘文件中待转换数据,自主将虚拟机没有访问过的数据从对应源虚拟磁盘文件中转换到所述目标虚拟磁盘文件,这样保证了在一定的时间内,虚拟磁盘文件格式转换工作可以完成,而且是在虚拟机运行的过程中实时进行,不影响虚拟机的运行状态。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的一种转换虚拟磁盘文件格式的方法流程图;

图2示出根据本申请另一个方面的一种转换虚拟磁盘文件格式的方法流程图;

图3示出根据本申请又一个方面的一种转换虚拟磁盘文件格式的设备示意图;

图4示出根据本申请另一个方面的一种转换虚拟磁盘文件格式的设备示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

图1示出根据本申请一个方面的一种转换虚拟磁盘文件格式的方法流程图,所述方法包括步骤s11、步骤s12、步骤s13和步骤s14。

具体地,在步骤s11中,设备1获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;在步骤s12中,设备1检测所述目标数据中是否存在待转换格式数据;在步骤s13中,设备1若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;在步骤s14中,设备1对所述目标数据执行所述处理请求。

在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在步骤s11中,设备1获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求。

在此,所述处理请求包括虚拟机的读请求或写请求。例如,虚拟机在启动、数据磁盘加载等过程中会产生读、写请求,需要对所述目标虚拟磁盘文件中的目标数据进行读操作或写操作。

在步骤s12中,设备1检测所述目标数据中是否存在待转换格式数据。

例如,若所述目标数据中不存在待转换格式数据,即所述目标数据已完成格式转换并存储至所述目标虚拟磁盘文件中,则可以无需格式转换而直接对所述目标数据执行所述处理请求。

优选地,在步骤s12中,设备1根据所述目标数据在转换标识位图中对应的格式转换标识信息,检测所述目标数据中是否存在待转换格式数据。

例如,假设所述转换标识位图(bitmap)中的每一比特(bit)对应一个512字节的数据块,bitmap中的bit初始值为0;若某个bit对应的数据块已完成格式转换并存储至所述目标虚拟磁盘文件中,则将该bit置位为1。若所述目标数据在bitmap中对应的若干个bit的值已全部置位为1,说明所述目标数据中不存在待转换格式数据;若所述目标数据在bitmap中对应的若干个bit中仍存在为0的值,说明所述目标数据存在待转换格式数据,并可以根据所述目标数据在bitmap中对应的若干个bit的置位情况确定所述目标数据中待转换格式数据。

在步骤s13中,设备1若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应。

例如,若所述目标数据中存在待转换格式数据,可能所述目标数据中的部分数据待转换格式,也可能所述目标数据中的全部数据待转换格式,需将所述目标数据中的待转换格式数据写入所述目标虚拟磁盘文件的目的位置信息之后,才可对所述目标数据执行所述处理请求。假设所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息为[dstoffset,dstoffset+length],其中,offset表示所述目标数据在所述目标虚拟磁盘文件中的位置偏移量,length表示所述待转换格式数据的长度;假设所述待转换格式数据在所述源虚拟磁盘文件中对应数据的源位置信息为[srcoffset,srcoffset+length];所述源位置信息与所述目的位置信息相对应。

优选地,在步骤s13中,设备1若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;更新所述待转换格式数据在所述转换标识位图中对应的格式转换标识信息。

例如,当所述待转换格式数据已完成格式转换并存储至所述目标虚拟磁盘文件中,更新所述待转换格式数据在bitmap中对应的若干的bit的值,即置位所述待转换格式数据在bitmap中对应的若干的bit。

更优选地,在步骤s13中,设备1遍历所述转换标识位图,根据所述转换标识位图中对应的格式转换标识信息确定所述目标虚拟磁盘文件中待转换格式数据;将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据;更新所述待转换格式数据在所述转换标识位图中对应的格式转换标识信息。

例如,接上例,逐位遍历bitmap,如果该bit被置位,表示该bit在所述目标虚拟磁盘文件中对应的512字节的数据块已完成格式转换,则返回继续判断下一bit是否被置位。如果该bit的值为0,表示该bit在所述目标虚拟磁盘文件中对应的512字节的数据块为待转换格式数据;假设所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息为[dstoffset1,dstoffset1+512],通过公式srcoffset=convertfun<dstformat,srcformat>(dstoffset)计算出对应源虚拟磁盘文件中源位置信息为[srcoffset1,srcoffset1+512];从对应源虚拟磁盘文件中的区域[srcoffset1,srcoffset1+512]读取数据,并回写到所述目标虚拟磁盘文件中的区域[dstoffset1,dstoffset1+512],那么位于所述目标虚拟磁盘文件中[dstoffset1,dstoffset1+512]位置的数据即为所述待转换格式数据,并且已经完成格式转换;然后,更新所述待转换格式数据在bitmap中对应的bit的值,即置位所述待转换格式数据在bitmap中对应的bit;接着,继续判断下一bit是否被置位,直至将对应虚拟磁盘文件中的数据全都转换到所述目标虚拟磁盘文件中。

优选地,所述根据所述转换标识位图中对应的格式转换标识信息确定所述目标虚拟磁盘文件中待转换格式数据包括:根据所述格式转换标识信息计算出所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息。

例如,bitmap中的每一bit对应所述目标虚拟磁盘文件中的一个512字节的数据块,根据bit与数据块之间的对应关系,即可计算出所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息。

在步骤s14中,设备1对所述目标数据执行所述处理请求。

例如,若所述处理请求为读请求则将读取到的所述目标数据返回给虚拟机,若所述处理请求为写请求则对所述目标数据执行相应的写操作。

图2示出根据本申请另一个方面的一种转换虚拟磁盘文件格式的方法流程图,所述方法包括步骤s21、步骤s22和步骤s23。

具体地,在步骤s21中,设备2获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;在步骤s22中,设备2将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应;在步骤s23中,设备2对所述目标数据执行所述处理请求。

在此,所述设备2包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备2还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备2仅为举例,其他现有的或今后可能出现的设备2如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在步骤s21中,设备2获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求。

在此,所述处理请求包括虚拟机的读请求或写请求。例如,虚拟机在启动、数据磁盘加载等过程中会产生读、写请求,需要对所述目标虚拟磁盘文件中的目标数据进行读操作或写操作。

在步骤s22中,设备2将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应。

例如,假设所述目标数据在所述目标虚拟磁盘文件中的目的位置信息为[dstoffset,dstoffset+length],其中,offset表示所述目标数据在所述目标虚拟磁盘文件中的位置偏移量,length表示所述目标数据的长度;假设所述目标数据在所述源虚拟磁盘文件中对应数据的源位置信息为[srcoffset,srcoffset+length];所述源位置信息与所述目的位置信息相对应。

优选地,在步骤s22中,设备2从对应源虚拟磁盘文件中源位置信息读取数据,其中,所述源位置信息与所述目标数据在所述目标虚拟磁盘文件中的目的位置信息相对应;将所读取数据写入所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据。

例如,从对应源虚拟磁盘文件中的区域[srcoffset,srcoffset+length]读取数据,并回写到所述目标虚拟磁盘文件中的区域[dstoffset,dstoffset+length],那么位于所述目标虚拟磁盘文件中[dstoffset,dstoffset+length]位置的数据即为所述目标数据。

优选地,在步骤s22中,设备2根据所述目标数据在所述目标虚拟磁盘文件中的目的位置信息,确定所述目标数据在所述源虚拟磁盘文件中对应数据的源位置信息;将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据。

例如,可以通过公式srcoffset=convertfun<dstformat,srcformat>(dstoffset)进行计算,其中,convertfun函数负责根据所述目标数据在目标虚拟磁盘文件中的dstoffset,计算其在源虚拟磁盘文件中的srcoffset,这样就能定位所述目标数据在源虚拟磁盘文件中的位置。在此,不同的虚拟磁盘文件格式都有其独特的数据组织方式,该公式可以根据不同的虚拟磁盘文件格式的规范推导出来。

在步骤s23中,设备2对所述目标数据执行所述处理请求。

例如,若所述处理请求为读请求则将读取到的所述目标数据返回给虚拟机,若所述处理请求为写请求则对所述目标数据执行相应的写操作。

图3示出根据本申请又一个方面的一种转换虚拟磁盘文件格式的设备1,所述设备1包括获取装置11、检测装置12、转换装置13和执行装置14。

具体地,所述获取装置11获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;所述检测装置12检测所述目标数据中是否存在待转换格式数据;所述转换装置13若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;所述执行装置14对所述目标数据执行所述处理请求。

在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

所述获取装置11获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求。

在此,所述处理请求包括虚拟机的读请求或写请求。例如,虚拟机在启动、数据磁盘加载等过程中会产生读、写请求,需要对所述目标虚拟磁盘文件中的目标数据进行读操作或写操作。

所述检测装置12检测所述目标数据中是否存在待转换格式数据。

例如,若所述目标数据中不存在待转换格式数据,即所述目标数据已完成格式转换并存储至所述目标虚拟磁盘文件中,则可以无需格式转换而直接对所述目标数据执行所述处理请求。

优选地,所述检测装置12根据所述目标数据在转换标识位图中对应的格式转换标识信息,检测所述目标数据中是否存在待转换格式数据。

例如,假设所述转换标识位图(bitmap)中的每一比特(bit)对应一个512字节的数据块,bitmap中的bit初始值为0;若某个bit对应的数据块已完成格式转换并存储至所述目标虚拟磁盘文件中,则将该bit置位为1。若所述目标数据在bitmap中对应的若干个bit的值已全部置位为1,说明所述目标数据中不存在待转换格式数据;若所述目标数据在bitmap中对应的若干个bit中仍存在为0的值,说明所述目标数据存在待转换格式数据,并可以根据所述目标数据在bitmap中对应的若干个bit的置位情况确定所述目标数据中待转换格式数据。

所述转换装置13若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应。

例如,若所述目标数据中存在待转换格式数据,可能所述目标数据中的部分数据待转换格式,也可能所述目标数据中的全部数据待转换格式,需将所述目标数据中的待转换格式数据写入所述目标虚拟磁盘文件的目的位置信息之后,才可对所述目标数据执行所述处理请求。假设所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息为[dstoffset,dstoffset+length],其中,offset表示所述目标数据在所述目标虚拟磁盘文件中的位置偏移量,length表示所述待转换格式数据的长度;假设所述待转换格式数据在所述源虚拟磁盘文件中对应数据的源位置信息为[srcoffset,srcoffset+length];所述源位置信息与所述目的位置信息相对应。

优选地,所述转换装置13若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;更新所述待转换格式数据在所述转换标识位图中对应的格式转换标识信息。

例如,当所述待转换格式数据已完成格式转换并存储至所述目标虚拟磁盘文件中,更新所述待转换格式数据在bitmap中对应的若干的bit的值,即置位所述待转换格式数据在bitmap中对应的若干的bit。

更优选地,所述转换装置13遍历所述转换标识位图,根据所述转换标识位图中对应的格式转换标识信息确定所述目标虚拟磁盘文件中待转换格式数据;将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据;更新所述待转换格式数据在所述转换标识位图中对应的格式转换标识信息。

例如,接上例,逐位遍历bitmap,如果该bit被置位,表示该bit在所述目标虚拟磁盘文件中对应的512字节的数据块已完成格式转换,则返回继续判断下一bit是否被置位。如果该bit的值为0,表示该bit在所述目标虚拟磁盘文件中对应的512字节的数据块为待转换格式数据;假设所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息为[dstoffset1,dstoffset1+512],通过公式srcoffset=convertfun<dstformat,srcformat>(dstoffset)计算出对应源虚拟磁盘文件中源位置信息为[srcoffset1,srcoffset1+512];从对应源虚拟磁盘文件中的区域[srcoffset1,srcoffset1+512]读取数据,并回写到所述目标虚拟磁盘文件中的区域[dstoffset1,dstoffset1+512],那么位于所述目标虚拟磁盘文件中[dstoffset1,dstoffset1+512]位置的数据即为所述待转换格式数据,并且已经完成格式转换;然后,更新所述待转换格式数据在bitmap中对应的bit的值,即置位所述待转换格式数据在bitmap中对应的bit;接着,继续判断下一bit是否被置位,直至将对应虚拟磁盘文件中的数据全都转换到所述目标虚拟磁盘文件中。

优选地,所述根据所述转换标识位图中对应的格式转换标识信息确定所述目标虚拟磁盘文件中待转换格式数据包括:根据所述格式转换标识信息计算出所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息。

例如,bitmap中的每一bit对应所述目标虚拟磁盘文件中的一个512字节的数据块,根据bit与数据块之间的对应关系,即可计算出所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息。

所述执行装置14对所述目标数据执行所述处理请求。

例如,若所述处理请求为读请求则将读取到的所述目标数据返回给虚拟机,若所述处理请求为写请求则对所述目标数据执行相应的写操作。

图4示出根据本申请另一个方面的一种转换虚拟磁盘文件格式的设备2,所述设备2包括获取装置21、转换装置22和执行装置23。

具体地,所述获取装置21获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;所述转换装置22将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应;所述执行装置23对所述目标数据执行所述处理请求。

在此,所述设备2包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备2还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备2仅为举例,其他现有的或今后可能出现的设备2如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

所述获取装置21获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求。

在此,所述处理请求包括虚拟机的读请求或写请求。例如,虚拟机在启动、数据磁盘加载等过程中会产生读、写请求,需要对所述目标虚拟磁盘文件中的目标数据进行读操作或写操作。

所述转换装置22将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应。

例如,假设所述目标数据在所述目标虚拟磁盘文件中的目的位置信息为[dstoffset,dstoffset+length],其中,offset表示所述目标数据在所述目标虚拟磁盘文件中的位置偏移量,length表示所述目标数据的长度;假设所述目标数据在所述源虚拟磁盘文件中对应数据的源位置信息为[srcoffset,srcoffset+length];所述源位置信息与所述目的位置信息相对应。

优选地,所述转换装置22从对应源虚拟磁盘文件中源位置信息读取数据,其中,所述源位置信息与所述目标数据在所述目标虚拟磁盘文件中的目的位置信息相对应;将所读取数据写入所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据。

例如,从对应源虚拟磁盘文件中的区域[srcoffset,srcoffset+length]读取数据,并回写到所述目标虚拟磁盘文件中的区域[dstoffset,dstoffset+length],那么位于所述目标虚拟磁盘文件中[dstoffset,dstoffset+length]位置的数据即为所述目标数据。

优选地,所述转换装置22根据所述目标数据在所述目标虚拟磁盘文件中的目的位置信息,确定所述目标数据在所述源虚拟磁盘文件中对应数据的源位置信息;将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据。

例如,可以通过公式srcoffset=convertfun<dstformat,srcformat>(dstoffset)进行计算,其中,convertfun函数负责根据所述目标数据在目标虚拟磁盘文件中的dstoffset,计算其在源虚拟磁盘文件中的srcoffset,这样就能定位所述目标数据在源虚拟磁盘文件中的位置。在此,不同的虚拟磁盘文件格式都有其独特的数据组织方式,该公式可以根据不同的虚拟磁盘文件格式的规范推导出来。

所述执行装置23对所述目标数据执行所述处理请求。

例如,若所述处理请求为读请求则将读取到的所述目标数据返回给虚拟机,若所述处理请求为写请求则对所述目标数据执行相应的写操作。

根据本申请的又一个方面,还提供了一种转换虚拟磁盘文件格式的设备,其中,所述设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

检测所述目标数据中是否存在待转换格式数据;

若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,其中,所述源位置信息与所述目的位置信息相对应;

对所述目标数据执行所述处理请求。

根据本申请的又一个方面,还提供了一种转换虚拟磁盘文件格式的设备,其中,所述设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求;

将对应源虚拟磁盘文件中源位置信息的数据写入所述目标数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述目标数据,其中,所述源位置信息与所述目的位置信息相对应;

对所述目标数据执行所述处理请求。

与现有技术相比,本申请获取虚拟机关于目标虚拟磁盘文件中目标数据的处理请求,然后,检测所述目标数据中是否存在待转换格式数据,若所述目标数据中存在待转换格式数据,将对应源虚拟磁盘文件中源位置信息的数据写入所述待转换格式数据在所述目标虚拟磁盘文件中的目的位置信息以作为所述待转换格式数据,从而实现在线、无缝、实时转换虚拟磁盘文件格式,再对所述目标数据执行所述处理请求,保证了用户可以不需要等待任何时间就可以使用虚拟机或者虚拟机的磁盘。进一步地,本申请通过遍历转换标识位图确定所述目标虚拟磁盘文件中待转换数据,自主将虚拟机没有访问过的数据从对应源虚拟磁盘文件中转换到所述目标虚拟磁盘文件,这样保证了在一定的时间内,虚拟磁盘文件格式转换工作可以完成,而且是在虚拟机运行的过程中实时进行,不影响虚拟机的运行状态。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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