CN103473298B - 数据归档方法和装置以及存储*** - Google Patents

数据归档方法和装置以及存储*** Download PDF

Info

Publication number
CN103473298B
CN103473298B CN201310400145.6A CN201310400145A CN103473298B CN 103473298 B CN103473298 B CN 103473298B CN 201310400145 A CN201310400145 A CN 201310400145A CN 103473298 B CN103473298 B CN 103473298B
Authority
CN
China
Prior art keywords
container
storage
data
level
storage level
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
CN201310400145.6A
Other languages
English (en)
Other versions
CN103473298A (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 CN201310400145.6A priority Critical patent/CN103473298B/zh
Publication of CN103473298A publication Critical patent/CN103473298A/zh
Application granted granted Critical
Publication of CN103473298B publication Critical patent/CN103473298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据归档方法和装置以及存储***。所述方法应用于包括数据访问速度不同的至少两个存储层级的存储***,每一存储层级包含容器,所述方法包括:基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,并在判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。本发明将存储***各存储层级作为同一个重删域,数据块迁移过程避免了如重复数据块查询、重写文件元数据等耗时操作,有效提高了归档场景下数据块迁移的效率。

Description

数据归档方法和装置以及存储***
技术领域
本发明涉及数据存储领域,尤其涉及一种数据归档方法和装置以及存储***。
背景技术
一般可使用带重删功能的设备来减少存储空间,以能够容纳更多数据。重删是指重复数据删除,即把每个文件根据特定算法切割成多个数据块,并在判断哪些数据块是存储***中已经存储的数据块,哪些数据块是存储***中没有的数据块,并将没有存储的数据块存储在存储***所包含的容器中;再修改文件的元数据,使其指向容器中的数据块。其中,文件的元数据是指每个文件对应的描述文件,描述了这个文件由哪些数据块组成以及这些数据块存储于哪些容器。
为节省数据维护成本,可以进行数据归档,即将数据按活跃程度存储于不同数据访问速度的存储层级的容器(container)中,例如活跃层(Active tier)容器用于存储不到90天的数据,而保留层(Retention tier)容器用于存储时间久并且访问频率低的数据,其中保留层容器可为例如SATA(SerialAdvanced Technology Attachment,串行高级技术附件)磁盘、阵列等的低数据访问速度的存储介质。因此,为了实现数据归档,需要一种数据迁移的方案,以将访问频率低的数据放置在低数据访问速度的存储介质上。
现有技术中,在归档场景下,进行重删数据迁移时,首先找出在某一层级存储到期的文件,然后判断下一层级的容器中是否存储了该文件的数据块,并将未存储的数据块存入下一层级的容器,最后修改该文件的元数据。
对于上述技术,由于每个层级是分别查重的,即每个层级是独立的重删域,多个层级之间可能存在重复的数据块,从而造成数据迁移过程要进行重复数据块查询、重写文件元数据等耗时操作。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是,如何解决归档场景下数据块迁移过程要进行重复数据块查询、重写文件元数据等耗时操作问题。
解决方案
为了解决上述技术问题,根据本发明的一实施例,提供了一种数据归档方法,应用于包括数据访问速度不同的至少两个存储层级的存储***,每一存储层级包含容器;所述容器是指存储数据块的逻辑存储单元,并且任意两个所述容器内的数据块互不相同;所述存储***包括容器映射表,所述容器映射表用于记录任一所述容器的容器编号与容器地址的对应关系,所述容器地址是指容器在存储***中的地址。
所述数据归档方法包括:基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,其中,所述访问引用信息包括引用次数和访问次数中的至少一种,所述引用次数表示所述第一容器被引用的次数,所述访问次数表示所述第一容器在预定时间段内被访问的次数;在判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
对于上述数据归档方法,在所述第二存储层级的数据访问速度低于所述第一存储层级的数据访问速度的情况下,在一种可能的实现方式中,所述基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,包括:基于所述存储***中的文件的存储时间,判断所述文件是否到期;若判定所述文件到期,则将存储所述文件包括的数据块的容器作为所述第一容器;基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
对于上述数据归档方法,在所述第二存储层级的数据访问速度高于所述第一存储层级的数据访问速度的情况下,在一种可能的实现方式中,所述基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,包括:在根据文件的写入、删除、和/或读取而更新了所述存储***中的任一容器的访问引用信息的情况下,将访问引用信息更新了的容器作为所述第一容器,基于所述第一容器更新后的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移;或者将各所述存储层级中的各容器分别作为所述第一容器,基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
为了解决上述技术问题,根据本发明的一实施例,提供了一种数据归档装置,应用于包括数据访问速度不同的至少两个存储层级的存储***,每一存储层级包含容器;所述容器是指存储数据块的逻辑存储单元,并且任意两个所述容器内的数据块互不相同;所述存储***包括容器映射表,所述容器映射表用于记录任一所述容器的容器编号与容器地址的对应关系,所述容器地址是指容器在存储***中的地址。
所述数据归档装置包括:迁移管理模块,用于基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,其中,所述访问引用信息包括引用次数和访问次数中的至少一种,所述引用次数表示所述第一容器被引用的次数,所述访问次数表示所述第一容器在预定时间段内被访问的次数;迁移模块,与所述迁移管理模块连接,用于在所述迁移管理模块判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
对于上述数据归档装置,在所述第二存储层级的数据访问速度低于所述第一存储层级的数据访问速度的情况下,在一种可能的实现方式中,所述数据归档装置,还包括与所述迁移管理模块连接的文件管理模块,其中:所述文件管理模块用于基于所述存储***中的文件的存储时间,判断所述文件是否到期,以及所述迁移管理模块被配置为,在所述文件管理模块判定所述文件到期的情况下,将存储所述文件包括的数据块的容器作为所述第一容器;以及基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
对于上述数据归档装置,在所述第二存储层级的数据访问速度高于所述第一存储层级的数据访问速度的情况下,在一种可能的实现方式中,所述迁移管理模块被配置为:在根据文件的写入、删除、和/或读取而更新了所述存储***中的任一容器的访问引用信息的情况下,将访问引用信息更新了的容器作为所述第一容器,基于所述第一容器更新后的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移;或者将各所述存储层级中的各容器分别作为所述第一容器,基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
为了解决上述技术问题,根据本发明的一实施例,提供了一种存储***,包括数据访问速度不同的至少两个存储层级,每一存储层级包含容器;所述容器是指存储数据块的逻辑存储单元,并且任意两个所述容器内的数据块互不相同;容器映射表,用于记录任一所述容器的容器编号容器地址的对应关系,所述容器地址是指容器在存储***中的地址;以及根据采用本发明实施例中任意一种结构的数据归档存储装置。
有益效果
在本发明中,首先基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,并在判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。本发明实施例的数据归档方法,不同存储层级的容器能够作为同一个重删域,解决了数据迁移过程如重复数据块查询、重写文件元数据等耗时操作问题,有效提高了归档场景下数据迁移效率。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出本发明实施例的数据归档方法应用的存储***结构示意图;
图2示出图1所示的存储***的逻辑结构图;
图3示出根据本发明一实施例的数据归档方法的流程图;
图4示出根据本发明一实施例的容器迁移的示意图;
图5示出根据本发明一实施例的容器访问引用信息结构图;
图6示出根据本发明另一实施例的数据归档方法的流程图;
图7示出根据本发明另一实施例的容器迁移的示意图;
图8示出根据本发明又一实施例的数据归档方法的流程图;
图9示出根据本发明一实施例的数据归档装置的结构框图;
图10示出根据本发明一实施例的迁移管理模块的结构框图;
图11示出根据本发明的另一实施例的数据归档装置的结构框图;以及
图12示出根据本发明一实施例的存储***结构框图。
具体实施方式
如背景技术部分所述,本发明希望解决的技术问题主要是数据块迁移过程要进行重复数据块查询、重写文件元数据等耗时操作问题。为了解决该技术问题,如发明内容部分所述,本发明人独创性地想到,对于包括多个存储层级的存储***,以各存储层级所包括的容器为单位进行数据块迁移;所述容器是指存储数据块的逻辑存储单元,并且容器中的数据块互不相同。
具言之,首先基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,并在判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
需要说明的是,这里所说的容器迁移,包括以下实施例中提及的容器迁移,并不是指容器这一逻辑存储单元的迁移,而是以容器作为单位,对该容器包括的所有数据块进行的迁移。
本发明实施例提供的存储***包括至少两个存储层级,各存储层级的数据访问速度不同,例如,包含三个存储层级,根据各存储层级数据访问数据速度由高到低的顺序,分别为由固态硬盘构成存储介质的存储层级、由磁盘构成存储介质的存储层级和由磁带构成存储介质的存储层级。
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
实施例1
根据本发明一实施例的数据归档方法应用于如图1所示的存储***,该存储***按照存储介质的数据访问速度分为多个存储层级,具体可分为活跃层(Active tier)和多个保留层(Retention tier)。其中,作为活跃层的存储层级的数据访问速度高于作为保留层的存储层级的数据访问速度,作为保留层的各存储层级之间的数据访问速度也不同。在一种可能的实现方式中,活跃层存储写入存储***90天内的数据,保留层存储写入存储***时间更久的数据,例如90天至1年、1年至7年的数据。重删数据按照存储时间和被访问次数存储于数据访问速度不同的各存储层级。各存储层级包括容器。
图2为图1所示的存储***的逻辑结构图,如图2所示,存储***的各存储层级各包括三个容器(Container)。其中,命名空间(Namespace)是指向用户呈现的存储空间比如一个文件***;文件(File)是命名空间中存储的文件;数据块(chunk)是基于重删功能从文件划分出的数据分块;各存储层级中的容器是存储经过重删后文件的数据块的逻辑存储单元,因此容器内的数据块是互不相同的,同时由于存储***使用统一的重删域,所谓重删域,是指查找重复数据块的范围,存储***使用统一重删域,则指在整个存储***所有存储层级内查找重复数据块,因此,相对于传统的各存储层级分别使用独立的重删域,本发明实施例提供的存储***的各存储层级的容器存储的数据块均互不相同。
图3为根据本发明一实施例的数据归档方法的流程图。如图3所示,该数据归档方法主要包括以下步骤:
S310,基于所存储的文件的存储时间,判断所述文件是否到期。
一般情况下,在文件归档存储时,由上层软件或用户决定文件应该在存储***中某一存储层级的存储时间。根据这个时间可以确定文件是否到期。
S320,在判定所述文件到期的情况下,基于所述文件的元数据确定存储所述文件的各数据块的容器。
其中,所述元数据包括块编号、容器编号和偏移量,所述块编号表示所述文件包括的数据块的编号,所述容器编号表示存储所述数据块的容器的编号,所述偏移量表示所述数据块存储在所述容器上的位置。
S330,针对所确定的容器,基于所述容器的访问引用信息判断所述容器是否需要向数据访问速度低的存储层级迁移。其中,这里的数据访问速度低是相对于所述容器所在的存储层级的数据访问速度而言的。
其中,所述访问引用信息包括引用次数和/或访问次数,所述引用次数表示所述容器被引用的次数,所述访问次数表示所述容器在预定时间段内被访问的次数。
S340,在判定所述容器需要向数据访问速度低的存储层级迁移的情况下,获取所述数据访问速度低的存储层级的一个新容器,将所述容器存储的数据块迁移到所述新容器中,并将与所述容器的容器编号对应的存储地址更新为所述新容器的存储地址。
具体地,结合图4所示的容器迁移的示意图说明本实施例的数据归档方法。首先,根据文件归档时配置的在存储***中某一存储层级的存储时间整理到期的一组文件,并根据所述到期文件的元数据确定存储所述到期文件的数据块的容器,如图4所示,假设文件1(F1)的数据块存储在活跃层La的第一容器c11中,文件2(F2)的数据块分别存储在活跃层La的第二容器c12和第三容器c13中,文件3(F3)的数据块分别存储在保留层Lr1的第一容器c31和第三容器c33中。这些容器可能包含了其他存储未到期文件的数据块,所以接下来针对这些容器,基于其各自的访问引用信息判断各容器是否需要向保留层迁移。假设活跃层La的第三容器c13满足迁移条件,则将其迁移至保留层Lr0。
再具体地,活跃层La的第三容器c13迁移至保留层Lr0的过程主要是通过容器映射表完成的,容器映射表用于记录容器的容器编号与容器地址的对应关系,其中容器地址用于表示容器在存储层级中的位置。所有的容器都是从存储层级的地址空间中取一定长度的空间作为容器的存储地址。在一种可能的实现方式中,容器映射表的结构为表项为容器编号-容器起始存储地址组成的表。该迁移过程包括:首先申请保留层Lr0中的新的容器c21,假设申请的新的容器c21的起始存储地址为1100;然后将容器c13存储的数据块全部迁移到新的容器c21中;最后修改容器c13的容器编号在容器映射表中对应的容器存储地址,例如,假设活跃层La的第三容器c13的容器编号为0003,容器起始存储地址为0300,则将容器编号为0003对应的起始存储地址修改为1100。
这样,存储***各存储层级作为同一个重删域,数据块迁移过程避免了如重复数据块查询、重写文件元数据等耗时操作,有效提高了归档场景下数据块迁移的效率。
在一种可能的实现方式中,活跃层La的第三容器c13满足的迁移条件包括以下任意一项:所述容器被活跃度较高的文件引用的次数足够少;被活跃度较低的文件引用的次数足够多;在最近一段时间被访问的次数足够少。其中,活跃度表示文件在存储***中的存储时间和/或被读取频率,文件活跃度越高,说明文件在存储***中的存储时间越短和/或被读取频率越高。
在一种可能的具体实现方式中,活跃层La的第三容器c13满足的迁移条件可以设计为以下任意一项:容器c13的第一引用次数与容器c13被引用的总次数的比例小于第一阈值;或者容器c13的第二引用次数与容器c13被引用的总次数的比例大于第二阈值;容器c13在预定时间段内被访问的次数足够小。其中,所述第一引用次数表示容器c13被存储时间小于第一时间长度的文件引用的次数,所述第二引用次数表示容器c13被存储时间大于第二时间长度的文件引用的次数。
具体地,容器c13的访问引用信息可以设计为如图5所示的结构,假设存储***根据文件存储时间的不同,分为0-60天、60天-1年、1年-7年三个层级,容器c13的引用次数也分为三项,即分别被0-60天、60天-1年、1年-7年三个时间段存储的文件的引用次数,容器c13的访问次数仅一项,即容器c13在预定时间段内被访问的次数。
再具体地,第一时间长度设为60天,第二时间长度设为1年,预定时间段设为30天,第一阈值设为10%,第二阈值设为90%,第三阈值设为100,容器c13的第一引用次数为x1,第二引用次数为x2,总引用次数为x1+x2+x3,访问次数为x。如果第一引用次数与总引用次数的比例x1/(x1+x2+x3)小于第一阈值10%,或者第二引用次数与总引用次数的比例x2/(x1+x2+x3)大于第二阈值90%,或者访问次数x小于第三阈值100,容器c13需要向保留层Lr0迁移。
需要说明的是,尽管借助图5所示的容器访问引用信息结构作为示例介绍了判断所述容器是否需要向数据访问速度低的存储层级迁移,这里的数据访问速度低是相对于所述容器所在的存储层级的数据访问速度而言的,但本领域技术人员能够理解,本发明可能的容器访问引用信息结构以及统计容器访问引用信息的方法应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定第一时间长度、第二时间长度、预定时间段、第一阈值、第二阈值以及第三阈值,根据实际统计的容器的访问引用信息判断所述容器是否需要向数据访问速度低的存储层级迁移。
实施例2
在所述存储***中由于文件的写入、删除、和/或读取而更新了容器的访问引用信息的情况下,数据归档方法流程图如图6所示,以基于容器更新后的访问引用信息判断所述容器是否需要向数据访问速度高的存储层级迁移,这里的数据访问速度高是相对于所述容器所在的存储层级的数据访问速度而言的,并在所述容器需要向数据访问速度高的存储层级迁移的情况下,完成所述容器的迁移过程。
其中,所谓由于文件的写入、删除、和/或读取而更新容器的访问引用信息的情况包括:当文件写入存储***时,首先对文件按某种算法进行分块,划分为多个数据块,然后将这些数据块与存储***中所有存储层级的容器中已经存储的数据块进行比较,得到重复的数据块和非重复的数据块。重复的数据块对其所在的容器的引用次数加一,所有非重复的数据块一起组成一个容器,每一个数据块对此容器的引用次数加一;当文件在整个存储***中被删除时,根据文件的元数据确定其所引用的容器,该文件的每一个数据块对这些容器的引用次数减一;以及,当文件被读取时,根据文件的元数据确定其所引用的容器,该文件的每一个数据块对这些容器的访问次数加一。
如图6所示,根据本发明另一实施例的数据归档方法主要包括以下步骤:
S610,基于容器更新后的访问引用信息判断所述容器是否需要向数据访问速度高的存储层级迁移。其中,这里的数据访问速度高是相对于所述容器所在的存储层级的数据访问速度而言的。
S620,在判定所述容器需要向数据访问速度高的存储层级迁移的情况下,获取所述数据访问速度高的存储层级的一个新容器,将所述容器存储的数据块迁移到所述新容器中,并将与所述容器的容器编号对应的存储地址更新为所述新容器的存储地址。
具体地,结合图7所示的容器迁移的示意图说明本实施例的数据归档方法。如图7所示,文件1的数据块存储在活跃层La的第一容器c11中,文件2的数据块分别存储在活跃层La的第二容器c12和第三容器c13中,文件3的数据块分别存储在保留层Lr0的第一容器c21、第二容器c22、和第三容器c23中。假设保留层Lr0的第一容器c21满足迁移条件,则将其迁移至活跃层La。
再具体地,保留层Lr0的第一容器c21迁移至活跃层La的过程主要是通过容器映射表完成的,容器映射表的结构仍以实施例1所述的结构为例,该迁移过程包括:首先申请活跃层La中的新的容器c13,假设申请的起始存储地址为1100;然后将容器c21存储的数据块全部迁移到所述新的容器c13中;最后修改容器c21的容器编号在容器映射表中对应的容器存储地址,例如,假设保留层Lr0的第一容器c21的容器编号为0001,容器起始存储地址为0100,则将容器编号为0001对应的起始存储地址修改为1100。
在一种可能的实现方式中,保留层Lr0的第一容器c21满足的迁移条件包括以下任意一项:所述容器被活跃度较高的文件引用的次数足够多;被活跃度较低的文件引用的次数足够少;在最近一段时间被访问的次数足够多。其中,活跃度表示文件在存储***中的存储时间和/或被读取频率,文件活跃度越高,说明文件在存储***中的存储时间越短和/或被读取频率越高。
在一种可能的具体实现方式中,保留层Lr0的第一容器c21满足的迁移条件可以设计为以下任意一项:容器c21的第三引用次数与容器c21被引用的总次数的比例大于第一阈值;或者容器c21的第四引用次数与容器c21被引用的总次数的比例大于第二阈值;容器c21在预定时间段内被访问的次数足够小。其中,所述第三引用次数表示容器c21被存储时间小于第三时间长度的文件引用的次数,所述第四引用次数表示容器c21被存储时间大于第四时间长度的文件引用的次数。
具体地,容器c21的访问引用信息也可以设计为如图5所示的结构,在一种可能的实现方式中,第三时间长度设为60天,第四时间长度设为1年,预定时间段设为30天,第四阈值设为90%,第五阈值设为10%,第六阈值设为100,所述容器的第三引用次数为x1,第四引用次数为x2,总引用次数为x1+x2+x3,访问次数为x。如果第三引用次数与总引用次数的比例x1/(x1+x2+x3)大于第四阈值90%,或者第四引用次数与总引用次数的比例x2/(x1+x2+x3)小于第五阈值10%,或者访问次数x大于第六阈值100,容器c21需要向活跃层La迁移。
需要说明的是,尽管借助图5所示的容器访问引用信息结构作为示例介绍了判断所述容器是否需要向数据访问速度高的存储层级迁移,这里的数据访问速度低是相对于所述容器所在的存储层级的数据访问速度而言的,但本领域技术人员能够理解,本发明可能的容器访问引用信息结构以及统计容器访问引用信息的方法应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定第三时间长度、第四时间长度、预定时间段、第四阈值、第五阈值以及第六阈值,根据实际统计的容器的访问引用信息判断所述容器是否需要向数据访问速度高的存储层级迁移。
本发明实施例的数据归档方法基于容器更新后的访问引用信息,判断所述容器是否需要向数据访问速度高的存储层级迁移,如果迁移至数据访问速度低的存储层级迁移的容器被频繁访问和引用,可以及时的将其回迁,这样可以提高用户的访问速度。此外,不同存储层级的容器能够作为同一个重删域,数据块迁移过程避免了如重复数据块查询、重写文件元数据等耗时操作,提高了数据块迁移的效率。
实施例3
图8示出根据本发明又一实施例的数据归档方法的流程图。图8中标号与图6相同的标号具有相同的功能,为简明起见,省略对这些标号的详细说明。图8所示的数据归档方法与图6所示数据归档方法的主要区别在于,判断是否需要向数据访问速度高的存储层级迁移不是由容器的访问引用信息更新所触发的,而是定期执行的。
在一种可能的实现方式中,如图8所示,在步骤S620之前的步骤为S810,也就是针对所述容器,定期基于所述容器的访问引用信息判断所述容器是否需要向数据访问速度高的存储层级迁移。
具体地,由各存储层级的后台扫描进程周期性的扫描本层级中容器的访问引用信息,扫描周期可以为30天,也可以为45天,完全根据个人喜好和/或实际应用场景灵活设定,然后可以基于本发明实施例2所述的容器迁移条件判断所述容器是否满足迁移要求,在所述容器满足迁移要求的情况下,可以按照本发明实施例2所述的容器迁移过程完成容器的迁移。本发明实施例中存储层级数据访问速度的高低都是相对于所述容器当前所在存储层级的数据访问速度而言的。
这样,即使存储***没有设定对由于文件的写入、删除、和/或读取而更新了容器的访问引用信息的容器的访问引用信息的扫描,可以通过定期基于各存储层级的容器的访问引用信息判断所述容器是否需要向数据访问速度高的存储层级迁移迁移,如果迁移至数据访问速度低的存储层级迁移的容器被频繁访问和引用,仍可以及时的将其回迁,这样可以提高用户的访问速度。
实施例4
图9为根据本发明一实施例的数据归档装置的结构框图,该数据归档装置应用于如图1所示的存储***,所述存储***的具体描述可以参考前述方法实施例描述,在此不再赘述。如图9所示,所述数据归档装置包括:迁移管理模块920以及迁移模块930。
其中,迁移管理模块920用于基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,其中,所述访问引用信息包括引用次数和访问次数中的至少一种,所述引用次数表示所述第一容器被引用的次数,所述访问次数表示所述第一容器在预定时间段内被访问的次数。迁移模块930与迁移管理模块920连接,用于在迁移管理模920块判定所述容器需要向第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
在一种可能的实现方式中,所述数据归档装置还包括与迁移管理模块920连接的文件管理模块910,文件管理模块910用于在所述第二存储层级的数据访问速度低于所述第一存储层级的数据访问速度的情况下,基于所述存储***中的文件的存储时间,判断所述文件是否到期。在文件管理模块910判定所述文件到期的情况下,迁移管理模块920被配置为将存储所述文件包括的数据块的容器作为所述第一容器;以及基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
一般情况下,在文件归档存储时,由上层软件或用户决定文件应该在存储***中某一存储层级的存储时间,该存储时间保存在文件管理模块910或存储***的其他地方。根据这个时间,文件管理模块910可以确定文件是否到期。
在一种可能的实现方式中,迁移管理模块920还包括三个判断单元921、922、923,用于判断所述第一容器是否需要向第二存储层级迁移的过程,如图10所示,若任一判断单元的判断结果为是则判定所述第一容器需要向第二存储层级迁移:
第一判断单元921,用于判断所述第一容器的第一引用次数占总引用次数的比例是否小于第一阈值,其中所述第一引用次数表示第一文件引用所述第一容器的次数,所述总引用次数表示所述第一容器被引用的总次数,所述第一文件为存储时间小于第一时间长度的文件。
第二判断单元922,用于判断所述第一容器的第二引用次数占总引用次数的比例是否大于第二阈值,其中所述第二引用次数表示第二文件引用所述第一容器的次数,所述第二文件为存储时间小于第二时间长度的文件。
第三判断单元923,用于判断所述访问次数是否小于第三阈值。
第一判断单元921、第二判断单元922、第三判断单元923可以通过三个比较器实现,迁移管理模块920执行判定所述第一容器是否需要向第二存储层级迁移的具体过程,其中,所述第二存储层级的数据访问速度低于所述第一容器所在的存储层级的数据访问速度,可以参见实施例1的相关描述。
在一种可能的实现方式中,在所述第二存储层级的数据访问速度高于所述第一存储层级的数据访问速度的情况下,迁移管理模块920被配置为,在根据文件的写入、删除、和/或读取而更新了所述存储***中的任一容器的访问引用信息的情况下,将访问引用信息更新了的容器作为所述第一容器,基于所述第一容器更新后的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移;或者将各所述存储层级中的各容器分别作为所述第一容器,基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
在一种可能的实现方式中,迁移管理模块920还包括三个判断单元924、925、926,如图10所示,若任一判断单元的判断结果为是则判定所述第一容器需要向第二存储层级迁移:
第四判断单元924,用于判断所述第一容器的第三引用次数占总引用次数的比例是否大于第四阈值,其中所述第三引用次数表示第三文件引用所述第一容器的次数,所述总引用次数表示所述第一容器被引用的总次数,所述第三文件为存储时间小于第三时间长度的文件;
第五判断单元925,用于判断所述第一容器的第四引用次数占总引用次数的比例是否小于第五阈值,其中所述第四引用次数表示第四文件引用所述第一容器的次数,所述第四文件为存储时间小于第四时间长度的文件;以及
第六判断单元926,用于判断所述访问次数是否大于第六阈值。
第四判断单元924、第五判断单元925、第六判断单元926可以通过三个比较器实现,迁移管理模块920执行判定容器是否需要向第二存储层级迁移的具体过程,其中,所述第二存储层级的数据访问速度高于所述第一容器所在的存储层级的数据访问速度,可以参见实施例2的相关描述。
这样,本发明实施例的数据归档装置通过迁移管理模块920基于访问引用信息判断所述容器是否需要迁移,在迁移管理模920块判定所述容器需要迁移的情况下,迁移模块930可以将所述容器包括的全部数据块迁移至合适的存储层级,数据块迁移过程将存储***各存储层级作为同一个重删域,避免了如重复数据块查询、重写文件元数据等耗时操作,有效提高了归档场景下数据块迁移的效率。
另外,如果存储***由于文件的写入、删除、和/或读取而更新了容器的访问引用信息,或者存储***将各所述存储层级中的各容器分别作为被关注容器,本发明实施例的数据归档装置通过迁移管理模块920基于容器更新后的访问引用信息,或者被关注容器的访问引用信息判断所述容器是否需要向数据访问速度高的存储层级迁移,如果迁移至数据访问速度低的存储层级的容器被频繁访问和引用,可以通过迁移模块930及时的将其回迁,这样可以提高用户的访问速度。
实施例5
图11为本发明的另一实施例的数据归档装置的结构框图。所述数据归档装置1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述数据归档装置1100包括处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于存储文件。存储器1130可能包含高速RAM容器,也可能还包括非易失性容器(non-volatile memory),例如至少一个磁盘容器。存储器1130也可以是容器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,其中,所述访问引用信息包括引用次数和访问次数中的至少一种,所述引用次数表示所述第一容器被引用的次数,所述访问次数表示所述第一容器在预定时间段内被访问的次数;在判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
在一种可能的实施方式中,在所述第二存储层级的数据访问速度低于所述第一存储层级的数据访问速度的情况下,所述基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,包括:基于所述存储***中的文件的存储时间,判断所述文件是否到期;若判定所述文件到期,则将存储所述文件包括的数据块的容器作为所述第一容器;基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
在一种可能的实施方式中,在所述第二存储层级的数据访问速度高于所述第一存储层级的数据访问速度的情况下,所述基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,包括:在根据文件的写入、删除、和/或读取而更新了所述存储***中的任一容器的访问引用信息的情况下,将访问引用信息更新了的容器作为所述第一容器,基于所述第一容器更新后的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移;或者将各所述存储层级中的各容器分别作为所述第一容器,基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
根据本发明上述实施例的数据归档装置中的数据归档机制,与实施例4的数据归档装置所解释的类似,本领域人员应能理解,前述的可能的实现方式均可应用于本实施例并能获得相同的有益效果,这里不再赘述。
实施例6
图12为根据本发明一实施例的存储***结构框图,如图12所示,该存储***1200可以包括:三个存储层级1210、1220、1230,容器映射表,以及数据归档装置1240。
其中,存储层级1210、1220、1230的数据访问速度各不相同,存储层级1210的数据访问速度最高,存储90天内的数据,存储层级1220的数据访问速度次之,存储90天至1年的数据,存储层级1230的数据访问速度最低,存储1年至7年的数据。重删数据按照存储时间和被访问次数存储在数据访问速度不同的各存储层级。存储层级1210、1220、1230各包括三个容器,所述容器是指存储数据块的逻辑存储单元,并且任意两个所述容器内的数据块互不相同。容器映射表用于记录任一所述容器的容器编号与容器地址的对应关系,所述容器地址是指容器在存储***中的地址。
需要说明的是,为了更清楚地介绍数据归档方法和装置以及存储***,本发明实施例仅以存储层级包括三个容器为例,但本领域技术人员能够理解,实际的存储***中一个存储层级可以包括十万数量级甚至百万数量级的容器。
在一种可能的实现方式中,数据归档装置1240可以采用本发明上述实施例4或5任一项所述的结构,数据归档装置1240主要用于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,以及在判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
本发明实施例的存储***各存储层级中的容器是存储经过重删后文件的数据块的逻辑存储单元,因此容器内的数据块是互不相同的,同时由于存储***使用统一的重删域,因此,与传统的各存储层级分别使用独立的重删域不同,本发明实施例提供的存储***的各存储层级的容器存储的数据块均互不相同。从而可以保证数据块迁移过程将该存储***各存储层级作为同一个重删域,避免了如重复数据块查询、重写文件元数据等耗时操作,有效提高了归档场景下数据块迁移的效率。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (7)

1.一种数据归档方法,其特征在于,所述方法应用于包括数据访问速度不同的至少两个存储层级的存储***,每一存储层级包含容器;所述容器是指存储数据块的逻辑存储单元,并且任意两个所述容器内的数据块互不相同;所述存储***包括容器映射表,所述容器映射表用于记录任一所述容器的容器编号与容器地址的对应关系,所述容器地址是指容器在存储***中的地址;所述数据归档方法包括:
基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,其中,所述访问引用信息包括引用次数和访问次数中的至少一种,所述引用次数表示所述第一容器被引用的次数,所述访问次数表示所述第一容器在预定时间段内被访问的次数;
在判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
2.根据权利要求1所述的数据归档方法,其特征在于,在所述第二存储层级的数据访问速度低于所述第一存储层级的数据访问速度的情况下,所述基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,包括:
基于所述存储***中的文件的存储时间,判断所述文件是否到期;
若判定所述文件到期,则将存储所述文件包括的数据块的容器作为所述第一容器;
基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
3.根据权利要求1所述的数据归档方法,其特征在于,在所述第二存储层级的数据访问速度高于所述第一存储层级的数据访问速度的情况下,所述基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,包括:
在根据文件的写入、删除、和/或读取而更新了所述存储***中的任一容器的访问引用信息的情况下,将访问引用信息更新了的容器作为所述第一容器,基于所述第一容器更新后的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移;或者
将各所述存储层级中的各容器分别作为所述第一容器,基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
4.一种数据归档装置,其特征在于,所述装置应用于包括数据访问速度不同的至少两个存储层级的存储***,每一存储层级包含容器;所述容器是指存储数据块的逻辑存储单元,并且任意两个所述容器内的数据块互不相同;所述存储***包括容器映射表,所述容器映射表用于记录任一所述容器的容器编号与容器地址的对应关系,所述容器地址是指容器在存储***中的地址;所述数据归档装置包括:
迁移管理模块,用于基于第一存储层级中的第一容器的访问引用信息判断所述第一容器是否需要向第二存储层级迁移,其中,所述访问引用信息包括引用次数和访问次数中的至少一种,所述引用次数表示所述第一容器被引用的次数,所述访问次数表示所述第一容器在预定时间段内被访问的次数;
迁移模块,与所述迁移管理模块连接,用于在所述迁移管理模块判定所述第一容器需要向所述第二存储层级迁移的情况下,在所述第二存储层级确定第二容器,将所述第一容器存储的数据块迁移到所述第二容器中,并将所述容器映射表中与所述第一容器的容器编号对应的容器地址修改为所述第二容器的容器地址。
5.根据权利要求4所述的数据归档装置,其特征在于,在所述第二存储层级的数据访问速度低于所述第一存储层级的数据访问速度的情况下,还包括与所述迁移管理模块连接的文件管理模块,其中:
所述文件管理模块用于基于所述存储***中的文件的存储时间,判断所述文件是否到期,以及
所述迁移管理模块被配置为,在所述文件管理模块判定所述文件到期的情况下,将存储所述文件包括的数据块的容器作为所述第一容器;以及基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
6.根据权利要求4所述的数据归档装置,其特征在于,在所述第二存储层级的数据访问速度高于所述第一存储层级的数据访问速度的情况下,所述迁移管理模块被配置为:
在根据文件的写入、删除、和/或读取而更新了所述存储***中的任一容器的访问引用信息的情况下,将访问引用信息更新了的容器作为所述第一容器,基于所述第一容器更新后的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移;或者
将各所述存储层级中的各容器分别作为所述第一容器,基于所述第一容器的访问引用信息,判断所述第一容器是否需要向第二存储层级迁移。
7.一种存储***,其特征在于,包括:
数据访问速度不同的至少两个存储层级,每一存储层级包含容器;所述容器是指存储数据块的逻辑存储单元,并且任意两个所述容器内的数据块互不相同;
容器映射表,用于记录任一所述容器的容器编号与容器地址的对应关系,所述容器地址是指容器在存储***中的地址;以及
根据权利要求4至6中任一项所述的数据归档装置。
CN201310400145.6A 2013-09-04 2013-09-04 数据归档方法和装置以及存储*** Active CN103473298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310400145.6A CN103473298B (zh) 2013-09-04 2013-09-04 数据归档方法和装置以及存储***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310400145.6A CN103473298B (zh) 2013-09-04 2013-09-04 数据归档方法和装置以及存储***

Publications (2)

Publication Number Publication Date
CN103473298A CN103473298A (zh) 2013-12-25
CN103473298B true CN103473298B (zh) 2017-01-11

Family

ID=49798146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310400145.6A Active CN103473298B (zh) 2013-09-04 2013-09-04 数据归档方法和装置以及存储***

Country Status (1)

Country Link
CN (1) CN103473298B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105611979B (zh) * 2014-03-18 2018-08-21 株式会社东芝 具备试验区域的层级化存储***、存储控制器及介质
CN105654980B (zh) * 2014-11-11 2018-03-06 南京壹进制信息技术股份有限公司 一种光盘库数据备份归档的方法
CN107196982B (zh) 2016-03-14 2021-01-22 阿里巴巴集团控股有限公司 一种用户请求的处理方法和装置
CN106503427B (zh) * 2016-10-12 2019-01-29 创业软件股份有限公司 一种面向医疗大数据处理的固态磁盘存储方法
CN109246167B (zh) * 2017-07-11 2022-04-01 阿里巴巴集团控股有限公司 一种容器调度方法及装置
CN110858124B (zh) * 2018-08-24 2021-06-01 华为技术有限公司 数据迁移方法及装置
CN109992708B (zh) * 2019-04-12 2020-09-04 苏州浪潮智能科技有限公司 一种元数据查询的方法、装置、设备以及存储介质
CN112015347A (zh) * 2020-08-28 2020-12-01 北京浪潮数据技术有限公司 一种数据迁移方法、装置及相关设备
CN112925746A (zh) * 2021-03-25 2021-06-08 北京安天网络安全技术有限公司 文件归档方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467572A (zh) * 2010-11-17 2012-05-23 英业达股份有限公司 支持重复数据删除程序的数据区块查询方法
CN102508789A (zh) * 2011-10-14 2012-06-20 浪潮电子信息产业股份有限公司 一种***分级存储的方法
CN103150263A (zh) * 2012-12-13 2013-06-12 深圳先进技术研究院 分级存储方法
CN103177111A (zh) * 2013-03-29 2013-06-26 西安理工大学 重复数据删除***及其删除方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467572A (zh) * 2010-11-17 2012-05-23 英业达股份有限公司 支持重复数据删除程序的数据区块查询方法
CN102508789A (zh) * 2011-10-14 2012-06-20 浪潮电子信息产业股份有限公司 一种***分级存储的方法
CN103150263A (zh) * 2012-12-13 2013-06-12 深圳先进技术研究院 分级存储方法
CN103177111A (zh) * 2013-03-29 2013-06-26 西安理工大学 重复数据删除***及其删除方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Venti:a new approach to archival storage;Sean Quinlan 等;《FAST 2002 Paper》;20020130;89-102 *
一种归档存储***结构;刘仲 等;《计算机工程》;20100405;第36卷(第7期);27-29 *
基于重复数据删除的快速文件归档方法;马晓旭 等;《四川大学学报(工科科学报)》;20110920;第43卷(第5期);120-125 *

Also Published As

Publication number Publication date
CN103473298A (zh) 2013-12-25

Similar Documents

Publication Publication Date Title
CN103473298B (zh) 数据归档方法和装置以及存储***
CN105718548B (zh) 基于去重复存储***中用于可扩展引用管理的***和方法
CN103136243B (zh) 基于云存储的文件***去重方法及装置
CN105760113B (zh) 基于nand闪存的高速存储设备及文件管理方法
CN105468473A (zh) 数据迁移方法及数据迁移装置
CN102750317B (zh) 数据持久化处理方法、装置及数据库***
CN104298681B (zh) 一种数据存储方法及装置
CN103838853B (zh) 一种基于不同存储介质的混合文件***
CN103617097B (zh) 文件恢复方法及装置
CN104615594B (zh) 一种数据更新方法及装置
CN107807932B (zh) 一种基于路径枚举的层级数据管理方法和***
CN101997911A (zh) 一种数据迁移的方法及***
CN104424219B (zh) 一种数据文件的管理方法及装置
CN106484906A (zh) 一种分布式对象存储***闪回方法及装置
CN103544156A (zh) 文件存储方法及装置
CN104714957B (zh) 一种表结构的变更方法及装置
CN101763415B (zh) 一种数据库的b树索引的生成方法及装置
CN107783988A (zh) 一种目录树的加锁方法及设备
CN104731515B (zh) 控制存储设备机群磨损均衡的方法及设备
CN103890856A (zh) 支持内存储数据结构的可移位存储器
CN109086462A (zh) 一种分布式文件***中元数据的管理方法
KR101575639B1 (ko) 지도 서비스를 위한 타일 이미지 갱신 시스템 및 그 방법
CN107408239B (zh) 通过多个邮箱在通信应用中进行海量数据管理的架构
CN107391040A (zh) 一种存储阵列磁盘io调度的方法及装置
CN107798063A (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
GR01 Patent grant
GR01 Patent grant