一种全闪存存储系统的访问方法及装置与流程

文档序号:18617521发布日期:2019-09-06 22:10阅读:220来源:国知局
一种全闪存存储系统的访问方法及装置与流程

本申请涉及存储领域,尤其涉及一种全闪存存储系统的访问方法及装置。



背景技术:

全闪存存储系统中,使用ssd(solidstatedrives,固态磁盘)组成raid(redundantarrayofindependentdisks,独立磁盘冗余阵列),用户可以通过基于raid创建的lun(logicalunit,逻辑单元),访问阵列中的物理空间。lun接收的访问请求可以包括读请求与写请求,现有技术中的读请求读取数据或写请求写入数据的逻辑地址即物理地址,访问请求进入lun后下发至cache,cache可以对逻辑地址连续(即物理地址连续)的顺序访问请求进行预读与合并,而对逻辑地址不连续(即物理地址不连续)的随机访问请求,cache无法进行有效的预读与合并,一般是直接下发至raid进行处理。

这种情况下,raid在处理随机读写请求时,需要先按照raid条带拆分读写请求,并判断拆分后的读写请求是否与正在处理的读写请求存在条带冲突,及写请求的大小是否以条带对齐。存在条带冲突的多个访问请求需要串行执行,而未以条带对齐的写请求将触发写惩罚,进行多次回读与校验写,因此将降低随机写请求的处理效率。此外,如果需要频繁修改某逻辑地址存储的数据,对应的物理空间的ssd磨损将比其他物理空间严重,因而无法保证ssd的磨损均衡,将降低ssd的使用寿命和存储系统的稳定性。



技术实现要素:

有鉴于此,本申请提供一种全闪存存储系统的访问方法及装置,技术方案如下:

一种全闪存存储系统的访问方法,其特征在于,包括:

接收访问请求;

判断接收的访问请求的读写类型;

在接收的访问请求为写请求的情况下,确定当前待分配条带是否存在空闲的物理空间;若是,从所述空闲的物理空间中选择所述写请求所需的物理空间并分配给所述写请求,若否,从已有的任一空条带选择所述写请求所需的物理空间并分配给所述写请求。

一种全闪存存储系统的访问装置,其特征在于,包括:

请求接收模块,用于接收访问请求;

类型判断模块,用于判断接收的访问请求的读写类型;

空间分配模块,用于在接收的访问请求为写请求的情况下,确定当前待分配条带是否存在空闲的物理空间;若是,从所述空闲的物理空间中选择所述写请求所需的物理空间并分配给所述写请求,若否,从已有的任一空条带选择所述写请求所需的物理空间并分配给所述写请求。

本申请所提供的技术方案,全闪存存储系统在处理写请求时,无论逻辑地址是否连续,即为顺序写请求或者随机写请求,均以条带为单位进行物理空间分配,即当前条带的物理空间完全分配后,再分配下一条带,从而使无论顺序写请求或随机写请求,均变为物理空间以条带为单位连续的顺序写请求,因此存储系统的cache可以对顺序写请求进行有效的合并后,再下发至存储系统的raid进行处理。cache将顺序写请求合并后的大小,为一个或多个条带的大小,且顺序写请求的数据均写入新的物理空间,因而下发至raid进行处理时,将不存在条带冲突也不会触发写惩罚进行回读,可以提高随机写请求的处理效率。此外,无论是追加写或者修改写均会分配新的物理空间,使raid中每块ssd磁盘写入数据量相同,因此可以保证ssd的磨损均衡。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。此外,本申请中的任一实施例并不需要达到上述的全部效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是全闪存存储系统处理随机写请求的一种流程示意图;

图2是本申请全闪存存储系统的访问方法的流程示意图;

图3是本申请的实施例中全闪存存储系统创建lun的流程示意图;

图4是本申请的实施例中全闪存存储系统的访问方法的流程示意图;

图5是本申请的实施例中全闪存存储系统的第一种存储空间示意图;

图6是本申请的实施例中全闪存存储系统的第二种存储空间示意图;

图7是本申请的实施例中全闪存存储系统的第三种存储空间示意图;

图8是本申请的实施例中全闪存存储系统的第四种存储空间示意图;

图9是本申请全闪存存储系统的访问装置的结构示意图。

具体实施方式

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

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

