数据处理方法和虚拟机管理平台的制作方法

文档序号:6384927阅读:179来源:国知局
专利名称:数据处理方法和虚拟机管理平台的制作方法
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据处理方法和虚拟机管理平台。
背景技术
虚拟化技术是云计算领域的关键技术之一,其主要原理是将一台物理机的物理资源虚拟化为多个可以独立运行操作系统的虚拟机,每个虚拟机都可以独立实现物理机的功能,互不干扰,虚拟机使用过程与物理机一致,可以认为虚拟机是物理机的一种抽象化形式。图1是现有虚拟化技术的结构示意图,如图1所示,硬件平台101上的各种物理资源(包括中央处理器102、内存103、硬盘104、网卡105)被虚拟机管理平台110抽象为多个虚拟机(Virtual Machine,VM)130,其中硬盘104可以位于本地或远端。虚拟资源的功能与真实物理资源的作用完全一致,用户在虚拟机中对虚拟资源的操作与物理机完全一致。在不同的虚拟机中可以安装独立的操作系统132,以及一个或多个应用程序131。虚拟机管理平台110负责将物理硬盘104抽象为各个独立的虚拟硬盘124,供不同的虚拟机130使用,所有虚拟机130表面上使用的是各个独立的虚拟硬盘124,实际上则是使用的一个或多个物理硬盘104中的不同空间。当某个虚拟机104访问其对应的虚拟硬盘124时,虚拟机管理平台110将对虚拟机硬盘124的请求映射为对物理硬盘104不同空间的请求,从而实现不同虚拟机130拥有各自独立的虚拟硬盘124,互不干扰。在虚拟化技术中由于多个虚拟机共享同一个物理硬盘,这就意味着在同一时间可能有一个或几个,甚至几十个虚拟机在访问各自的虚拟机硬盘,对应到物理硬盘上,则是在访问同一个物理硬盘。物理硬盘有多项技术指标,其中最重要的一项指标是(Input/OutputOperations Per Second, I OPS),即每秒进行读写(1/0)操作的次数,该值越大,表示硬盘响应请求的速度越快、延迟越小。在这项指标中,读操作相比于写操作,更影响虚拟机性能。在硬盘发展的当前阶段,其所能提供的IOPS数值是有限的。当物理硬盘被一个或几个虚拟机同时访问时,不会有太大的性能瓶颈,用户感受不到明显的延迟。但是,当物理硬盘被几十个用户在同时访问时,则会有明显的延迟产生,这极大影响了虚拟机性能。例如,当早上大量用户同时进行开机操作时,需要同时访问硬盘获取系统数据,这时就会发现开机速度有明显的降低,这种现象称为“启动风暴”;又如,当大量用户进行杀毒操作时,也会出现明显的延迟,可以称之为“杀毒风暴”。

发明内容
针对现有技术的上述缺陷,本发明实施例提供一种数据处理方法和虚拟机管理平台。第一方面,本发明一方面提供一种数据处理方法,包括扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识彳目息和存储彳目息的对应关系;当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。在第一种可能的实现方式中,所述获取各个虚拟硬盘之间数据块内容相同的各重复数据块组包括采用哈希算法对每个数据块的数据内容进行计算获取哈希值;比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括接收携带标识信息的数据块写入请求;根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。

结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块包括接收携带标识信息的数据块读取请求;根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。第二方面,本发明一方面提供一种虚拟机管理平台,包括获取模块,用于扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;处理模块,用于当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息;读取模块,用于在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。在第一种可能的实现方式中,所述获取模块具体用于采用哈希算法对每个数据块的数据内容进行计算获取哈希值;
比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括写入模块,用于接收携带标识信息的数据块写入请求;根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述读取模块具体用于接收携带标识信息的数据块读取请求;根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述读取模块还用于若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。本发明实施例提供的数据处理方法和虚拟机管理平台,通过扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据内容出现重复的重复数据块,并在重复数据记录表中存储所有重复数据块的标识信息和存储信息的对应关系,当任一重复数据块从物理硬盘中存储到内存中时,根据内存地址更新重复数据记录表中与重复数据块相关的所有标识信息对应的存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据存储信息从内存中读取数据块。实现了多台虚拟机在访问位于物理硬盘不同位置的相同数据内容时,减少了对物理硬盘的反复访问,提高了对虚拟机的读请求响应速度,并且延长了硬盘的使用寿命。


图1是现有虚拟化技术的结构示意图;图2为本发明实施例提供的一个数据处理方法的流程图;图3为针对图2的数据处理方法进行的数据读取的流程图;图4为本发明实施例提供的一个虚拟机管理平台的结构示意图;图5为本发明实施例提供的另一个虚拟机管理平台的结构示意图;图6为本发明实施例提供的虚拟机管理平台的硬件结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图2为本发明实施例提供的一个数据处理方法的流程图,如图2所示,该方法包括步骤100,扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;本发明所示的数据处理方法实施例中的执行主体可以由本领域技术人员根据具体部署的软硬件资源和用户需求进行选择,例如虚拟机管理平台、硬件平台上的处理器、位于物理机上的数据处理装置等,本发明对此不作限定。为了更清楚的描述具体的实施过程,下面所示实施例均以虚拟机管理平台为例进行具体说明,其余执行主体的具体执行过程参考虚拟机管理平台。当物理机启动后,虚拟机管理平台对物理硬盘上存储的、与各个虚拟硬盘对应的数据块进行扫描,根据所扫描的每个数据块的数据内容获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,其中,每个重复数据块组中包括至少两个数据内容相同的数据块。需要说明的是,通过一一比较每个数据块内容是否相同来获取各个虚拟硬盘之间数据块内容相同的各重复数据块组的方式效率较低,因此可以采用哈希算法对每个数据块的数据内容进行计算获取哈希值,然后比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。虚拟机管理平台根据各重复数据块组中的各数据块在虚拟硬盘中的位置,在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系,其中,标识信息用于标识数据块在虚拟硬盘中的存储位置,标识信息具体包括虚拟硬盘编号和虚拟硬盘数据块偏移号,按照预设的逻辑算法对虚拟硬盘编号和虚拟硬盘数据块偏移号进行运算可以获取数据块在物理硬盘中的存储位置,例如若一个数据块所在的虚拟硬盘编号为2,虚拟硬盘数据块偏移号为0005,将虚拟硬盘编号与虚拟硬盘数据块偏移号顺序组合即为该数据块所在的物理硬盘的存储位置为20005,该例子中的组合算法只是为了举例说明,具体的逻辑算法由技术人员根据实际应用需要进行调整。存储信息用于表示数据块是否从物理硬盘中存储到内存中以及在内存中的具体位置,存储信息可以有多种表现形式,举例说明若存储信息用内存地址进行表示,当内存地址为OxFFFFFFFF时,表示该数据块还没有从物理硬盘中存储到内存中,当内存地址不为OxFFFFFFFF时而是具体的内存地址比如0X11110000,表示该数据块已经从物理硬盘中存储到内存中,且内存地址为0X11110000。值得注意的是,虚拟机管理平台对物理硬盘进行初始化扫描获取各重复数据块组时,所有数据块都还没有存储到内存中即内存地址均为OxFFFFFFFF。需要说明的是,虚拟机管理平台对物理硬盘进行初始化扫描获取各重复数据块组时,所有数据块都还没有存储到内存中,此时,在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系的具体形式有很多,本领域技术人员可以根据具体的应用需要进行选择,具体说明如下方式一,重复数据记录表中按组进行存储,包括分组标识、各重复数据块组中各数据块的标识信息和存储信息的对应关系,其中,表I中的存储信息用内存地址进行表示,如表I所示,表I
权利要求
1.一种数据处理方法,其特征在于,包括 扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系; 当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取各个虚拟硬盘之间数据块内容相同的各重复数据块组包括 采用哈希算法对每个数据块的数据内容进行计算获取哈希值; 比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
3.根据权利要求1或2所述的数据处理方法,其特征在于,还包括 接收携带标识信息的数据块写入请求; 根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
4.根据权利要求1或2所述的数据处理方法,其特征在于,所述根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块包括 接收携带标识信息的数据块读取请求; 根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
5.根据权利要求4所述的数据处理方法,其特征在于,还包括 若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
6.一种虚拟机管理平台,其特征在于,包括 获取模块,用于扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系; 处理模块,用于当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息; 读取模块,用于在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
7.根据权利要求6所述的虚拟机管理平台,其特征在于,所述获取模块具体用于 采用哈希算法对每个数据块的数据内容进行计算获取哈希值; 比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
8.根据权利要求6或7所述的虚拟机管理平台,其特征在于,还包括写入模块,用于 接收携带标识信息的数据块写入请求; 根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
9.根据权利要求6或7所述的虚拟机管理平台,其特征在于,所述读取模块具体用于 接收携带标识信息的数据块读取请求; 根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
10.根据权利要求9所述的虚拟机管理平台,其特征在于,所述读取模块还用于 若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
全文摘要
本发明提供一种数据处理方法和虚拟机管理平台,通过扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据内容出现重复的重复数据块,并在重复数据记录表中存储所有重复数据块的标识信息和存储信息的对应关系,当任一重复数据块从物理硬盘中存储到内存中时,根据内存地址更新重复数据记录表中与重复数据块的所有标识信息对应的存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据存储信息从内存中读取数据块。实现了多台虚拟机在访问位于物理硬盘不同位置的相同数据内容时,减少了对物理硬盘的反复访问,提高了对虚拟机的读请求响应速度,并且延长了硬盘的使用寿命。
文档编号G06F12/08GK103064797SQ20121056067
公开日2013年4月24日 申请日期2012年12月21日 优先权日2012年12月21日
发明者任努努 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1