首页> 中国专利> 基于Thin‑LUN的存储空间配置方法、数据写入方法及存储设备

基于Thin‑LUN的存储空间配置方法、数据写入方法及存储设备

摘要

本申请提供一种基于Thin‑LUN的存储空间配置方法,该方法应用于存储系统,该方法包括:获取存储系统的Thin‑LUN中各逻辑地址块的逻辑地址映射的更新频率;按照更新频率的大小顺序将逻辑地址映射划分成不同等级的更新频段的逻辑地址映射区段;将Thin‑LUN对应的物理存储空间划分成多个存储空间片区,多个所述存储空间片区包括若干个固定存储空间片区,各所述固定存储空间片区与各逻辑地址映射区段具有映射关系,该方法可减少由于写入频率差异大的数据在碎片整理时的数据移动次数,降低碎片产生概率,减小碎片数量,并且可提高存储系统的读写性能和使用寿命。

著录项

  • 公开/公告号CN107239412A

    专利类型发明专利

  • 公开/公告日2017-10-10

    原文格式PDF

  • 申请/专利权人 杭州宏杉科技股份有限公司;

    申请/专利号CN201710463925.3

  • 发明设计人 陈武雄;

    申请日2017-06-19

  • 分类号G06F12/0804(20160101);

  • 代理机构11415 北京博思佳知识产权代理有限公司;

  • 代理人林祥

  • 地址 310053 浙江省杭州市滨江区西兴街道阡陌路482号A楼第11层至12层

  • 入库时间 2023-06-19 03:28:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-07

    授权

    授权

  • 2017-11-07

    实质审查的生效 IPC(主分类):G06F12/0804 申请日:20170619

    实质审查的生效

  • 2017-10-10

    公开

    公开

说明书

技术领域

本申请涉及存储领域,尤其涉及一种存储空间配置技术。

背景技术

LUN(Logical Unit Number,逻辑单元号,又称为逻辑单元或逻辑卷)是在存储系统中可以被上层用户或客户端识别的独立存储单元(可称为逻辑存储单元),一个LUN的存储空间(可称为逻辑存储空间)来源于存储池,存储池具有物理存储空间,该物理存储空间来源于组成硬盘域的若干块硬盘,从应用服务器层面上看,一个LUN可被视作类似一块可以使用的硬盘,一个LUN可以划分成多个逻辑地址块,每个逻辑地址块具有编号,该编号可称为逻辑地址;物理存储空间用于实际存储数据,可将物理存储空间分成多个物理区块,每个物理区块均具有物理地址,也可称为PBA(Physics Block Address,物理区块地址)。

传统的LUN(Thick-LUN)在创建时会一次性将与LUN的逻辑存储空间容量相等的物理存储空间分配给LUN。Thin-LUN指采用按需分配的方式为Thin-LUN分配物理存储空间,可以设置一个初始分配容量,创建时,不会为Thin-LUN分配全部容量的物理存储空间,而只会分配初始容量大小的物理存储空间,剩余容量的物理存储空间还放在存储池中,当Thin-LUN已分配的物理存储空间的使用率达到阈值的时候,会再从存储池中划分一定的配额的物理存储空间给Thin-LUN,如此反复直到达到Thin-LUN最初设定的全部容量,并且当上层用户或者客户端对数据删除后释放相应的物理存储空间,可对物理存储空间进行回收,这里回收指物理存储空间可以被其他Thin-LUN使用,从而实现物理存储空间的反复利用,可提升物理存储空间的利用率。

Thin-LUN中通常包括地址映射模块和物理空间管理模块,地址映射模块用于负责建立Thin-LUN的逻辑地址块的逻辑地址到对应的物理区块的物理地址的映射,响应来自上层用户或者客户端的读写IO请求或者unmap命令等进行数据的读写或物理存储空间的释放等;物理空间管理模块用于为Thin-LUN分配物理存储空间或者回收物理存储空间等。

通常Thin-LUN在接到写IO请求时,根据写IO请求中携带的逻辑地址查找是否存在与该逻辑地址对应的映射,如果存在,则在对应物理地址的物理区块中写入数据,即当写入数据时,会在已存在映射的物理区块中写入数据,由于根据各个IO请求查找到的映射对应的物理区块连续的机率很低,因此,对于写数据而言是随机写入的,这样容易产生物理存储空间的碎片,物理存储空间利用率低,为此,现有一种改进写入数据的方法,Thin-LUN在根据写IO请求查找到映射后,删除该映射,通知物理空间管理模块,回收删除的映射对应的物理区块,并从大块的连续物理存储空间中分配一块物理区块,新建立分配的物理区块的物理地址与逻辑地址的映射,然后在对应的物理区块中写入数据,这样可保证每次分配的物理区块与上一次分配的物理区块在物理存储空间上是连续的,那么不管写IO请求中的逻辑地址是顺序的还是随机的,最后写入物理存储空间中的数据都是按顺序连续的,对写IO的性能有很大的提升。

该改进方法在实际应用时,Thin-LUN的各逻辑地址块的数据写入(指通过写IO请求在物理区块实际写入数据)频率有较大差异,有些逻辑地址块的数据长时间不会更新,有些逻辑地址块的会频繁写入数据,而目前所有数据在物理存储空间都是连续写入的,而频繁写入数据的逻辑地址块,每次需要为该逻辑地址块重新分配一块物理存储空间以写入数据,这样之前该逻辑地址块对应的物理区块可能会变成碎片,而碎片整理时需要移动碎片附近的物理区块中的数据,而这些数据可能是很少更新的数据,会因为碎片整理被移动,移动之后与频繁更新的数据放在一起,又会因为碎片整理产生新的碎片而再次被移动,在这种情况下,造成很少更新的数据被动的频繁移动,碎片产生概率提高,碎片数量增加。

发明内容

有鉴于此,本申请提供一种基于Thin-LUN的存储空间管理方法,用以降低存储空间碎片产生概率,减少碎片数量。

具体地,本申请是通过如下技术方案实现的:

本申请提供一种基于Thin-LUN的存储空间配置方法,该方法应用于存储系统,所述方法包括:

获取存储系统的Thin-LUN中各逻辑地址块的逻辑地址映射的更新频率;

按照更新频率的大小顺序将所述逻辑地址映射划分成不同等级的更新频段的逻辑地址映射区段;

将Thin-LUN对应的物理存储空间划分成多个存储空间片区,多个所述存储空间片区包括若干个固定存储空间片区,各所述固定存储空间片区与各所述逻辑地址映射区段具有映射关系。

可选的,所述不同等级的更新频段为预先配置的,或者所述不同等级的更新频段为通过统计已经获取的各所述更新频率获得。

可选的,多个所述存储空间片区还包括共享存储空间片区;

所述将Thin-LUN对应的物理存储空间划分成多个存储空间片区之后,还包括:

获取各所述固定存储空间片区中未写入数据的存储空间的比例;

对于所述比例小于比例阈值的所述固定存储空间片区,从所述共享存储空间片区中划分预设存储空间到所述比例小于比例阈值的固定存储空间片区中。

可选的,多个所述存储空间片区还包括共享存储空间片区;

所述将Thin-LUN对应的物理存储空间划分成多个存储空间片区之后,还包括:

获取各所述固定存储空间片区中未写入数据的存储空间的比例和所述共享存储空间片区的容量;

当所述共享存储空间片区的容量小于容量阈值时,对于所述比例小于比例阈值的所述固定存储空间片区,按照各所述固定存储空间片区对应的逻辑地址映射区段的更新频段的等级与所述比例小于比例阈值的固定存储空间片区对应的逻辑地址映射区段的更新频段的等级的接近程度,从所述比例大于比例阈值的固定存储空间片区中的未写入数据的存储空间中划分预设存储空间到所述比例小于比例阈值的固定存储空间片区中。

可选的,多个所述存储空间片区还包括共享存储空间片区;

所述将Thin-LUN对应的物理存储空间划分成多个存储空间片区之后,还包括:

当Thin-LUN中逻辑地址块中数据被删除时,释放与数据被删除的逻辑地址块的逻辑地址映射对应的存储空间;

将所述释放的存储空间划分到之前所述释放的存储空间所在的固定存储空间片区中,并检测其中未写入数据的存储空间的比例;

如果所述比例大于比例阈值,则将所述释放的存储空间所在的固定存储空间片区中的预设存储空间划分到所述共享存储空间片区。

可选的,所述将Thin-LUN对应的物理存储空间划分成多个存储空间片区之后,还包括:

根据获取的各所述固定存储空间片区中的碎片数量,对各所述固定存储空间片区中的各碎片进行整理。

可选的,所述根据获取的各所述固定存储空间片区中的碎片数量,对各所述固定存储空间片区进行碎片整理,具体包括:

获取各所述固定存储空间片区中的数据被删除的存储空间的物理地址;

根据各所述固定存储空间片区中数据被删除且物理地址不连续的存储空间的数量,将各所述固定存储空间片区中的所述物理地址不连续的存储空间合并成物理地址连续的存储空间。

根据本申请的第一方面,提供一种基于Thin-LUN的数据写入方法,所述方法应用于存储系统,所述方法包括:

存储系统的Thin-LUN响应写IO请求,根据所述写IO请求携带的逻辑地址查找对应的逻辑地址映射,所述逻辑地址映射为Thin-LUN中各逻辑地址块与存储系统中的存储空间之间的映射;

当所述逻辑地址映射存在时,删除所述逻辑地址映射,并回收所述逻辑地址映射对应的存储空间;

获取所述逻辑地址对应的逻辑地址映射的更新频率,根据所述更新频率查找所述更新频率对应等级更新频段的逻辑地址映射区段;

从所述对应等级更新频段的逻辑地址映射区段对应的固定存储空间片区中的未写入数据的连续存储空间中分配存储空间,新建立所述分配的存储空间与所述逻辑地址的映射并将所述逻辑地址对应的逻辑地址映射的更新频率增加,且将所述写IO中携带的待写入数据写入所述分配的存储空间。

根据本申请的第三方面,提供一种存储设备,所述存储设备应用于存储系统,所述存储设备包括存储器和处理器,所述存储器中存储有多条指令,所述指令适于由处理器加载并执行上述所述的方法。

根据上述技术方案,本申请提供的基于Thin-LUN的存储空间配置方法,根据逻辑地址块的逻辑地址映射的更新频率的大小顺序对物理存储空间进行划分,位于一个更新频段的逻辑地址映射的更新频率是按照顺序排列的,按照更新频率的大小顺序划分成若干个逻辑地址映射区段,这样使更新频率近似的逻辑地址映射与相同的存储空间具有映射关系,而更新频率近似的逻辑地址映射即代表逻辑地址块写入数据的频率,使相近频率的写入数据位于连续的存储空间中,可减少由于写入频率差异大的数据在碎片整理时的数据移动次数,降低碎片产生概率,减小碎片数量,并且可提高存储系统的读写性能和使用寿命。

附图说明

图1是本申请提供的一种相关技术中的Thin-LUN接收到各写IO的表格;

图2(a)-图2(h)是本申请提供的一种相关技术中的存储系统数据写入过程中的存储空间布局示意图;

图3是本申请提供的一种实施方式中的基于Thin-LUN的存储空间配置方法的流程图;

图4是本申请提供的另一种实施方式中的基于Thin-LUN的存储空间配置方法的流程图;

图5是本申请提供的又一种实施方式中的基于Thin-LUN的存储空间配置方法的流程图;

图6是本申请提供的一种实施方式的基于Thin-LUN的数据写入方法的流程图;

图7(a)-图7(f)是本申请提供的一种的存储系统数据写入过程中的存储空间布局示意图;

图8是本申请一种实施方式提供的存储设备的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在存储系统中,基于Thin-LUN的数据读写方法,存在碎片产生概率高,碎片数据多的问题,下面参照图1-图2(h)对相关技术提供一种基于Thin-LUN的数据写入方法进行描述。

如图1和图2(a)所示,当Thin-LUN依次接收到四个写IO请求,记为写IO1、写IO2、写IO3和写IO4,各写IO请求中分别携带有逻辑地址a、b、c和d(该逻辑地址也就是逻辑地址块的逻辑地址),并且分别携带待写入数据A、B、C和D,Thin-LUN根据写IO请求中携带的逻辑地址查找不存在与该逻辑地址对应的映射,此时,在物理存储空间中依次为各逻辑地址分配一块存储空间(即物理存储空间),且存储空间地址连续,并依次将待写入数据写入地址连续的存储空间中,具体的,如图2(a)中所示,依次为逻辑地址a-d分配当前待写入数据(以下简称数据)A所在的存储空间(以下称为物理区块)至数据D所在的存储空间,并建立逻辑地址a与对应存储空间(图中数据A所在的物理区块)的映射、逻辑地址b与数据B所在的物理区块的映射、逻辑地址c与数据C所在的物理区块的映射和逻辑地址d与数据D所在的物理区块的映射,然后依次将数据A-D写入对应的物理区块。

如图2(b)所示,之后Thin-LUN接收到写IO5和写IO6,分别携带有逻辑地址b和d,并且分别携带数据X和Y,经过查找存在逻辑地址b和d的映射,此时,删除之前的映射,并且释放数据B和D所在的物理区块,而原来数据D所在的物理区块后面存在大块的连续存储空间(即物理地址连续的物理区块),为逻辑地址b和d从大块的连续存储空间中分别分配两块物理区块,并重新建立逻辑地址b与数据X所在的物理区块的映射和逻辑地址d与数据Y所在的物理区块的映射,依次将数据X和数据Y写入对应的物理区块。

从图2(b)中可以看出,写入数据X和数据Y之后,原来数据B和数据D所在的两块物理区块被释放,变成空闲存储空间,即写入过数据的不连续的物理区块可能变成碎片,由于这些碎片不满足大块的连续存储空间的要求,无法将其分配给后续写入的数据,此时,进行碎片整理,如图2(c)所示,将数据A和数据C移动到数据X和数据Y的物理区块后面的物理区块中,并重新建立逻辑地址a和c与对应物理区块的物理地址的映射。

如图2(d)所示,之后Thin-LUN接收到写IO7、写IO8和写IO9,分别携带有逻辑地址b、d和c,并且分别携带数据O、P和Q,数据写入原理同上此处不再赘述,依次将数据O、P和Q写入对应的物理区块,然后,再次进行碎片整理,如图2(e)所示,将数据A移动数据O、P和Q的物理区块后面的物理区块中,并重新建立逻辑地址a的映射。

如图2(f)所示,之后Thin-LUN接收到写IO10和写IO11,分别携带有逻辑地址b和c,并且分别携带待写入数据I和J,依次将写入对应的物理区块。

如图2(g)所示,之后Thin-LUN接收到写IO12携带有逻辑地址b,并且携带数据K,将数据K写入对应的物理区块,然后,再次进行碎片整理,如图2(h)所示,将数据A和数据P移动到数据J和数据K的物理区块后面的物理区块中,并重新建立逻辑地址a和d的映射。

数据在物理存储空间都是连续写入的,当存储空间碎片数量达到一定数量时,需要进行碎片整理,由上述数据写入和碎片整理的过程可见,对应逻辑地址a的物理区块只写入了一次数据A,但是数据A在碎片整理过程中被移动动了两次,这样,造成很少更新的数据A被动的频繁移动,碎片产生概率提高,碎片数量增加。

基于上述相关技术,本发明实施例提供一种基于Thin-LUN的存储空间配置方法,该方法应用于存储系统,该存储系统包括LUN和存储池,LUN是存储系统中可以被上层用户或客户端识别的独立存储单元,LUN的存储空间(可称为逻辑存储空间)来源于存储池,一个LUN可以划分成多个逻辑地址块,每个逻辑地址块具有编号,该编号可称为逻辑地址;存储池具有物理存储空间,物理存储空间用于实际存储数据,可将物理存储空间分成多个物理区块,每个物理区块均具有物理地址,也可称为PBA。

如图3所示,本发明实施例提供的基于Thin-LUN的存储空间配置方法,包括以下步骤:

步骤10、获取存储系统的Thin-LUN中各逻辑地址块的逻辑地址映射的更新频率。

Thin-LUN是在存储系统中可以被上层用户或客户端识别的独立存储单元,Thin-LUN包括多个逻辑地址块,每个逻辑地址块具有逻辑地址,Thin-LUN中通常包括地址映射模块,用于负责建立Thin-LUN的逻辑地址块的逻辑地址到对应的物理区块的物理地址的映射,该映射可称为逻辑地址映射。

存储系统通常会反复多次写入数据,Thin-LUN中的有些逻辑地址块可能需要反复写入数据,对数据进行更新,即多个先后的写IO请求中可能携带同一个逻辑地址。

Thin-LUN接收到写IO请求后,根据写IO请求中携带的逻辑地址块的逻辑地址(以下简称逻辑地址)查找是否存在与该逻辑地址对应的逻辑地址映射,如果存在,删除该逻辑地址映射,并回收之前被删除的逻辑地址映射对应的物理区块,从大块的连续物理存储空间中分配一块物理区块,新建立分配的物理区块的物理地址与逻辑地址的逻辑地址映射,然后在对应的物理区块中写入数据。

这样,同一个逻辑地址块的逻辑地址映射可能会被多次删除,然后再重新建立,本步骤中,逻辑地址映射的更新频率指同一个逻辑地址块的逻辑地址映射被删除后再重新建立的更新次数,每当逻辑地址映射被删除再重新建立一次称为更新一次,更新频率越大说明该逻辑地址映射对应的逻辑地址块被写入数据的次数越多。

步骤11、按照更新频率的大小顺序将所述逻辑地址映射划分成不同等级的更新频段的逻辑地址映射区段。

由于不同逻辑地址块的逻辑地址映射的更新频率不同,可据此划分成若干个逻辑地址映射区段,每个区段包括位于一个等级更新频段的若干个逻辑地址映射,更新频段指位于两个更新频率之间的一个区间,更新频段的等级代表更新频率的大小,等级越高更新频率越大,例如,Thin-LUN有100个逻辑地址块,每个逻辑地址块的逻辑地址映射更新频率从0-100,可将该100个逻辑地址块分为3个逻辑地址映射区段,将更新频率0至更新频率30作为第一等级更新频段,更新频率31至更新频率60作为第二等级更新频段,更新频率61至更新频率100作为第三等级更新频段,这样更新频率为1的逻辑地址映射至更新频率为30的逻辑地址映射位于同一个逻辑地址映射区段(记为第一映射区段),更新频率为31的逻辑地址映射至更新频率为60的逻辑地址映射位于另一个逻辑地址映射区段(记为第二映射区段),更新频率为61的逻辑地址映射至更新频率为100的逻辑地址映射位于又一个逻辑地址映射区段(记为第三映射区段)。

当然,这里只是举例说明,实际中,更新频率不一定是连续的,更新频段可根据实际需要进行设置。可以按照更新频率从小到到或者从大到小的顺序将逻辑地址映射划分成不同更新频率的逻辑地址映射区段。

步骤12、将Thin-LUN对应的物理存储空间划分成多个存储空间片区,多个所述存储空间片区包括若干个固定存储空间片区,各所述所述固定存储空间片区与各所述逻辑地址映射区段具有映射关系。

Thin-LUN对应的物理存储空间可指从存储系统的存储池中已经为Thin-LUN分配的物理存储空间,可包括Thin-LUN创建时为其分配的初始分配容量的物理存储空间和之后为其分配的物理存储空间。

将该物理存储空间或分成若干个存储空间片区,可以是两个或者三个或者三个以上,这些存储空间片区包括若干个固定存储空间片区。固定存储空间片区与逻辑地址映射区段具有映射关系指固定存储空间片区的数量与逻辑地址映射区段的数量相同,并且,固定存储空间片区包括的物理存储空间(物理区块)只能与其有映射关系的逻辑地址映射区段中包含的逻辑地址建立上述的逻辑地址映射,而不能与其没有映射关系的逻辑地址映射区段中包含的逻辑地址建立逻辑地址映射。

例如,包括3个固定存储空间片区,记为第一片区、第二片区和第三片区,第一片区与映射区段之间具有映射关系,则,第一映射区段中的各逻辑地址只能与第一片区中各物理区块建立映射,同理,第二映射区段中的各逻辑地址只能与第二片区中的各物理区块建立映射,第三映射区段中的各逻辑地址只能与第三片区中的各物理区块建立映射。当Thin-LUN接收到写IO请求后,根据写IO请求中携带的逻辑地址块的逻辑地址x查找存在与该逻辑地址x对应的逻辑地址映射,并且该逻辑地址映射的更新频率为10,根据该更新频率可知位于第一映射区段,然后,删除该逻辑地址映射,并回收之前被删除的逻辑地址映射对应的物理区块,并从第一片区中的大块连续的物理存储空间中分配一块物理区块,新建立分配位于第一片区的物理区块的物理地址与逻辑地址x的逻辑地址映射,然后在对应的物理区块中写入数据,并且,将逻辑地址x的逻辑地址映射的更新频率增加1。并且,如果更新后的逻辑地址x的逻辑地址映射的更新频率还是位于原来的逻辑地址映射区段,还是按照原来的逻辑地址映射区段与对应的固定存储空间片区建立映射关系,如果更新后的逻辑地址x的逻辑地址映射的更新频率不再位于原来的逻辑地址映射区段,而根据更新后的更新频率所在的逻辑地址映射区段与对应的固定存储空间片区建立映射关系,面举例说明:

当Thin-LUN接收到写IO请求后,根据写IO请求中携带的逻辑地址块的逻辑地址x查找存在与该逻辑地址x对应的逻辑地址映射,并且该逻辑地址映射的更新频率为30,根据该更新频率可知位于第一映射区段,然后,删除该逻辑地址映射,并回收之前被删除的逻辑地址映射对应的物理区块,从与第一映射区段存在映射关系的第一片区中的大块连续的物理存储空间中分配一块物理区块,新建立分配位于第一片区的物理区块的物理地址与逻辑地址x的逻辑地址映射,然后在对应的物理区块中写入数据,并且,将逻辑地址x的逻辑地址映射的更新频率增加1,更新频率为31,当之后的写IO请求中再次携带逻辑地址x时,根据该更新频率可知位于第二映射区段,然后,删除该逻辑地址映射,并回收之前被删除的逻辑地址映射对应的物理区块,并从第二片区中的大块连续的物理存储空间中分配一块物理区块,新建立分配位于第二片区的物理区块的物理地址与逻辑地址x的逻辑地址映射,然后在对应的物理区块中写入数据,并且,将逻辑地址x的逻辑地址映射的更新频率增加1,更新频率变为32。

本实施中,根据逻辑地址块的逻辑地址映射的更新频率的大小顺序对物理存储空间进行划分,位于一个更新频段的逻辑地址映射的更新频率是按照顺序排列的,按照更新频率的大小顺序划分成若干个逻辑地址映射区段,这样使更新频率近似的逻辑地址映射与相同的存储空间具有映射关系,而更新频率近似的逻辑地址映射即代表逻辑地址块写入数据的频率,使相近频率的写入数据位于连续的存储空间中,可减少由于写入频率差异大的数据在碎片整理时的数据移动次数,降低碎片产生概率,减小碎片数量,并且可提高存储系统的读写性能和使用寿命。

在一个可选的实施方式中,上述的不同等级的更新频段为预先配置的,或者上述的不同等级的更新频段为通过统计已经获取的各更新频率获得。

更新频段用于将个逻辑地址映射划分成逻辑地址映射区段,更新频段可根据需要预先配置,例如,更新频率1至更新频率30作为一个更新频段,更新频率31至更新频率60作为一个更新频段,更新频率61至更新频率100作为一个更新频段。

或者更新频段可以通过对已经获取的各更新频率进行统计,然后根据统计出的各更新频率计算获取更新频段,例如,目前获取的各更新频率包括1-10、35、38、39-45、61、62、90-100,根据这些更新频率,可将目前的逻辑地址映射划分成三个更新频段的逻辑地址映射区段,更新频率1至更新频率40作为一个更新频段,更新频率41至更新频率70作为一个更新频段,更新频率71至更新频率100作为一个更新频段。当然,以上只是举例说明,在应用时可根据经验配置和获取更新频段。

在一个可选的实施方式中,多个存储空间片区还包括共享存储空间片区;

上述的步骤12之后,如图4所示,还可以包括:

步骤13、获取各固定存储空间片区中未写入数据的存储空间的比例;

步骤14、对于所述比例小于比例阈值的所述固定存储空间片区,从共享存储空间片区中划分预设存储空间(该预设存储空间可根据实际需要设置,例如,可以是共享存储空间片区总容量的一定比例的存储空间)到比例小于比例阈值的固定存储空间片区中。

本实施例中,多个存储空间片区除了固定存储空间片区,还包括共享存储空间片区,可以作为对固定存储空间片区的存储空间动态调整的存储空间,各固定存储空间片区的容量可以相同或者不相同,存储空间指上述的若干个物理区块组成的物理存储空间,各固定存储空间片区或者共享存储空间片区可以包括若干个物理区块。在存储系统运行时,会不断有数据写入各固定存储空间片区的存储空间中,或者从各固定存储空间片区的存储空间中读取数据等,各固定存储空间片区中已经被数据写入的存储空间可能存在差异,基于目前的Thin-LUN,当有固定存储空间片区中未写入数据的存储空间的比例小于比例阈值(可根据实际需要设定该比例阈值的大小,例如,可以为10%)时,也就是未写入数据的空闲空间的比例过小,会影响后续数据的再次写入,此时,可从共享存储空间片区中划分一定的存储空间到该固定存储空间片区中,对其进行扩容,以便更好地利用各固定存储空间片区。

在一个可选的实施方式中,多个存储空间片区还包括共享存储空间片区;

上述的步骤12之后,还可以包括:

步骤15、获取各固定存储空间片区中未写入数据的存储空间的比例和共享存储空间片区的容量;

步骤16、当所述共享存储空间片区的容量小于容量阈值时,对于所述比例小于比例阈值的所述固定存储空间片区,按照各固定存储空间片区对应的逻辑地址映射区段的更新频段的等级与比例小于比例阈值的固定存储空间片区对应的逻辑地址映射区段的更新频段的等级的接近程度,从比例大于比例阈值的固定存储空间片区中的未写入数据的存储空间中划分预设存储空间到比例小于比例阈值的固定存储空间片区中。

本实施例中,关于共享存储空间片区的描述可参见上述实施例的描述,由于共享存储空间片区会将其中的存储空间根据需要划分给各固定存储空间片区中,所以共享存储空间片区的容量可能会逐步减小,当小于容量阈值(该容量阈值可根据实际需要设置)时,此时,共享存储空间片区的容量可能不满足固定存储空间片区对于存储空间的需求,而其他固定存储空间片区的未写入数据的空闲空间剩余较多,即未写入数据的存储空间的比例大于比例阈值的固定存储空间片区,此时,可从其他固定存储空间片区中划分一定的存储空间给剩余空闲空间较小的固定存储空间片区,即未写入数据的存储空间的比例小于比例阈值的固定存储空间片区。并且,在划分时,按照更新频率的等级,优选的从与空闲空间较小的固定存储空间片区对应的逻辑地址映射区段的等级最接近的定存储空间片区中划分一定的存储空间到空闲空间较小的固定存储空间片区中,例如,第一片区为比例小于比例阈值的固定存储空间片区,第二片区和第三片区中的未写入数据的存储空间的比例大于均比例阈值,此时,优选的是从第二片区中划分一定的存储空间到第一片区中,如果第二片区中的未写入数据的存储空间的比例小于比例阈值,可从第三片区中划分一定的存储空间到第一片区中。

在一个可选的实施方式中,多个存储空间片区还包括共享存储空间片区;

上述的步骤12之后,如图5所示,还可以包括:

步骤17、当Thin-LUN中逻辑地址块中数据被删除时,释放与数据被删除的逻辑地址块的逻辑地址映射对应的存储空间;

步骤18、将释放的存储空间划分到之前释放的存储空间所在的固定存储空间片区中,并检测其中未写入数据的存储空间的比例;

步骤19、如果比例大于比例阈值,则将释放的存储空间所在的固定存储空间片区中的预设存储空间划分到共享存储空间片区。

本实施例中,当上层用户或客户端删除Thin-LUN的逻辑地址块中的数据时,可释放与该逻辑地址块的逻辑地址映射对应的存储空间,释放后该存储空间可再次利用,可首选将该释放的存储空间划分到之前该存储空间所在的固定存储空间片区,并检测该存储空间片区的未写入数据的存储空间的比例,当比例大于比例阈值时,可释放掉一部分存储空间(可能是多余的存储空间)划分到共享存储空间片区,以供其他固定存储空间片区利用多余的存储空间。

在一个可选的实施方式中,上述的步骤12之后,还可以包括:

步骤20、根据获取的各固定存储空间片区中的碎片数量,对各固定存储空间片区进行碎片整理。

本实施例中,可对各固定存储空间片区中的各存储空间进行扫描,检测各固定存储空间片区中的碎片数量,当碎片达到一定数量时,对各碎片进行碎片整理,以更好地利用存储空间,碎片数量达到多少进行碎片整理可根据实际需要设置。

在一个可选的实施例方式中,上述步骤20具体可以包括以下步骤:

步骤201、获取各固定存储空间片区中的数据被删除的存储空间的物理地址;

步骤202、根据各固定存储空间片区中数据被删除且物理地址不连续的存储空间的数量,将各固定存储空间片区中的物理地址不连续的存储空间合并成物理地址连续的存储空间。

