CN103064797B - 数据处理方法和虚拟机管理平台 - Google Patents

数据处理方法和虚拟机管理平台 Download PDF

Info

Publication number
CN103064797B
CN103064797B CN201210560675.2A CN201210560675A CN103064797B CN 103064797 B CN103064797 B CN 103064797B CN 201210560675 A CN201210560675 A CN 201210560675A CN 103064797 B CN103064797 B CN 103064797B
Authority
CN
China
Prior art keywords
data block
data
hard disk
identification information
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210560675.2A
Other languages
English (en)
Other versions
CN103064797A (zh
Inventor
任努努
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210560675.2A priority Critical patent/CN103064797B/zh
Publication of CN103064797A publication Critical patent/CN103064797A/zh
Priority to PCT/CN2013/079573 priority patent/WO2014094421A1/zh
Application granted granted Critical
Publication of CN103064797B publication Critical patent/CN103064797B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据处理方法和虚拟机管理平台,通过扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据内容出现重复的重复数据块,并在重复数据记录表中存储所有重复数据块的标识信息和存储信息的对应关系,当任一重复数据块从物理硬盘中存储到内存中时,根据内存地址更新重复数据记录表中与重复数据块的所有标识信息对应的存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据存储信息从内存中读取数据块。实现了多台虚拟机在访问位于物理硬盘不同位置的相同数据内容时,减少了对物理硬盘的反复访问,提高了对虚拟机的读请求响应速度,并且延长了硬盘的使用寿命。

Description

数据处理方法和虚拟机管理平台
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据处理方法和虚拟机管理平台。
背景技术
虚拟化技术是云计算领域的关键技术之一,其主要原理是将一台物理机的物理资源虚拟化为多个可以独立运行操作系统的虚拟机,每个虚拟机都可以独立实现物理机的功能,互不干扰,虚拟机使用过程与物理机一致,可以认为虚拟机是物理机的一种抽象化形式。
图1是现有虚拟化技术的结构示意图,如图1所示,硬件平台101上的各种物理资源(包括中央处理器102、内存103、硬盘104、网卡105)被虚拟机管理平台110抽象为多个虚拟机(VirtualMachine,VM)130,其中硬盘104可以位于本地或远端。虚拟资源的功能与真实物理资源的作用完全一致,用户在虚拟机中对虚拟资源的操作与物理机完全一致。在不同的虚拟机中可以安装独立的操作系统132,以及一个或多个应用程序131。虚拟机管理平台110负责将物理硬盘104抽象为各个独立的虚拟硬盘124,供不同的虚拟机130使用,所有虚拟机130表面上使用的是各个独立的虚拟硬盘124,实际上则是使用的一个或多个物理硬盘104中的不同空间。当某个虚拟机104访问其对应的虚拟硬盘124时,虚拟机管理平台110将对虚拟机硬盘124的请求映射为对物理硬盘104不同空间的请求,从而实现不同虚拟机130拥有各自独立的虚拟硬盘124,互不干扰。
在虚拟化技术中由于多个虚拟机共享同一个物理硬盘,这就意味着在同一时间可能有一个或几个,甚至几十个虚拟机在访问各自的虚拟机硬盘,对应到物理硬盘上,则是在访问同一个物理硬盘。物理硬盘有多项技术指标,其中最重要的一项指标是(Input/OutputOperationsPerSecond,IOPS),即每秒进行读写(I/O)操作的次数,该值越大,表示硬盘响应请求的速度越快、延迟越小。在这项指标中,读操作相比于写操作,更影响虚拟机性能。在硬盘发展的当前阶段,其所能提供的IOPS数值是有限的。当物理硬盘被一个或几个虚拟机同时访问时,不会有太大的性能瓶颈,用户感受不到明显的延迟。但是,当物理硬盘被几十个用户在同时访问时,则会有明显的延迟产生,这极大影响了虚拟机性能。例如,当早上大量用户同时进行开机操作时,需要同时访问硬盘获取系统数据,这时就会发现开机速度有明显的降低,这种现象称为“启动风暴”;又如,当大量用户进行杀毒操作时,也会出现明显的延迟,可以称之为“杀毒风暴”。
发明内容
针对现有技术的上述缺陷,本发明实施例提供一种数据处理方法和虚拟机管理平台。
第一方面,本发明一方面提供一种数据处理方法,包括:
扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;
当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
在第一种可能的实现方式中,所述获取各个虚拟硬盘之间数据块内容相同的各重复数据块组包括:
采用哈希算法对每个数据块的数据内容进行计算获取哈希值;
比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
接收携带标识信息的数据块写入请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块包括:
接收携带标识信息的数据块读取请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
第二方面,本发明一方面提供一种虚拟机管理平台,包括:
获取模块,用于扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;
处理模块,用于当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息;
读取模块,用于在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
在第一种可能的实现方式中,所述获取模块具体用于:
采用哈希算法对每个数据块的数据内容进行计算获取哈希值;
比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:写入模块,用于
接收携带标识信息的数据块写入请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述读取模块具体用于:
接收携带标识信息的数据块读取请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述读取模块还用于:
若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
本发明实施例提供的数据处理方法和虚拟机管理平台,通过扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据内容出现重复的重复数据块,并在重复数据记录表中存储所有重复数据块的标识信息和存储信息的对应关系,当任一重复数据块从物理硬盘中存储到内存中时,根据内存地址更新重复数据记录表中与重复数据块相关的所有标识信息对应的存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据存储信息从内存中读取数据块。实现了多台虚拟机在访问位于物理硬盘不同位置的相同数据内容时,减少了对物理硬盘的反复访问,提高了对虚拟机的读请求响应速度,并且延长了硬盘的使用寿命。
附图说明
图1是现有虚拟化技术的结构示意图;
图2为本发明实施例提供的一个数据处理方法的流程图;
图3为针对图2的数据处理方法进行的数据读取的流程图;
图4为本发明实施例提供的一个虚拟机管理平台的结构示意图;
图5为本发明实施例提供的另一个虚拟机管理平台的结构示意图;
图6为本发明实施例提供的虚拟机管理平台的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明实施例提供的一个数据处理方法的流程图,如图2所示,该方法包括:
步骤100,扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;
本发明所示的数据处理方法实施例中的执行主体可以由本领域技术人员根据具体部署的软硬件资源和用户需求进行选择,例如:虚拟机管理平台、硬件平台上的处理器、位于物理机上的数据处理装置等,本发明对此不作限定。为了更清楚的描述具体的实施过程,下面所示实施例均以虚拟机管理平台为例进行具体说明,其余执行主体的具体执行过程参考虚拟机管理平台。当物理机启动后,虚拟机管理平台对物理硬盘上存储的、与各个虚拟硬盘对应的数据块进行扫描,根据所扫描的每个数据块的数据内容获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,其中,每个重复数据块组中包括至少两个数据内容相同的数据块。需要说明的是,通过一一比较每个数据块内容是否相同来获取各个虚拟硬盘之间数据块内容相同的各重复数据块组的方式效率较低,因此可以采用哈希算法对每个数据块的数据内容进行计算获取哈希值,然后比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
虚拟机管理平台根据各重复数据块组中的各数据块在虚拟硬盘中的位置,在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系,其中,标识信息用于标识数据块在虚拟硬盘中的存储位置,标识信息具体包括虚拟硬盘编号和虚拟硬盘数据块偏移号,按照预设的逻辑算法对虚拟硬盘编号和虚拟硬盘数据块偏移号进行运算可以获取数据块在物理硬盘中的存储位置,例如:若一个数据块所在的虚拟硬盘编号为2,虚拟硬盘数据块偏移号为0005,将虚拟硬盘编号与虚拟硬盘数据块偏移号顺序组合即为该数据块所在的物理硬盘的存储位置为20005,该例子中的组合算法只是为了举例说明,具体的逻辑算法由技术人员根据实际应用需要进行调整。存储信息用于表示数据块是否从物理硬盘中存储到内存中以及在内存中的具体位置,存储信息可以有多种表现形式,举例说明:若存储信息用内存地址进行表示,当内存地址为0xFFFFFFFF时,表示该数据块还没有从物理硬盘中存储到内存中,当内存地址不为0xFFFFFFFF时而是具体的内存地址比如0X11110000,表示该数据块已经从物理硬盘中存储到内存中,且内存地址为0X11110000。值得注意的是,虚拟机管理平台对物理硬盘进行初始化扫描获取各重复数据块组时,所有数据块都还没有存储到内存中即内存地址均为0xFFFFFFFF。
需要说明的是,虚拟机管理平台对物理硬盘进行初始化扫描获取各重复数据块组时,所有数据块都还没有存储到内存中,此时,在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系的具体形式有很多,本领域技术人员可以根据具体的应用需要进行选择,具体说明如下:方式一,重复数据记录表中按组进行存储,包括分组标识、各重复数据块组中各数据块的标识信息和存储信息的对应关系,其中,表1中的存储信息用内存地址进行表示,如表1所示,
表1
分组标识 虚拟硬盘编号 虚拟硬盘数据块偏移号 内存地址
1 1 0000 0xFFFFFFFF
2 0005 0xFFFFFFFF
2 1 0003 0xFFFFFFFF
2 0001 0xFFFFFFFF
3 0025 0xFFFFFFFF
...... ...... ...... ......
N 1 0032 0xFFFFFFFF
5 0003 0xFFFFFFFF
方式二,重复数据记录表中按虚拟硬盘顺序进行存储,包括各重复数据块组中各数据块的标识信息、存储信息和数据块内容标识的对应关系,其中,数据块内容标识的表现形式很多,如与每个数据块内容对应的字符、哈希值等,其中,表2中的数据块内容标识用哈希值表示,以及存储信息用内存地址表示进行说明,如表2所示,
表2
虚拟硬盘编号 虚拟硬盘数据块偏移号 数据块哈希值 内存地址
1 0000 ABC123 0xFFFFFFFF
1 0003 DEF456 0xFFFFFFFF
1 0005 BCD789 0xFFFFFFFF
2 0001 DEF456 0xFFFFFFFF
2 0005 ABC123 0xFFFFFFFF
2 0012 CDE345 0xFFFFFFFF
...... ...... ...... ......
N 0010 BCD789 0xFFFFFFFF
N 0011 CDE345 0xFFFFFFFF
N 0025 DEF456 0xFFFFFFFF
步骤101,当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
当虚拟机管理平台获知各重复数据块组中任一数据块从物理硬盘中存储到内存中时,根据内存地址更新重复数据记录表中该数据块所在的重复数据块组中的所有存储信息。具体地,各重复数据块组中任一数据块从物理硬盘中存储到内存中的情况有很多,以两种具体应用场景举例说明:
第一种应用场景,虚拟机管理平台将每个重复数据块组中的数据块数量与预设的门限进行比较,若判断获知重复数据块组中的数据块数量大于等于预设的门限,则说明该重复数据块组的数据块的重复频率较高,会被大量虚拟机访问,因此预先将该重复数据块组中的任一数据块从物理硬盘中存储到内存中,根据内存地址更新重复数据记录表中该数据块所在的重复数据块组中的所有存储信息,以表1的存储形式为例具体说明:表1中分组标识为2的重复数据块组中的数据块的数量为3,虚拟机管理平台将该重复数据块组中的数据块的数量与预设的门限3比较后,将该重复数据块组中的任一个数据块从物理硬盘中存储到内存中,内存地址为0X00001111,然后根据存放的内存地址更新重复数据记录表中与该重复数据块组中的所有存储信息,即将重复数据记录表中该重复数据块组中的所有内存地址从0xFFFFFFFF修改为0X00001111,根据该方式对所有的重复数据块组中的数据块处理后建立的重复数据记录表如表3所示,
表3
分组标识 虚拟硬盘编号 虚拟硬盘数据块偏移号 内存地址
1 1 0000 0xFFFFFFFF
2 0005 0xFFFFFFFF
2 1 0003 0X00001111
2 0001 0X00001111
3 0025 0X00001111
...... ...... ...... ......
N 1 0032 0xFFFFFFFF
5 0003 0xFFFFFFFF
第二种应用场景,虚拟机管理平台接收到虚拟机发送的携带标识信息的数据块读取请求,根据该数据块的标识信息查询重复数据记录表,若重复数据记录表中存储有该数据块的标识信息,则确定该数据块为重复数据块组中的数据块,则根据标识信息将该数据块从物理硬盘中存储到内存中,并将数据块发送给对应的虚拟机,根据内存地址更新重复数据记录表中该数据块所在的重复数据块组中的所有存储信息。以表2的存储形式为例具体说明:虚拟机管理平台接收到虚拟机发送的标识信息为虚拟硬盘编号为1,虚拟硬盘数据块偏移号为0000的数据块读取请求,根据标识信息查询重复数据记录表确定该数据块属于重复数据块组中的数据块,因此,根据虚拟硬盘编号1和虚拟硬盘数据块偏移号0000从物理硬盘上读取该数据块并存储到内存地址为0X0000AAAA的位置上,再从内存的0X0000AAAA位置读取发送给对应的虚拟机,然后根据存放的内存地址更新重复数据记录表中与该数据块所在的重复数据块组中的所有存储信息,由于该数据块的哈希值为ABC123,则重复数据记录表中具有相同哈希值的数据块的标识信息为虚拟硬盘编号为2,虚拟硬盘数据块偏移号为0005,因此,这两个数据块为一个重复数据块组,从而根据内存地址0X0000AAAA将重复数据记录表中标识信息为虚拟硬盘编号为1,虚拟硬盘数据块偏移号为0000的数据块所对应的内存地址,以及标识信息为虚拟硬盘编号为2,虚拟硬盘数据块偏移号为0005的数据块所对应的内存地址从0xFFFFFFFF修改为0X0000AAAA。根据数据块读取请求逐渐对数据块处理后建立的重复数据记录表如表4所示,
表4
虚拟硬盘编号 虚拟硬盘数据块偏移号 数据块哈希值 内存地址
1 0000 ABC123 0X0000AAAA6 -->
1 0003 DEF456 0XBBBB0000
1 0005 BCD789 0xFFFFFFFF
2 0001 DEF456 0XBBBB0000
2 0005 ABC123 0X0000AAAA
2 0012 CDE345 0X11110000
...... ...... ...... ......
N 0010 BCD789 0xFFFFFFFF
N 0011 CDE345 0X11110000
N 0025 DEF456 0XBBBB0000
综上所述,当各重复数据块组中任一数据块从物理硬盘中存储到内存中时,根据内存地址更新重复数据记录表中该数据块所在的重复数据块组中的所有存储信息,存储信息直接标识了重复数据块组中的数据块在内存中的存储位置,(如表3或表4所示的重复数据记录表),从而当虚拟机需要读取数据块时,虚拟机管理平台根据所需读取数据块的标识信息查看重复数据记录表获取对应的存储信息,并根据存储信息直接从内存中读取所需数据块的数据内容返回给对应的虚拟机,不再需要从物理硬盘中读取所需数据块的数据内容。
本实施例提供的数据处理方法,通过扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据内容出现重复的重复数据块,并在重复数据记录表中存储所有重复数据块的标识信息和存储信息的对应关系,当任一重复数据块从物理硬盘中存储到内存中时,根据内存地址更新重复数据记录表中与重复数据块的所有标识信息对应的存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据存储信息从内存中读取数据块。实现了多台虚拟机在访问位于物理硬盘不同位置的相同数据内容时,减少了对物理硬盘的反复访问,提高了对虚拟机的读请求响应速度,并且延长了硬盘的使用寿命。
进一步地,当虚拟机管理平台接收虚拟机发送的携带标识信息的数据块写入请求时,根据标识信息查询重复数据记录表,若判断获知重复数据记录表中存储有与标识信息对应的存储信息,则根据标识信息将数据块写入物理硬盘中,并删除重复数据记录表中与该数据块对应的存储信息,该删除记录即为修改记录,说明该标识信息对应的数据块已经被新写入的数据块覆盖了,不再是原数据块的内容。
虚拟机管理平台根据预设的触发条件对重复数据记录表进行更新操作,其中,触发条件包括当物理硬盘的写数据块数量大于等于预设第一阈值时,或者,物理机处于空闲状态时(指物理机的CPU使用率及内存使用量在一段时间范围内小于等于预设的第二阈值时),或者,每次重复数据记录表上的存储信息被删除时。具体更新过程为:虚拟机管理平台获取上一次更新到此次更新时间范围之间所有新写入的数据块,然后计算每个数据块的哈希值,将新的哈希值与已有哈希值进行对比,若判断获知新的数据块归属于重复数据记录表中已有的重复数据块组时,则在该重复数据块组中添加新数据块的标识信息和存储信息的对应关系;若判断获知具有新的数据内容相同的重复数据块组,则在重复数据记录表中添加新的重复数据块组中各数据块的标识信息和存储信息的对应关系;若判断获知重复数据记录表中已有的重复数据块组中的数据块数量为一个,则在重复数据记录表中删除该数据块的标识信息和存储信息的对应关系。
基于上述实施例,为了更清楚的说明根据重复数据记录表读取数据过程,下面通过图3进行具体说明,图3为针对图2的数据处理方法进行的数据读取的流程图,如图3所示,该方法包括:
步骤200,接收携带标识信息的数据块读取请求,根据所述标识信息查询所述重复数据记录表;
虚拟机管理平台接收到虚拟机发送的携带标识信息的数据块读取请求,根据所需读取的数据块的标识信息查询重复数据记录表。
步骤201,判断重复数据记录表中是否存储有与所述标识信息对应的存储信息,若是,执行步骤203,否则,执行步骤202;
虚拟机管理平台判断重复数据记录表中是否存储有与所需读取的标识信息对应的存储信息,若判断获知重复数据记录表中存储有所需读取的标识信息对应的存储信息,则确定该数据块为重复数据块组中的数据块,执行步骤203;若判断获知重复数据记录表中没有存储所需读取的标识信息对应的存储信息,则确定该数据块不为重复数据块组中的数据块,执行步骤202。
步骤202,根据所述标识信息从物理硬盘中读取所述数据块。
虚拟机管理平台确定所需读取的数据块不为重复数据块组中的数据块时,根据标识信息中的虚拟硬盘编号和虚拟硬盘数据块偏移号获取该数据块的在物理硬盘上的存储位置,并根据该存储位置从物理硬盘中读取数据块并发送给对应的虚拟机。
步骤203,根据存储信息判断所述数据块是否存储在内存中,若是,执行步骤204,否则,执行步骤205;
虚拟机管理平台确定所需读取的数据块为重复数据块组中的数据块时,根据重复数据记录表中存储的与所需读取的数据块的标识信息对应的存储信息判断该数据块是否存储在内存中,若判断获知该数据块已经从物理硬盘中存储到内存中,执行步骤204,若判断获知该数据块没有从物理硬盘中存储到内存中,执行步骤205。
步骤204,根据所述存储信息从所述内存中读取所述数据块。
虚拟机管理平台根据存储信息获知该数据块在内存中存储的内存地址,并根据该内存地址直接从内存中读取数据块并发送给对应的虚拟机。
步骤205,根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,再从所述内存中读取所述数据块,并更新所述重复数据记录表中与所述数据块对应的存储信息。
虚拟机管理平台根据标识信息中的虚拟硬盘编号和虚拟硬盘数据块偏移号获取该数据块的在物理硬盘上的存储位置,并根据该存储位置从物理硬盘中读取数据块到内存中,并将数据块发送给对应的虚拟机,然后根据该数据块所存储的内存地址更新重复数据记录表中与该数据块的标识信息对应的存储信息。
因此,与现有技术相比,当虚拟机读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据存储信息从内存中直接读取数据块,不再从物理硬盘中读取,从而实现了多台虚拟机在访问位于物理硬盘不同位置的相同数据内容时,减少了对物理硬盘的反复访问,提高了对虚拟机的读请求响应速度,并且延长了硬盘的使用寿命。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明实施例提供的一个虚拟机管理平台的结构示意图,如图4所示,该虚拟机管理平台包括:获取模块11、处理模块12和读取模块13,其中,获取模块11用于扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;处理模块12用于当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息;读取模块13用于在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
其中,获取模块11具体用于:采用哈希算法对每个数据块的数据内容进行计算获取哈希值,比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
本实施例提供的虚拟机管理平台中各模块的功能和处理流程,可以参见上述所示的方法实施例,其实现原理和技术效果类似,此处不再赘述。
图5为本发明实施例提供的另一个虚拟机管理平台的结构示意图,如图5所示,基于图4所示实施例,该虚拟机管理平台还包括:写入模块14,用于接收携带标识信息的数据块写入请求,根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
进一步地,处理模块12还用于:根据预设的触发条件对重复数据记录表进行更新操作,其中,触发条件包括当物理硬盘的写数据块数量大于等于预设第一阈值时,或者,物理机处于空闲状态时(指物理机的CPU使用率及内存使用量在一段时间范围内小于等于预设的第二阈值时),或者,每次重复数据记录表上的存储信息被删除时。具体更新过程为:虚拟机管理平台获取上一次更新到此次更新时间范围之间所有新写入的数据块,然后计算每个数据块的哈希值,将新的哈希值与已有哈希值进行对比,若判断获知新的数据块归属于重复数据记录表中已有的重复数据块组时,则在该重复数据块组中添加新数据块的标识信息和存储信息的对应关系;若判断获知具有新的数据内容相同的重复数据块组,则在重复数据记录表中添加新的重复数据块组中各数据块的标识信息和存储信息的对应关系;若判断获知重复数据记录表中已有的重复数据块组中的数据块数量为一个,则在重复数据记录表中删除该数据块的标识信息和存储信息的对应关系。
基于上述实施例,读取模块13具体用于:接收携带标识信息的数据块读取请求,根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
进一步地,读取模块13还用于:若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
本实施例提供的虚拟机管理平台中各模块的功能和处理流程,可以参见上述所示的方法实施例,其实现原理和技术效果类似,此处不再赘述。
图6为本发明实施例提供的虚拟机管理平台的硬件结构示意图,如图6所示,所述虚拟机管理平台300包括:处理器301、存储器302、通信接口303和总线304。其中,所述处理器301、存储器302和通信接口303之间通过总线304连接。总线304可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器302用于存放程序代码,所述程序代码中包括计算机操作指令。存储器302可以是高速随机存储器,也可以是非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器301执行所述程序代码,用于:
扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;
当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
所述处理器301获取各个虚拟硬盘之间数据块内容相同的各重复数据块组的过程具体包括:
采用哈希算法对每个数据块的数据内容进行计算获取哈希值;
比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
进一步地,所述处理器301还用于:
接收携带标识信息的数据块写入请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
所述处理器301根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块的过程具体包括:
接收携带标识信息的数据块读取请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
所述处理器301根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块的过程还包括:
若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
本实施例提供的虚拟机管理平台中处理器执行存储器中的程序代码的处理流程,可以参见上述所示的方法实施例,其实现原理和技术效果类似,此处不再赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
当物理机启动后,扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;
其中,所述标识信息用于标识数据块在虚拟硬盘中的存储位置;所述存储信息用于表示数据块是否从物理硬盘中存储到内存中以及在内存中的具体位置;
当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息,以便在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取各个虚拟硬盘之间数据块内容相同的各重复数据块组包括:
采用哈希算法对每个数据块的数据内容进行计算获取哈希值;
比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
3.根据权利要求1或2所述的数据处理方法,其特征在于,还包括:
接收携带标识信息的数据块写入请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
4.根据权利要求1或2所述的数据处理方法,其特征在于,所述根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块包括:
接收携带标识信息的数据块读取请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
5.根据权利要求4所述的数据处理方法,其特征在于,还包括:
若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
6.一种虚拟机管理平台,其特征在于,包括:
获取模块,用于当物理机启动后,扫描物理硬盘上存储的、与各个虚拟硬盘对应的数据块,获取各个虚拟硬盘之间数据块内容相同的各重复数据块组,并在重复数据记录表中存储各重复数据块组中各数据块的标识信息和存储信息的对应关系;
其中,所述标识信息用于标识数据块在虚拟硬盘中的存储位置;所述存储信息用于表示数据块是否从物理硬盘中存储到内存中以及在内存中的具体位置;
处理模块,用于当各重复数据块组中任一数据块从所述物理硬盘中存储到内存中时,根据内存地址更新所述重复数据记录表中所述数据块所在的重复数据块组中的所有存储信息;
读取模块,用于在读取数据块时,根据所需读取数据块的标识信息获取对应的存储信息,并根据所述存储信息从所述内存中读取所述数据块。
7.根据权利要求6所述的虚拟机管理平台,其特征在于,所述获取模块具体用于:
采用哈希算法对每个数据块的数据内容进行计算获取哈希值;
比较每个数据块的哈希值,获取各个虚拟硬盘之间哈希值相同的各重复数据块组。
8.根据权利要求6或7所述的虚拟机管理平台,其特征在于,还包括:写入模块,用于
接收携带标识信息的数据块写入请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,则根据所述标识信息将所述数据块写入所述物理硬盘中,并删除所述重复数据记录表中与所述数据块对应的存储信息。
9.根据权利要求6或7所述的虚拟机管理平台,其特征在于,所述读取模块具体用于:
接收携带标识信息的数据块读取请求;
根据所述标识信息查询所述重复数据记录表,若判断获知所述重复数据记录表中存储有与所述标识信息对应的存储信息,且所述存储信息标识所述数据块存储在所述内存中,则根据所述存储信息从所述内存中读取所述数据块。
10.根据权利要求9所述的虚拟机管理平台,其特征在于,所述读取模块还用于:
若所述存储信息标识所述数据块存储在所述物理硬盘中,则根据所述标识信息从所述物理硬盘存储中读取所述数据块,并将所述数据块存储到所述内存中,并更新所述重复数据记录表中与所述数据块对应的存储信息。
CN201210560675.2A 2012-12-21 2012-12-21 数据处理方法和虚拟机管理平台 Active CN103064797B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210560675.2A CN103064797B (zh) 2012-12-21 2012-12-21 数据处理方法和虚拟机管理平台
PCT/CN2013/079573 WO2014094421A1 (zh) 2012-12-21 2013-07-18 数据处理方法和虚拟机管理平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210560675.2A CN103064797B (zh) 2012-12-21 2012-12-21 数据处理方法和虚拟机管理平台

Publications (2)

Publication Number Publication Date
CN103064797A CN103064797A (zh) 2013-04-24
CN103064797B true CN103064797B (zh) 2016-06-29

Family

ID=48107428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210560675.2A Active CN103064797B (zh) 2012-12-21 2012-12-21 数据处理方法和虚拟机管理平台

Country Status (2)

Country Link
CN (1) CN103064797B (zh)
WO (1) WO2014094421A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064797B (zh) * 2012-12-21 2016-06-29 华为技术有限公司 数据处理方法和虚拟机管理平台
CN103593147B (zh) * 2013-11-07 2016-08-17 华为技术有限公司 一种数据读取的方法及装置
CN104185060B (zh) * 2014-02-26 2017-07-07 无锡天脉聚源传媒科技有限公司 一种视频排重的方法及装置
CN106030539A (zh) * 2014-02-27 2016-10-12 三菱电机株式会社 软件搭载设备和软件更新方法
CN104951244B (zh) * 2014-03-31 2018-04-27 伊姆西公司 用于存取数据的方法和设备
CN104765571A (zh) * 2015-03-17 2015-07-08 深信服网络科技(深圳)有限公司 虚拟数据写入、读取的方法及系统
CN105929851B (zh) * 2016-04-07 2019-08-09 广州盈可视电子科技有限公司 一种采用摇杆设备控制云台方法和装置
CN110199512B (zh) 2017-12-26 2020-12-22 华为技术有限公司 存储系统中存储设备的管理方法及装置
CN112181301A (zh) * 2020-09-27 2021-01-05 北京金山云网络技术有限公司 云硬盘的数据导出方法、装置以及服务端设备
CN112433675B (zh) * 2020-11-23 2024-03-08 山东可信云信息技术研究院 一种针对超融合架构的存储空间优化方法及系统
CN112530474B (zh) * 2020-12-29 2024-02-23 北京中科开迪软件有限公司 一种智能硬盘存放柜
CN114138198B (zh) * 2021-11-29 2024-05-28 苏州浪潮智能科技有限公司 一种数据重删的方法、装置、设备及可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697134A (zh) * 2009-10-27 2010-04-21 北京大学 一种支持相似虚拟机快速启动的方法
US7797507B2 (en) * 2006-07-26 2010-09-14 Nec Corporation Virtual machine system and operating method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606868B1 (en) * 2006-03-30 2009-10-20 Wmware, Inc. Universal file access architecture for a heterogeneous computing environment
CN102467408B (zh) * 2010-11-12 2014-03-19 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN102722450B (zh) * 2012-05-25 2015-01-14 清华大学 一种基于位置敏感哈希的删冗块设备存储方法
CN103064797B (zh) * 2012-12-21 2016-06-29 华为技术有限公司 数据处理方法和虚拟机管理平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797507B2 (en) * 2006-07-26 2010-09-14 Nec Corporation Virtual machine system and operating method thereof
CN101697134A (zh) * 2009-10-27 2010-04-21 北京大学 一种支持相似虚拟机快速启动的方法

Also Published As

Publication number Publication date
WO2014094421A1 (zh) 2014-06-26
CN103064797A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN103064797B (zh) 数据处理方法和虚拟机管理平台
CN103019962B (zh) 数据缓存处理方法、装置以及系统
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
US8452819B1 (en) Methods and apparatus for optimizing resource utilization in distributed storage systems
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
US11675709B2 (en) Reading sequential data from memory using a pivot table
CN101997911A (zh) 一种数据迁移的方法及系统
JP2008198049A (ja) ストレージシステム
CN105787037B (zh) 一种重复数据的删除方法及装置
CN111630501A (zh) 访问非易失性存储器装置的用户当中的性能分配
CN106527973A (zh) 一种数据重复删除的方法及装置
CN104077239A (zh) Ip硬盘与存储系统,及其数据操作方法
CN110162396A (zh) 内存回收方法、装置、系统和存储介质
US10713162B1 (en) System and method for computer data garbage collection acceleration using peer to peer data transfers
CN103488523A (zh) 一种页的访问方法和页的访问装置、服务器
CN106021566A (zh) 一种提高单台数据库并发处理能力的方法、装置及系统
US8549223B1 (en) Systems and methods for reclaiming storage space on striped volumes
WO2020192710A1 (zh) 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
CN109086462A (zh) 一种分布式文件系统中元数据的管理方法
CN108073352A (zh) 虚拟磁盘处理方法及装置
CN106528703A (zh) 一种重复删除的模式切换方法及装置
CN104408126B (zh) 一种数据库的持久化写入方法、装置和系统
EP3264254B1 (en) System and method for a simulation of a block storage system on an object storage system
CN107832097A (zh) 数据加载方法及装置
CN108121504A (zh) 数据删除方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant