空间管理方法及装置与流程

文档序号:16399102发布日期:2018-12-25 20:01阅读:333来源:国知局
空间管理方法及装置与流程

本发明实施例涉及计算机技术,尤其涉及一种空间管理方法及装置。



背景技术:

自动精简配置技术为在存储界被广泛使用的存储虚拟化技术,其原理是用精简池来统一管理存储资源,精简池再将存储资源按需分配给精简卷供上层业务使用。在自动精简配置技术中,元数据用于记录精简卷逻辑地址到物理地址的映射关系,元数据的设计直接决定了存储的性能,可靠性和可扩展性。

自动精简配置技术中,虽然空间划分粒度越小,空间节省效果越明显,但是空间划分粒度越小,逻辑地址到物理地址的映射关系就越复杂,因此,会导致元数据占用的物理空间就越多;另一方面,空间划分粒度越小,主机查询所需的比较次数越多,导致每秒进行读写操作次数(Input/Output Operations Per Second,简称IOPS)越小。

当前存储虚拟化技术中,针对顺序输入/输出(Input/Output,简称I/O)场景,由于不需要考虑节省空间因素,因此,普遍采取大粒度分配策略;而针对离散随机I/O场景,为了节省空间,普遍采取小粒度分配策略。

图1为物理空间分配增长示意图,如图1所示,随着业务增长,物理空间分配增多,逻辑单元号(Logical Unit Number,简称LUN)上逻辑区块地址(Logical Block Address,简称LBA)对应的物理空间逐渐连续(即LUN上的逻辑地址都已分配了物理地址空间),不再节省空间,并且元数据组织关系越来越复杂,主机I/O访问时查询和修改元数据的次数及时间也相应增多,从而导致降低访问性能;另外,由于地址连续的逻辑地址空间所对应的物理地址空间不连续,针对离散随机I/O场景下的主机顺序I/O访问,会增加访盘时间和次数,从而也会降低访问性能。



技术实现要素:

本发明实施例提供一种空间管理方法及装置,用以提升访问性能。

第一方面,本发明实施例提供一种空间管理方法,包括:

当确定需要进行粒度转换时,根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间;

其中,所述第一粒度逻辑地址空间的分配状态为所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态;所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态;所述第一逻辑地址空间包括至少两个逻辑地址单元;所述第一逻辑地址空间对应的物理地址空间为第一物理地址空间,所述第一物理地址空间对应的空间划分粒度为第一粒度,所述第一物理地址空间包括至少两个物理地址单元;所述第一逻辑地址空间中的逻辑地址单元个数等于所述第一物理地址空间中的物理地址单元个数;

将所述第一物理地址空间中的数据迁移到第二物理地址空间;其中,所述第二物理地址空间对应的空间划分粒度为第二粒度;所述第一粒度小于所述第二粒度。

结合第一方面,在第一方面的第一种可能的实现方式中,所述根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间,包括:

根据所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间;

若所述第一逻辑地址空间中包括的所述至少两个逻辑地址单元中已分配到物理地址空间的个数大于等于第一粒度转换阈值,则确定所述第一逻辑地址空间需要进行粒度转换。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间,包括:

根据迁移树中包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间。

结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据迁移树中包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间之前,还包括:

根据第一粒度映射树判断所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间,并将所述每个逻辑地址单元的分配状态记录到所述迁移树;其中,所述第一粒度映射树包括所述第一粒度逻辑地址空间的分配状态,所述第一粒度逻辑地址空间的分配状态包括所述每个逻辑地址单元的分配状态。

结合第一方面、第一方面的第一种至第三种任一种可能的实现方式中,在第一方面的第四种可能的实现方式中,所述将所述第一物理地址空间中的数据迁移到第二物理地址空间,包括:

根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间;

将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到所述第二物理地址空间。

结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间之前,还包括:

将所述第一逻辑地址空间的分配状态记录到第二粒度映射树;

根据所述第二粒度映射树中包含的所述第一逻辑地址空间的分配状态获得所述第一物理地址空间的大小。

结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到第二物理地址空间之后,还包括:

释放所述所述第一物理地址空间。

结合第一方面的第五种或第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到第二物理地址空间之后,还包括:

删除所述迁移树。

结合第一方面的第五种至第七种任一种可能的实现方式,在第一方面的第八种可能的实现方式中,所述将所述第一物理地址空间中的数据迁移到第二物理地址空间之后,还包括:

当需要查询逻辑地址对应的物理地址时,根据映射关系状态分别从不同映射树上查询数据;其中,所述映射关系状态包括:所有映射关系全部位于所述第一粒度映射树、所有映射关系全部位于所述第二粒度映射树、或者第一部分映射关系位于所述第一粒度映射树而所有映射关系中除所述第一部分映射关系之外的剩余部分位于所述第二粒度映射树;所述映射关系为逻辑地址与物理地址之间的关系。

结合第一方面、第一方面的第一种至第八种任一种可能的实现方式中,在第一方面的第九种可能的实现方式中,所述确定需要进行粒度转换,包括:

确定逻辑单元号LUN已分配物理地址空间达到第二粒度转换阈值或者确定业务处于闲时段。

第二方面,本发明实施例提供一种空间管理装置,包括:

确定模块,用于当确定需要进行粒度转换时,根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间;

其中,所述第一粒度逻辑地址空间的分配状态为所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态;所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态;所述第一逻辑地址空间包括至少两个逻辑地址单元;所述第一逻辑地址空间对应的物理地址空间为第一物理地址空间,所述第一物理地址空间对应的空间划分粒度为第一粒度,所述第一物理地址空间包括至少两个物理地址单元;所述第一逻辑地址空间中的逻辑地址单元个数等于所述第一物理地址空间中的物理地址单元个数;

迁移模块,用于将所述第一物理地址空间中的数据迁移到第二物理地址空间;其中,所述第二物理地址空间对应的空间划分粒度为第二粒度;所述第一粒度小于所述第二粒度。

结合第二方面,在第二方面的第一种可能的实现方式中,所述确定模块,包括:

判断单元,用于根据所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间;

确定单元,用于若所述第一逻辑地址空间中包括的所述至少两个逻辑地址单元中已分配到物理地址空间的个数大于等于第一粒度转换阈值,则确定所述第一逻辑地址空间需要进行粒度转换。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述判断单元具体用于:

根据迁移树中包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述确定模块,还包括:

第一记录单元,用于根据第一粒度映射树判断所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间,并将所述每个逻辑地址单元的分配状态记录到所述迁移树;其中,所述第一粒度映射树包括所述第一粒度逻辑地址空间的分配状态,所述第一粒度逻辑地址空间的分配状态包括所述每个逻辑地址单元的分配状态。

结合第二方面、第二方面的第一种至第三种任一种可能的实现方式中,在第二方面的第四种可能的实现方式中,所述迁移模块,包括:

分配单元,用于根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间;

迁移单元,用于将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到所述第二物理地址空间。

结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述迁移模块,还包括:

第二记录单元,用于将所述第一逻辑地址空间的分配状态记录到第二粒度映射树;

获取单元,用于根据所述第二粒度映射树中包含的所述第一逻辑地址空间的分配状态获得所述第一物理地址空间的大小。

结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述迁移模块,还包括:

释放单元,用于释放所述所述第一物理地址空间。

结合第二方面的第五种或第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述迁移模块,还包括:

删除单元,用于删除所述迁移树。

结合第二方面的第五种至第七种任一种可能的实现方式,在第二方面的第八种可能的实现方式中,还包括:

查询模块,用于当需要查询逻辑地址对应的物理地址时,根据映射关系状态分别从不同映射树上查询数据;其中,所述映射关系状态包括:所有映射关系全部位于所述第一粒度映射树、所有映射关系全部位于所述第二粒度映射树、或者第一部分映射关系位于所述第一粒度映射树而所有映射关系中除所述第一部分映射关系之外的剩余部分位于所述第二粒度映射树;所述映射关系为逻辑地址与物理地址之间的关系。

结合第二方面、第二方面的第一种至第八种任一种可能的实现方式中,在第二方面的第九种可能的实现方式中,所述确定模块具体用于:

确定逻辑单元号LUN已分配物理地址空间达到第二粒度转换阈值或者确定业务处于闲时段。

本发明中,当确定需要进行粒度转换时,根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间;其中,所述第一粒度逻辑地址空间的分配状态为所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态;所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态;所述第一逻辑地址空间包括至少两个逻辑地址单元;所述第一逻辑地址空间对应的物理地址空间为第一物理地址空间,所述第一物理地址空间对应的空间划分粒度为第一粒度,所述第一物理地址空间包括至少两个物理地址单元;所述第一逻辑地址空间中的逻辑地址单元个数等于所述第一物理地址空间中的物理地址单元个数;进一步地,将所述第一物理地址空间中的数据迁移到第二物理地址空间;其中,所述第二物理地址空间对应的空间划分粒度为第二粒度;所述第一粒度小于所述第二粒度;从而使连续的逻辑地址空间对应的物理地址空间也连续,可减少访盘时间和次数,从而提升访问性能;同时,由于将小粒度转换为大粒度对元数据进行管理,可减小元数据所占物理空间和元数据复杂度,缩减主机I/O访问时查询和修改元数据的时间和次数,从而提升访问性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为物理空间分配增长示意图;

图2A为空间划分粒度转换示意图;

图2B为本发明空间管理方法实施例一的流程示意图;

图3为本发明中迁移树的数据结构示意图;

图4为本发明迁移树构建过程示意图;

图5为本发明映射关系查询示意图;

图6为本发明空间管理方法实施例二的流程示意图;

图7为本发明空间管理方法实施例三的流程示意图;

图8为本发明空间管理装置实施例一的结构示意图;

图9为本发明空间管理装置实施例二的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2A为空间划分粒度转换示意图,如图2A所示,本发明实施例中,可选地,对于新创建的业务,采用小粒度(如本发明实施例中的第一粒度,设第一粒度为n KB(其中,n为正整数)进行空间管理,以达到节省物理地址空间以及保投资的目的;当业务量增长,已分配物理地址空间的逻辑地址空间逐渐连续(即LUN上的逻辑地址都已分配了物理空间),此时不再节省空间,并且元数据组织关系越来越复杂,主机I/O访问时查询和修改元数据的次数及时间也相应增多,从而导致降低访问性能;另外,如图2A所示,由于地址连续的逻辑地址空间所对应的物理地址空间不连续,针对离散随机I/O场景下的主机顺序I/O访问(如LUN拷贝、空间释放、格式化等),会增加访盘时间和次数,从而降低访问性能。针对现有技术中访问性能较低的技术问题,本发明实施例中随着业务增长,如图2A所示,当达到预设条件则将空间划分粒度由小粒度转换为大粒度以对元数据进行管理,并将小粒度物理地址空间的数据迁移到大粒度物理地址空间中(如本发明实施例中的第二粒度,设第二粒度为m*n KB,其中,m为正整数),如图2A所示,m为4;不仅减小了元数据所占物理空间及元数据复杂度,缩减主机I/O访问时查询和修改元数据的时间和次数,从而提升性能;而且使连续的逻辑地址空间对应的物理地址空间也连续,当主机顺序I/O访问时可减少访盘时间和次数,从而提升访问性能。

图2B为本发明空间管理方法实施例一的流程示意图。本实施例的执行主体可以为配置在存储设备中的空间管理装置,该装置可以通过软件和/或硬件实现。本实施例的方案应用于存储虚拟化场景,使自动精简配置技术不仅达到节省空间的目的,而且还能提高系统性能。如图2B所示,本实施例的方法可以包括:

S201、当确定需要进行粒度转换时,根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间。

其中,所述第一粒度逻辑地址空间的分配状态为所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态;所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态;所述第一逻辑地址空间包括至少两个逻辑地址单元;所述第一逻辑地址空间对应的物理地址空间为第一物理地址空间,所述第一物理地址空间对应的空间划分粒度为第一粒度,所述第一物理地址空间包括至少两个物理地址单元;所述第一逻辑地址空间中的逻辑地址单元个数等于所述第一物理地址空间中的物理地址单元个数。

本发明实施例中,为了节省物理空间,在业务创建阶段采用小粒度(如本实施例中的第一粒度)进行空间管理;如图2A所示,随着业务量增长,已分配物理地址空间的逻辑地址空间逐渐连续,可选地,当确定需要进行粒度转换时,根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间(如图2A所示的逻辑地址空间A)(其中,逻辑地址空间的划分粒度为第一粒度),其中,所述第一粒度逻辑地址空间的分配状态为所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态;所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态;所述第一逻辑地址空间包括至少两个逻辑地址单元(如图2A所示的逻辑地址单元a、逻辑地址单元b、逻辑地址单元c及逻辑地址单元d);所述第一逻辑地址空间对应的物理地址空间为第一物理地址空间,所述第一物理地址空间对应的空间划分粒度为第一粒度,所述第一物理地址空间包括至少两个物理地址单元(如图2A所示的物理地址单元a、物理地址单元b、物理地址单元c及物理地址单元d);所述第一逻辑地址空间中的逻辑地址单元个数等于所述第一物理地址空间中的物理地址单元个数。

可选地,步骤S201包括:根据所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间;

若所述第一逻辑地址空间中包括的所述至少两个逻辑地址单元中已分配到物理地址空间的个数大于等于第一粒度转换阈值,则确定所述第一逻辑地址空间需要进行粒度转换。

本发明实施例中,根据所述第一粒度逻辑地址空间的分配状态(即所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态)判断出需要进行粒度转换的逻辑地址空间,若某个逻辑地址空间(如图2A所示的逻辑地址空间A)中包括的至少两个逻辑地址单元(如图2A所示的逻辑地址单元a、逻辑地址单元b、逻辑地址单元c及逻辑地址单元d)中已分配到物理地址空间的个数大于等于第一粒度转换阈值,则确定所述逻辑地址空间A(即第一逻辑地址空间)需要进行粒度转换,其中,所述第一粒度转换阈值为系统预设的或者用户定义的。

可选地,根据迁移树中包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间。

为了便于确定需要进行粒度转换的小粒度,本发明实施例中,可根据迁移树中的包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间;图3为本发明中迁移树的数据结构示意图,可选地,所述迁移树可用如图3所示的B树、B+树或其它数据结构构建。

可选地,所述根据迁移树中包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间之前,还包括:

根据第一粒度映射树判断所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间,并将所述每个逻辑地址单元的分配状态记录到所述迁移树;其中,所述第一粒度映射树包括所述第一粒度逻辑地址空间的分配状态,所述第一粒度逻辑地址空间的分配状态包括所述每个逻辑地址单元的分配状态。

本发明实施例中,根据包括所述第一粒度逻辑地址空间的分配状态的第一粒度映射树判断所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间,并将所述每个逻辑地址单元的分配状态记录到所述迁移树,其中,所述第一粒度逻辑地址空间的分配状态包括所述每个逻辑地址单元的分配状态。可选地,通过所述迁移树包含的不同关键字(key)值分别表示如图2A所示逻辑地址空间A、逻辑地址空间B或逻辑地址空间C的分配状态,其中,所述迁移树包含多个关键字(如逻辑地址空间A对应关键字0,逻辑地址空间B对应关键字1,逻辑地址空间C对应关键字2);所述关键字用位图表示某位对应的小粒度逻辑地址单元是否已分配物理地址空间(如关键字0的每位对应逻辑地址空间A中的一个逻辑地址单元是否已分配物理地址空间)。例如:假设第一粒度(小粒度)为32K,第二粒度(大粒度)为256K=32K*8,则关键字可用8位char型表示,其中,当某位为1时表示对应的小粒度逻辑地址单元已分配物理地址空间,某位为0表示对应的小粒度逻辑地址单元未分配物理地址空间;若LBA的0-256K的逻辑地址空间均已分配物理地址空间,则迁移树中关键字值为0XFF)。

图4为本发明迁移树构建过程示意图,如图4所示,迁移树构建过程如下:根据LUN LBA,由小到大,根据包括所述第一粒度逻辑地址空间的分配状态的第一粒度映射树判断所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间(如图4所示,逻辑地址单元0-逻辑地址单元19;其中,逻辑地址单元0-逻辑地址单元7都已分配到物理地址空间;逻辑地址单元8-逻辑地址单元15中除逻辑地址单元11及逻辑地址单元14之外都已分配到物理地址空间(其中,图中未示的逻辑地址单元11及逻辑地址单元14表示亦未分配到物理地址空间);逻辑地址单元16-逻辑地址单元19都未分配到物理地址空间),并将所述每个逻辑地址单元的分配状态记录到所述迁移树;可选地,通过所述迁移树包含的不同关键字分别表示所述第一粒度逻辑地址空间的分配状态,所述关键字用位图表示某位对应的小粒度逻辑地址单元是否已分配物理地址空间,如图4所示,第一粒度(小粒度)为32K,第二粒度(大粒度)为256K=32K*8,则关键字可用8位char型表示(其中,当某位为1时表示对应的小粒度逻辑地址单元已分配物理地址空间,某位为0表示对应的小粒度逻辑地址单元未分配物理地址空间),由于逻辑地址单元0-逻辑地址单元7(将所述8个逻辑地址单元统称为第三逻辑地址空间)都已分配到物理地址空间,因此,所述第三逻辑地址空间对应关键字(如关键字0)的每位都为1(1111 1111)即为0xFF;由于逻辑地址单元8-逻辑地址单元15(将逻辑地址单元8-逻辑地址单元15统称为第四逻辑地址空间)中除逻辑地址单元11及逻辑地址单元14之外都已分配到物理地址空间,因此,所述第四逻辑地址空间对应关键字(如关键字1)中代表逻辑地址单元11和逻辑地址单元14的位为0,其余位都为1(1011 0111)即为0xB7。

可选地,所述确定需要进行粒度转换(即开启粒度转换任务),包括以下任意一种:确定逻辑单元号LUN已分配物理地址空间达到第二粒度转换阈值或者确定业务处于闲时段。可选地,本实施例中,还可通过以下方式开启粒度转换任务:用户手动触发粒度转换任务和/或创建LUN时默认触发粒度转换任务。可选地,还可通过其它方式开启粒度转换任务,本发明实施例中对比并不作限制。

S202、将所述第一物理地址空间中的数据迁移到第二物理地址空间。

本发明实施例中,在确定第一逻辑地址空间(如图2A所示的逻辑地址空间A)需要进行粒度转换后,将所述第一物理地址空间(如图2A所示的物理地址单元a、物理地址单元b、物理地址单元c及物理地址单元d)中的数据迁移到第二物理地址空间(如图2A所示的物理地址空间A),其中,所述第二物理地址空间对应的空间划分粒度为第二粒度(大粒度)(即所述第二物理地址空间为一个空间划分粒度单元),所述第一粒度小于所述第二粒度;从而使连续的逻辑地址空间对应的物理地址空间也连续,可减少访盘时间和次数,从而提升访问性能;同时,由于将小粒度转换为大粒度对元数据进行管理,可减小元数据所占物理空间和元数据复杂度,缩减主机I/O访问时查询和修改元数据的时间和次数,从而提升访问性能。

可选地,步骤S202包括:根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间;

将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到所述第二物理地址空间。

可选地,所述根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间之前,还包括:

将所述第一逻辑地址空间的分配状态记录到第二粒度映射树;

根据所述第二粒度映射树中包含的所述第一逻辑地址空间的分配状态获得所述第一物理地址空间的大小。

本发明实施例中,确定第一逻辑地址空间(如图2A所示的逻辑地址空间A)需要进行粒度转换后,可选地,通过将所述第一逻辑地址空间的分配状态(所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态)记录到第二粒度映射树;可选地,通过将所述第一逻辑地址空间(如图2A所示的逻辑地址空间A)对应的关键字插入第二粒度映射树的方式实现将所述第一逻辑地址空间的分配状态记录到第二粒度映射树,其中,所述第一逻辑地址空间对应的关键字包含所述第一逻辑地址空间的分配状态;进一步地,根据所述第二粒度映射树中包含的所述第一逻辑地址空间对应的关键字(即所述第一逻辑地址空间的分配状态)获得所述第一物理地址空间的大小;进一步地,根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间,并将所述第一物理地址空间包括的所述至少两个物理地址单元(如图2A所示的物理地址单元a、物理地址单元b、物理地址单元c及物理地址单元d)中的数据迁移到所述第二物理地址空间;可选地,还包括:所述第二粒度映射树中插入所述第一逻辑地址空间与所述第二物理地址空间之间的映射关系(即修改所述第二粒度映射树中的映射状态)。

可选地,所述将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到第二物理地址空间之后,还包括:释放所述所述第一物理地址空间。

本发明实施例中,在将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到第二物理地址空间之后,可删除所述第一粒度映射树上关于所述第一逻辑地址空间与物理地址空间之间的映射关系,以及释放所述所述第一物理地址空间(如图2A所示的物理地址单元a、物理地址单元b、物理地址单元c及物理地址单元d)。

可选地,所述将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到第二物理地址空间之后,还包括:删除所述迁移树。

本发明实施例中,在将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到第二物理地址空间之后,还可删除所述迁移树。

可选地,步骤S202之后,还包括:当需要查询逻辑地址对应的物理地址时,根据映射关系状态分别从不同映射树上查询数据;其中,所述映射关系状态包括:所有映射关系全部位于所述第一粒度映射树、所有映射关系全部位于所述第二粒度映射树、或者第一部分映射关系位于所述第一粒度映射树而所有映射关系中除所述第一部分映射关系之外的剩余部分位于所述第二粒度映射树;所述映射关系为逻辑地址与物理地址之间的关系。

本发明实施例中,在执行粒度转换后,映射关系状态可能包括:所有映射关系全部位于所述第一粒度映射树(小粒度映射树)、所有映射关系全部位于所述第二粒度映射树(大粒度映射树)、或者第一部分映射关系位于所述第一粒度映射树而所有映射关系中除所述第一部分映射关系之外的剩余部分位于所述第二粒度映射树上;其中,所述映射关系为逻辑地址与物理地址之间的关系。当主机有I/O命令(即需要查询逻辑地址对应的物理地址)时,可根据映射关系状态分别从不同映射树上查询数据;可选地,通过LUN元数据记录当前映射关系状态,如当记录为0表示所有映射关系全部位于第一粒度映射树(小粒度映射树)(如LUN刚创建,物理空间分配少);当记录为1表示所有映射关系全部位于第二粒度映射树(大粒度映射树)(如LUN物理空间分配完成,小粒度全都转换成大粒度);当记录为2表示映射关系部分(如第一部分映射关系)位于第一粒度映射树(小粒度映射树)而所有映射关系中除所述第一部分映射关系之外的剩余部分位于第二粒度映射树(大粒度映射树)。图5为本发明映射关系查询示意图,如图5所示,根据映射关系状态分别从不同映射树上查询数据;当映射关系并存时(即第一部分映射关系位于所述第一粒度映射树而所有映射关系中除所述第一部分映射关系之外的剩余部分位于所述第二粒度映射树),根据策略读取映射关系;可选地,由于大粒度映射树查询速度快,可优先查询大粒度映射树(即第二粒度映射树);可选地,还可采用顺序表记录某个映射关系位于第一粒度映射树还是第二粒度映射树上,如:每位表示大小粒度,0表示位于第一粒度映射树(小粒度映射树)上,1表示第二粒度映射树(大粒度映射树)上。可见,本发明实施例中可快速地查询映射关系。

本发明实施例中,当确定需要进行粒度转换时,根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间;其中,所述第一粒度逻辑地址空间的分配状态为所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态;所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态;所述第一逻辑地址空间包括至少两个逻辑地址单元;所述第一逻辑地址空间对应的物理地址空间为第一物理地址空间,所述第一物理地址空间对应的空间划分粒度为第一粒度,所述第一物理地址空间包括至少两个物理地址单元;所述第一逻辑地址空间中的逻辑地址单元个数等于所述第一物理地址空间中的物理地址单元个数;进一步地,将所述第一物理地址空间中的数据迁移到第二物理地址空间;其中,所述第二物理地址空间对应的空间划分粒度为第二粒度,所述第一粒度小于所述第二粒度;从而使连续的逻辑地址空间对应的物理地址空间也连续,可减少访盘时间和次数,从而提升访问性能;同时,由于将小粒度转换为大粒度对元数据进行管理,可减小元数据所占物理空间和元数据复杂度,缩减主机I/O访问时查询和修改元数据的时间和次数,从而提升访问性能。

图6为本发明空间管理方法实施例二的流程示意图,本实施例为在图2B实施例的基础上,如图6所示,本实施例的方法可以包括:

S601、当确定需要进行粒度转换时,根据第一粒度映射树判断所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间,并将所述每个逻辑地址单元的分配状态记录到所述迁移树。

本发明实施例中,可选地,通过所述迁移树包含的不同关键字分别表示如图4所示第三逻辑地址空间及第四逻辑地址空间的分配状态,具体详见本发明上述实施例,此处不再赘述。

S602、根据迁移树中包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间,若所述第一逻辑地址空间中包括的所述至少两个逻辑地址单元中已分配到物理地址空间的个数大于等于第一粒度转换阈值,则确定所述第一逻辑地址空间需要进行粒度转换。

本发明实施例中,可选地,根据所述迁移树包含的不同关键字(即所述第一粒度逻辑地址空间的分配状态)判断需要进行粒度转换的逻辑地址空间,若所述第一逻辑地址空间中包括的所述至少两个逻辑地址单元中已分配到物理地址空间的个数大于等于第一粒度转换阈值,则确定所述第一逻辑地址空间需要进行粒度转换,所述如图4所示,假设第一粒度转换阈值为7,所述第三逻辑地址空间中包含的8个逻辑地址单元中已分配到物理地址空间的个数为8,因此,可确定所述第三逻辑地址空间需要进行粒度转换;所述第四逻辑地址空间中包含的8个逻辑地址单元中已分配到物理地址空间的个数为6,因此,可确定所述第四逻辑地址空间不需要进行粒度转换。可选地,如图4所示,还可根据所述关键字(二进制)中包含1的比例确定需要进行粒度转换的逻辑地址空间,如将关键字中包含1的比例与一预设阈值(如90%)比较,若某一关键字中包含1的比例大于所述预设阈值则确定所述关键字对应的逻辑地址空间需要进行粒度转换,否则,不用进行粒度转换。

S603、将所述第一逻辑地址空间的分配状态记录到第二粒度映射树,并根据所述第二粒度映射树中包含的所述第一逻辑地址空间的分配状态获得所述第一物理地址空间的大小。

本发明实施例中,可选地,通过将所述第一逻辑地址空间(如图2A所示的逻辑地址空间A)对应的关键字插入第二粒度映射树的方式实现将所述第一逻辑地址空间的分配状态记录到第二粒度映射树,其中,所述第一逻辑地址空间对应的关键字包含所述第一逻辑地址空间的分配状态;所述关键字组成结构同本发明上述实施例中所述,此处不再赘述;进一步地,根据所述第二粒度映射树中包含的所述第一逻辑地址空间对应的关键字(即所述第一逻辑地址空间的分配状态)获得所述第一物理地址空间的大小。

S604、根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间,并将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到所述第二物理地址空间。

本发明实施例中,可选地,还包括:所述第二粒度映射树中插入所述第一逻辑地址空间与所述第二物理地址空间之间的映射关系(即修改所述第二粒度映射树中的映射状态)。

S605、删除所述第一粒度映射树上关于所述第一逻辑地址空间与物理地址空间之间的映射关系、删除所述迁移树以及释放所述所述第一物理地址空间。

S606、当需要查询逻辑地址对应的物理地址时,根据映射关系状态分别从不同映射树上查询数据。

图7为本发明空间管理方法实施例三的流程示意图,本实施例为在图2B实施例的基础上,如图7所示,本实施例的方法可以包括:

S701、粒度转换任务启动。

S702、构建迁移树。

本发明实施例中,可选地,可通过触发定时器以使后台扫描按照本发明上述任意实施例中构建迁移树的方式构建迁移树,此处不再赘述。

S703、根据所述迁移树中关键字判断所述关键字对应的逻辑地址空间是否满足数据迁移条件;若是,则执行步骤S704,否则,执行步骤S705。

本发明实施例中,若所述关键字对应的逻辑地址空间中包括的所述至少两个逻辑地址单元中已分配到物理地址空间的个数大于等于第一粒度转换阈值或者所述关键字中包含1的比例大于所述预设阈值,则所述关键字对应的逻辑地址空间满足数据迁移条件,否则,不满足。

S704、将所述关键字插入大粒度映射树上,根据所述关键字为所述逻辑地址空间分配大粒度物理地址空间,并将小粒度物理地址空间(所述关键字对应逻辑地址空间对应的物理地址空间)中的数据迁移到所述大粒度物理地址空间,然后执行步骤S706。

S705、遍历所述迁移树中下一个关键字。

S706、删除小粒度映射树上关于所述逻辑地址空间与物理地址空间之间的映射关系,以及释放所述所述小粒度物理地址空间。

S707、迁移是否完成,若是,则执行步骤S708;否则,执行步骤S705。

S708、删除迁移树。

图8为本发明空间管理装置实施例一的结构示意图,如图8所示,本实施例提供的空间管理装置80可以包括:确定模块801及迁移模块802。

其中,确定模块801用于当确定需要进行粒度转换时,根据第一粒度逻辑地址空间的分配状态确定需要进行粒度转换的第一逻辑地址空间;

其中,所述第一粒度逻辑地址空间的分配状态为所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间的状态;所述第一粒度逻辑地址空间的分配状态包括所述第一逻辑地址空间的分配状态;所述第一逻辑地址空间包括至少两个逻辑地址单元;所述第一逻辑地址空间对应的物理地址空间为第一物理地址空间,所述第一物理地址空间对应的空间划分粒度为第一粒度,所述第一物理地址空间包括至少两个物理地址单元;所述第一逻辑地址空间中的逻辑地址单元个数等于所述第一物理地址空间中的物理地址单元个数;

迁移模块802用于将所述第一物理地址空间中的数据迁移到第二物理地址空间;其中,所述第二物理地址空间对应的空间划分粒度为第二粒度;所述第一粒度小于所述第二粒度。

可选地,所述确定模块801,包括:

判断单元,用于根据所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间;

确定单元,用于若所述第一逻辑地址空间中包括的所述至少两个逻辑地址单元中已分配到物理地址空间的个数大于等于第一粒度转换阈值,则确定所述第一逻辑地址空间需要进行粒度转换。

可选地,所述判断单元具体用于:

根据迁移树中包含的所述第一粒度逻辑地址空间的分配状态判断需要进行粒度转换的逻辑地址空间。

可选地,所述确定模块801,还包括:

第一记录单元,用于根据第一粒度映射树判断所述第一粒度逻辑地址空间中包括的每个逻辑地址单元是否已分配到物理地址空间,并将所述每个逻辑地址单元的分配状态记录到所述迁移树;其中,所述第一粒度映射树包括所述第一粒度逻辑地址空间的分配状态,所述第一粒度逻辑地址空间的分配状态包括所述每个逻辑地址单元的分配状态。

可选地,所述迁移模块802,包括:

分配单元,用于根据所述第一物理地址空间的大小为所述第一逻辑地址空间分配第二物理地址空间;

迁移单元,用于将所述第一物理地址空间包括的所述至少两个物理地址单元中的数据迁移到所述第二物理地址空间。

可选地,所述迁移模块802,还包括:

第二记录单元,用于将所述第一逻辑地址空间的分配状态记录到第二粒度映射树;

获取单元,用于根据所述第二粒度映射树中包含的所述第一逻辑地址空间的分配状态获得所述第一物理地址空间的大小。

可选地,所述迁移模块802,还包括:

释放单元,用于释放所述所述第一物理地址空间。

可选地,所述迁移模块802,还包括:

删除单元,用于删除所述迁移树。

可选地,所述空间管理装置,还包括:

查询模块,用于当需要查询逻辑地址对应的物理地址时,根据映射关系状态分别从不同映射树上查询数据;其中,所述映射关系状态包括:所有映射关系全部位于所述第一粒度映射树、所有映射关系全部位于所述第二粒度映射树、或者第一部分映射关系位于所述第一粒度映射树而所有映射关系中除所述第一部分映射关系之外的剩余部分位于所述第二粒度映射树;所述映射关系为逻辑地址与物理地址之间的关系。

可选地,所述确定模块具体用于:

确定逻辑单元号LUN已分配物理地址空间达到第二粒度转换阈值或者确定业务处于闲时段。

本实施例的空间管理装置,可以用于执行本发明上述空间管理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。

图9为本发明空间管理装置实施例二的结构示意图,如图9所示,本实施例提供的空间管理装置90可以包括处理器901和存储器902。空间管理装置90还可以包括数据接口单元903,该数据接口单元903可以和处理器901相连。其中,数据接口单元903用于接收/发送数据,存储器902用于存储执行指令。当空间管理装置90运行时,处理器901与存储器902之间通信,处理器901调用存储器902中的执行指令,用以执行上述空间管理方法实施例中的操作。

本实施例的空间管理装置,可以用于执行本发明上述空间管理方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1