本实施例中,Thin-LUN会多次接收写IO请求,多次写IO请求中可能会携带相同的逻辑地址,在根据写IO请求写入数据时,会根据逻辑地址查找对应的逻辑地址映射是否存在,当存在时,删除该逻辑地址映射,从大块的连续物理存储空间中分配一块物理区块,新建立分配的物理区块的物理地址与逻辑地址的逻辑地址映射,然后在对应的物理区块中写入数据,这样之前被删除的逻辑地址映射对应的物理区块(即存储空间)中的之前写入的数据会被删除,数据被删除的存储空间就变为空闲空间,该存储空间可以重新写入数据,但是这样的存储空间可能其物理地址是不连续的,这些存储空间变成了碎片,当碎片的数量较多时,也就是物理地址不连续的存储空间数量较多时,可进行碎片整理,本实施例中,进行碎片整理时,将作为碎片的若干个物理区块合并成物理地址连续的存储空间,在合并时,可通过上面实施例中描述的,通过移动物理区块中的数据当时合并,可将物理地址不连续的物理区块中的数据移动到物理地址连续的各物理区块中,这样作为碎片的物理区块即可构成物理地址连续的存储空间。

本发明实施例还提供一种基于Thin-LUN的数据写入方法,该方法应用于存储系统,如图6所示,该方法包括以下步骤:

步骤30、存储系统的Thin-LUN响应写IO请求,根据所述写IO请求携带的逻辑地址查找对应的逻辑地址映射,所述逻辑地址映射为Thin-LUN中各逻辑地址块与存储系统中的存储空间之间的映射;

步骤31、当逻辑地址映射存在时,删除该逻辑地址映射,并回收该逻辑地址映射对应的存储空间;

回收存储空间指将该存储空间收回到存储系统的存储池,该存储空间可以被其他Thin-LUN使用,从而可实现物理存储空间的反复利用。

步骤32、获取逻辑地址对应的逻辑地址映射的更新频率,根据更新频率查找更新频率对应等级更新频段的逻辑地址映射区段;

步骤33、从对应等级更新频段的逻辑地址映射区段对应的固定存储空间片区中的未写入数据的连续存储空间中分配存储空间,新建立分配的存储空间与逻辑地址的映射并将逻辑地址对应的逻辑地址映射的更新频率增加,且将写IO中携带的待写入数据写入所述分配的存储空间。

本实施例中,是基于上述的存储空间配置方法形成存储系统对数据进行写入的过程,该数据写入方法可减少由于写入频率差异大的数据在碎片整理时的数据移动次数,降低碎片产生概率,减小碎片数量。

下面结合附图说明采用本实施例的数据写入方法时,写入数据的过程:

根据不同逻辑地址块的逻辑地址映射的更新频率,划分成三个逻辑地址映射区段,分别记为第一映射区段、第二映射区段和第三映射区段,物理存储空间划分成多个存储空间片区,分别记为第一片区、第二片区和第三片区,其中,逻辑地址块a的逻辑地址映射位于第一映射区段,逻辑地址块b和c的逻辑地址映射位于第三映射区段,逻辑地址块d的逻辑地址映射位于第二映射区段,第一映射区段中的各逻辑地址只能与第一片区中各物理区块建立映射,第二映射区段中的各逻辑地址只能与第二片区中的各物理区块建立映射,第三映射区段中的各逻辑地址只能与第三片区中的各物理区块建立映射。

Thin-LUN接收的写IO请求如图1所示,如图7(a)所示,开始Thin-LUN接收到四个写IO请求,记为写IO1、写IO2、写IO3和写IO4,各写IO请求中分别携带有逻辑地址a、b、c和d(该逻辑地址也就是逻辑地址块的逻辑地址),并且分别携带待写入数据A、B、C和D,此时,假设逻辑地址a的逻辑地址映射的更新频率为0,逻辑地址b和c的逻辑地址映射的更新频率均为65,逻辑地址d的逻辑地址映射的更新频率为32。

对于逻辑地址a从第一片区中分配一块物理区块(图中数据A所在的物理区块),并建立逻辑地址a与数据A所在的物理区块的物理地址的映射,并将逻辑地址a的逻辑地址映射的更新频率增加1,更新频率变为1;对于逻辑地址b和c从第三片区中分别分配一块物理区块,为图中数据B和C所在的物理区块,并建立新的逻辑地址映射,即建立逻辑地址b与数据B所在的物理区块的物理地址的映射,逻辑地址c与数据C所在的物理区块的物理地址的映射,分别将二者的逻辑地址映射的更新频率增加1,更新频率变为66;对于逻辑地址d从第二片区中分配一块物理区块,为图中数据D所在的物理区块,并建立新的逻辑地址映射,即建立逻辑地址d与数据D所在的物理区块的物理地址的映射,并将其的逻辑地址映射的更新频率增加1,更新频率变为33。

