CN107678981A - 数据处理方法及装置 - Google Patents

数据处理方法及装置 Download PDF

Info

Publication number
CN107678981A
CN107678981A CN201710736433.7A CN201710736433A CN107678981A CN 107678981 A CN107678981 A CN 107678981A CN 201710736433 A CN201710736433 A CN 201710736433A CN 107678981 A CN107678981 A CN 107678981A
Authority
CN
China
Prior art keywords
data
storage medium
storage
address
mapping relations
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.)
Pending
Application number
CN201710736433.7A
Other languages
English (en)
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.)
Beijing Great Earth Data Technology Co Ltd
Original Assignee
Beijing Great Earth Data Technology 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 Beijing Great Earth Data Technology Co Ltd filed Critical Beijing Great Earth Data Technology Co Ltd
Priority to CN201710736433.7A priority Critical patent/CN107678981A/zh
Publication of CN107678981A publication Critical patent/CN107678981A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (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

数据处理方法及装置
技术领域
本发明涉及混合存储领域,具体而言,涉及一种数据处理方法及装置。
背景技术
对于光盘这一类存储介质,具有能够与读写驱动机构分离,不读写时不耗电,成本低,占用空间小,使用寿命长等特点。然而这类存储介质也存在一次写入多次读取(WriteOnce Read Many,简称为WORM)的特点,即数据在一次写入后往往不可修改,或者具有修改成本较高、修改效果差的特点,因此,并不能实现对存储的数据进行简便有效的更新操作。
另外,对于光盘这一类存储介质在与其它存储介质进行混合存储时,也不能提供相应的适配能力,例如,无法提供性能较佳的数据访问接口。
因此,在相关技术中,对于具有某一类型特点(例如,光盘)的存储介质,存在不易修改的缺陷,而且,在与其它存储介质进行混合存储的场景下,也不能实现对其与其它存储介质的高效适配融合。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法及装置,以至少解决相关技术中,对于具有某一类型特点(例如,光盘)的存储介质,存在不易修改的缺陷,而且,在与其它存储介质进行混合存储的场景下,也不能实现对其与其它存储介质的高效适配融合的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,应用于虚拟块设备的数据存储,包括:将数据存储于第一存储介质,并建立第一映射关系,其中,所述第一映射关系为数据存储于所述第一存储介质的物理存储地址与所述数据在提供块接口的虚拟块设备中的逻辑存储地址之间的映射关系;在存储于所述第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将所述第一映射关系更新为第二映射关系,其中,所述第二映射关系为所述新的物理存储地址与所述逻辑存储地址之间的映射关系,所述第二存储介质为与所述第一存储介质不同类型的存储介质。
可选地,将数据存储于第一存储介质,并建立所述第一映射关系包括:将所述数据写入所述第二存储介质,并建立第三映射关系,其中,所述第三映射关系为所述数据存储于所述第二存储介质的物理存储地址与所述逻辑存储地址之间的映射关系;判断所述第二存储介质中的数据是否满足预定条件;在判断结果为是的情况下,将所述第二存储介质中的部分或全部数据迁移到所述第一存储介质,并将所述第三映射关系更新为所述第一映射关系。
可选地,将所述数据写入所述第二存储介质包括:采用追加写的数据写入方式,将所述数据写入所述第二存储介质,其中,所述追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入;或者,采用空间临近的数据写入方式,将所述数据写入所述第二存储介质,其中,所述空间临近的数据写入方式为数据在第一存储介质或者第二存储介质的物理存储地址与数据在虚拟块设备的逻辑存储地址的顺序相对应。
可选地,将所述第二存储介质中的部分或全部数据迁移到所述第一存储介质包括:采用所述追加写的数据写入方式,或者,采用所述空间临近的数据写入方式,将所述第二存储介质中的部分或全部数据写入到所述第一存储介质。
可选地,所述预定条件包括以下至少之一:在所述第二存储介质存储数据的数据量达到数据量阈值;在所述第二存储介质中的待刻录数据的数据量达到刻录阈值;所述第二存储介质中数据的占盘比达到占盘比阈值,其中,所述占盘比为数据在所述第二存储介质进行存储时所占用的存储空间与所述第二存储介质的整体空间的比值;数据在所述第二存储介质中的存储时间达到时间阈值;所述第二存储介质中的数据的访问频率低于访问频率阈值。
可选地,将修改后的数据存储于所述第一存储介质的所述新的物理存储地址包括:将在所述第一存储介质中要修改的数据读取到所述第二存储介质;在所述第二存储介质对数据进行修改后,将修改后的数据从所述第二存储介质存储到所述第一存储介质的所述新的物理存储地址;或者,将修改后的数据存储于所述第二存储介质的所述新的物理存储地址包括:采用追加写的数据写入方式,将修改后的数据写入所述第二存储介质的所述新的物理存储地址,其中,所述追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入。
可选地,在将所述数据存储于所述第一存储介质,或者,将修改后的数据存储于所述第一存储介质或所述第二存储介质的所述新的物理存储地址之后,还包括:接收对所述虚拟块设备中目标数据进行读取的读取请求;根据所述目标数据在所述虚拟块设备中的逻辑存储地址,和所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址;根据确定的所述物理存储地址读取所述目标数据。
可选地,根据所述目标数据在所述虚拟块设备中的逻辑存储地址,和所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址包括:根据系统内存,所述第一存储介质和所述第二存储介质中至少之一中存储的所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址。
可选地,根据确定的所述物理存储地址读取所述目标数据包括:根据确定的所述物理存储地址将所述目标数据划分为多段数据;分别判断所述多段数据中的每一段位于所述第一存储介质还是第二存储介质;在判断结果为该段数据位于第一存储介质的情况下,从所述第一存储介质中读取该段数据,在判断结果为位于第二存储介质的情况下,从所述第二存储介质中读取该段数据;将读取的多段数据进行拼接获得所述目标数据。
可选地,在所述第一存储介质和所述第二存储介质中,采用单位存储空间对数据进行存储,其中,所述单位存储空间的大小依据存储的数据的大小确定,或者,所述单位存储空间的大小固定。
可选地,在所述单位存储空间为文件的情况下,在所述第一存储介质和所述第二存储介质中,采用文件对数据进行存储包括:采用数据文件存储所述数据;采用元数据文件存储所述数据的属性信息,其中,所述数据的属性信息包括以下至少之一:数据在虚拟块设备中的逻辑存储地址,数据长度,数据的物理存储地址,存储数据的数据文件的文件标识,数据存储在所述数据文件中的起始地址。
可选地,所述第一存储介质为以下至少之一:光盘,磁带;所述第二存储介质为以下至少之一:机械硬盘、内存、固态硬盘、非易失性随机访问存储器。
根据本发明的另一方面,提供了一种数据处理装置,应用于虚拟块设备的数据存储,包括:第一存储模块,用于将数据存储于第一存储介质,并建立第一映射关系,其中,所述第一映射关系为数据存储于所述第一存储介质的物理存储地址与所述数据在提供块接口的虚拟块设备的逻辑存储地址之间的映射关系;第二存储模块,用于在存储于所述第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将所述第一映射关系更新为第二映射关系,其中,所述第二映射关系为所述新的物理存储地址与所述逻辑存储地址之间的映射关系,所述第二存储介质为与所述第一存储介质不同类型的存储介质。
可选地,所述第一存储模块包括:第一写入单元,用于将所述数据写入所述第二存储介质,并建立第三映射关系,其中,所述第三映射关系为所述数据存储于所述第二存储介质的物理存储地址与所述逻辑存储地址之间的映射关系;第一判断单元,用于判断所述第二存储介质中的数据是否满足预定条件;第一迁移单元,用于在所述第一判断单元的判断结果为是的情况下,将所述第二存储介质中的部分或全部数据迁移到所述第一存储介质,并将所述第三映射关系更新为所述第一映射关系。
可选地,所述第一写入单元,还用于:采用追加写的数据写入方式,将所述数据写入所述第二存储介质,其中,所述追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入;或者,采用空间临近的数据写入方式,将所述数据写入所述第二存储介质,其中,所述空间临近的数据写入方式为数据在第一存储介质或者第二存储介质的物理存储地址与数据在虚拟块设备的逻辑存储地址的顺序相对应。
可选地,所述第一迁移单元,还用于采用所述追加写的数据写入方式,或者,采用所述空间临近的数据写入方式,将所述第二存储介质中的部分或全部数据写入到所述第一存储介质。
可选地,所述预定条件包括以下至少之一:在所述第二存储介质存储数据的数据量达到数据量阈值;在所述第二存储介质中的待刻录数据的数据量达到刻录阈值;所述第二存储介质中数据的占盘比达到占盘比阈值,其中,所述占盘比为数据在所述第二存储介质进行存储时所占用的存储空间与所述第二存储介质的整体空间的比值;数据在所述第二存储介质中的存储时间达到时间阈值;所述第二存储介质中的数据的访问频率低于访问频率阈值。
可选地,所述第二存储模块,还用于将在所述第一存储介质中要修改的数据读取到所述第二存储介质;在所述第二存储介质对数据进行修改后,将修改后的数据从所述第二存储介质存储到所述第一存储介质的所述新的物理存储地址;或者,所述第二存储模块,还用于采用追加写的数据写入方式,将修改后的数据写入所述第二存储介质的所述新的物理存储地址,其中,所述追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入。
可选地,该装置还包括:第一接收模块,用于接收对所述虚拟块设备中目标数据进行读取的读取请求;第一确定模块,用于根据所述目标数据在所述虚拟块设备中的逻辑存储地址,和所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址;第一读取模块,用于根据确定的所述物理存储地址读取所述目标数据。
可选地,所述第一确定模块,还用于根据系统内存,所述第一存储介质和所述第二存储介质中至少之一中存储的所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址。
可选地,所述第一读取模块包括:第二判断单元,用于根据确定的所述物理存储地址将所述目标数据划分为多段数据;分别判断所述多段数据中的每一段位于所述第一存储介质还是第二存储介质;第一读取单元,用于在所述第二判断单元的判断结果为该段数据位于第一存储介质的情况下,从所述第一存储介质中读取该段数据,在所述第二判断单元的判断结果为位于第二存储介质的情况下,从所述第二存储介质中读取该段数据;拼接单元,用于将读取的多段数据进行拼接获得所述目标数据。
可选地,所述第一存储模块,或者所述第二存储模块,还用于在所述第一存储介质和所述第二存储介质中,采用单位存储空间对数据进行存储,其中,所述单位存储空间的大小依据存储的数据的大小确定,或者,所述单位存储空间的大小固定。
可选地,所述第一存储模块,或者所述第二存储模块,还用于:采用数据文件存储所述数据;采用元数据文件存储所述数据的属性信息,其中,所述数据的属性信息包括以下至少之一:数据在虚拟块设备中的逻辑存储地址,数据长度,数据的物理存储地址,存储数据的数据文件的文件标识,数据存储在所述数据文件中的起始地址。
可选地,所述第一存储介质为以下至少之一:光盘,磁带;所述第二存储介质为以下至少之一:机械硬盘、内存、固态硬盘、非易失性随机访问存储器。
根据本发明的还一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时控制所述存储介质所在设备执行以下操作:将数据存储于第一存储介质,并建立第一映射关系,其中,所述第一映射关系为数据存储于所述第一存储介质的物理存储地址与所述数据在提供块接口的虚拟块设备的逻辑存储地址之间的映射关系;在存储于所述第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将所述第一映射关系更新为第二映射关系,其中,所述第二映射关系为所述新的物理存储地址与所述逻辑存储地址之间的映射关系,所述第二存储介质为与所述第一存储介质不同类型的存储介质。
根据本发明的还一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以下操作:将数据存储于第一存储介质,并建立第一映射关系,其中,所述第一映射关系为数据存储于所述第一存储介质的物理存储地址与所述数据在提供块接口的虚拟块设备的逻辑存储地址之间的映射关系;在存储于所述第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将所述第一映射关系更新为第二映射关系,其中,所述第二映射关系为所述新的物理存储地址与所述逻辑存储地址之间的映射关系,所述第二存储介质为与所述第一存储介质不同类型的存储介质。
在本发明实施例中,采用在存储数据后,维护存储的数据的物理存储地址与在虚拟块设备中的逻辑存储地址之间的映射关系,并在存储的数据发生修改的情况下,将数据存储于新的物理存储地址,并更新对应的映射关系,采用一种新的数据组织方法对数据进行组织,实现对虚拟块设备架构的构建,而且有效解决了相关技术中,对于具有某一类型特点(例如,光盘)的存储介质,存在不易修改的缺陷,而且,在与其它存储介质进行混合存储的场景下,也不能实现对其与其它存储介质的高效适配融合的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据处理方法的流程图;
图2是根据本发明实施例提供的数据组织方法的架构示意图;
图3是根据本发明实施例提供的数据读流程的优选示意图;
图4是根据本发明实施例提供的数据写流程的优选示意图;
图5是根据本发明实施例提供的数据处理装置的结构框图;
图6是根据本发明实施例提供的数据处理装置中第一存储模块52的优选结构框图;
图7是根据本发明实施例提供的数据处理装置的优选结构框图;
图8是根据本发明实施例提供的数据处理装置中第一读取模块76的优选结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种数据处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的数据处理方法的流程图,如图1所示,该方法所实现的实施例至少可以包括如下步骤:
步骤S102,将数据存储于第一存储介质,并建立第一映射关系,其中,第一映射关系为数据存储于第一存储介质的物理存储地址与数据在提供块接口的虚拟块设备中的逻辑存储地址之间的映射关系;
步骤S104,在存储于第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将第一映射关系更新为第二映射关系,其中,第二映射关系为新的物理存储地址与逻辑存储地址之间的映射关系,第二存储介质为与第一存储介质不同类型的存储介质。
通过上述步骤S102至步骤S104所限定的技术方案可知,本发明实施例通过将数据存储于第一存储介质,并建立第一映射关系,其中,第一映射关系为数据存储于第一存储介质的物理存储地址与数据在提供块接口的虚拟块设备中的逻辑存储地址之间的映射关系,实现了一种新的数据组织方法,即实现了对虚拟块设备架构的构建,从而能够支持数据基于块接口的访问。并且,在存储于第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将第一映射关系更新为第二映射关系,其中,第二映射关系为新的物理存储地址与逻辑存储地址之间的映射关系,第二存储介质为与第一存储介质不同类型的存储介质。通过上述处理,在存储的数据发生修改的情况下,并不需要在原物理存储地址上对原存储的数据进行擦写以实现修改,而只需要将修改后的数据存储于一个新的物理存储地址,并更新对应的映射关系,有效解决了相关技术中,对于具有某一类型特点(例如,光盘)的存储介质,存在不易修改的缺陷,而且,在与其它存储介质进行混合存储的场景下,也不能实现对其与其它存储介质的高效适配融合的技术问题。从而在实现了多种存储介质存储数据的优点的同时,达到了数据混合存储时能够高效适配融合的效果。
为了便于对本发明各个实施例的理解,在对本发明实施例进行具体说明之前,对本发明实施例所涉及的一些术语进行解释。例如,为了更好地对虚拟块设备进行理解,下面先对块设备和块接口进行说明。
块设备:是一种具有一定结构的随机存取设备,属于输入输出i/o端口设备中的一类,块设备的读写是按块进行的,参与读写的每个块都设置有对应的地址。在块设备的读写过程中,可以使用缓冲区来暂时存放数据,在满足一定的读写条件的情况下,可以将数据从缓冲区一次性写入块设备或者从块设备中一次性读取数据到缓冲区。需要说明的是,与字符设备(输入输出传输过程中,以字符为单位进行传输的设备,例如,键盘,打印机等)相比,块设备以固定大小的块为单位对数据进行存储和访问,字符设备以字符为单位进行访问,比较只能按照顺序进行访问的字符设备,块设备具有支持随机访问,且每个块都能独立于其它块进行读写的优点。
块接口:块接口是块设备所包含的接口的简称,用于对访问块设备的接口进行定义。在对块设备进行访问和/或存取数据时,需要通过块设备接口来执行访问和/或存取的功能。
此处需要说明的是,块设备可以是一种硬件设备,例如,磁盘、U盘等等,其中,在块设备为磁盘的场景中,应用程序或者操作系统可以通过块接口与块设备进行通信以及存取数据。为了实现更多的功能和/或升级各项功能,可以在基本的块设备上进行抽象和封装,将一个或多个块设备重新进行组合拆分,形成软件层面的块设备,重新组合拆分后的块设备对上层仍然提供同样的块操作接口。
由此可知,块设备既可以是硬件层面的块设备也可以是软件层面的块设备,本质上是一种支持以块为粒度,可以进行随机访问的线性编址的存储空间。而本发明实施例上述所涉及的虚拟块设备可以是一种软件层面的块设备。
另外,多种存储介质进行混合存储的方式越来越多,例如,由光盘、磁盘、闪存或固态硬盘等至少两种特性不同的存储介质构成的混合存储系统。除光介质(如光盘、蓝光光盘)之外,混合存储系统通常还包括磁存储或电存储等其他存储介质。通过充分融合和发挥多种介质的特点和优势,例如,光盘存储成本低、耗电少、寿命长,磁盘、闪存或固态硬盘(Solid State Drives,简称为SSD)的读取速度快、方便擦写等,混合存储系统可以在系统功耗、存储性能、数据可靠性等多方面实现优化平衡。
在相关技术中经常遇到这样的情况,由于存储介质的存储特性(例如,光介质的存储特性),混合存储系统通常对外提供文件系统接口,所存入的数据在一段时间之后也常常切换到不可修改状态。然而,在某些应用场景下,又需要混合存储系统对外提供块接口。
而文件系统接口和块接口的区别在于:文件系统接口是用户与文件系统之间进行交互的接口,如上,块接口是用户与块设备之间交互的接口。文件系统种类很多,接口也不完全相同,但是目前较常见的大量使用的文件系统接口是可移植性操作系统接口(Portable Operating System Interface of UNIX,简称为POSIX),定义了几十个操作函数,用于对文件系统中的文件和目录进行访问。上述所提到的混合存储系统对外提供的文件系统接口即是这个接口。块接口是对一个块设备进行访问的接口,里面没有文件或者目录的概念,只有对块设备的某个地址空间进行数据读写这种访问请求。因此,文件系统接口和块设备接口是针对不同类型的应用进行服务的,例如,如果需要标准的目录树结构和文件操作流程,就用文件系统接口对文件系统中的数据进行访问,而如果需要直接读写块数据,就用块接口对块设备中的数据进行访问。
因此,基于上述混合存储系统对外提供块设备接口的需求,在本发明所提供的实施例中,提供了基于逻辑抽象的虚拟块设备,存储在该虚拟块设备上的数据实际是存储在至少一个实际存在的存储介质(例如,可以是存储少量数据的磁盘和存储大量数据的光盘)上。
在本发明所实现的实施例中,上述虚拟块设备可以是一种在第一存储介质和第二存储介质构成的混合存储系统中部署的一层虚拟层,该虚拟层可以为上层应用提供块访问接口,并将不同的存储介质中用于存储数据的物理存储地址映射至虚拟块设备提供的逻辑存储地址,从而实现了对数据的虚拟存储,进而实现了对存储介质中的数据进行数据组织的功能。
此处需要说明的是,针对上述虚拟块设备的读写功能,可以通过设置对虚拟块设备的读流程和写入流程来确定,即可以通过设置数据访问流程,来确定如何对上述虚拟块设备中的数据进行读写,这种针对该虚拟块设备的数据组织方法,可以实现对上层应用提供标准的块访问接口,即为基于块接口的数据访问请求提供通信接口,使得部署了虚拟层的设备的数据访问速度得到显著提高。
下面就针对上述步骤S102至步骤S104所限定的技术方案,对各个步骤进行进一步的详细说明如下:
在上述步骤S102中,将数据存储于第一存储介质时,可以采用多种方式,例如,可以采用直接存储的方式,也可以采用先存储于其它存储介质,而后由其它存储介质迁移的间接存储方式。基于上述混合存储的优势,例如,在其它存储介质具有易修改,存储方便的优点时,可以先将数据存储于该其它存储介质,而后将数据从该存储介质迁移到第一存储介质。下面举例说明。
在将数据存储于第一存储介质,并建立第一映射关系时,可以采用以下处理方式来实现:先将数据写入第二存储介质,并建立第三映射关系,其中,第三映射关系为数据存储于第二存储介质的物理存储地址与逻辑存储地址之间的映射关系;之后,判断第二存储介质中的数据是否满足预定条件;然后,在判断结果为是的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质,并将第三映射关系更新为第一映射关系。采用这样的处理方式,相对于将数据直接存储于第一存储介质而言,将数据存储于第二存储介质中可以延长对数据的修改时间,提供更多方便修改的机会。
其中,在将数据写入第二存储介质时,也可以采用多种方式,可以灵活选择,例如,可以采用追加写的数据写入方式,将数据写入第二存储介质,其中,该追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入;采用追加写的数据写入方式写入数据直接简单,而且操作方便。
又例如,也可以采用空间临近的数据写入方式,将数据写入第二存储介质,其中,空间临近的数据写入方式为数据在第一存储介质或者第二存储介质的物理存储地址与数据在虚拟块设备的逻辑存储地址的顺序相对应。即,在单位长度的物理存储地址中,数据的物理存储地址在该单位长度的物理存储地址中的位置与逻辑存储地址在整个虚拟块设备中的位置在先后顺序上是相同的。例如,数据在虚拟块设备的逻辑存储地址相邻的情况下,存储的物理存储地址也相邻。比如,数据A与数据B实际存储在同一单位长度的物理存储地址中,若在虚拟块设备的逻辑存储地址中数据A在数据B之前,那么数据A的物理存储地址对应的也在数据B的物理存储地址之前。采用该空间临近的数据写入方式,更直观,因为底层数据和上面的地址映射关系是一致的,只是哪个数据块的数据被改了,就把哪个数据块重新存储就可以了。
对应于上述将数据写入第二存储介质所采用的不同方式,将第二存储介质中的部分或全部数据迁移到第一存储介质也可以采用不同的处理方式,例如,采用追加写的数据写入方式,或者,采用空间临近的数据写入方式,将第二存储介质中的部分或全部数据写入到第一存储介质。即将数据由第一存储介质迁移到第二存储介质时的迁移方式也可以多样,也可以根据需要灵活选择。
在将数据存储于第一存储介质后,建立第一映射关系的过程中,虚拟块设备中的逻辑存储地址的形式可以多种,例如,一种可选方案中,可以是数据在虚拟块设备中的绝对地址位置,在另外一种可选方案中,也可以是相对于某一起始位置的偏移地址,例如,可以是数据在虚拟块设备中的绝对字节,也可以是数据在虚拟块设备上的相对于某一绝对字节的相对字节。
在上述判断第二存储介质中的数据是否满足预定条件所执行的方案中,预设条件所涉及的参数可以包括多种:可以是第二存储介质存储数据的数据量阈值;可以是在第二存储介质中的待刻录数据的数据量对应的刻录阈值;也可以是该第二存储介质中数据的占盘比对应的占盘比阈值,其中,该占盘比为数据在第二存储介质进行存储时所占用的存储空间与该第二存储介质的整个空间的比值;数据在第二存储介质中的存储时间对应的时间阈值;第二存储介质中的数据的访问频率对应的访问频率阈值或者其他条件等。
在第二存储介质中的数据满足预设条件的情况下,依据预设条件涉及的参数的不同,将第二存储介质中的部分或全部数据迁移到第一存储介质中可以采用以下不同的处理方式,下面举例说明。
例如,在第一种可选实施例中,在预设条件的参数为数据量阈值时,可以先判断第二存储介质中存储的数据的数据量是否超过该数据量阈值;在判断结果为是的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质中。上述方案采用了数据量阈值的判断方法,不仅简单快捷,而且效果直接。需要说明的是,此处的数据量阈值的形式可以多种,例如,可以是具体的存储空间大小,例如,2M,3M等,当然也可以是预定大小(例如,可以是2M,3M等)的单位存储空间的数值,例如,2个单位存储空间,3个单位存储空间等。
再例如,在第二种可选实施例中,在对第二存储介质中的数据进行刻录时,如果待刻录的数据达到刻录阈值时,则将第二存储介质的部分或全部数据迁移到第一存储介质中。需要指出的是,此处的刻录阈值的形式也可以有多种,例如,刻录阈值可以是第二存储介质存满的警戒值,比如,超过该警戒值再进行数据存储时,再存储的数据就不安全了;也可以是保证第二存储介质至少存在预定预留空间的标准值,比如,超过该标准值再存储数据时,该第二存储介质的存储的数据就不可靠等。
又例如,在第三种可选实施例中,在第二存储介质中的数据占第二存储介质的整个空间大小的百分比达到占盘比阈值的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质中。例如,该占盘比阈值可以是以比例的形式给出,也可以是以百分比的形式给出。
还例如,在第四种可选实施例中,在第二存储介质中对数据进行存储的存储时间超过时间阈值的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质中。其中,该时间阈值的长度可以依据第二存储介质的整个存储空间的大小来决定,例如,当第二存储介质的整个存储空间较大时,可以将该时间阈值设置得较长一些,而在该第二存储介质的整个存储空间较小时,可以将该时间阈值设置得较短一些。
还例如,在第五种可选实施例中,在第二存储介质中的数据的访问频率低于访问频率阈值的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质中。需要说明的是,该访问频率阈值也可以依据多种因素确定,比如,该访问频率阈值可以依据第二存储空间的整个存储空间的大小来确定,当第二存储介质的整个存储空间超过预定的存储阈值时,可以将该访问频率阈值按照预先设置的调高值进行调高,而在该第二存储介质的整个存储空间未达到预定的存储阈值时,可以将该访问频率阈值按照预先设置的调低值进行调低。又比如,该访问频率阈值还可以依据常规经验值来设置。需要说明的是,依据访问频率来对数据进行迁移时,当对第一存储介质存储的数据的访问频率高于一定的访问频率阈值时,也可以将数据由第一存储介质迁移到第二存储介质,其中,针对第一存储介质存储的数据迁移到第二存储介质对应的访问频率阈值,与第二存储介质存储的数据迁移到第一存储介质对应的访问频率阈值可以相同也可以不同。
需要指出的是,将数据在第一存储介质与第二存储介质之间进行迁移是为了有效地使用各个存储介质的优势,例如,当第二存储介质有读取速度快,易修改的特点,而第一存储介质又有存储成本低的优点时,可以将存储于第一存储介质的数据迁移到第二存储介质,而不删除存储于第一存储介质的数据,一方面,可以有效地提高数据的读取速度,方便地对数据进行修改,另一方面,也不用将在存储成本低的第一存储介质上存储的数据进行删除,保留了对数据的有效备份;也可以将存储于第二存储介质的数据迁移到第一存储介质,而删除存储于第二存储介质的数据,采用这样的处理,不仅可以实现数据的低成本存储,而且可以有效释放第二存储介质的存储空间。
在上述步骤S104中,在存储于第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将第一映射关系更新为第二映射关系,其中,第二映射关系为新的物理存储地址与逻辑存储地址之间的映射关系,第二存储介质为与第一存储介质不同类型的存储介质。
在将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将第一映射关系更新为第二映射关系时,可以先接收对已存储于第一存储介质的数据进行更新的更新数据(例如,通过接收更新数据请求的方式接收对已存储于第一存储介质的数据进行更新的更新数据),然后将第一映射关系更新为:新的物理存储地址与逻辑存储地址之间的映射关系,在本实施例中通过更新对应的映射关系来实现对数据的完整更新。
采用上述处理方式,已经写入的数据不会被再次修改,可以有效屏蔽第一存储介质的不利特性(例如,光盘类存储介质的WORM特性)。具体的,针对已经写入的数据发生了修改,将会被写入新的物理存储地址,但不需要修改原始的已经写入存储介质的数据,从而有效地屏蔽了第一存储介质的不利缺陷(类似光盘这类存储介质的WORM特性),可以把只读设备当成可读写设备来用了。
其中,将修改后的数据存储于第一存储介质的新的物理存储地址可以包括:将在第一存储介质中要修改的数据读取到第二存储介质;在第二存储介质对数据进行修改后,将修改后的数据从第二存储介质存储到第一存储介质的新的物理存储地址。即采用从第一存储介质读取的方式对数据进行修改之后再存入第一存储介质的另一个新的物理存储地址,在一般情况下,为便于对数据进行管理,是采用分段的方式对数据进行组织的。由于需要把修改的数据读取到第二存储介质,因此,需要把要修改的数据所在的段读取到该第二存储介质,虽然需要执行对第一存储介质的读操作,但由于符合一般的数据组织方式,因此,普适性较强。
为尽量减少对第一存储介质的数据的读取操作,可以将修改后的数据存储于第二存储介质的新的物理存储地址,例如,可以采用追加写的数据写入方式,将修改后的数据写入第二存储介质的新的物理存储地址,其中,追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入。采用这样的方式,虽然会引入一些映射关系的维护处理,但有效减少了对第一存储介质(例如,一些读操作较慢的存储介质)的读操作。
需要说明的是,将修改的数据写入第一存储介质和第二存储介质,或者是将数据存储于第一存储介质和第二存储介质,都可以采用上述所提到的追加写的数据方式,或者是空间临近的数据写入方式,方式并不限定,而且在数据进行多次写入,或者对数据进行迁移操作时,两种方式可以灵活组合。例如,针对数据先存储于第二存储介质,由第二存储介质迁移到第一存储介质,之后又需要对存储于第一存储介质的数据进行修改的场景,可以在数据存储于第二存储介质时采用空间临近的数据写入方式进行存储,在迁移到第一存储介质时,可以采用追加写的方式,也可以采用空间临近的数据写入方式进行迁移,之后修改的时候采用追加写的方式,或者空间临近的数据写入方式写入到第二存储介质,之后重复迁移的操作。又例如,还是针对数据先存储于第二存储介质,由第二存储介质迁移到第一存储介质,之后又需要对存储于第一存储介质的数据进行修改的场景,可以在数据存储于第二存储介质时采用追加写的数据写入方式进行存储,在迁移到第一存储介质时,可以继续采用追加写的方式,也可以采用空间临近的数据写入方式进行迁移,之后修改的时候采用追加写的方式,或者空间临近的数据写入方式写入到第二存储介质,之后重复迁移的操作。
需要指出的是,为保持数据读写流程的一致性,在上述场景所涉及的操作流程中,可以采用单一的数据写入方式,例如,可以一直采用追加写的数据写入方式,也可以一直采用空间临近的数据写入方式。
在本发明提供的一种可选的实施例中,即在上述步骤S102-S104,在将数据存储于第一存储介质,或者,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址之后,还可以执行对数据的读取操作,例如,可以采用以下方式实现对数据的读取:先接收对虚拟块设备中目标数据进行读取的读取请求;之后,根据目标数据在虚拟块设备中的逻辑存储地址,和第一映射关系或第二映射关系,确定目标数据的物理存储地址,确定目标数据的物理存储地址;最后,根据确定的物理存储地址读取目标数据。
这里需要提出注意的是,由于虚拟块设备的上层才是用户直接看到的文件管理系统,因此,当要完成用户对数据的访问时,需要执行对应的流程。例如,当用户打开一个文件,需要对应打开虚拟块设备上的某段地址(即上述所指的逻辑存储地址)对应的数据时,调取虚拟块设备上这段地址对应的数据执行的流程应该是:依据数据的物理存储地址与数据在虚拟块设备中的逻辑存储地址之间的映射关系,和虚拟块设备上的该段地址对应的逻辑存储地址,确定数据存储在第二存储介质(例如,缓存)或第一存储介质(例如,光盘)上的物理存储地址,然后依据确定的物理存储地址读取数据,将读取到的数据返回给用户能够直接看到的文件管理系统。
其中,在根据目标数据在虚拟块设备中的逻辑存储地址,和第一映射关系或第二映射关系,确定目标数据的物理存储地址时,其中的映射关系可以选择地存储于多处,例如,可以存储于系统内存中,也可以存储于系统磁盘(例如,缓存)中,还可以存储在光盘中,或者同时存储于多种介质(如上述第一存储介质和第二存储介质所涉及的所有类型的存储介质)中,以达到备份的作用。为提高虚拟块设备的访问效率,由于从系统内存中读取数据快速直接,可以根据系统内存,第一存储介质和第二存储介质中至少之一中存储的映射关系,确定目标数据的物理存储地址。而为了防止掉电丢失映射关系,提高映射关系的安全性,可以将映射关系存储于系统磁盘中。可以依据存储数据的特点,灵活选择。
在根据确定的物理存储地址读取目标数据的步骤时,也可以依据目标数据物理存储地址的特点,或者是目标数据本身的特点,选择不同的读取方式,例如,当目标数据在第一存储介质和第二存储介质均存在时,或者是目标数据明显过大时,就可以采用对目标数据进行分段的处理方式,在这种情况下,可以采用以下处理方式完成对目标数据的读取操作:先根据物理存储地址将目标数据划分为多段数据;分别判断多段数据中的每一段位于第一存储介质还是第二存储介质;在判断结果为该段数据位于第一存储介质的情况下,从第一存储介质中读取该段数据,在判断结果为位于第二存储介质的情况下,从第二存储介质中读取该段数据;将读取的多段数据进行拼接获得目标数据。当然如果目标数据不存在上述特点不需要分段时,就可以直接依据物理存储地址一次性读取整个目标数据。
其中,在根据物理存储地址将目标数据划分为多段数据时,可以采用多种划分方式,比如,如果目标数据单独存在于第一存储介质或是单独存在于第二存储介质,那么可以直接依据第一存储介质或是第二存储介质对数据的存储方式(例如,采用分段进行存储),对目标数据进行分段。如果目标数据既存储于第一存储介质又存储于第二存储介质,那么可以直接依据将存储于第一存储介质的数据和存储于第二存储介质的数据分别作为一段数据,从而实现对数据的分段,当然如果分段后,分别存储于第一存储介质和第二存储介质的数据还较大时,还可以对分别存储的数据再次进行分段,依据具体情况灵活选择。
可选地,在第一存储介质和第二存储介质中对数据进行存储时,可以采用多种方式,例如,可以对整块数据直接存储的方式进行存储。也可以对数据采用划分一定存储单元的方式进行存储。可选地,可以采用单位存储空间对数据进行存储,其中,该单位存储空间的大小可以依据存储的数据的大小确定,或者单位存储空间的大小固定。
其中,依据存储的数据的大小进行分隔数据时,以分隔出来的数据作为一个单位存储空间,采用这样的处理方式,单位存储空间可能大小不一,可以依据数据的需要灵活存储。例如,对于具有WORM特性的介质如光盘,依据要写入的数据的大小直接追加在数据后边,相当于每次写一段数据就结束,哪怕一次只写一个字。比如,在每写入一段数据后以“Enter”结尾,以“Enter”结尾的这段数据即可以被认为是一个单位存储空间,由于以“Enter”结尾可以很随意,因此,以“Enter”结尾的这段数据对应的单位存储空间的大小也会很随意,而且大部分情况下均是大小不一的。虽然这样操作有写入随意,并且写入内容完整的好处,但是也存在消耗光盘有限的写入次数的影响。
除了上述依据存储的数据的大小,采用大小不一的单位存储空间对数据进行存储的方式外,还可以采用大小固定的单位存储空间的方式对数据进行存储。其中,把单位存储空间的大小进行固定,即依据一个大小固定的单位存储空间进行存储,采用这样的处理方式对数据进行存储时,只要存储的数据的大小达到这样的固定大小,就对数据进行分隔。由于分隔的数据大小固定,因此,便于有效地对数据进行统一管理以及有效延长存储介质的使用时间。通过这样的方式来写入数据,可以在满足一定数据量的时候才算作一次写入(有起点有终点)。有效地避免了少量数据的多次写入,导致影响存储介质的使用寿命。
需要指出的是,单位存储空间的形式可以多种,例如,可以为某一块具有明确地址的存储区域,也可以为一个具体的文件。可选地,在单位存储空间为文件的情况下,在第一存储介质和第二存储介质中,采用文件的方式对数据进行存储包括:采用数据文件存储数据;采用元数据文件存储数据的属性信息,其中,数据的属性信息包括以下至少之一:数据在虚拟块设备中的逻辑存储地址,数据长度,数据的物理存储地址,存储数据的数据文件的文件标识,数据存储在数据文件中的起始地址。因此,在每次写完一个数据文件时都存储一个与该数据文件对应的元数据文件,正常断电时,将系统内存中的映射关系备份到缓存中;非正常断电时,重启后根据元数据文件中属性信息恢复映射表。优选地,上述元数据文件中属性信息包括数据在虚拟块设备中的逻辑存储地址和数据的物理存储地址。
其中,对于采用数据文件存储数据的步骤,例如,可以在数据文件中采用追加写的数据写入方式(即不断地在一个数据文件的尾部写入数据),或者空间临近的数据写入方式(即物理存储地址与逻辑存储地址位置的顺序相对应)写入数据。需要说明的是,在采用上述不同的存储方式对数据进行存储时,可能会出现不同的数据写入结果。例如,在采用大小不一的单位存储空间(即大小不一的数据文件)对数据进行存储时,由于数据文件的大小是由需要写入的数据大小来决定的,例如,每个“Enter”结尾对应一个数据文件,因此,数据文件的大小即是需要写入的数据的大小,换句话说,数据文件一般情况下是满的。
而再例如,采用固定大小的单位存储空间(即每个数据文件的大小均是相同的)对数据进行存储时,由于数据文件的大小并不是由需要写入的数据大小来决定的,即不管单次需要写入的数据是多大或是多小,每个数据文件的大小都是固定的。例如,在数据文件中采用追加写的方式写入数据,当写入的数据达到数据文件固定大小时,即关闭该数据文件,重新建立一个新的数据文件后继续写入余下的数据。而当此次写入的数据远小于数据文件的大小时,在对数据进行存储时,数据文件可能是不满的。再次写入其它数据时,则直接新建立一个数据文件进行写入。
需要说明的是,上述第一存储介质可以是一类具有WORM性质的存储介质,例如,该第一存储介质可以为以下至少之一:光盘,磁带;上述第二存储介质可以是一类具有可复写性质的存储介质,另外,该第二存储介质还可以具备读写速率快的性质,例如,该第二存储介质可以是机械硬盘、内存、固态硬盘或非易失性随机访问存储器(Non-Volatile RandomAccess Memory,简称为NVRAM)中的一种或多种。需要说明的是,此处具有WORM性质的存储介质包括一些可擦除与非可擦除的存储介质,此处优先选择的是,非可擦除的存储介质,例如,非可擦除的光盘类介质,优选的可以选择蓝光光盘,也可以是未来可能出现的适用于本申请的其他介质。下面以第一存储介质为光盘,第二存储介质为磁盘(这里选用机械硬盘)为例,对本发明实施例的混合存储系统中面向块接口的数据组织方法进行举例说明:
图2是根据本发明实施例提供的数据组织方法的架构示意图,如图2所示,通过块接口处理逻辑以及系统内存中维护的快速检索表,实现对混合存储系统中存储的数据进行组织,其中,在混合存储系统中设置两类存储区域:缓存数据区(对应于上述磁盘,用于存储少量数据)和光盘数据区(对应于上述光盘,用于存储大量数据)。其中,缓存数据区用于存储刚刚写入的数据以及这些数据在虚拟块设备的逻辑存储地址(例如,偏移地址),光盘数据区则存储较早时间写入的数据以及这些数据在虚拟块设备的逻辑存储地址(例如,偏移地址)。两个数据区的数据都以固定大小的数据文件组成,新写入的数据将按照时间顺序依次填入数据文件的数据存储区域,直至该数据文件被填满后切换到下一个数据文件继续填充。在填充数据时,同时将该数据在虚拟块设备中的偏移地址以及数据大小、数据保存位置等信息顺序填入元数据(描述数据属性的信息)文件中,以备后续数据的检索。
通过上述数据组织方法,一方面可以利用光介质功耗低、可靠性高等优点,另一方面又可以像使用普通块设备一样访问混合存储系统内的存储资源。基于上述数据组织方法构建的混合存储系统,可以有效屏蔽光盘等存储介质底层这种写入后不用于修改的WORM特性(这是光盘类存储介质的介质特性所决定的),实现了在这种具有WORM特性的介质上可以随便进行多次修改,有效提升混合存储系统的适配能力。
需要说明的是,一般情况下,为实现对虚拟块设备所存储数据的访问,需要在磁盘上维护一张至少包括存储数据在虚拟块设备的逻辑存储地址与数据实际存储的物理存储地址之间的映射关系的检索表。而为提高虚拟块设备数据的访问效率,可以在系统内存中维护一张虚拟块设备数据的快速检索表(与上述检索表一样存储有上述所指的映射关系,区别于在磁盘上维护,由于可以有效提高访问效率,将在系统内存中维护的包含上述映射关系的表称之为快速检索表)。当读取虚拟块设备中指定位置的数据时,可以从快速检索表中快速查找到数据的所在物理存储地址,当更新虚拟块设备中的数据时,也需要对该快速检索表中的对应映射关系进行更新。
对上述包括磁盘和光盘的混合存储系统中面向块接口的数据访问流程,包括数据读流程和数据写流程,下面分别说明:
数据读流程:虚拟块设备的管理系统首先查询快速检索表,获取需要读取的目标数据所在物理存储地址,如果数据存储于缓存数据区中,则直接在缓存数据区读取该数据,如果存储于光盘数据区,则首先调取该光盘进入光驱设备,再进一步从光盘中读取该数据。
图3是根据本发明实施例提供的数据读流程的优选示意图,如图3所示,该流程包括如下步骤:
步骤S302,获取目标数据在虚拟块设备中的偏移地址及数据长度(即目标数据在虚拟块设备中的逻辑存储地址);
步骤S304,从快速检索表中查询目标数据的状态信息,即依据上述标数据在虚拟块设备中的偏移地址及数据长度,从快速检索表中查询目标数据对应的物理存储地址,需要说明的是,此处目标数据的状态信息可能不仅仅包括目标数据的物理存储地址,还可以包括目标数据的一些其它属性描述信息,例如,数据在虚拟块设备中的逻辑存储地址,数据长度,存储数据的数据文件的文件标识号,数据存储在数据文件中的起始地址等;
步骤S306,判断是否成功查询到目标数据的状态信息,在判断结果为是的情况下,进入步骤S308,在判断结果为否的情况下,直接进入步骤S322;
步骤S308,根据目标数据所在位置将目标数据划分为多段,即根据目标数据的物理存储地址将目标数据划分为多段,划分的标准可以多种,例如,可以采用上述所列举的依据目标数据存储于磁盘和光盘的关系进行划分,比如,将位于磁盘的目标数据划分为一段,将位于光盘的目标数据又划分为一段;或是依据目标数据本身的大小进行划分,比如,依据一固定存储大小,将目标数据划分为多段;或是,在将目标数据依据存储于磁盘和光盘的关系进行划分后,分别存储于磁盘和光盘的数据还较大,因此,再依据一固定存储大小,对分别位于磁盘和光盘的数据进行划分,需要说明的是,上述划分方式仅仅是一种举例,并不仅限于上述几种划分方式,根据具体需要可以灵活变化;
步骤S310,根据每段数据的物理存储地址实施读取操作;
步骤S312,判断该段数据是否位于缓存数据区,在判断结果为是的情况下,进入步骤S314,否则进入步骤S316;
步骤S314,从缓存数据区读取该段数据,进入步骤S318;
步骤S316,调入相应的数据光盘,从光盘数据区读取该段数据;
步骤S318,判断是否成功获取到所有段数据,在判断结果为是的情况下,进入步骤S320,否则进入步骤S322;
步骤S320,将所有段数据拼接后返回;
步骤S322,报错返回。
数据写流程:虚拟块设备的管理系统首先将新写入的数据填入缓存数据区中,需要说明的是,在将新写入的数据填入缓存数据区时,可以采用上述所列举的写入方式进行写入,例如,可以以单位存储空间的方式写入数据,比如,采用上述以“Enter”结尾的随意写入的方式进行写入,也可以采用上述所描述的以固定大小文件的形式进行写入,下面以固定大小文件的形式写入数据为例进行说明。
将新写入的数据填入缓存数据区中的数据文件中,若该数据文件被填满则切换到下一个数据文件继续填充,填充完毕后将填充数据的属性信息(例如,填充位置(包括在虚拟块设备的逻辑存储地址和数据存储的物理存储地址))写入元数据文件,并更新内存中的快速检索表(当然也可以是磁盘中的检索表,此处为提高写入数据的效率,更新内存中的快速检索表)。之后,判断缓存数据区中写入的数据是否超过预定阈值,在判断结果为的情况下,对缓存数据区中所存储的数据执行迁移操作,其中,预定阈值对应的参数可以如上述所列举的多种,以下以数据量阈值为例进行说明:若缓存数据区中的数据量超过数据量阈值,则触发数据迁移流程,将缓存数据区中的数据刻录到光盘上,完成数据从缓存数据区到光盘数据区的迁移。
图4是根据本发明实施例提供的数据写流程的优选示意图,如图4所示,该流程包括如下步骤:
步骤S402,获取目标数据在虚拟块设备中的偏移量及数据长度(即目标数据在虚拟块设备中的逻辑存储地址);
步骤S404,判断缓存数据区当前文件大小是否超出阈值(即判断缓存数据区当前写入数据的大小是否超过数据文件的上述固定大小),在判断结果为是的情况下,进入步骤S406;否则进入步骤S408;
步骤S406,在缓存数据区建立新的数据文件;
步骤S408,将目标数据以追加写的方式写入缓存数据区当前的数据文件(即新建立的数据文件);
步骤S410,将目标数据的位置(物理存储地址)写入元数据文件,并更新快速检索表(当然也可以是磁盘中的检索表,此处为提高写入数据的效率,更新内存中的快速检索表),即将目标数据的属性信息,例如,数据在虚拟块设备中的逻辑存储地址,数据长度,物理存储地址,存储数据的数据文件的文件标识,数据存储在数据文件中的起始地址等;
步骤S412,判断缓存数据区的容量是否超出预定阈值(即上述所指的数据量阈值),在判断结果为是的情况下,进入步骤S414,否则进入步骤S416;需要说明的是,上述预定阈值对应的参数还可以如上述所列举的多种,例如,上述预定阈值可以是在缓存数据区中待刻录数据的刻录阈值;可以是缓存数据区中数据的占盘比对应的占盘比阈值,其中,该占盘比为数据在缓存数据区进行存储时所占用的存储空间与整个缓存数据区的空间的比值;可以是数据在缓存数据区的存储时间对应的时间阈值;可以是缓存数据区中的数据的访问频率对应的访问频率阈值或者其他条件等。
步骤S414,启动数据迁移流程,完成数据从缓存数据区到光盘数据区的迁移;
步骤S416,写入过程结束。
需要指出的是,缓存数据区是在磁盘上的数据存储区域,是因为磁盘空间占用的比较多了,即超过了上述预定阈值时,才向光盘迁移的。另外,值得注意的是,迁移时或者刻录时有一些选项是可以配置的,比如,刻录完后硬盘还暂时留一份,等到硬盘空间实在紧张的时候再释放掉一些,释放的时候选择最久没有被访问到的数据,有益保证数据的安全。
在本申请的一个实施例中,还可以通过建立多层映射构建虚拟块设备,即:数据存储的物理存储地址与数据在提供块接口的虚拟块设备中的逻辑存储地址之间存在多层映射关系,例如,从数据的物理存储地址到中间层的逻辑地址建立映射关系,再由中间层的逻辑地址到虚拟块设备的逻辑存储地址建立映射关系。在通过多层映射关系构建的虚拟块设备中,同样适用本申请前述方法。采用上述优选实施例,可以达到以下效果:一:写入速度比较快,特别是对于底层是磁盘,上层又是随机写的情况,由于把随机写变成了顺序写,所以写性能较好。二:一致性比较好,由于在将数据存储于数据文件时,均会存储一份与数据文件对应的元数据文件,不会出现数据文件与元数据文件不一致的情况,另外还支持快照功能,而且不怕掉电,由于存储数据的逻辑存储地址与数据的物理存储地址之间的映射关系可以保存于磁盘上,因此,掉电后再启动时虚拟块设备的数据也不会乱,具备日志类型系统的优点。
在本发明实施例中,还提供了一种数据处理装置,图5是根据本发明实施例提供的数据处理装置的结构框图,如图5所示,该装置包括:第一存储模块52和第二存储模块54,下面对该装置进行说明。
第一存储模块52,用于将数据存储于第一存储介质,并建立第一映射关系,其中,第一映射关系为数据存储于第一存储介质的物理存储地址与数据在提供块接口的虚拟块设备的逻辑存储地址之间的映射关系;第二存储模块54,连接至上述第一存储模块52,用于在存储于第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将第一映射关系更新为第二映射关系,其中,第二映射关系为新的物理存储地址与逻辑存储地址之间的映射关系,第二存储介质为与第一存储介质不同类型的存储介质。
图6是根据本发明实施例提供的数据处理装置中第一存储模块52的优选结构框图,如图6所示,该第一存储模块52包括:第一写入单元62,第一判断单元64和第一迁移单元66,下面对该第一存储模块52进行说明。
第一写入单元62,用于将数据写入第二存储介质,并建立第三映射关系,其中,第三映射关系为数据存储于第二存储介质的物理存储地址与逻辑存储地址之间的映射关系;第一判断单元64,连接至上述第一写入单元62,用于判断第二存储介质中的数据是否满足预定条件;第一迁移单元66,连接至上述第一判断单元64,用于在第一判断单元的判断结果为是的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质,并将第三映射关系更新为第一映射关系。
上述第一写入单元62,还用于:采用追加写的数据写入方式,将数据写入第二存储介质,其中,追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入;或者,采用空间临近的数据写入方式,将数据写入第二存储介质,其中,空间临近的数据写入方式为数据在第一存储介质或者第二存储介质的物理存储地址与数据在虚拟块设备的逻辑存储地址的顺序相对应。
上述第一迁移单元66,还用于采用追加写的数据写入方式,或者,采用空间临近的数据写入方式,将第二存储介质中的部分或全部数据写入到第一存储介质。
可选地,上述预定条件包括以下至少之一:在第二存储介质存储数据的数据量达到数据量阈值;在第二存储介质中的待刻录数据的数据量达到刻录阈值;第二存储介质中数据的占盘比达到占盘比阈值,其中,占盘比为数据在第二存储介质进行存储时所占用的存储空间与第二存储介质的整体空间的比值;数据在第二存储介质中的存储时间达到时间阈值;第二存储介质中的数据的访问频率低于访问频率阈值。
可选地,上述第二存储模块54,还用于将在第一存储介质中要修改的数据读取到第二存储介质;在第二存储介质对数据进行修改后,将修改后的数据从第二存储介质存储到第一存储介质的新的物理存储地址;
或者,
上述第二存储模块54,还用于采用追加写的数据写入方式,将修改后的数据写入第二存储介质的新的物理存储地址,其中,追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入。
图7是根据本发明实施例提供的数据处理装置的优选结构框图,如图6所示,该装置除包括图6的所示结构外,还包括:第一接收模块72,第一确定模块74和第一读取模块76,下面对该优选结构进行说明。
第一接收模块72,连接至上述第一存储模块52或者第二存储模块54,用于接收对虚拟块设备中目标数据进行读取的读取请求;
第一确定模块74,连接至上述第一接收模块72,用于根据目标数据在虚拟块设备中的逻辑存储地址,和第一映射关系或第二映射关系,确定目标数据的物理存储地址;
第一读取模块76,连接至上述第一确定模块74,用于根据确定的物理存储地址读取目标数据。
可选地,上述第一确定模块74,还用于根据系统内存,第一存储介质和第二存储介质中至少之一中存储的第一映射关系或第二映射关系,确定目标数据的物理存储地址。
图8是根据本发明实施例提供的数据处理装置中第一读取模块76的优选结构框图,如图8所示,该装置除包括图7的所示结构外,上述第一读取模块76包括:第二判断单元82,第一读取单元84和拼接单元86,下面对该第一读取模块76进行说明。
第二判断单元82,用于根据确定的物理存储地址将目标数据划分为多段数据;分别判断多段数据中的每一段位于第一存储介质还是第二存储介质;第一读取单元84,连接至上述第二判断单元82,用于在第二判断单元的判断结果为该段数据位于第一存储介质的情况下,从第一存储介质中读取该段数据,在第二判断单元的判断结果为位于第二存储介质的情况下,从第二存储介质中读取该段数据;拼接单元86,连接至上述第一读取单元84,用于将读取的多段数据进行拼接获得目标数据。
可选地,上述第一存储模块52,或者第二存储模块54,还用于在第一存储介质和第二存储介质中,采用单位存储空间对数据进行存储,其中,单位存储空间的大小依据存储的数据的大小确定,或者,单位存储空间的大小固定。
可选地,上述第一存储模块52,或者第二存储模块54,还用于:采用数据文件存储数据;采用元数据文件存储数据的属性信息,其中,数据的属性信息包括以下至少之一:数据在虚拟块设备中的逻辑存储地址,数据长度,数据的物理存储地址,存储数据的数据文件的文件标识,数据存储在数据文件中的起始地址。
其中,上述第一存储介质可以为以下至少之一:光盘,磁带;第二存储介质可以为以下至少之一:机械硬盘、内存、固态硬盘、非易失性随机访问存储器。
在本发明实施例中,还提供了一种存储介质,存储介质包括存储的程序,其中,程序运行时控制存储介质所在设备执行以下操作:将数据存储于第一存储介质,并建立第一映射关系,其中,第一映射关系为数据存储于第一存储介质的物理存储地址与数据在提供块接口的虚拟块设备的逻辑存储地址之间的映射关系;在存储于第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将第一映射关系更新为第二映射关系,其中,第二映射关系为新的物理存储地址与逻辑存储地址之间的映射关系,第二存储介质为与第一存储介质不同类型的存储介质。
可选地,程序运行时控制存储介质所在设备还执行以下操作:将数据存储于第一存储介质,并建立第一映射关系包括:将数据写入第二存储介质,并建立第三映射关系,其中,第三映射关系为数据存储于第二存储介质的物理存储地址与逻辑存储地址之间的映射关系;判断第二存储介质中的数据是否满足预定条件;在判断结果为是的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质,并将第三映射关系更新为第一映射关系。
可选地,程序运行时控制存储介质所在设备还执行以下操作:将数据写入第二存储介质包括:采用追加写的数据写入方式,将数据写入第二存储介质,其中,追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入;或者,采用空间临近的数据写入方式,将数据写入第二存储介质,其中,空间临近的数据写入方式为数据在第一存储介质或者第二存储介质的物理存储地址与数据在虚拟块设备的逻辑存储地址的顺序相对应。
可选地,程序运行时控制存储介质所在设备还执行以下操作:将第二存储介质中的部分或全部数据迁移到第一存储介质包括:采用追加写的数据写入方式,或者,采用空间临近的数据写入方式,将第二存储介质中的部分或全部数据写入到第一存储介质。
可选地,程序运行时控制存储介质所在设备还执行以下操作:预定条件包括以下至少之一:在第二存储介质存储数据的数据量达到数据量阈值;在第二存储介质中的待刻录数据的数据量达到刻录阈值;第二存储介质中数据的占盘比达到占盘比阈值,其中,占盘比为数据在第二存储介质进行存储时所占用的存储空间与第二存储介质的整体空间的比值;数据在第二存储介质中的存储时间达到时间阈值;第二存储介质中的数据的访问频率低于访问频率阈值。
可选地,程序运行时控制存储介质所在设备还执行以下操作:将修改后的数据存储于第一存储介质的新的物理存储地址包括:将在第一存储介质中要修改的数据读取到第二存储介质;在第二存储介质对数据进行修改后,将修改后的数据从第二存储介质存储到第一存储介质的新的物理存储地址;或者,将修改后的数据存储于第二存储介质的新的物理存储地址包括:采用追加写的数据写入方式,将修改后的数据写入第二存储介质的新的物理存储地址,其中,追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入。
可选地,程序运行时控制存储介质所在设备还执行以下操作:在将数据存储于第一存储介质,或者,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址之后,还包括:接收对虚拟块设备中目标数据进行读取的读取请求;根据目标数据在虚拟块设备中的逻辑存储地址,和第一映射关系或第二映射关系,确定目标数据的物理存储地址;根据确定的物理存储地址读取目标数据。
可选地,程序运行时控制存储介质所在设备还执行以下操作:根据目标数据在虚拟块设备中的逻辑存储地址,和第一映射关系或第二映射关系,确定目标数据的物理存储地址包括:根据系统内存,第一存储介质和第二存储介质中至少之一中存储的第一映射关系或第二映射关系,确定目标数据的物理存储地址。
可选地,程序运行时控制存储介质所在设备还执行以下操作:根据确定的物理存储地址读取目标数据包括:根据确定的物理存储地址将目标数据划分为多段数据;分别判断多段数据中的每一段位于第一存储介质还是第二存储介质;在判断结果为该段数据位于第一存储介质的情况下,从第一存储介质中读取该段数据,在判断结果为位于第二存储介质的情况下,从第二存储介质中读取该段数据;将读取的多段数据进行拼接获得目标数据。
可选地,程序运行时控制存储介质所在设备还执行以下操作:在第一存储介质和第二存储介质中,采用单位存储空间对数据进行存储,其中,单位存储空间的大小依据存储的数据的大小确定,或者,单位存储空间的大小固定。
可选地,程序运行时控制存储介质所在设备还执行以下操作:在单位存储空间为文件的情况下,在第一存储介质和第二存储介质中,采用文件对数据进行存储包括:采用数据文件存储数据;采用元数据文件存储数据的属性信息,其中,数据的属性信息包括以下至少之一:数据在虚拟块设备中的逻辑存储地址,数据长度,数据的物理存储地址,存储数据的数据文件的文件标识,数据存储在数据文件中的起始地址。
可选地,程序运行时控制存储介质所在设备还执行以下操作:第一存储介质为以下至少之一:光盘,磁带;第二存储介质为以下至少之一:机械硬盘、内存、固态硬盘、非易失性随机访问存储器。
在本发明实施例中,还一种处理器,处理器用于运行程序,其中,程序运行时执行以下操作:将数据存储于第一存储介质,并建立第一映射关系,其中,第一映射关系为数据存储于第一存储介质的物理存储地址与数据在提供块接口的虚拟块设备的逻辑存储地址之间的映射关系;在存储于第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将第一映射关系更新为第二映射关系,其中,第二映射关系为新的物理存储地址与逻辑存储地址之间的映射关系,第二存储介质为与第一存储介质不同类型的存储介质。
可选地,程序运行时还执行以下操作:将数据存储于第一存储介质,并建立第一映射关系包括:将数据写入第二存储介质,并建立第三映射关系,其中,第三映射关系为数据存储于第二存储介质的物理存储地址与逻辑存储地址之间的映射关系;判断第二存储介质中的数据是否满足预定条件;在判断结果为是的情况下,将第二存储介质中的部分或全部数据迁移到第一存储介质,并将第三映射关系更新为第一映射关系。
可选地,程序运行时还执行以下操作:将数据写入第二存储介质包括:采用追加写的数据写入方式,将数据写入第二存储介质,其中,追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入;或者,采用空间临近的数据写入方式,将数据写入第二存储介质,其中,空间临近的数据写入方式为数据在第一存储介质或者第二存储介质的物理存储地址与数据在虚拟块设备的逻辑存储地址的顺序相对应。
可选地,程序运行时还执行以下操作:将第二存储介质中的部分或全部数据迁移到第一存储介质包括:采用追加写的数据写入方式,或者,采用空间临近的数据写入方式,将第二存储介质中的部分或全部数据写入到第一存储介质。
可选地,程序运行时还执行以下操作:预定条件包括以下至少之一:在第二存储介质存储数据的数据量达到数据量阈值;在第二存储介质中的待刻录数据的数据量达到刻录阈值;第二存储介质中数据的占盘比达到占盘比阈值,其中,占盘比为数据在第二存储介质进行存储时所占用的存储空间与第二存储介质的整体空间的比值;数据在第二存储介质中的存储时间达到时间阈值;第二存储介质中的数据的访问频率低于访问频率阈值。
可选地,程序运行时还执行以下操作:将修改后的数据存储于第一存储介质的新的物理存储地址包括:将在第一存储介质中要修改的数据读取到第二存储介质;在第二存储介质对数据进行修改后,将修改后的数据从第二存储介质存储到第一存储介质的新的物理存储地址;或者,将修改后的数据存储于第二存储介质的新的物理存储地址包括:采用追加写的数据写入方式,将修改后的数据写入第二存储介质的新的物理存储地址,其中,追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入。
可选地,程序运行时还执行以下操作:在将数据存储于第一存储介质,或者,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址之后,还包括:接收对虚拟块设备中目标数据进行读取的读取请求;根据目标数据在虚拟块设备中的逻辑存储地址,和第一映射关系或第二映射关系,确定目标数据的物理存储地址;根据确定的物理存储地址读取目标数据。
可选地,程序运行时还执行以下操作:根据目标数据在虚拟块设备中的逻辑存储地址,和第一映射关系或第二映射关系,确定目标数据的物理存储地址包括:根据系统内存,第一存储介质和第二存储介质中至少之一中存储的第一映射关系或第二映射关系,确定目标数据的物理存储地址。
可选地,程序运行时还执行以下操作:根据确定的物理存储地址读取目标数据包括:根据确定的物理存储地址将目标数据划分为多段数据;分别判断多段数据中的每一段位于第一存储介质还是第二存储介质;在判断结果为该段数据位于第一存储介质的情况下,从第一存储介质中读取该段数据,在判断结果为位于第二存储介质的情况下,从第二存储介质中读取该段数据;将读取的多段数据进行拼接获得目标数据。
可选地,程序运行时还执行以下操作:在第一存储介质和第二存储介质中,采用单位存储空间对数据进行存储,其中,单位存储空间的大小依据存储的数据的大小确定,或者,单位存储空间的大小固定。
可选地,程序运行时还执行以下操作:在单位存储空间为文件的情况下,在第一存储介质和第二存储介质中,采用文件对数据进行存储包括:采用数据文件存储数据;采用元数据文件存储数据的属性信息,其中,数据的属性信息包括以下至少之一:数据在虚拟块设备中的逻辑存储地址,数据长度,数据的物理存储地址,存储数据的数据文件的文件标识,数据存储在数据文件中的起始地址。
可选地,程序运行时还执行以下操作:第一存储介质为以下至少之一:光盘,磁带;第二存储介质为以下至少之一:机械硬盘、内存、固态硬盘、非易失性随机访问存储器。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种数据处理方法,其特征在于,应用于虚拟块设备的数据存储,包括:
将数据存储于第一存储介质,并建立第一映射关系,其中,所述第一映射关系为数据存储于所述第一存储介质的物理存储地址与所述数据在提供块接口的所述虚拟块设备中的逻辑存储地址之间的映射关系;
在存储于所述第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将所述第一映射关系更新为第二映射关系,其中,所述第二映射关系为所述新的物理存储地址与所述逻辑存储地址之间的映射关系,所述第二存储介质为与所述第一存储介质不同类型的存储介质。
2.根据权利要求1所述的方法,其特征在于,将数据存储于第一存储介质,并建立所述第一映射关系包括:
将所述数据写入所述第二存储介质,并建立第三映射关系,其中,所述第三映射关系为所述数据存储于所述第二存储介质的物理存储地址与所述逻辑存储地址之间的映射关系;
判断所述第二存储介质中的数据是否满足预定条件;
在判断结果为是的情况下,将所述第二存储介质中的部分或全部数据迁移到所述第一存储介质,并将所述第三映射关系更新为所述第一映射关系。
3.根据权利要求2所述的方法,其特征在于,将所述数据写入所述第二存储介质包括:
采用追加写的数据写入方式,将所述数据写入所述第二存储介质,其中,所述追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入;
或者,
采用空间临近的数据写入方式,将所述数据写入所述第二存储介质,其中,所述空间临近的数据写入方式为数据在第一存储介质或者第二存储介质的物理存储地址与数据在虚拟块设备的逻辑存储地址的顺序相对应。
4.根据权利要求3所述的方法,其特征在于,将所述第二存储介质中的部分或全部数据迁移到所述第一存储介质包括:
采用所述追加写的数据写入方式,或者,采用所述空间临近的数据写入方式,将所述第二存储介质中的部分或全部数据写入到所述第一存储介质。
5.根据权利要求1所述的方法,其特征在于,
将修改后的数据存储于所述第一存储介质的所述新的物理存储地址包括:将在所述第一存储介质中要修改的数据读取到所述第二存储介质;在所述第二存储介质对数据进行修改后,将修改后的数据从所述第二存储介质存储到所述第一存储介质的所述新的物理存储地址;
或者,
将修改后的数据存储于所述第二存储介质的所述新的物理存储地址包括:采用追加写的数据写入方式,将修改后的数据写入所述第二存储介质的所述新的物理存储地址,其中,所述追加写的数据写入方式为每次写入数据时都在已有数据之后继续写入。
6.根据权利要求1所述的方法,其特征在于,在将所述数据存储于所述第一存储介质,或者,将修改后的数据存储于所述第一存储介质或所述第二存储介质的所述新的物理存储地址之后,还包括:
接收对所述虚拟块设备中目标数据进行读取的读取请求;
根据所述目标数据在所述虚拟块设备中的逻辑存储地址,和所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址;
根据确定的所述物理存储地址读取所述目标数据。
7.根据权利要求6所述的方法,其特征在于,根据所述目标数据在所述虚拟块设备中的逻辑存储地址,和所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址包括:
根据系统内存,所述第一存储介质和所述第二存储介质中至少之一中存储的所述第一映射关系或所述第二映射关系,确定所述目标数据的物理存储地址。
8.根据权利要求1所述的方法,其特征在于,在所述第一存储介质和所述第二存储介质中,采用单位存储空间对数据进行存储,其中,所述单位存储空间的大小依据存储的数据的大小确定,或者,所述单位存储空间的大小固定。
9.根据权利要求8所述的方法,其特征在于,在所述单位存储空间为文件的情况下,在所述第一存储介质和所述第二存储介质中,采用文件对数据进行存储包括:
采用数据文件存储所述数据;
采用元数据文件存储所述数据的属性信息,其中,所述数据的属性信息包括以下至少之一:数据在虚拟块设备中的逻辑存储地址,数据长度,数据的物理存储地址,存储数据的数据文件的文件标识,数据存储在所述数据文件中的起始地址。
10.一种数据处理装置,其特征在于,应用于虚拟块设备的数据存储,包括:
第一存储模块,用于将数据存储于第一存储介质,并建立第一映射关系,其中,所述第一映射关系为数据存储于所述第一存储介质的物理存储地址与所述数据在提供块接口的虚拟块设备的逻辑存储地址之间的映射关系;
第二存储模块,用于在存储于所述第一存储介质的数据发生修改的情况下,将修改后的数据存储于第一存储介质或第二存储介质的新的物理存储地址,并将所述第一映射关系更新为第二映射关系,其中,所述第二映射关系为所述新的物理存储地址与所述逻辑存储地址之间的映射关系,所述第二存储介质为与所述第一存储介质不同类型的存储介质。
CN201710736433.7A 2017-08-24 2017-08-24 数据处理方法及装置 Pending CN107678981A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710736433.7A CN107678981A (zh) 2017-08-24 2017-08-24 数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710736433.7A CN107678981A (zh) 2017-08-24 2017-08-24 数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN107678981A true CN107678981A (zh) 2018-02-09

Family

ID=61134797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710736433.7A Pending CN107678981A (zh) 2017-08-24 2017-08-24 数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN107678981A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108683523A (zh) * 2018-04-24 2018-10-19 国家电网公司信息通信分公司 一种基于网络虚拟化的sdn架构
CN109324758A (zh) * 2018-08-24 2019-02-12 华为技术有限公司 数据迁移方法、装置及存储设备
CN110247973A (zh) * 2019-06-17 2019-09-17 无锡华云数据技术服务有限公司 数据读取、写入的方法及文件网关
CN110427350A (zh) * 2019-07-11 2019-11-08 北京梧桐车联科技有限责任公司 数据迁移中的数据处理方法及装置、存储设备及介质
CN111367463A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种存储空间管理方法及装置
CN111399767A (zh) * 2020-02-21 2020-07-10 苏州浪潮智能科技有限公司 Io请求的处理方法、系统、设备及计算机可读存储介质
CN112306379A (zh) * 2019-08-01 2021-02-02 北京兆易创新科技股份有限公司 数据搬移的恢复方法、装置、电子设备及存储介质
CN113076056A (zh) * 2020-01-06 2021-07-06 华为技术有限公司 数据访问方法、硬盘和存储设备
CN113407934A (zh) * 2021-08-20 2021-09-17 博流智能科技(南京)有限公司 安全的多固件融合系统及多固件融合控制方法
WO2024061344A1 (zh) * 2022-09-23 2024-03-28 华为技术有限公司 数据迁移方法、装置、芯片以及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722449A (zh) * 2012-05-24 2012-10-10 中国科学院计算技术研究所 基于SSD的Key-Value型本地存储方法及系统
CN103229173A (zh) * 2012-12-26 2013-07-31 华为技术有限公司 元数据管理方法及系统
CN104572478A (zh) * 2013-10-14 2015-04-29 联想(北京)有限公司 数据存取方法和数据存取装置
CN104850358A (zh) * 2015-05-26 2015-08-19 华中科技大学 一种磁光电混合存储系统及其数据获取和存储方法
CN106294603A (zh) * 2016-07-29 2017-01-04 北京奇虎科技有限公司 文件存储方法及装置
CN106897440A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种分布式文件系统文件读写处理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722449A (zh) * 2012-05-24 2012-10-10 中国科学院计算技术研究所 基于SSD的Key-Value型本地存储方法及系统
CN103229173A (zh) * 2012-12-26 2013-07-31 华为技术有限公司 元数据管理方法及系统
CN104572478A (zh) * 2013-10-14 2015-04-29 联想(北京)有限公司 数据存取方法和数据存取装置
CN104850358A (zh) * 2015-05-26 2015-08-19 华中科技大学 一种磁光电混合存储系统及其数据获取和存储方法
CN106294603A (zh) * 2016-07-29 2017-01-04 北京奇虎科技有限公司 文件存储方法及装置
CN106897440A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种分布式文件系统文件读写处理方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108683523A (zh) * 2018-04-24 2018-10-19 国家电网公司信息通信分公司 一种基于网络虚拟化的sdn架构
CN108683523B (zh) * 2018-04-24 2021-05-14 国家电网有限公司信息通信分公司 一种基于网络虚拟化的sdn架构
WO2020038186A1 (zh) * 2018-08-24 2020-02-27 华为技术有限公司 数据迁移方法、装置及存储设备
CN109324758A (zh) * 2018-08-24 2019-02-12 华为技术有限公司 数据迁移方法、装置及存储设备
CN111367463A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种存储空间管理方法及装置
CN111367463B (zh) * 2018-12-25 2023-05-09 兆易创新科技集团股份有限公司 一种存储空间管理方法及装置
CN110247973B (zh) * 2019-06-17 2021-09-24 华云数据控股集团有限公司 数据读取、写入的方法及文件网关
CN110247973A (zh) * 2019-06-17 2019-09-17 无锡华云数据技术服务有限公司 数据读取、写入的方法及文件网关
CN110427350A (zh) * 2019-07-11 2019-11-08 北京梧桐车联科技有限责任公司 数据迁移中的数据处理方法及装置、存储设备及介质
CN112306379B (zh) * 2019-08-01 2024-05-17 兆易创新科技集团股份有限公司 数据搬移的恢复方法、装置、电子设备及存储介质
CN112306379A (zh) * 2019-08-01 2021-02-02 北京兆易创新科技股份有限公司 数据搬移的恢复方法、装置、电子设备及存储介质
CN113076056A (zh) * 2020-01-06 2021-07-06 华为技术有限公司 数据访问方法、硬盘和存储设备
WO2021139199A1 (zh) * 2020-01-06 2021-07-15 华为技术有限公司 数据访问方法、硬盘和存储设备
CN111399767A (zh) * 2020-02-21 2020-07-10 苏州浪潮智能科技有限公司 Io请求的处理方法、系统、设备及计算机可读存储介质
CN113407934A (zh) * 2021-08-20 2021-09-17 博流智能科技(南京)有限公司 安全的多固件融合系统及多固件融合控制方法
WO2024061344A1 (zh) * 2022-09-23 2024-03-28 华为技术有限公司 数据迁移方法、装置、芯片以及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN107678981A (zh) 数据处理方法及装置
CN104272272B (zh) 混合储存集合去除重复
CN101014929B (zh) 使用nvram进行存储器管理的系统、方法和设备
KR100951107B1 (ko) 최적의 성능을 위한 파일 관리 방법
EP2869203B1 (en) Computer system, and arrangement of data control method
CN108021510A (zh) 操作对多重名称空间进行管理的存储装置的方法
CN108733322A (zh) 用于多流垃圾收集的方法
CN107168885A (zh) 存储系统、信息处理系统及非易失性存储器的控制方法
CN107168640A (zh) 存储系统、信息处理系统及非易失性存储器的控制方法
US20160188227A1 (en) Method and apparatus for writing data into solid state disk
WO2012056491A1 (en) Storage apparatus and data control method
WO2012168960A1 (en) Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
CN107168639A (zh) 存储系统、信息处理系统及非易失性存储器的控制方法
EP1653339A2 (en) Storage system and method of controlling the same
CN107168884A (zh) 存储系统、信息处理系统及非易失性存储器的控制方法
CN102436420A (zh) 使用辅助存储器的低ram空间、高吞吐量的持久键值存储
CN101271730A (zh) 具混合密度内存的内存系统及其抹除、文件配置管理方法
CN102567522B (zh) 一种智能卡文件系统的管理方法及设备
CN101673192B (zh) 时序化的数据处理方法、装置及系统
CN101606133A (zh) 具有连续逻辑地址空间接口的直接数据文件系统的使用
CN104657284A (zh) 存储设备的扩展利用区域
CN104969170A (zh) 层次化存储系统、存储控制器以及代替层次间的数据移动的方法
KR101464199B1 (ko) 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
CN105718217A (zh) 一种精简配置存储池数据一致性维护的方法及装置
CN108604165A (zh) 存储装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination