一种回收卷空间的方法和装置的制造方法

文档序号:9505939阅读:308来源:国知局
一种回收卷空间的方法和装置的制造方法
【技术领域】
[0001]本发明涉及云存储领域,尤指一种回收卷空间的方法和装置。
【背景技术】
[0002]随着云计算及虚拟化技术的发展,传统的分散存储方式在数据资源管理和存储资源利用低的问题逐步显现出来。基于云存储系统的虚拟块设备,相比于传统的存储介质,其支持精简配置、可改变空间大小、数据易于备份、管理便捷等优势,成为构建海量存储系统的理想选择。
[0003]虚拟块设备由云存储系统以卷的形式向前端提供存储资源,经过相关功能模块处理,在客户端映射成为硬盘等设备,向该设备写入数据,即是向存储池中对应的卷空间内写入约定大小的数据对象(或称之为数据块)。在实际应用中,因用户需求变更、数据过期废弃等原因,需要对卷空间回收或重建,因此就要考虑卷空间回收效率的问题。
[0004]客户端中的数据是以数据对象的形式以一定的规则(比如哈希、轮询、随机,或者其它的均衡算法)离散地写在存储池中不同的存储节点上,因此需要约定规则为存储对象生成不同的编号,以便于数据对象的寻址,通常采用的方法是根据卷空间大小和约定的数据对象大小计算出每个对象的索引号,并加入其它静态的元数据特征生成存储对象的编号。在卷空间回收过程中的删除数据对象环节时,也会以此规则依次计算出每个数据对象的编号,从而逐一进行删除。这种回收卷空间方法的效率与卷空间大小成正比,如果卷较大时,较长的回收时间会严重影响用户的使用体验,同时长时间的并发删除操作也会影响存储节点的业务处理性能。

【发明内容】

[0005]为了解决上述技术问题,本发明提供了一种回收卷空间的方法和装置,能够提高回收卷空间的效率,提高存储节点的业务处理性能,增强用户的体验。
[0006]为了达到本发明目的,本发明提供了一种回收卷空间的方法,当需要回收卷空间时,包括:
[0007]获取需要回收的卷空间的卷的命名空间;
[0008]根据获得的该卷的命名空间遍历该卷的命名空间内的数据对象,以确定该卷的命名空间内的全部数据对象的编号;
[0009]按照获得的该卷的命名空间内的全部数据对象的编号进行数据对象的删除。
[0010]进一步地,该方法之前还包括:
[0011]为存储池中的各个卷生成对应的卷的命名空间;
[0012]将每个卷的数据对象放入生成的对应的卷的命名空间内。
[0013]进一步地,所述为存储池中的各个卷生成对应的卷的命名空间,包括:
[0014]获取各个卷的静态特征数据;
[0015]根据获得的各个卷的静态特征数据生成各个卷的命名空间。
[0016]进一步地,该方法还包括:将生成的卷的命名空间存储至该卷的元数据中。
[0017]进一步地,该方法之后还包括:删除所述需要回收的卷空间的卷的元数据并关闭所述需要回收的卷空间的卷。
[0018]本发明还提供了一种回收卷空间的装置,当需要回收卷空间时,包括:获取模块、处理模块和删除模块;其中,
[0019]获取模块,用于获取需要回收的卷空间的卷的命名空间;
[0020]处理模块,根据获得的该卷的命名空间遍历该卷的命名空间内的数据对象,以确定该卷的命名空间内的全部数据对象的编号;
[0021]删除模块,用于按照获得的该卷的命名空间内的全部数据对象的编号进行数据对象的删除。
[0022]进一步地,该装置还包括初始设置模块,用于:
[0023]为存储池中的各个卷生成对应的卷的命名空间;
[0024]将每个卷的数据对象放入生成的对应的卷的命名空间内。
[0025]进一步地,所述初始设置模块为存储池中的各个卷生成对应的卷的命名空间,包括:
[0026]获取各个卷的静态特征数据;
[0027]根据获得的各个卷的静态特征数据生成各个卷的命名空间。
[0028]进一步地,所述初始设置模块,还用于将生成的卷的命名空间存储至该卷的元数据中。
[0029]进一步地,所述删除模块,还用于删除所述需要回收的卷空间的卷的元数据并关闭所述需要回收的卷空间的卷。
[0030]本发明技术方案包括:获取需要回收的卷空间的卷的命名空间;根据获得的该卷的命名空间遍历该卷的命名空间内的数据对象,以确定该卷的命名空间内的全部数据对象的编号;按照获得的该卷的命名空间内的全部数据对象的编号进行数据对象的删除。本发明技术方案提高了回收卷空间的效率,提高了存储节点的业务处理性能,增强了用户的体验。
【附图说明】
[0031]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0032]图1为本发明回收卷空间的方法的流程图;
[0033]图2为本发明回收卷空间的装置的结构示意图。
【具体实施方式】
[0034]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0035]基于虚拟卷精简配置特征,数据对象并不占用全部卷空间,无需遍历所有数据对象。卷空间回收过程中,主要耗时在删除卷空间内的数据对象,也即删除数据对象的整体速度上决定了卷空间回收的效率。
[0036]要提升删除卷中数据对象的整体速度,发明人发现一个方法是对属于本卷的数据对象遵从约定的存储规则,统一命名编组,从逻辑上与存储池内其他数据对象隔离。这样在删除时就能够非常便捷地获取到卷中存在的数据对象,避免因无法获知卷中数据对象存在与否而需要根据规则计算出整卷的数据对象编号然后逐一删除一遍,由此实现将卷空间回收速度从与空间大小成正比调整为与卷中存在的数据对象的数量成正比。另外,发明人发现在实际应用中,一般情况下卷空间并未写满,仅删除存在的数据对象,可以有效地提高整体删除效率。
[0037]基于以上分析,发明人提出为存储池中每个卷生成特征唯一的命名空间,也可作为卷的元数据保存在存储系统中。这样可以有效的提高卷空间的回收效率以及提升用户的体验。
[0038]图1为本发明回收卷空间的方法的流程图,当需要回收卷空间时,如图1所示,包括:
[0039]步骤101:获取需要回收的卷空间的卷的命名空间。
[0040]进一步地,该方法之前还包括:
[0041]为存储池中的各个卷生成对应的卷的命名空间;
[0042]将每个卷的数据对象放入生成的对应的卷的命名空间内。
[0043]需要说明的是,如何将每个卷的数据对象放入生成的对应的卷的命名空间内属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
[0044]其中,为存储池中的各个卷生成对应的卷的命名空间,包括:
[0045]获取各个卷的静态特征数据;
[0046]根据获得的各个卷的静态特征数据生成各个卷的命名空间。
[0047]其中,静态特征数据至少包括但不限于身份标识(ID)。
[0048]需要说明的是,由于服务商提供的虚拟卷的实现方法有可能不同,但是卷ID作为标识应该是都有的,卷的其它静态特征数据如果有固定不变的卷名称、序列号或者其它创建时就已指定并且不再变动的数据,也可以使用。生成卷的命名空间的方法有很多,比如直接使用卷ID或者根据静态特征数据做散列
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1