全闪存存储系统中采用ssd代替传统的hdd(harddiskdrive,硬盘),组成raid的磁盘全部为ssd,从而通过磁盘性能的提高,降低访问请求的延时,提高单位时间内的访问效率。

但是,面向hdd设计的输入输出io栈可能无法充分发挥ssd的性能,如图1所示为全闪存存储系统处理写请求的一种流程示意图,如图1所示,写请求进入lun后将下发至cache,写请求的逻辑地址即物理地址,因此根据逻辑地址可以直接确定写入数据的物理空间。如果该写请求为顺序写请求,即该写请求与之前或之后的多个写请求,写入数据的物理空间是连续的,cache可以对这几个顺序写请求进行合并,然后将合并后的写请求下发至raid进行处理。如果该写请求与之前或之后的多个写请求,写入数据的物理空间是不连续的,即该写请求为随机写请求,而cache的存储空间远小于raid的存储空间,对于随机读写请求的命中率较低,因此无法有效地进行合并,该随机写请求一般将被直接下发至raid进行处理。

该未进行合并的随机写请求进入raid后,raid首先需要判断该写请求是否与正在处理的请求针对同一条带,即是否存在条带冲突,对于存在条带冲突的请求,需要串行处理,即如果该写请求与正在处理的其他访问请求针对同一条带,则需等待条带冲突的访问请求处理完成后,再处理该写请求。此外,开始处理该写请求时,首先需要判断其是否以条带对齐,如果该写请求未以条带对齐,则需要读取已有的数据及奇偶校验信息,然后再按照raid的算法计算奇偶校验信息,并写入新的数据及奇偶校验信息。

由此可见,全闪存存储系统在处理随机写请求时,仍存在较大的延时,因而无法充分发挥ssd的性能,提高访问请求的处理效率。此外,全闪存存储系统中的ssd需要保证磨损均衡,才能保证ssd的使用寿命及存储系统的稳定性。但如果某一逻辑地址(即物理地址)指向的物理空间中存入的数据,需要被频繁地修改,则无法保证ssd各物理空间之间的磨损均衡。

为了避免上述技术问题,本申请提供一种全闪存存储系统的访问方法,参见图2所示,该方法可以包括以下步骤:

s201,接收访问请求;

s202,判断接收的访问请求的读写类型;

s203,在接收的访问请求为写请求的情况下,确定当前待分配条带是否存在空闲的物理空间;若是,从所述空闲的物理空间中选择所述写请求所需的物理空间并分配给所述写请求,若否,从已有的任一空条带选择所述写请求所需的物理空间并分配给所述写请求。

全闪存存储系统接收的访问请求可以是读请求,也可以是写请求,因此接收访问请求后,需要对读写类型进行判断。如果该访问请求为写请求,在本申请方案中,对于写入数据物理空间连续的顺序写请求、与不连续的随机写请求,均以条带为单位分配物理空间,在当前分配的条带的物理空间均分配完之后,再分配下一空条带的物理空间,从而将随机写请求也变为物理空间连续的顺序写请求。此外,在确定当前待分配条带是否存在空闲的物理空间后,可以进一步确定该空闲的物理空间是否大于所述写请求所需的物理空间,若是,从所述空闲的物理空间中选择所述写请求所需的物理空间并分配给所述写请求,若否,将所述空闲的物理空间分配给所述写请求,并从已有的任一空条带选择所述写请求所需的剩余的物理空间并分配给所述写请求,即将所述写请求的写入数据拆分后,写入分配的位于2个条带的物理空间。

在本申请的一种具体实施方式中,为接收的各个写请求分配连续的物理空间,即将随机写请求也变为顺序写请求后,则可以对顺序写请求进行合并,如将顺序写请求下发至cache,根据前面所述,对于物理空间连续的顺序写请求,cache可以进行有效的合并,即根据为接收的写请求分配的条带物理空间的顺序,合并至少一个接收的写请求,得到至少一个条带大小的合并写请求,再将该合并写请求下发至raid进行处理。该合并写请求进入raid后,则可以将合并写请求中任一写请求的写入数据,写入为该写请求分配的物理空间。由于该合并写请求中的各个写请求的物理空间是连续的,不存在条带冲突,从而可以减小raid处理随机写请求的延时,并且由于cache是根据raid中条带的大小合并写请求,因此raid进行处理,以条带对齐的合并写请求不需要回读已有数据及奇偶校验信息,也可以提高raid处理随机写请求的效率。

