首页 / 专利库 / 专利权 / 发明 / 存储系统中数据恢复方法、系统及装置

存储系统中数据恢复方法、系统及装置

阅读:92发布:2021-04-11

专利汇可以提供存储系统中数据恢复方法、系统及装置专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供一种存储系统中数据恢复方法,将固态 硬盘 划分为多个故障域,每一个故障域用于为一定范围的SSD的逻辑地址提供物理地址,从而固态硬盘的故障域发生故障时,不需要对整个SSD中的数据重构。,下面是存储系统中数据恢复方法、系统及装置专利的具体信息内容。

1.一种存储系统中数据恢复方法,其特征在于,所述存储系统包括控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个故障域,所述存储系统包含基于纠删码算法构成的组,所述块组包含第一块和第二块;所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址;
所述方法包括:
所述控制器接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障;
响应于所述故障信息,所述控制器根据所述纠删码算法恢复所述块组中的所述第一块的地址中存储的数据。
2.根据权利要求1所述的方法,其特征在于,所述第一SSD和所述第二SSD中一个故障域为一个通道上连接的多个颗粒封装。
3.根据权利要求1所述的方法,其特征在于,所述第一SSD和所述第二SSD中一个故障域为一个或多个颗粒封装。
4.根据权利要求1所述的方法,其特征在于,所述第一SSD和所述第二SSD中一个故障域为一个或多个颗粒。
5.根据权利要求1所述的方法,其特征在于,所述第一SSD和所述第二SSD中一个故障域为一个或多个闪存片。
6.根据权利要求1-5任一所述的方法,其特征在于,所述存储系统存储所述第一故障域与所述块组的对应关系,以及所述第二故障域与所述块组的对应关系。
7.根据权利要求6所述的方法,其特征在于,所述响应于所述故障信息,包括:
所述控制器查询所述第一故障域与所述块组的对应关系确定所述块组。
8.根据权利要求1-5任一所述的方法,其特征在于,所述存储系统存储有所述第一块的地址与所述第一故障域的对应关系,以及所述第二块的地址与所述第二故障域的对应关系。
9.一种固态硬盘SSD管理方法,其特征在于,所述SSD包含第一故障域和第二故障域,所述方法包括:
为所述第一故障域分配所述SSD的第一范围的逻辑地址;
为所述第二故障域分配所述SSD的第二范围的逻辑地址。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
分别记录所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系。
11.根据权利要求9所述的方法,其特征在于,所述第一范围的逻辑地址和所述第二范围的逻辑地址均为连续的逻辑地址。
12.根据权利要求9所述的方法,其特征在于,所述第一范围的逻辑地址和所述第二范围的逻辑地址为不连续的逻辑地址。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述SSD向存储系统的控制器发送所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系;其中,所述存储系统包括所述SSD。
14.根据权利要求9所述的方法,其特征在于,所述SSD的一个故障域为一个通道上连接的多个颗粒封装。
15.根据权利要求9所述的方法,其特征在于,所述SSD的一个故障域为一个或多个颗粒封装。
16.根据权利要求9所述的方法,其特征在于,所述SSD的一个故障域为一个或多个颗粒。
17.根据权利要求9所述的方法,其特征在于,所述第一SSD和所述第二SSD中一个故障域为一个或多个闪存片。
18.一种存储系统,其特征在于,所述存储系统包括控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个故障域,所述存储系统包含基于纠删码算法构成的块组,所述块组包含第一块和第二块;所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址;
所述控制器用于:
接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障;
响应于所述故障信息,根据所述纠删码算法恢复所述块组中的所述第一块的地址中存储的数据。
19.根据权利要求18所述的存储系统,其特征在于,所述存储系统存储所述第一故障域与所述块组的对应关系,以及所述第二故障域与所述块组的对应关系;
所述控制器还用于查询所述第一故障域与所述块组的对应关系确定所述块组。
20.一种固态硬盘SSD,其特征在于,所述SSD包含SSD控制器、第一故障域和第二故障域;所述SSD控制器用于:
为所述第一故障域分配所述SSD的第一范围的逻辑地址;
为所述第二故障域分配所述SSD的第二范围的逻辑地址。
21.根据权利要求20所述的SSD,其特征在于,所述SSD控制器还用于:
分别记录所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系。
22.根据权利要求20所述的SSD,其特征在于,所述第一范围的逻辑地址和所述第二范围的逻辑地址均为连续的逻辑地址。
23.根据权利要求20所述的SSD,其特征在于,所述第一范围的逻辑地址和所述第二范围的逻辑地址为不连续的逻辑地址。
24.根据权利要求20所述的SSD,其特征在于,所述SSD控制器还用于:
向存储系统的控制器发送所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系;其中,所述存储系统包括所述SSD。
25.一种控制器,其特征在于,所述控制器应用于存储系统中,所述存储系统包括所述控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个故障域,所述存储系统包含基于纠删码算法构成的块组,所述块组包含第一块和第二块;所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址;
所述控制器包括:
接收单元,用于接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障;
恢复单元,用于响应于所述故障信息,根据所述纠删码算法恢复所述块组中的所述第一块的地址中存储的数据。
26.根据权利要求25所述的控制器,其特征在于,所述存储系统存储所述第一故障域与所述块组的对应关系,以及所述第二故障域与所述块组的对应关系;
所述控制器还包括查询单元,用于查询所述第一故障域与所述块组的对应关系确定所述块组。
27.一种固态硬盘SSD管理装置,其特征在于,所述SSD包含第一故障域和第二故障域;
所述SSD管理装置包括:
第一分配单元,用于为所述第一故障域分配所述SSD的第一范围的逻辑地址;
第二分配单元,用于为所述第二故障域分配所述SSD的第二范围的逻辑地址。
28.根据权利要求27所述的SSD管理装置,其特征在于,SSD管理装置还包括记录单元,用于分别记录所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系。
29.根据权利要求27所述的SSD管理装置,其特征在于,所述SSD管理装置还包括发送单元,用于向存储系统的控制器发送所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系;其中,所述存储系统包括所述SSD。
30.一种控制器,其特征在于,所述控制器应用于存储系统,所述存储系统包括所述控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个故障域,所述存储系统包含基于纠删码算法构成的块组,所述块组包含第一块和第二块;所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址;
所述控制器包含处理器和接口
所述接口,用于接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障;
所述处理器,用于响应于所述故障信息,根据所述纠删码算法恢复所述块组中的所述第一块的地址中存储的数据。
31.根据权利要求30所述的处理器,其特征在于,所述存储系统存储所述第一故障域与所述块组的对应关系,以及所述第二故障域与所述块组的对应关系;
所述处理器还用于查询所述第一故障域与所述块组的对应关系确定所述块组。
32.一种计算机程序产品,其特征在于,所述计算机程序产品包括应用于存储系统的计算机指令,所述存储系统包括控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个故障域,所述存储系统包含基于纠删码算法构成的块组,所述块组包含第一块和第二块;所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址;当所述控制器执行所述计算机指令,用于执行以下步骤:
接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障;
响应于所述故障信息,根据所述纠删码算法恢复所述块组中的所述第一块的地址中存储的数据。
33.根据权利要求32所述的计算机程序产品,其特征在于,当所述控制器执行所述计算机指令,还用于执行以下步骤:
查询所述第一故障域与所述块组的对应关系确定所述块组。
34.一种计算机程序产品,其特征在于,所述计算机程序产品包括应用于固态硬盘SSD的SSD控制器,所述SSD包含SSD控制器、第一故障域和第二故障域;当所述SSD控制器执行所述计算机指令,用于执行以下步骤:
为所述第一故障域分配所述SSD的第一范围的逻辑地址;
为所述第二故障域分配所述SSD的第二范围的逻辑地址。
35.根据权利要求34所述的计算机程序产品,其特征在于,当所述SSD控制器执行所述计算机指令,还用于执行以下步骤:
分别记录所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系。
36.根据权利要求34所述的计算机程序产品,其特征在于,当所述SSD控制器执行所述计算机指令,还用于执行以下步骤:
向存储系统的控制器发送所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系;其中,所述存储系统包括所述SSD。

说明书全文

存储系统中数据恢复方法、系统及装置

技术领域

[0001] 本发明涉及信息技术领域,特别涉及一种存储系统中数据恢复方法、系统及装置。

背景技术

[0002] 独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID)技术是存储系统中广泛使用的保证数据可靠性的技术,当存储系统发生硬盘损坏时,通过未损坏硬盘上数据和校验数据,可以重新计算出损坏硬盘上的数据,这样一个过程被称为RAID的重构。
[0003] 在固态硬盘(Solid State Disk,SSD)组成的基于RAID的存储系统中,如果重构速度为1太字节(Terabyte,TB)每5小时,那么一个容量为1TB的SSD发生局部故障,会消耗5小时;而如果SSD容量为100TB,那么重构时间将变为500小时。

发明内容

[0004] 第一方面,提供了一种存储系统中数据恢复方法,所述存储系统包括控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个故障域,所述存储系统包含基于纠删码算法构成的组,所述块组包含第一块和第二块;所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址;所述方法包括:所述控制器接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障;响应于所述故障信息,所述控制器根据所述纠删码算法恢复所述块组中的所述第一块的逻辑地址中存储的数据。所述第一SSD和所述第二SSD均包含多个故障域,但第一SSD和所述第二SSD的故障域的数量可以不同。因此,相较于现有技术,本发明实施例存储系统不需要重构发生故障SSD的全部逻辑地址中的数据,只需要重构该SSD中部分逻辑地址中的数据,该部分逻辑地址是指映射到发生故障的故障域中的物理地址的逻辑地址,从而提高了数据重构的速度。
[0005] 具体实现,所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址包括:所述第一块的地址为所述第一SSD的第一逻辑地址,所述第一逻辑地址映射到所述第一SSD的第一故障域提供的物理地址;所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址包括:所述第二块的地址为所述第二SSD的第二逻辑地址;所述第二逻辑地址映射到所述第二SSD的第二故障域提供的物理地址。在另一种实现,在支持开放通道(Open-Channel)的SSD场景中,所述第一块的地址为所述第一SSD的第一故障域提供的物理地址,所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址为所述第一块的地址直接映射到所述第一SSD的第一故障域提供的物理地址;所述第二块的地址为所述第二SSD的第二故障域提供的物理地址,所述第二块的地址直接映射到所述第二SSD的第二故障域提供的物理地址。另一种实现中,在Open-Channel的SSD场景中,本发明实施例也支持块地址与故障域提供的物理地址的间接映射。
[0006] 结合第一方面,在第一方面的某些实现方式中,所述存储系统存储有所述第一块的地址与所述第一故障域的对应关系,以及所述第二块的地址与所述第二故障域的对应关系。第一块的地址即第一SSD的第一逻辑地址,第二块的地址即第二SSD的第二逻辑地址。进一步的,存储系统存储有所述块组中包含的块与故障域的对应关系,例如,所述第一块属于第一故障域,所述第二块属于第二故障域。进一步的,存储系统还存储有故障域索引表,例如,故障域索引表包含故障域与块组的对应关系,因为同一个块组中包含来自不同SSD的故障域的块,所以在故障域索引表中,不同的故障域可以对应相同的块组。当某一个SSD的故障域发生故障,控制器根据该故障域索引表可以快速查找到受该故障域影响的块组,从而快速重构这些块组中受该故障域影响的块中的数据。
[0007] 可选的,所述第一SSD和所述第二SSD中一个故障域为一个通道上连接的多个颗粒封装,或者为一个或多个颗粒封装,或者为一个或多个颗粒,或者为一个或多个闪存片。
[0008] 结合第一方面,在第一方面的某些实现方式中,所述响应于所述故障信息,包括:所述控制器查询所述第一故障域与所述块组的对应关系确定所述块组。
[0009] 结合第一方面,在第一方面的某些实现方式中,所述存储系统存储有所述第一块的地址与所述第一故障域的对应关系,以及所述第二块的地址与所述第二故障域的对应关系。
[0010] 第二方面,提供了一种固态硬盘SSD管理方法,所述SSD包含第一故障域和第二故障域,所述方法包括:为所述第一故障域分配所述SSD的第一范围的逻辑地址;为所述第二故障域分配所述SSD的第二范围的逻辑地址。
[0011] 结合第二方面,在第二方面的某些实现方式中,所述方法还包括:分别记录所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系。
[0012] 结合第二方面,在第二方面的某些实现方式中,所述第一范围的逻辑地址和所述第二范围的逻辑地址均为连续的逻辑地址或者,所述第一范围的逻辑地址和所述第二范围的逻辑地址为不连续的逻辑地址。
[0013] 结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述SSD向存储系统的控制器发送所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系;其中,所述存储系统包括所述SSD。
[0014] 第三方面,本发明实施例提供了一种应用于存储系统的控制器,包括各单元,用于实现第一方面各种方案。
[0015] 第四方面,本发明实施例提供了一种SSD管理装置,包括各单元,用于实现第二方面各种方案。
[0016] 第五方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令用于执行第一方面的各种方法。
[0017] 第六方面,本发明实施例提供了一种包含计算机指令的计算机程序产品,该计算机指令用于执行第一方面的各种方法。
[0018] 第七方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令用于执行第二方面的各种方法。
[0019] 第八方面,本发明实施例提供了一种包含计算机指令的计算机程序产品,该计算机指令用于执行第二方面的各种方法。
[0020] 第九方面,本发明实施例提供了一种固态硬盘SSD,该SSD包含SSD控制器、第一故障域和第二故障域;该SSD控制器用于执行第二方面各种方案。
[0021] 第十方面,本发明实施例提供了一种应用于存储系统的控制器,控制器包含接口和处理器,用于实现第一方面各种方案。
[0022] 第十一方面,本发明实施例提供了提供了一种存储系统中数据恢复方法,所述存储系统包括控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个命名空间namespace,一个命名空间对应一个故障域,所述存储系统包含基于纠删码算法构成的块组,所述块组包含第一块和第二块;所述第一块的地址为所述第一SSD的第一命名空间的第一逻辑地址,所述第二块的地址为所述第二SSD的第二命名空间的第二逻辑地址;所述第一逻辑地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二逻辑地址映射到所述第二SSD的第二故障域提供的物理地址;所述方法包括:所述控制器接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障或所述第一命名空间发生故障;响应于所述故障信息,所述控制器根据所述纠删码算法恢复所述块组中的所述第一块的逻辑地址中存储的数据。
[0023] 第十二方面,提供了一种固态硬盘SSD管理方法,所述SSD包含第一故障域和第二故障域,所述方法包括:为所述第一故障域分配所述SSD的第一命名空间;为所述第二故障域分配所述SSD的第二命名空间。
[0024] 结合第二方面,在第二方面的某些实现方式中,所述方法还包括:分别记录所述第一故障域与所述命名空间的对应关系以及所述第二故障域与所述第二命名空间的对应关系。
[0025] 结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述SSD向存储系统的控制器发送所述第一故障域与所述第一命名空间的对应关系以及所述第二故障域与所述第二命名空间的对应关系;其中,所述存储系统包括所述SSD。
[0026] 结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述SSD向存储系统的控制器发送所述第一故障域与所述第一命名空间的逻辑地址对应关系以及所述第二故障域与所述第二命名空间的逻辑地址的对应关系;其中,所述存储系统包括所述SSD。附图说明
[0027] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
[0028] 图1为本发明实施例的存储系统示意图;
[0029] 图2为本发明实施例的存储阵列控制器结构示意图;
[0030] 图3为本发明实施例分布式存储系统示意图;
[0031] 图4为本发明实施例分布式存储系统中的服务器结构示意图;
[0032] 图5为本发明实施例SSD的结构示意图;
[0033] 图6为本发明实施例中SSD中故障域与逻辑地址关系示意图;
[0034] 图7为存储系统中块组关系示意图;
[0035] 图8为故障域索引表示意图;
[0036] 图9为namespace索引表示意图;
[0037] 图10为控制器结构示意图;
[0038] 图11为SSD管理装置结构示意图。

