一种管理存储系统的方法及设备的制造方法

文档序号:10534430阅读:453来源:国知局
一种管理存储系统的方法及设备的制造方法
【专利摘要】一种管理存储系统的方法及设备,用于减少上层应用需要维护的SSD属性集合的数量,减少应用的资源消耗。该管理存储系统的方法由存储控制器执行,包括如下步骤:对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性集合,每个SSD的对应至少一个属性集合;根据扫描获得的M项所述属性集合构造N个虚拟SSD,每个虚拟SSD根据至少两项属性集合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合合并而成,M为大于或等于2的整数,N为小于M的正整数;向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。
【专利说明】
_种管理存储系统的方法及设备
技术领域
[0001] 本发明涉及计算机技术领域,特别涉及一种管理存储系统的方法及设备。
【背景技术】
[0002] 在拥有多个固态硬盘(英文:solid state drives,SSD)的存储系统中,管理SSD的 设备需要对每个SSD盘进行扫描,获得每个SSD的属性集合,然后将每个SSD的属性集合上报 应用,应用根据每个SSD的属性集合对SSD进行访问。
[0003] 但是,目前存储系统规模越来越大,一个存储系统中包括大量SSD,使得每个应用 均需要管理大量SSD的属性集合,需要耗费大量资源,并增加系统复杂性。

【发明内容】

[0004] 本申请提供一种管理存储系统的方法及设备,以减少上层应用需要维护的SSD属 性集合数量,减少资源消耗。
[0005] 第一方面,本申请提供一种管理存储系统的方法,该方法由存储控制器执行,该存 储控制器可以与至少一个SSD位于同一物理实体中,存储控制器也可以为一独立的控制设 备,通过网络与至少一个SSD通信。首先,存储控制器对至少一个SSD进行扫描,获得该至少 一个SSD的M项属性集合,其中,每个SSD的对应至少一个属性集合。然后,存储控制器根据扫 描获得的M项所述属性集合构造N个虚拟SSD,每个虚拟SSD根据至少两项属性集合构造,且 每个虚拟SSD的属性集合由该至少两项属性集合合并而成,M为大于或等于2的整数,N为小 于M的正整数;向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N个虚 拟SSD的属性集合对所述N个虚拟SSD进行访问。
[0006] 上述存储控制器对存储系统中的至少一个SSD进行扫描之后,根据扫描获得的多 项属性集合,将属性集合中的存储空间进行合并,构造虚拟SSD,将虚拟SSD的属性集合上报 应用。不仅使得应用能够根据虚拟SSD的属性集合对虚拟SSD进行访问,完成数据的读、写等 操作,而且应用需要维护的SSD属性集合的数量大幅减少,减少应用的资源消耗。
[0007] 在一种可能的实现中,每个属性集合中包括存储空间大小,例如,属性集合中包括 SSD的命名空间(英文:namespace)标识以及该namespace对应存储空间的大小。存储控制器 对扫描获得的属性集合中的存储空间大小进行合并,在至少两项属性集合中的存储空间大 小合并后达到预设容量时,根据该至少两项属性集合构造一个虚拟SSD。
[0008] 在一种可能的实现中,存储控制器根据预设数量的所述属性集合,构造一个虚拟 SSD,该虚拟集合中包括存储空间大小为该预设数量的属性集合的存储空间大小之和。
[0009] 在一种可能的实现中,存储控制器在根据扫描获得的M项所述属性集合构造N个虚 拟SSD之后,存储每个所述虚拟SSD的逻辑地址与所述至少一个SSD中物理地址的映射,并在 获得所述应用的第一访问请求之后,根据存储的所述映射,确定第一访问请求中包括的第 一虚拟SSD的逻辑地址对应的所述至少一个中第一 SSD的物理地址;并向所述第一 SSD发送 第二访问请求,所述第二访问请求包括确定的该物理地址,该第二访问请求与该第一访问 请求所请求的数据操作相同。通过上述方式,应用可以通过虚拟SSD的属性集合实现数据访 问。
[0010] 在一种可能的实现中,所述至少一个中的第二SSD包括至少一个SSD控制器;存储 控制器对所述第二SSD进行扫描时,根据所述第二SSD的每个SSD控制器扫描获得一项所述 属性集合。
[0011] 第二方面,本申请提供一种管理存储系统的设备,该设备包括用于执行上述第一 方面或第一方面的任意可能的实现中的方法的模块。
[0012] 第三方面,本申请提供一种存储控制器,该存储控制器包括处理器、收发器以及总 线,处理器以及收发器通过总线通信。该收发器用于与其他网元进行通信,其他网元例如多 个SSD、应用服务器。该处理器用于通过收发器执行上述第一方面或第一方面的任意可能的 实现中的方法。
[0013] 在一种可能的实现中,该处理器包括第一处理器,例如中央处理器(英文central processing unit,CPU),用于通过收发器对多个SSD进行扫描,获得每个SSD的属性集合。该 处理器还包括第二处理器,例如,专用集成电路(英文〖application specific integrated circuit,ASIC),用于根据获得的至少一个SSD的属性集合将SSD中的存储空间构造虚拟 SSD,生成虚拟SSD的属性集合。
[0014] 第四方面,本申请提供一种存储设备,该存储设备包括存储控制器以及多个SSD, 存储控制器与多个SSD通过总线相连。该存储控制器用于执行上述第一方面或第一方面的 任意可能的实现中的方法。
[0015] 第五方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程 序包括用于执行第一方面或第一方面的任意可能的实现中的方法的指令。
[0016] 本申请在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实 现。
【附图说明】
[0017] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其 他的附图。
[0018] 图la-图lb为本申请实施例中存储控制器的可能形态的示意图;
[0019] 图2为本申请实施例中管理存储系统方法的流程示意图;
[0020] 图3为本申请实施例中管理存储系统方法的细化流程示意图;
[0021 ]图4为本申请实施例中管理存储系统的设备的示意图;
[0022]图5为本申请实施例中另一管理存储系统的设备的示意图。
【具体实施方式】
[0023]下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请 实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术 方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
[0024]本申请实施例中,存储系统包括多个固态硬盘SSD20以及存储控制器10。其中,存 储控制器至少可以有两种形态。
[0025]形态1,参照图la,存储控制器10可以为独立的计算机,又可称为主机,通过互联网 或专用网络与至少一个SSD20相连。实际情况中,存储系统中可以包括多个存储控制器10, 每个存储控制器10均能够负责承接用户对SSD20的访问。本申请实施例中以下内容,基于存 储系统中的一个存储控制器10进行描述,对于存储系统中的其他存储控制器10而言,均可 以采用相同的实现方式。
[0026] 形态2,参照图lb,存储控制器10与至少一个SSD20位于一个物理实体内,通常将这 种结构称为硬盘框。实际情况中,存储系统可以包括多个这种硬盘框结构。
[0027] 本申请实施例中,SSD20具体可以通过快捷外设互联标准(英文peripheral component interconnect express,PCI_E)接口与存储控制器10采用上述形态1或形态2相 连。
[0028] 本申请实施例中,SSD20包括SSD控制器(SSD20的控制芯片)和存储单元组成。其 中,存储单元用于存储数据,根据存储介质的不同,可分为闪存(英文:flash disk)以及动 态随机存取存储器(英文:dynamic random access memoryARAMhSSD控制器用于调配数 据在各个存储单元上的负荷,以及数据中转。除此之外,SSD控制器还可以用于:纠错、耗损 平衡、坏块映射、读写缓存、垃圾回收以及加密等一系列的功能算法。可选的,SSD20中还可 以包括用于数据缓存的缓存单元。
[0029] 本申请实施例中,存储控制器10包括但不限于如下功能:
[0030] 功能一,存储控制器10运行SSD驱动程序,对SSD20进行扫描,获得SSD20的属性集 合。例如,存储控制器10上加载有快速非易失性存储器(英文:non-volatile memory express,NVMe)驱动程序,存储控制器10运行该NVMe驱动程序,对与存储控制器10连接的每 个SSD20进行扫描,获得每个SSD20的属性集合。
[0031] 表1为存储控制器10对SSD20进行扫描时,获得的SSD属性集合的示意,表中控制器 指的是SSD控制器。
[0033]表 1
[0034]表1中的部分英文缩写或单词的释义如下:
[0035] PCI,英文全称为peripheral component interconnect,中文释义为:外设组件互 连标准。
[0036] BAR,英文全称为base address register,中文释义为:基地址寄存器。
[0037] 10,英文全称为input/output,中文释义为:输入/输出。
[0038] namesspace,中文释义为:命名空间(或者,名称空间)。本申请实施例中,一个控制 器可以对应一个或多个namespace,每个namespace对应一个逻辑存储空间。表2为 namespace的链表的示意。
[0040]表 2
[0041 ] 根据表2中的"namespace的逻辑区块的数量"以及"namespace的每个逻辑区块的 大小"即可确定该namespace对应的逻辑存储空间的容量。而一个SSD20对应的所有 namespace对应的逻辑存储空间的容量之和即为该SSD20的容量。
[0042]功能二,存储控制器10根据扫描获得的多项SSD20的属性集合,将SSD20的存储空 间进行合并,形成虚拟SSD,并生成该虚拟SSD的属性集合。
[0043]本发明【背景技术】介绍的方案中,存储控制器10将扫描获得的SSD属性集合上报应 用(又称:上层应用),以使应用根据该SSD属性集合对SSD20进行访问。但是,这会导致应用 需要维护大量的属性集合,资源消耗较大。
[0044] 为了解决该问题,本申请实施例中,存储控制器10根据扫描获得的多项SSD20的属 性集合,将SSD20的存储空间进行合并,形成虚拟SSD,并生成该虚拟SSD的属性集合然后将 该虚拟SSD的属性集合上报给应用。
[0045] 本申请实施例中,所谓虚拟SSD指的是逻辑上将不同SSD20的存储空间合并所形成 的虚拟化的存储设备。虚拟SSD的属性集合的数据结构与合并前的属性集合的数据结构可 以相同,也可以只保留应用关心的部分数据,如虚拟SSD的标识、虚拟SSD的容量。
[0046] 其中,合并前的多项属性集合中的每项属性集合中均包括至少一个namespace,合 并后的虚拟SSD的属性集合可以只存在一个namespace,该namespace的标识作为该虚拟SSD 的标识。这个标识可以为合并前的多项属性集合中任一属性集合中包括的任一 namespace 的标识(如,多项属性集合包括的所有namespace中编号最小的namespace的标识),也可以 为存储控制器10生成的尚未使用的标识。
[0047]另外,合并后的属性集合中的namespace链表中,namespace的逻辑区块的数量为 合并前的所有每个属性集合中每个namespace的逻辑区块数量之和。而每个逻辑区块的大 小保持不变。
[0048]例如,存储控制器10对10个SSD20进行扫描,对每个SSD20的扫描可以获得1项属性 集合,不妨设每项属性集合中包含1个namespace,每个namespace包括10万个逻辑区块,每 个逻辑区块的大小为10MB,则每个namespace对应1TB的存储空间。将这10个SSD20的所有10 项属性集合合并,形成虚拟SSD的属性集合,该虚拟SSD的属性集合包括1个namespace,该 namespace包括的逻辑区块的数目为100万个,每个逻辑区块的大小为10MB,则该虚拟SSD的 容量为10TB。
[0049] 另外,本申请实施例中,存储控制器10根据对至少一个SSD进行扫描获得的属性集 合可以构造多个虚拟SSD;另外,存储控制器10也可以只根据对部分的SSD20扫描获得的属 性集合构造1个或多个虚拟SSD。
[0050] 功能三,存储控制器10还用于将合并后的虚拟SSD的属性集合上报应用,以使应用 根据该虚拟SSD属性集合对虚拟SSD进行访问。
[0051 ] 所谓应用对虚拟SSD进行访问,指的是应用对虚拟SSD对应的SSD20进行访问。
[0052]实际情况中,存储控制器10可能只是对一部分的SSD属性集合进行合并,显然,存 储控制器10还要将未合并的SSD属性集合上报应用。
[0053]本申请实施例中,应用指的是需要对SSD20进行访问的应用程序,例如,数据库程 序将数据存储在SSD20中,该数据库程序即为本申请实施例中的应用,需要访问SSD20以写 入或读取数据。
[0054] 结合图la所示的存储控制器10的形态,本申请实施例中的应用可以运行在存储控 制器10上,这种情况下,存储控制器10将虚拟SSD的属性集合上报应用,指的是存储控制器 10的负责SSD属性集合合并的逻辑模块将虚拟SSD的属性集合上报该应用对应的逻辑模块。 该应用也可以运行在与存储控制器10之外设备(如,另一服务器)上,存储控制器10通过互 联网或者与专用网络将虚拟SSD的属性集合发送给应用所在的设备。
[0055] 在图lb的系统架构中,本申请实施例中的应用运行在存储控制器10与至少一个 SSD20组成的硬盘框之外的设备(如图lb中的服务器)中。
[0056] 本申请实施例上述技术方案中,存储系统中的存储控制器10对存储系统中的至少 一个SSD20进行扫描之后,将其中的一部分SSD属性集合进行合并,生成虚拟SSD属性集合, 形成虚拟SSD,将虚拟SSD的属性集合上报应用。不仅使得应用能够根据虚拟SSD的属性集合 进行数据的读、写等操作,而且应用需要维护的SSD属性集合的数量大幅减少,减少应用的 资源消耗。
[0057] 在一种可能的实现方式中,上述存储控制器10的上述功能一可以通过上述存储控 制器10上运行的SSD20驱动模块实现,例如NVMe驱动程序。
[0058] 上述存储控制器10的功能二可以通过容量转换模块(英文:capacity transform module,CTM)实现,CTM具体用于:记录存储控制器10的驱动模块扫描获得的所有SSD20的属 性集合,并根据预设规则将至少一个SSD20进行合并,生成虚拟SSD,并将生成的虚拟SSD的 属性集合上报给应用。
[0059]本申请实施例中,容量转换模块CTM为在逻辑上进行划分的一个模块,其实现上有 多种形式。例如,CTM可以是运行于存储控制器10上的软件模块,存储控制器10通过中央处 理器(英文:central processing unit,CPU)运行CTM软件代码来实现CTM的功能。又例如, CTM可以是存储控制器10上的实体芯片,如专用集成电路(英文application specific integrated circuit,ASIC)芯片。
[0060]需要说明的是,存储控制器10对SSD20进行合并,构造虚拟SSD,指的是在逻辑意义 上的合并,不改变各SSD20的物理结构。而对上述应用而言,其根据协议规定的命令实现读、 写数据,例如在SSD20为PCI-E SSD20时,应用使用NVMe命令来进行读、写数据,应用并不关 心其维护的SSD20的属性集合具体对应实体SSD20盘,还是虚拟SSD盘。
[0061] 在另一种可能的实现方式中,本申请实施例中,存储控制器10根据预设规则将至 少一个SSD20合并虚拟SSD,预设规则可以为以下任一种:
[0062] 预设规则1,存储控制器10对扫描获得的容量属性中的存储空间大小进行累加,在 累加后的存储空间大小达到预设大小后,根据参与存储空间大小累加的多个属性集合构造 一个虚拟SSD。
[0063]例如,存储控制器10设置一预设容量值,如10TB,存储控制器10对存储系统中的所 有SSD20进行扫描之后,获得每个SSD20的属性集合,该属性集合包括每个SSD20的容量。存 储控制器10将SSD20的容量进行累加,将容量之和达到预设容量值的多个SSD20合并为一个 虚拟SSD,如将10个1T的SSD20合并为一个虚拟SSD,生成该虚拟SSD的属性集合,如虚拟SSD 的容量以及虚拟SSD的标识。
[0064] 由于实际情况中,应用只关心存储空间,并不关心存储位置的物理分布,所以,存 储控制器10通过本合并规则进行SSD20合并,既满足应用对存储空间容量的需求,又可减小 其维护的属性集合的数量,减少资源消耗。
[0065] 预设规则2,存储控制器10对扫描获得的属性集合进行计数,在计数达到预设数量 后,根据参与计数的属性集合构造一个虚拟SSD。
[0066] 例如,存储控制器10设置预设数值,如10,存储控制器10对存储系统中的所有 SSD20进行扫描之后,记录每个SSD20的属性集合,然后,存储控制器10将10个SSD20合并为 虚拟SSD,根据这10个SSD20的属性集合生成合并后虚拟SSD的属性集合,如虚拟SSD的容量 以及虚拟SSD的标识。
[0067]存储控制器10根据SSD20的数量进行SSD20的合并,实现方式简单,运算量小。
[0068]预设规则3,在根据前述预设规则1或预设规则2的规则进行SSD20合并之后,可能 还剩余少量的SSD20,这些SSD20不满足前述合并规则,但是,这些SSD20是存储系统仅存的 尚未合并的SSD20,因此,可以直接将这些SSD20合并,构造虚拟SSD。
[0069] 例如,结合预设规则1,存储系统一共包含95个SSD20,每个SSD20的容量为1TB,存 储控制器10根据设置得预设容量值10TB,将90个SSD20合并为9个虚拟SSD,剩下的5个SSD20 虽然容量达不到预设容量值10TB,但是由于存储系统已经没有未合并的SSD20,存储控制器 10直接将这5个SSD20合并,构造一虚拟SSD。
[0070] 又例如,结合预设规则2,存储系统一共包含95个SSD20,存储控制器10根据设置得 预设数量值10,将90个SSD20合并为9个虚拟SSD,剩下的5个SSD20虽然数量达不到预设数量 值10,但是由于存储系统已经没有未合并的SSD20,存储控制器10直接将这5个SSD20合并, 构造一虚拟SSD。
[0071] 本申请实施例中,存储控制器10可以对扫描到的所有SSD20进行上述合并操作,也 可以只是对其中的一部分SSD20进行上述合并操作,本申请实施例不予限定。
[0072]在另一种可能的实现方式中,存储系统中部分或全部的SSD20具有多个SSD控制器 (亦即,控制芯片),一个SSD20设置多个SSD控制器的目的在于提高该SSD20的访问速度。但 是,存储控制器10在对这种设置有多个SSD控制器的SSD20进行扫描时,将根据该SSD20的 SSD控制器数量扫描获得多个属性集合。例如,NVMe驱动程序在对具有4个SSD控制器的 SSD20进行扫描时,扫描获得4项属性集合,换言之,NVMe驱动程序将一个物理SSD20盘识别 为4个SSD20。这种情况下,存储控制器10将扫描获得的SSD属性集合上报给应用后,应用需 要维护的属性集合的数量变多。
[0073] 为解决该问题,本申请实施例中,存储控制器10可以根据扫描获得的SSD属性集合 进行SSD20合并。
[0074] 例如,在采用前述方式1进行SSD20合并时,存储控制器10设置的预设容量值为 10TB,第一 SSD20、第二SSD20、第三SSD20均具有4个SSD控制器。存储控制器10在对第一 SSD20扫描后获得属性集合1、属性集合2、属性集合3、属性集合4,分别对应逻辑上的 SSD201、SSD202、SSD203、SSD204;同理,存储控制器 10将第二SSD20扫描为SSD205、SSD206、 SSD207、SSD208,将第三 SSD20 扫描为 330209、3302010、3302011、3302012,上述330201至 SSD2012中每个SSD20的属性集合表明其容量为1TB。存储控制器10在对SSD20进行合并时, 对上述SSD201至SSD2012的容量进行累加,确定SSD201至SSD2010的容量之和达到10TB,根 据属性集合1至属性集合10生成虚拟SSD的属性集合,构造虚拟SSD。
[0075] 又例如,在采用前述方式2进行SSD20合并时,存储控制器10在对SSD20进行合并 时,对上述属性集合1至属性集合12的数量进行累加,确定属性集合1至属性集合10的数量 之和达到预设数量值10,根据属性集合1至属性集合10生成虚拟SSD的属性集合,构造虚拟 SSD〇
[0076]可见,如果一个SSD20物理盘被扫描为多个逻辑意义上的SSD20,存储控制器10在 构造虚拟SSD时,并不关心扫描到的SSD20的物理分布,因此,一个SSD20扫描出的第一部分 SSD20可以被合并到第一虚拟SSD,而该SSD20扫描出的第二部分SSD20被合并到第二虚拟 SSD〇
[0077]通过上述技术方案,能够在SSD20具有多个SSD控制器的情况下,减少应用需要维 护的SSD属性集合,减少应用的资源消耗。
[0078] 本申请实施例中,存储控制器10在生成虚拟SSD后,保存每个虚拟SSD的逻辑地址 与SSD20中的物理地址的映射。应用维护虚拟SSD的属性集合,根据虚拟SSD的属性集合对虚 拟SSD进行访问,其中的一种可能的实现方式如下:
[0079] 应用向存储控制器10发送第一访问请求,该第一访问请求中包含第一虚拟SSD中 的第一逻辑地址。
[0080] 存储控制器10根据存储的映射,确定第一虚拟SSD中的该第一逻辑地址对应第一 SSD中的第一物理地址。然后,存储控制器10向该该第一SSD实体发送第二访问请求,第二访 问请求与第一访问请求所请求的数据操作相同。所谓的第二访问请求与第一访问请求所请 求的数据操作相同,指的是:第二访问请求只是对第一访问请求的转发,二者的不同之处在 于,对数据的地址的表述方式不同,在第一访问请求中,数据的地址为虚拟SSD中的第一逻 辑地址,而在第二访问请求中,数据地址为第一SSD20中的该第一物理地址。
[0081 ]可选的,结合上述存储控制器10向SSD20发送第二访问请求的技术方案,SSD20根 据第二访问请求向存储控制器10返回访问结果,例如,在第二访问请求为读数据请求时,该 访问结果为目标数据;又例如,在第二访问请求为写数据请求时,该访问结果为数据写入成 功/失败消息。
[0082]而存储控制器10在接收到该访问结果后,将该访问结果返回给应用,以使得应用 能够获得访问结果。
[0083]本申请实施例中,一个存储控制器10可以将虚拟SSD的属性集合上报给多个应用, 每个应用均可以根据虚拟SSD的属性集合进行数据访问。在这种系统架构中,每个应用仅需 维护少量的虚拟SSD的属性集合,在需要对数据进行访问时,应用将数据在虚拟SSD中的地 址发送给存储控制器10,存储控制器10可以将该地址转化为SSD20中的地址,并向该SSD20 转发应用的访问请求。换言之,应用只需要关心少量的虚拟SSD,由存储控制器10负责虚拟 SSD与SSD20之间的转换。在一个存储控制器10为多个应用服务时,每个应用的负担均大幅 减小,整个系统的效率可以得到大幅提高。
[0084]需要说明的是,在一种可能的实现中,在存储控制器10为图lb所示的形态时,该存 储控制器10除了可以扫描自身硬盘框内的SSD20,还能够通过网络扫描其他硬盘框内的 SSD20〇
[0085]本申请实施例还提供一种管理存储系统的方法,参照图2,该方法由图la、图lb任 一所示的存储控制器10执行,该方法包括如下步骤:
[0086] 步骤301:存储控制器对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性 集合,每个SSD的对应至少一个属性集合;
[0087] 步骤302:存储控制器根据扫描获得的M项所述属性集合构造N个虚拟SSD,每个虚 拟SSD根据至少两项属性集合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合合 并而成,M为大于或等于2的整数,N为小于M的正整数;
[0088]步骤303:存储控制器向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用 根据所述N个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。
[0089] 在一种可能的实现方式中,所述每个属性集合中包括存储空间大小,步骤302:根 据扫描获得的M项所述属性集合构造N个虚拟SSD,包括:
[0090] 对所述属性集合中的存储空间大小进行合并,根据合并后的存储空间大小达到预 设容量的所述至少两项属性集合构造一个虚拟SSD。
[0091] 在一种可能的实现方式中,步骤302:根据扫描获得的M项所述属性集合构造N个虚 拟SSD,包括:
[0092] 根据预设数量的所述属性集合,构造一个虚拟SSD。
[0093]在一种可能的实现方式中,参照图3,在步骤302执行的同时或之后,还包括如下步 骤:
[0094]步骤304:存储控制器存储每个所述虚拟SSD的逻辑地址与所述至少一个中物理地 址的映射;
[0095] 在步骤303之后,所述方法还包括如下步骤:
[0096] 步骤305:存储控制器获得所述应用的第一访问请求,所述第一访问请求包括所述 N个虚拟SSD中第一虚拟SSD中的逻辑地址;
[0097] 步骤306:存储控制器根据存储的所述映射,确定与所述逻辑地址对应的所述至少 一个中第一 SSD的物理地址;
[0098]步骤307:存储控制器向所述第一 SSD发送第二访问请求,所述第二访问请求包括 所述物理地址,所述第二访问请求与所述第一访问请求所请求的数据操作相同。
[0099] 在一种可能的实现方式中,所述至少一个中的第二SSD包括多个SSD控制器;步骤 301执行过程中,根据所述第二SSD的每个SSD控制器扫描获得一项所述属性集合。
[0100] 上述步骤301至步骤307由图la或图lb中的存储控制器10执行,上述步骤的具体实 现方式可以参照前面对存储控制器10功能的描述,在此不予重复。
[0101] 本申请实施例还提供一种管理存储系统的设备,参照图4,该设备包括:
[0102] SSD驱动模块401,用于对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性 集合,每个SSD的对应至少一个属性集合;
[0103] 容量转换模块402,用于根据扫描获得的M项所述属性集合构造N个虚拟SSD,每个 虚拟SSD根据至少两项属性集合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合 合并而成,M为大于或等于2的整数,N为小于M的正整数;
[0104] 发送模块403,用于向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根 据所述N个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。
[0105] 在一种可能的实现方式中,所述每个属性集合中包括存储空间大小,容量转换模 块402具体用于:对所述属性集合中的存储空间大小进行合并,根据合并后的存储空间大小 达到预设容量的所述至少两项属性集合构造一个虚拟SSD。
[0106] 在一种可能的实现方式中,容量转换模块402具体用于:根据预设数量的所述属性 集合,构造一个虚拟SSD。
[0107] 在一种可能的实现方式中,所述设备还包括:
[0108] 存储模块404,用于存储每个所述虚拟SSD的逻辑地址与所述至少一个中物理地址 的映射;
[0109] 接收模块405,用于获得所述应用的第一访问请求,所述第一访问请求包括所述N 个虚拟SSD中第一虚拟SSD中的逻辑地址;
[0110] 映射模块406,用于根据所述存储模块中存储的所述映射,确定与所述逻辑地址对 应所述至少一个中第一 SSD的物理地址;该映射模块406与容量转换模块402可以为同一模 块;
[0111] 发送模块403,还用于向所述第一 SSD发送第二访问请求,所述第二访问请求包括 所述物理地址,所述第二访问请求与所述第一访问请求所请求的数据操作相同。
[0112] 在一种可能的实现方式中,所述至少一个中的第二SSD包括多个SSD控制器;SSD驱 动模块401具体用于:对第二SSD进行扫描,并根据所述第二SSD的每个SSD控制器扫描获得 一项所述属性集合。
[0113] 上述管理存储系统的设备的各模块的实施方式请参照图la、图lb中任一存储控制 器10所实现的功能,在此不予重复。
[0114] 本申请实施例还提供一种存储控制器,参照图5,该存储控制器包括处理器501、收 发器502以及总线503,处理器501与收发器502通过总线503通信。收发器502用于与网络中 的其他网元通信,如多个SSD,又如服务器。处理器501用于通过收发器502实现图la中存储 控制器的功能,该处理器501以及收发器502的实施方式可以参照前面对图la中存储控制器 实施方式的描述。
[0115] 本申请实施例中,处理器501可以是一个处理元件,例如,该处理器501可以是CPU, 通过该CPU实现存储控制器10的功能,如通过收发器实现对多个SSD20进行扫描,又如根据 扫描获得的SSD20的属性集合构造虚拟SSD。该处理器501也可以是多个处理元件的统称。例 如,存储控制器10的处理器501包括CPU以及ASIC,该CPU通过收发器实现对多个SSD20进行 扫描,而该ASIC用于根据扫描获得的SSD20的属性集合构造虚拟SSD。
[0116]该收发器可以为有线通信类型的收发器,如以太网数据收发器;收发器也可以为 无线通信类型的收发器,如包括天线以及与该天线连接的射频模块的收发器。
[0117]可选的,存储控制器还可以包括存储器504,该存储器504用于存储可执行程序代 码或存储控制器10运行所需要参数、数据,扫描获得的SSD20属性集合,等等。且该存储器可 以包括随机存储器(英文:random-access memory,RAM),也可以包括非易失性存储器(英 文:non-volatile memory,NVM),等等。图5中存储器504表明存储器504不是实现本申请实 施例中存储控制器功能所必需的元件。
[0118] 本申请实施例还提供一种存储设备,该存储设备包括至少一个SSD以及图lb中的 存储控制器,该存储控制器的实施方式请参照图lb中存储控制器10的实施方式,在此不予 详述。
[0119] 本申请实施例中,存储控制器可以包括1个或多个处理器,如1个或多个CPU,或者, 1个或多个ASIC,或者,CPU与ASIC的结合。在存储控制器包括一个处理器时,由该处理器实 现存储控制器的功能;在存储控制器包括多个处理器时,每个处理器实现存储控制器的部 分功能。
[0120] 在一种可能的实施中,多个本申请实施例中的存储设备通过网络连接,每个存储 设备中的存储控制器除了可以扫描本存储设备中的至少一个SSD,也可以通过网络扫描其 他存储设备中的SSD,并根据对其他存储设备中SSD扫描获得的属性集合构造虚拟SSD。
[0121] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。
[0122] 本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流 程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序 指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产 生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实 现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0123] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1. 一种管理存储系统的方法,其特征在于,包括: 对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性集合,每个SSD的对应至少 一个属性集合; 根据扫描获得的M项所述属性集合构造 N个虚拟SSD,每个虚拟SSD根据至少两项属性集 合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合合并而成,M为大于或等于2的 整数,N为小于M的正整数; 向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N个虚拟SSD的属 性集合对所述N个虚拟SSD进行访问。2. 如权利要求1所述的方法,其特征在于,所述每个属性集合中包括存储空间大小,所 述根据扫描获得的M项所述属性集合构造 N个虚拟SSD,包括: 对所述属性集合中的存储空间大小进行合并,根据合并后的存储空间大小达到预设容 量的所述至少两项属性集合构造一个虚拟SSD。3. 如权利要求1所述的方法,其特征在于,所述根据扫描获得的M项所述属性集合构造 N 个虚拟SSD,包括: 根据预设数量的所述属性集合,构造一个虚拟SSD。4. 如权利要求1至3任一项所述的方法,其特征在于,在所述根据扫描获得的M项所述属 性集合构造 N个虚拟SSD之后,还包括: 存储每个所述虚拟SSD的逻辑地址与所述至少一个SSD中物理地址的映射; 在所述向应用上报所述N个虚拟SSD各自的属性集合之后,所述方法还包括: 获得所述应用的第一访问请求,所述第一访问请求包括所述N个虚拟SSD中第一虚拟 SSD中的逻辑地址; 根据存储的所述映射,确定与所述逻辑地址对应的所述至少一个SSD中第一 SSD的物理 地址; 向所述第一 SSD发送第二访问请求,所述第二访问请求包括所述物理地址,所述第二访 问请求与所述第一访问请求所请求的数据操作相同。5. 如权利要求1至4任一项所述的方法,其特征在于,所述至少一个SSD中的第二SSD包 括多个SSD控制器;对所述第二SSD进行扫描,获得所述第二SSD的属性集合,包括: 根据所述第二SSD的每个SSD控制器扫描获得一项所述属性集合。6. -种管理存储系统的设备,其特征在于,包括: SSD驱动模块,用于对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性集合,每 个SSD的对应至少一个属性集合; 容量转换模块,用于根据扫描获得的M项所述属性集合构造 N个虚拟SSD,每个虚拟SSD 根据至少两项属性集合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合合并而 成,M为大于或等于2的整数,N为小于M的正整数; 发送模块,用于向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N 个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。7. 如权利要求6所述的设备,其特征在于,所述每个属性集合中包括存储空间大小,所 述容量转换模块具体用于:对所述属性集合中的存储空间大小进行合并,根据合并后的存 储空间大小达到预设容量的所述至少两项属性集合构造一个虚拟SSD。8. 如权利要求6所述的设备,其特征在于,所述容量转换模块具体用于:根据预设数量 的所述属性集合,构造一个虚拟SSD。9. 如权利要求6至8任一项所述的设备,其特征在于,所述设备还包括: 存储模块,用于存储每个所述虚拟SSD的逻辑地址与所述至少一个SSD中物理地址的映 射; 接收模块,用于获得所述应用的第一访问请求,所述第一访问请求包括所述N个虚拟 SSD中第一虚拟SSD中的逻辑地址; 映射模块,用于根据所述存储模块中存储的所述映射,确定与所述逻辑地址对应所述 至少一个SSD中第一 SSD的物理地址; 所述发送模块,还用于向所述第一 SSD发送第二访问请求,所述第二访问请求包括所述 物理地址,所述第二访问请求与所述第一访问请求所请求的数据操作相同。10. 如权利要求6至9任一项所述的设备,其特征在于,所述至少一个SSD中的第二SSD包 括多个SSD控制器;SSD驱动模块具体用于:对所述第二SSD进行扫描,并根据所述第二SSD的 每个SSD控制器扫描获得一项所述属性集合。
【文档编号】G06F3/06GK105892955SQ201610281745
【公开日】2016年8月24日
【申请日】2016年4月29日
【发明人】杜阁, 刘金水
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1