本申请方案中,为随机写请求顺序分配物理空间后,该写请求的逻辑地址与物理地址将可能是不同的地址,因而在本申请的一种具体实施方式中,可以在存储系统中预先分配私有数据区,将存储系统各个逻辑地址与物理地址的对应关系,存入该私有数据区,以便后续接收到针对已分配的逻辑地址的修改写请求或读请求时,可以获得正确的物理地址。

由于存储系统接收到的写请求无论追加写或者修改写,均为其分配新的物理空间,因此在确定修改写请求的数据可以写入新的物理空间后,可以将之前为修改前的数据分配的旧物理空间回收。即在为接收的写请求顺序分配与前一写请求连续的物理空间后,进一步地根据存储系统预先分配的私有数据区中存储的、接收的写请求的逻辑地址与物理地址的对应关系,回收该物理地址指向的该写请求的旧物理空间。并且更新私有数据区中的存储,即将接收的写请求的逻辑地址、与所述顺序分配的物理空间的物理地址(即新的物理地址)的对应关系,存入所述私有数据空间中。可以理解的是,本申请方案中对于回收旧物理空间、与更新私有数据区的存储这2步骤的执行顺序,不需要进行限定,本领域的技术人员可以在实际应用时灵活地设置。

此外,当存储系统为接收到的写请求不断地分配新的物理空间,并回收旧物理空间后,将产生大量的碎片空间,因此存储系统需要对碎片空间进行检测,并整理磁盘中的物理空间。在本申请的一种具体实施方式中,可以检测未满条带;在检测到存在至少2个未满条带的情况下,分配至少1个新的空条带;将所述未满条带中的数据顺序写入分配的空条带后,回收所述未满条带的物理空间,从而得到可以用于后续分配的多个满条带空间。

上述为本申请方案中存储系统接收到写请求后的处理方式,在本申请的一种具体实施方式中,存储系统在接收到访问请求为读请求的情况下,可以进一步地确定接收的读请求的逻辑地址;根据私有数据区中存储的逻辑地址与物理地址的对应关系,获得接收的读请求的逻辑地址对应的物理地址;从获得的物理地址指向的物理空间中读取数据。

下面通过一个具体实施例对图2所示流程进行详细描述:

首先,如图3所示,全闪存存储系统在创建lun,将为每个lun分别分配私有数据区和物理数据区,并且分别分配相应的高速缓存cache。私有数据区中存储该lun的逻辑地址与物理地址之间的对应关系,物理数据区存储用户通过写请求写入的数据。

在接收到访问请求后,可以按照如图4所示的流程进行处理。

访问请求进入lun后,如果该访问请求为修改写请求或读请求,则私有数据区中已存储了其逻辑地址对应的物理地址,首先可以到获取该访问请求的物理地址,如果该访问请求为追加写请求,则根据其逻辑地址在私有数据区中将不会获取到该访问请求的物理地址。

然后可以判断该访问请求的读写类型,如果为读请求,则直接下发至物理数据区的cache后,进一步下发至raid进行处理,根据之前获取的物理地址,按照raid的算法读取数据。读取数据后即可返回该读请求,响应发送该读请求的用户端。

如果为写请求,例如存储系统连续接收到逻辑地址为l4、l5、l3、l1的4个写请求,可以认为前2个写请求为顺序写请求,后2个写请求为随机写请求。可以通过row(redirectonwrite,重定向写)技术,为接收到的各个写请求--无论追加写请求或修改写请求--以条带为单位分配新的物理空间,如恰好分配同一条带的p1、p2、p3、p4,从而使无论顺序写请求或者随机写请求,均变为物理地址连续的顺序写请求。再将该写请求逻辑地址、与顺序分配的物理空间的物理地址,对应地存入私有数据区,即l4对应p1、l5对应p2、l3对应p3、l1对应p4,便可以在后续修改或者读取时确定数据在磁盘中的位置。并且此时再将顺序写请求下发至物理数据区的cache,cache则可以根据条带大小,合并下发的4个顺序写请求后,下发至raid进行处理。