如图7(b)所示,之后Thin-LUN接收到写IO5和写IO6,分别携带有逻辑地址b和d,并且分别携带数据X和Y,数据写入原理同上此处不再赘述,将数据X写入第三片区中的物理区块,将数据Y写入第二片区中的物理区块,然后,进行碎片整理,与相关技术中碎片整理不同的时,此时,如图7(c)所示,只在各自的片区中进行碎片整理,对于第一片区不需要进行碎片整理,对于第二片区,将数据Y移动到第二片区的起始物理区块中,并重新建立逻辑地址b的逻辑地址映射,对于第三片区,将位于相同第三片区的数据C和数据X进行碎片整理,将数据X移动到数据C的物理区块前面的物理区块中,并重新建立逻辑地址b的逻辑地址映射,碎片整理后原来数据C所在的物理区块与其他未写入数据的物理区块形成连续的存储空间,由于数据Y和数据A所在的物理区块与对应逻辑地址块的逻辑地址映射对应的固定存储空间片区分别为第一片区和第二片区,与第三片区为不同的片区,因此,在碎片整理时,并不将数据Y和数据A移动到第三片区。

如图7(d)所示,之后Thin-LUN接收到写IO7、写IO8和写IO9,分别携带有逻辑地址b、d和c,并且分别携带数据O、P和Q,对于逻辑地址b和c的逻辑地址映射的更新频率均为66,从第三片区中分别分配两块连续的物理区块,为图中数据O和Q所在的物理区块,删除原来的逻辑地址映射,并建立新的逻辑地址映射,即建立逻辑地址b与数据O所在的物理区块的物理地址的映射,逻辑地址c与数据Q所在的物理区块的物理地址的映射,分别将二者的逻辑地址映射的更新频率增加1,更新频率变为67;对于逻辑地址d的逻辑地址映射的更新频率为33,从第二片区中分配一块物理区块,为图中数据P所在的物理区块,删除原来的逻辑地址映射,并建立新的逻辑地址映射,即建立逻辑地址d与数据P所在的物理区块的物理地址的映射,并将其的逻辑地址映射的更新频率增加1,更新频率变为34。

如图7(e)所示,之后Thin-LUN接收到写IO10和写IO11,分别携带有逻辑地址b和c,并且分别携带数据I和J,对于逻辑地址b和c的逻辑地址映射的更新频率均为67,从第三片区中分别分配两块连续的物理区块,为图中数据I和J所在的物理区块,删除原来的逻辑地址映射,并建立新的逻辑地址映射,即建立逻辑地址b与数据I所在的物理区块的物理地址的映射,逻辑地址c与数据J所在的物理区块的物理地址的映射,分别将二者的逻辑地址映射的更新频率增加1,更新频率变为68。

如图7(f)所示,之后Thin-LUN接收到写IO12,携带有逻辑地址b,并且携带数据k,对于逻辑地址b的逻辑地址映射的更新频率为68,从第三片区中大块连续的存储空间中分别分配一块物理区块,为图中数据K所在的物理区块,删除原来的逻辑地址映射,并建立新的逻辑地址映射,即建立逻辑地址b与数据K所在的物理区块的物理地址的映射,将逻辑地址映射的更新频率增加1,更新频率变为69。

有上述描述可知,由于对于不同更新频率的逻辑地址映射划分成不同等级更新频段的逻辑地址映射区段,而相同等级更新频段的更新频率近似的逻辑地址映射与相同的存储空间具有映射关系,第一映射区段的更新频率较小,第二映射区段的更新频率中等,第三映射区段的更新频率最大,对应的第一片区的物理区块中写入数据的频率较小,第二片区中的物理区块写入数据的频率中等,第三片区中的物理区块写入数据的频率最大,由上述数据写入和碎片整理的过程可见,该过程中,对应逻辑地址a的位于第一片区中的存储空间只写入了一次数据,对应逻辑地址d的位于第二片区中的存储空间写入了两次数据,对应逻辑地址b和逻辑地址c的位于第三片区中的存储空间分别写入了五次数据和三次数据,在进行碎片整理时,按照上述相关技术的描述,数据A只写入一次,在碎片整理过程中确被移动动了两次,并且进行了三次碎片整理,而本实施例中,由于更新频率与存储空间对应,数据A在碎片整理时没有被移动过,且碎片整理的次数也只有一次,因此,减小了碎片整理时数据移动次数,降低碎片产生概率,减小碎片数量,并且可提高存储系统的读写性能和使用寿命。

本发明实施例还提供一种存储设备,该存储设备应用于存储系统,该存储设备包括存储器和处理器,存储器中存储有多条指令,该指令适于由处理器加载并执行上述实施例中的方法。

如图8所示,上述的存储设备可以用于现有存储系统,该存储系统还可以包括Thin-LUN和存储池,Thin-LUN是可以被上层用户或客户端识别的独立存储单元,包括若干个逻辑地址块,每个逻辑地址块具有编号,该编号可称为逻辑地址,存储池具有物理存储空间,该物理存储空间来源于组成硬盘域的若干块硬盘。

本实施例的存储设备可以是个人计算机,服务器,或者网络设备等,存储设备可以包括处理器和存储器,存储器可以为非易失性存储器(比如硬盘或者磁盘),还可以包括内存和内部总线等,存储器中存储多条指令,处理器可以将相应指令存储器读入内存中然后运行以执行上述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号