具体实施方式

[0039] 下面对本申请实施例中的技术方案进行更详细地描述。
[0040] 本发明实施例解决存储系统中SSD在出现部分组件局部故障时,基于SSD的故障域和SSD的物理空间对应的方式,将故障范围限制在故障域内,从而减少在存储系统侧的影响范围,减少重构的开销,能够对更少的存储空间花费更少的时间进行重构,从而获得可靠性的提升。
[0041] 如图1所示,本发明实施例中的存储系统,可以为存储阵列(如 的18000系列, V3系列)。存储阵列包括控制器101和多块
SSD。如图2所示,控制器101包含中央处理单元(Central Processing Unit,CPU)201、存储器202和接口203,存储器202中存储计算机指令,CPU201执行存储器202中的计算机指令对存储系统进行管理及数据访问操作、数据恢复等操作。另外,为节省CPU201的计算资原,现场可编程阵列(Field Programmable Gate Array,FPGA)或其他硬件也可以用于执行本发明实施例中CPU201全部操作,或者,FPGA或其他硬件与CPU201分别用于执行本发明实施例CPU201的部分操作。为方便描述,本发明实施例统一用处理器来指CPU201和存储器202的组合,以及上述各种实现,处理器与接口203通信。接口203可以为网络接口卡(Networking Interface Card,NIC)、主机总线适配器(Host Bus Adaptor,HBA)。
[0042] 进一步的,本发明实施例的存储系统还可以为分布式存储系统(如 的系列)等。以 的 系列。示例性的如图3所示,分布式块存储系统包括多台服务器,如服务器1、服务器2、服务器3、服务器4、服务器5和服务器6,服务器间通过InfiniBand或以太网络等互相通信。在实际应用当中,分布式块存储系统中服务器的数量可以根据实际需求增加,本发明实施例对此不作限定。
[0043] 分布式块存储系统的服务器中包含如图4所示的结构。如图4所示,分布式块存储系统中的每台服务器包含中央处理单元(Central Processing Unit,CPU)401、内存402、接口403、SSD 1、SSD 2和SSD 3,内存402中存储计算机指令,CPU401执行内存402中的程序指令执行相应的操作。接口403可以为硬件接口,如网络接口卡(Network Interface Card,NIC)或主机总线适配器(Host Bus Adaptor,HBA)等,也可以为程序接口模块等。另外,为节省CPU401的计算资原,现场可编程门阵列(Field Programmable Gate Array,FPGA)或其他硬件也可以代替CPU401执行上述相应的操作,或者,FPGA或其他硬件与CPU401共同执行上述相应的操作。为方便描述,本发明实施例将CPU401与内存402、FPGA及其他替代CPU401的硬件或FPGA及其他替代CPU401的硬件与CPU401的组合统称为处理器。接口403可以为网络接口卡(Networking Interface Card,NIC)、主机总线适配器(Host Bus Adaptor,HBA)。在分布式存储系统中,负责分布式存储系统中存储管理的服务器称为控制器。具体的,控制器用于执行存储空间管理,数据访问等。
[0044] SSD以页(page)为读写单元,以块(block)为擦除单元,SSD可以实现通道(channel)、颗粒封装(package)、闪存芯片、颗粒(die)、闪存片(plane)等多个级别的数据访问的并行。SSD以多通道方式组织闪存颗粒封装,每个通道上可连接多个颗粒封装,多颗粒封装之间共享传输通道,但可独立执行指令。SSD具体结构可参考图5,包含接口501、SSD控制器502、channel 503、封装504。其中,一个封装504中包含多个闪存芯片,每一个闪存芯片包含一个或多个颗粒,每一个颗粒包含多个闪存片,每一个闪存片包含多个块,每一个块包含多个页。其中,接口501可以是支持串行连接小型计算机系统接口(Serial Attached Small Computer System Interface,SAS)协议、非易失性内存快速(Non-Volatile Memory Express,NVMe)协议或者快速外设互联(Peripheral Component Interconnect Express,PCIe)协议的接口等。
[0045] SSD发生故障,通常只是SSD的部分元素发生故障,例如物理块等,而不是整个SSD发生故障。也就是说当SSD内部发生故障时,潜在的受该故障影响的范围并不是整个SSD,而是SSD的一部分,本发明实施例称这一潜在的受该故障影响的部分为故障域。根据SSD的结构,将SSD划分为多个故障域,例如,将一个通道上连接的多个颗粒封装作为一个故障域,或者将一个或多个颗粒作为一个故障域,或者将一个或多个闪存片作为一个故障域。本发明实施例中,SSD发生故障,则将故障域作为受该故障潜在影响的范围,需要对该发生故障的故障域中的数据进行恢复。实际应用场景中,SSD的故障域发生故障可以是该故障域整体发生故障,也可以是该故障域内部分发生故障。本发明实施例还可以将SSD的其他组件作为一个故障域,本发明实施例对此不作限定。SSD监控每一个故障域的状态。具体实现,SSD的控制器使用后台巡检等方式监控故障域的状态。SSD还可以根据每一个故障域内的物理块Block的擦除次数确定故障域的健康状态,即根据磨损度确定故障域的状态。
[0046] SSD对外以逻辑地址的形式提供存储空间。在SSD中,逻辑地址为逻辑块地址(Logical Block Address,LBA),SSD使用闪存转换层(Flash Translation Layer,FTL)将LBA映射到SSD的物理块上的页(page),并且建立LBA到页地址的映射关系。本发明实施例为解决在存储系统中,SSD发生故障要进行SSD全盘数据恢复的问题,SSD按照故障域配置LBA到页的映射。例如,1个SSD包含128个颗粒,SSD的可用容量为32TB,即可提供32TB的逻辑地址,或称为可提供32TB的地址空间。如果要将SSD发生故障影响的LBA范围限制在1TB大小,则故障域数量为32个,即32TB/1TB=32。本发明实施例中,SSD包含128个颗粒,则每个故障域中颗粒的数量为4个,即128/32=4个。如图6所示,SSD包含32个故障域,故障域标识分别为0-31。具体实现中,SSD可以使用数字或其他方式来标识故障域,本发明实施例对此不作限定。一种实现方式,每一个故障域对应的SSD一定范围的LBA,例如,故障域0对应的LBA范围为0~(1TB-1),故障域1对应的LBA为1TB~(2TB-1)……,故障域31对应的逻辑块地址范围为31TB~(32TB-1),即一个故障域对应的逻辑地址连续。上述也称为为故障域分配一定范围的逻辑地址,即一定范围的LBA。本发明实施例为故障域分配一定范围逻辑地址,也称为SSD基于FTL将一定范围逻辑地址映射到特定的故障域中的物理地址。本发明实施例中为故障域分配一定范围逻辑地址并不要求全部建立该一定范围的逻辑地址到该故障域中的物理地址的映射。一种实现方式,在需要建立该一定范围的逻辑地址中的特定逻辑块地址到物理地址的映射时,SSD再在该故障域中选择物理地址建立映射。本发明实施例另一种实现,仍然以上述SSD为例,每一个故障域中的LBA可以不连续,即一定范围逻辑地址可以是不连续的逻辑地址。例如将32TB的LBA划分为32份,以1吉字节(Gigabyte,GB)为粒度划分,每一个故障域为1TB的LBA提供物理地址,即故障域0对应的LBA为0~(1GB-1),故障域1对应的LBA为1~(2GB-1),故障域31对应的LBA为31GB~(32GB-1)。然后故障域0对应的LBA为0~(1GB-1),故障域31对应的LBA为32GB~(33GB-1)……,故障域31对应的LBA为63GB~(64GB-1),通过循环交错的方式建立故障域与LBA的对应关系,在这种实现方式中,一个故障域对应的LBA不连续。SSD存储上述LBA与故障域的映射关系。SSD向控制器101上报上述LBA与故障域的映射关系。
[0047] 本发明实施例,以图1所示的存储阵列作为存储系统为例,其中,SSD提供固定长度的块(Chunk,CK),控制器101根据使用冗余算法,例如纠删码(Erasure Coding,EC)算法,将分别来不同的SSD的Chunk组成块组(Chunk Group,CKG),具体实现,EC算法可以为RAID算法。如图7所示,CKG由CK1、CK2和CK3组成。CK1由SSD1提供,CK2由SSD2提供,CK3由SSD3提供。CK1的地址为SSD1的LBA1,CK2的地址为SSD2的LBA2,CK3的地址为SSD3的LBA3。其中,LBA1映射到SSD1的故障域1提供的物理地址,在此,称CK1的地址映射到SSD1的故障域1的提供的物理地址;LBA2映射到SSD2的故障域2提供的物理地址,LBA3映射到SSD3的故障域3提供的物理地址。本发明实施例中,从多个SSD选择CK组成CKG时,可以考虑根据基于负载决定提供CK的SSD的故障域。负载可以为输入输出(InputOutput,IO)的类型,IO冷热度等。其中一种实现,SSD将故障域与LBA的对应关系发送给控制器101,控制器101可以根据SSD的故障域与逻辑地址的对应关系确定CKG中每一个CK的逻辑地址对应的故障域。控制器101获取SSD的状态信息,例如,SSD1的故障域1发生故障,SSD1向控制器101发送故障信息,用于指示故障域1发生故障。由于控制器101根据SSD的故障域与逻辑地址的对应关系可以确定SSD1的故障域
1发生故障影响的LBA,存储阵列包含多个CKG,控制器101查找CKG中包含的CK的地址为映射到SSD1的故障域1的LBA。例如确定CKG1包含的CK1的地址为映射到SSD的故障域1的LBA。控制器101根据冗余算法,如EC算法,恢复CKG1中CK1的数据。因此,相较于现有技术,本发明实施例不需要重构SSD1所提供的全部逻辑地址对应的CK,提供了数据重构的速度。具体实现过程,可以将CK1中的数据恢复到SSD1的其他故障域或者其他SSD的中,本发明实施例对此不作限定。
[0048] 进一步的,SSD向控制器101上报上述LBA与故障域的映射关系,因此存储阵列存储有CKG中包含的CK的地址与故障域的对应关系,例如,第一CK属于第一故障域,第二CK属于第二故障域。进一步的,为了快速查找CKG中包含的CK的地址为映射到SSD1的故障域的LBA,根据LBA与故障域的映射关系,存储阵列还存储有故障域索引表,例如,故障域索引表包含故障域与CKG的对应关系,例如故障域标识与CKG标识的对应关系。因为同一个CKG中包含来自不同SSD的故障域的CK,所以在故障域索引表中,不同的故障域可以对应相同的CKG。当某一个SSD的故障域发生故障,控制器101根据该故障域索引表可以快速查找到受该故障域影响的CKG,从而快速重构这些CKG中受该故障域影响的CK中的数据。具体实现中,控制器101可以在创建CKG时,根据LBA与故障域的映射关系,在故障域索引表中记录相应的表项,表项中包含故障域与CKG的对应关系。为方便故障域索引表的查询和管理,一种实现,可以建立多级故障域索引表,例如,第一级为SSD与故障域索引表,第二级为故障域与CKG索引表;另一种实现,如图8所示,故障域索引表可以根据SSD进行分区,从而方便快速查询。
[0049] 在本发明实施例中,另外一种实现方式,在支持NVME接口规范的SSD中,可以根据故障域的数量为SSD分配相应的命名空间(namespace),即一个故障域对应一个namespace。因此,一个SSD的不同namespace的逻辑地址可以独立编址。例如,仍以SSD的可用容量为
32TB为例,将SSD划分为32个故障域,为一个故障域分配一个namespace,每一个namespace的LBA范围均为0~(1TB-1)。一个namespace的LBA映射到该namespace对应的故障域内的物理地址。SSD向控制器101上报命名空间和故障域的映射关系。SSD存储上述namespace与故障域的映射关系。SSD向控制器101上报上述namespace与故障域的映射关系。另一种实现,也可以上报上述namespace中的LBA与故障域的映射关系。本发明实施例中,从多个SSD选择CK组成CKG时,可以考虑根据基于负载决定提供CK的SSD的namespace。负载可以为输入输出(InputOutput,IO)的类型,IO冷热度等。
[0050] 相应的,如前面所述,存储阵列存储有故障域索引表。另一种实现,存储阵列存储namespace索引表,namespace索引表包含namespace与CKG的对应关系,例如namespace标识与CKG标识的对应关系。因为同一个CKG中包含来自不同SSD的namespace的CK,所以在namespace索引表中,不同namespace可以对应相同的CKG。当某一个SSD的故障域发生故障,SSD向控制器101上报故障信息,故障信息用于指示发生故障的namespace,例如,故障信息包含namespace标识。控制器101根据该namespace索引表可以快速查找到受该故障域影响的CKG,从而快速重构这些CKG中受该故障域影响的CK中的数据。具体实现中,控制器101可以在分配建立CKG时,根据namespace与故障域的映射关系,在namespace索引表中记录相应的表项,表项中包含namespace与CKG的对应关系。为方便namespace索引表的查询与管理,一种实现方式,可以建立多级namespace索引表,例如,第一级为SSD与namespace索引表,第二级为namespace与CKG索引表;另一种实现,如图9所示,namespace索引表可以根据SSD进行分区,从而方便快速查询。
[0051] 本发明实施例中,SSD进行垃圾数据回收时,有效数据也写在相同的故障域的不同物理地址中。
[0052] 本发明实施例中,SSD的控制器收集SSD内部各故障域的磨损信息,并将故障域的磨损信息上报给控制器101。控制器101创建CKG时,根据SSD的各故障域的磨损度和数据的修改频率选择映射到相应的故障域的物理地址的CK。
[0053] 本发明实施例还可以应用于支持开放通道(Open-Channel)的SSD。支持在Open-channel的SSD中,一种实现方式,SSD划分为多个故障域,存储系统的控制器101可以直接访问SSD的物理地址。SSD建立故障域与SSD的物理地址的映射关系,则存储系统中组成CKG的CK的地址可以SSD的物理地址,即CK的地址为SSD故障域提供的物理地址,CK的物理映射到SSD故障域提供的物理地址。本发明实施例中基于支持Open-channel的SSD的实现所需的其他操作可以参考本发明其他实施例的描述,在此不再赘述。
[0054] 本发明实施例中SSD执行的各种操作可以由SSD的控制器执行。
[0055] 相应的,本发明实施例也提供了一种控制器,应用于存储系统,其中,存储系统包括该控制器、第一固态硬盘SSD和第二SSD;其中,所述第一SSD和所述第二SSD均包含多个故障域,所述存储系统包含基于纠删码算法构成的块组,所述块组包含第一块和第二块;所述第一块的地址映射到所述第一SSD的第一故障域提供的物理地址,所述第二块的地址映射到所述第二SSD的第二故障域提供的物理地址;该控制器,如图10所示,包括接收单元1001和恢复单元1002。其中,接收单元1001用于接收所述第一SSD的故障信息,所述故障信息用于指示所述第一故障域发生故障;恢复单元1002用于响应于所述故障信息,根据所述纠删码算法恢复所述块组中的所述第一块的地址中存储的数据。进一步的,该存储系统存储所述第一块的地址与所述第一故障域的对应关系,以及所述第二块的地址与所述第二故障域的对应关系,该控制器还包括查询单元,用于用于查询所述第一故障域与所述块组的对应关系确定所述块组。图10所示的控制器的具体实现,可以参考本发明实施例前面的实现,如图2所示控制器101的结构,在此不作赘述。另一种实现,本发明实施例图10提供的控制器还可以由软件实现。
[0056] 如图11所示,本发明实施例还提供了一种SSD管理装置,其中,SSD包括第一故障域和第二故障域,该SSD管理装置包括第一分配单元1101,用于为所述第一故障域分配所述SSD的第一范围的逻辑地址;第二分配单元1102,用于为所述第二故障域分配所述SSD的第二范围的逻辑地址。进一步的,SSD管理装置还包括发送单元,用于向存储系统的控制器发送所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系;其中,所述存储系统包括所述SSD。进一步的,所述SSD管理装置还包括记录单元,用于分别记录所述第一故障域与所述第一范围的逻辑地址的对应关系以及所述第二故障域与所述第二范围的逻辑地址的对应关系。本发明实施例提供的SSD管理装置其中一种硬件实现,可以参考SSD的控制器的结构,本发明实施例在此不再赘述。另一种实现,本发明实施例提供的SSD管理装置还可以由软件实现或者由SSD的控制器与软件共同实现。
[0057] 本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在图1所示的控制器101或者图4所示的服务器上运行时,执行本发明实施例中的方法。
[0058] 本发明实施例提供了一种包含计算机指令的计算机程序产品,当该计算机指令在图1所示的控制器101或者图4所示的服务器运行时,执行本发明实施例中的方法。
[0059] 本发明实施例提供的数据恢复装置的各单元可以由处理器实现,也可以由处理器与存储器共同实现,也可以由软件实现。
[0060] 本发明实施例提供了一种包含计算机指令的计算机程序产品,当该计算机指令在SSD的控制器运行时,执行本发明实施例中的SSD管理方法。
[0061] 本发明实施例中的逻辑地址还可以是键值(Key-Value,KV)盘中的KV,或者日志(log)盘的log等。
[0062] 本发明实施例中,对应关系与映射关系具有相同的含义。块的地址与故障域的对应关系的表述与故障域与块的地址的对应关系具有相同的含义。
[0063] 应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0064] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0065] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0066] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0067] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0068] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0069] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储计算机指令的介质。
[0070] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