假设4个顺序写请求恰好得到1个合并写请求,4个写请求处理完成后,存储系统的存储空间可以如图5所示。raid处理这4个写请求时,由于其写入数据,将写入新分配的物理空间p1、p2、p3、p4,因而与正在处理的访问请求不存在条带冲突,并且经cache合并后将以条带对齐,不需要回读已有数据及奇偶校验信息,因此将提高raid处理随机写请求的效率。此外,写请求被下发至cache后,即可以返回该写请求,响应发送该写请求的用户端,而无需等待raid串行处理及回读操作后的处理结果,因而也可以提高响应用户端的随机写请求的效率。

如上面所述,存储系统在处理追加写请求与修改写请求时也存在区别,下面通过一个具体实施例进行详细描述:

如图6所示,为存储系统处理追加写请求后的存储空间示意图,存储系统的逻辑区块l1与l2中已写入了数据a与数据b,当接收的写请求需要在l4中写入数据d时,存储系统可以为其顺序分配物理空间p3写入数据d,并将l4与p3对应存入私有数据区。如图7所示,为存储系统处理修改写请求后的存储空间示意图,存储系统的逻辑区块l1、l2及l4分别写入数据a、b、d后,当接收的写请求需要将l1中的数据a改为数据a’,存储系统可以为其顺序分配物理空间p4写入数据a’,并将物理空间p1回收。

由此可知,如果需要频繁修改某逻辑地址存储的数据,由于存储系统将为修改写请求顺序分配新的物理空间,即每一次修改时该逻辑地址对应的物理地址可能均不相同,从而避免某物理空间的磨损比其他物理空间严重,保证ssd磁盘的磨损均衡,提高ssd磁盘的使用寿命和存储系统的稳定性。

当逻辑区块中的数据不断地被修改,物理空间将产生较多的如图7中的p1所示的碎片空间,对此,存储系统可以启用一个后台进程整理物理空间。如图8所示,物理空间p1至p4、p5至p8及p9至p12分别组成raid的3个条带,且其中p3、p4、p5、p6中分别写入了有效数据c、d、e、f,而p1、p2、p7、p9已被回收,因而分别产生了2个非满条带,p1、p2、p7、p9为碎片空间。再整理物理空间时,可以将有效数据c、d、e、f分别写入p9、p10、p11、p12,从而得到p9至p12组成的1个已写入有效数据且无碎片空间的满条带,及p1至p4及p5至p8组成的2个可以被重新分配的空闲满条带空间。

相应于上述方法实施例,本申请还提供一种全闪存存储系统的访问装置,参见图9所示,该装置可以包括:

请求接收模块110,用于接收访问请求;

类型判断模块120,用于判断接收的访问请求的读写类型;

空间分配模块130,用于在接收的访问请求为写请求的情况下,确定当前待分配条带是否存在空闲的物理空间;若是,从所述空闲的物理空间中选择所述写请求所需的物理空间并分配给所述写请求,若否,从已有的任一空条带选择所述写请求所需的物理空间并分配给所述写请求。

在本申请的一种具体实施方式中,该装置可以进一步包括:

请求合并模块,用于根据为接收的写请求分配的条带物理空间的顺序,顺序合并至少一个接收的写请求,得到至少一个条带大小的合并写请求;

数据写入模块,用于将得到的合并写请求中任一写请求的写入数据,写入为该写请求分配的物理空间。

在本申请的一种具体实施方式中,该装置可以进一步包括:

空间回收模块,用于根据存储系统预先分配的私有数据区中存储的、所述写请求的逻辑地址与物理地址的对应关系,回收该物理地址指向的该写请求的旧物理空间;

关系存储模块,用于将所述写请求的逻辑地址、与所述顺序分配的物理空间的物理地址的对应关系,存入所述私有数据空间中。

在本申请的一种具体实施方式中,所述装置还可以包括:条带检测模块,用于检测未满条带;

所述空间分配模块130,还用于在检测到存在至少2个未满条带的情况下,分配至少1个新的空条带;

所述空间回收模块,还可以用于将所述未满条带中的数据顺序写入分配的空条带后,回收所述未满条带的物理空间。

在本申请的一种具体实施方式中,该装置可以进一步包括:

地址确定模块,用于在接收的访问请求为读请求的情况下,确定所述读请求的逻辑地址;根据私有数据区中存储的逻辑地址与物理地址的对应关系,获得接收的读请求的逻辑地址对应的物理地址,所述私有数据区为存储系统预先分配的数据空间;

数据读取模块,用于从获得的物理地址指向的物理空间中读取数据。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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