CN105892955B - 一种管理存储系统的方法及设备 - Google Patents

一种管理存储系统的方法及设备 Download PDF

Info

Publication number
CN105892955B
CN105892955B CN201610281745.9A CN201610281745A CN105892955B CN 105892955 B CN105892955 B CN 105892955B CN 201610281745 A CN201610281745 A CN 201610281745A CN 105892955 B CN105892955 B CN 105892955B
Authority
CN
China
Prior art keywords
ssd
attribute set
virtual
ssd20
access request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610281745.9A
Other languages
English (en)
Other versions
CN105892955A (zh
Inventor
杜阁
刘金水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610281745.9A priority Critical patent/CN105892955B/zh
Priority to CN201910920051.9A priority patent/CN110851383B/zh
Publication of CN105892955A publication Critical patent/CN105892955A/zh
Application granted granted Critical
Publication of CN105892955B publication Critical patent/CN105892955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种管理存储系统的方法及设备,用于减少上层应用需要维护的SSD属性集合的数量,减少应用的资源消耗。该管理存储系统的方法由存储控制器执行,包括如下步骤:对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性集合,每个SSD的对应至少一个属性集合;根据扫描获得的M项所述属性集合构造N个虚拟SSD,每个虚拟SSD根据至少两项属性集合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合合并而成,M为大于或等于2的整数,N为小于M的正整数;向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。

Description

一种管理存储系统的方法及设备
技术领域
本发明涉及计算机技术领域,特别涉及一种管理存储系统的方法及设备。
背景技术
在拥有多个固态硬盘(英文:solid state drives,SSD)的存储系统中,管理SSD的设备需要对每个SSD盘进行扫描,获得每个SSD的属性集合,然后将每个SSD的属性集合上报应用,应用根据每个SSD的属性集合对SSD进行访问。
但是,目前存储系统规模越来越大,一个存储系统中包括大量SSD,使得每个应用均需要管理大量SSD的属性集合,需要耗费大量资源,并增加系统复杂性。
发明内容
本申请提供一种管理存储系统的方法及设备,以减少上层应用需要维护的SSD属性集合数量,减少资源消耗。
第一方面,本申请提供一种管理存储系统的方法,该方法由存储控制器执行,该存储控制器可以与至少一个SSD位于同一物理实体中,存储控制器也可以为一独立的控制设备,通过网络与至少一个SSD通信。首先,存储控制器对至少一个SSD进行扫描,获得该至少一个SSD的M项属性集合,其中,每个SSD的对应至少一个属性集合。然后,存储控制器根据扫描获得的M项所述属性集合构造N个虚拟SSD,每个虚拟SSD根据至少两项属性集合构造,且每个虚拟SSD的属性集合由该至少两项属性集合合并而成,M为大于或等于2的整数,N为小于M的正整数;向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。
上述存储控制器对存储系统中的至少一个SSD进行扫描之后,根据扫描获得的多项属性集合,将属性集合中的存储空间进行合并,构造虚拟SSD,将虚拟SSD的属性集合上报应用。不仅使得应用能够根据虚拟SSD的属性集合对虚拟SSD进行访问,完成数据的读、写等操作,而且应用需要维护的SSD属性集合的数量大幅减少,减少应用的资源消耗。
在一种可能的实现中,每个属性集合中包括存储空间大小,例如,属性集合中包括SSD的命名空间(英文:namespace)标识以及该namespace对应存储空间的大小。存储控制器对扫描获得的属性集合中的存储空间大小进行合并,在至少两项属性集合中的存储空间大小合并后达到预设容量时,根据该至少两项属性集合构造一个虚拟SSD。
在一种可能的实现中,存储控制器根据预设数量的所述属性集合,构造一个虚拟SSD,该虚拟集合中包括存储空间大小为该预设数量的属性集合的存储空间大小之和。
在一种可能的实现中,存储控制器在根据扫描获得的M项所述属性集合构造N个虚拟SSD之后,存储每个所述虚拟SSD的逻辑地址与所述至少一个SSD中物理地址的映射,并在获得所述应用的第一访问请求之后,根据存储的所述映射,确定第一访问请求中包括的第一虚拟SSD的逻辑地址对应的所述至少一个中第一SSD的物理地址;并向所述第一SSD发送第二访问请求,所述第二访问请求包括确定的该物理地址,该第二访问请求与该第一访问请求所请求的数据操作相同。通过上述方式,应用可以通过虚拟SSD的属性集合实现数据访问。
在一种可能的实现中,所述至少一个中的第二SSD包括至少一个SSD控制器;存储控制器对所述第二SSD进行扫描时,根据所述第二SSD的每个SSD控制器扫描获得一项所述属性集合。
第二方面,本申请提供一种管理存储系统的设备,该设备包括用于执行上述第一方面或第一方面的任意可能的实现中的方法的模块。
第三方面,本申请提供一种存储控制器,该存储控制器包括处理器、收发器以及总线,处理器以及收发器通过总线通信。该收发器用于与其他网元进行通信,其他网元例如多个SSD、应用服务器。该处理器用于通过收发器执行上述第一方面或第一方面的任意可能的实现中的方法。
在一种可能的实现中,该处理器包括第一处理器,例如中央处理器(英文:centralprocessing unit,CPU),用于通过收发器对多个SSD进行扫描,获得每个SSD的属性集合。该处理器还包括第二处理器,例如,专用集成电路(英文:application specific integratedcircuit,ASIC),用于根据获得的至少一个SSD的属性集合将SSD中的存储空间构造虚拟SSD,生成虚拟SSD的属性集合。
第四方面,本申请提供一种存储设备,该存储设备包括存储控制器以及多个SSD,存储控制器与多个SSD通过总线相连。该存储控制器用于执行上述第一方面或第一方面的任意可能的实现中的方法。
第五方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现中的方法的指令。
本申请在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a-图1b为本申请实施例中存储控制器的可能形态的示意图;
图2为本申请实施例中管理存储系统方法的流程示意图;
图3为本申请实施例中管理存储系统方法的细化流程示意图;
图4为本申请实施例中管理存储系统的设备的示意图;
图5为本申请实施例中另一管理存储系统的设备的示意图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本申请实施例中,存储系统包括多个固态硬盘SSD20以及存储控制器10。其中,存储控制器至少可以有两种形态。
形态1,参照图1a,存储控制器10可以为独立的计算机,又可称为主机,通过互联网或专用网络与至少一个SSD20相连。实际情况中,存储系统中可以包括多个存储控制器10,每个存储控制器10均能够负责承接用户对SSD20的访问。本申请实施例中以下内容,基于存储系统中的一个存储控制器10进行描述,对于存储系统中的其他存储控制器10而言,均可以采用相同的实现方式。
形态2,参照图1b,存储控制器10与至少一个SSD20位于一个物理实体内,通常将这种结构称为硬盘框。实际情况中,存储系统可以包括多个这种硬盘框结构。
本申请实施例中,SSD20具体可以通过快捷外设互联标准(英文:peripheralcomponent interconnect express,PCI-E)接口与存储控制器10采用上述形态1或形态2相连。
本申请实施例中,SSD20包括SSD控制器(SSD20的控制芯片)和存储单元组成。其中,存储单元用于存储数据,根据存储介质的不同,可分为闪存(英文:flash disk)以及动态随机存取存储器(英文:dynamic random access memory,DRAM)。SSD控制器用于调配数据在各个存储单元上的负荷,以及数据中转。除此之外,SSD控制器还可以用于:纠错、耗损平衡、坏块映射、读写缓存、垃圾回收以及加密等一系列的功能算法。可选的,SSD20中还可以包括用于数据缓存的缓存单元。
本申请实施例中,存储控制器10包括但不限于如下功能:
功能一,存储控制器10运行SSD驱动程序,对SSD20进行扫描,获得SSD20的属性集合。例如,存储控制器10上加载有快速非易失性存储器(英文:non-volatile memoryexpress,NVMe)驱动程序,存储控制器10运行该NVMe驱动程序,对与存储控制器10连接的每个SSD20进行扫描,获得每个SSD20的属性集合。
表1为存储控制器10对SSD20进行扫描时,获得的SSD属性集合的示意,表中控制器指的是SSD控制器。
控制器对应的内核PCI设备数据结构
控制器BAR空间映射的MMIO空间
控制器包含的所有管理队列和IO队列数据结构的数组
控制器队列总数目
控制器对应的所有namespace的链表
……
表1
表1中的部分英文缩写或单词的释义如下:
PCI,英文全称为peripheral component interconnect,中文释义为:外设组件互连标准。
BAR,英文全称为base address register,中文释义为:基地址寄存器。
IO,英文全称为input/output,中文释义为:输入/输出。
namesspace,中文释义为:命名空间(或者,名称空间)。本申请实施例中,一个控制器可以对应一个或多个namespace,每个namespace对应一个逻辑存储空间。表2为namespace的链表的示意。
namespace对应链表的操作指针
namespace对应的控制器
namespace对应的等待队列
namespace对应逻辑磁盘的信息(磁盘名、版本号等)
namespace的标识
namespace的逻辑区块的数量
namespace的每个逻辑区块的大小
……
表2
根据表2中的“namespace的逻辑区块的数量”以及“namespace的每个逻辑区块的大小”即可确定该namespace对应的逻辑存储空间的容量。而一个SSD20对应的所有namespace对应的逻辑存储空间的容量之和即为该SSD20的容量。
功能二,存储控制器10根据扫描获得的多项SSD20的属性集合,将SSD20的存储空间进行合并,形成虚拟SSD,并生成该虚拟SSD的属性集合。
本发明背景技术介绍的方案中,存储控制器10将扫描获得的SSD属性集合上报应用(又称:上层应用),以使应用根据该SSD属性集合对SSD20进行访问。但是,这会导致应用需要维护大量的属性集合,资源消耗较大。
为了解决该问题,本申请实施例中,存储控制器10根据扫描获得的多项SSD20的属性集合,将SSD20的存储空间进行合并,形成虚拟SSD,并生成该虚拟SSD的属性集合然后将该虚拟SSD的属性集合上报给应用。
本申请实施例中,所谓虚拟SSD指的是逻辑上将不同SSD20的存储空间合并所形成的虚拟化的存储设备。虚拟SSD的属性集合的数据结构与合并前的属性集合的数据结构可以相同,也可以只保留应用关心的部分数据,如虚拟SSD的标识、虚拟SSD的容量。
其中,合并前的多项属性集合中的每项属性集合中均包括至少一个namespace,合并后的虚拟SSD的属性集合可以只存在一个namespace,该namespace的标识作为该虚拟SSD的标识。这个标识可以为合并前的多项属性集合中任一属性集合中包括的任一namespace的标识(如,多项属性集合包括的所有namespace中编号最小的namespace的标识),也可以为存储控制器10生成的尚未使用的标识。
另外,合并后的属性集合中的namespace链表中,namespace的逻辑区块的数量为合并前的所有每个属性集合中每个namespace的逻辑区块数量之和。而每个逻辑区块的大小保持不变。
例如,存储控制器10对10个SSD20进行扫描,对每个SSD20的扫描可以获得1项属性集合,不妨设每项属性集合中包含1个namespace,每个namespace包括10万个逻辑区块,每个逻辑区块的大小为10MB,则每个namespace对应1TB的存储空间。将这10个SSD20的所有10项属性集合合并,形成虚拟SSD的属性集合,该虚拟SSD的属性集合包括1个namespace,该namespace包括的逻辑区块的数目为100万个,每个逻辑区块的大小为10MB,则该虚拟SSD的容量为10TB。
另外,本申请实施例中,存储控制器10根据对至少一个SSD进行扫描获得的属性集合可以构造多个虚拟SSD;另外,存储控制器10也可以只根据对部分的SSD20扫描获得的属性集合构造1个或多个虚拟SSD。
功能三,存储控制器10还用于将合并后的虚拟SSD的属性集合上报应用,以使应用根据该虚拟SSD属性集合对虚拟SSD进行访问。
所谓应用对虚拟SSD进行访问,指的是应用对虚拟SSD对应的SSD20进行访问。
实际情况中,存储控制器10可能只是对一部分的SSD属性集合进行合并,显然,存储控制器10还要将未合并的SSD属性集合上报应用。
本申请实施例中,应用指的是需要对SSD20进行访问的应用程序,例如,数据库程序将数据存储在SSD20中,该数据库程序即为本申请实施例中的应用,需要访问SSD20以写入或读取数据。
结合图1a所示的存储控制器10的形态,本申请实施例中的应用可以运行在存储控制器10上,这种情况下,存储控制器10将虚拟SSD的属性集合上报应用,指的是存储控制器10的负责SSD属性集合合并的逻辑模块将虚拟SSD的属性集合上报该应用对应的逻辑模块。该应用也可以运行在与存储控制器10之外设备(如,另一服务器)上,存储控制器10通过互联网或者与专用网络将虚拟SSD的属性集合发送给应用所在的设备。
在图1b的系统架构中,本申请实施例中的应用运行在存储控制器10与至少一个SSD20组成的硬盘框之外的设备(如图1b中的服务器)中。
本申请实施例上述技术方案中,存储系统中的存储控制器10对存储系统中的至少一个SSD20进行扫描之后,将其中的一部分SSD属性集合进行合并,生成虚拟SSD属性集合,形成虚拟SSD,将虚拟SSD的属性集合上报应用。不仅使得应用能够根据虚拟SSD的属性集合进行数据的读、写等操作,而且应用需要维护的SSD属性集合的数量大幅减少,减少应用的资源消耗。
在一种可能的实现方式中,上述存储控制器10的上述功能一可以通过上述存储控制器10上运行的SSD20驱动模块实现,例如NVMe驱动程序。
上述存储控制器10的功能二可以通过容量转换模块(英文:capacity transformmodule,CTM)实现,CTM具体用于:记录存储控制器10的驱动模块扫描获得的所有SSD20的属性集合,并根据预设规则将至少一个SSD20进行合并,生成虚拟SSD,并将生成的虚拟SSD的属性集合上报给应用。
本申请实施例中,容量转换模块CTM为在逻辑上进行划分的一个模块,其实现上有多种形式。例如,CTM可以是运行于存储控制器10上的软件模块,存储控制器10通过中央处理器(英文:central processing unit,CPU)运行CTM软件代码来实现CTM的功能。又例如,CTM可以是存储控制器10上的实体芯片,如专用集成电路(英文:application specificintegrated circuit,ASIC)芯片。
需要说明的是,存储控制器10对SSD20进行合并,构造虚拟SSD,指的是在逻辑意义上的合并,不改变各SSD20的物理结构。而对上述应用而言,其根据协议规定的命令实现读、写数据,例如在SSD20为PCI-E SSD20时,应用使用NVMe命令来进行读、写数据,应用并不关心其维护的SSD20的属性集合具体对应实体SSD20盘,还是虚拟SSD盘。
在另一种可能的实现方式中,本申请实施例中,存储控制器10根据预设规则将至少一个SSD20合并虚拟SSD,预设规则可以为以下任一种:
预设规则1,存储控制器10对扫描获得的容量属性中的存储空间大小进行累加,在累加后的存储空间大小达到预设大小后,根据参与存储空间大小累加的多个属性集合构造一个虚拟SSD。
例如,存储控制器10设置一预设容量值,如10TB,存储控制器10对存储系统中的所有SSD20进行扫描之后,获得每个SSD20的属性集合,该属性集合包括每个SSD20的容量。存储控制器10将SSD20的容量进行累加,将容量之和达到预设容量值的多个SSD20合并为一个虚拟SSD,如将10个1T的SSD20合并为一个虚拟SSD,生成该虚拟SSD的属性集合,如虚拟SSD的容量以及虚拟SSD的标识。
由于实际情况中,应用只关心存储空间,并不关心存储位置的物理分布,所以,存储控制器10通过本合并规则进行SSD20合并,既满足应用对存储空间容量的需求,又可减小其维护的属性集合的数量,减少资源消耗。
预设规则2,存储控制器10对扫描获得的属性集合进行计数,在计数达到预设数量后,根据参与计数的属性集合构造一个虚拟SSD。
例如,存储控制器10设置预设数值,如10,存储控制器10对存储系统中的所有SSD20进行扫描之后,记录每个SSD20的属性集合,然后,存储控制器10将10个SSD20合并为虚拟SSD,根据这10个SSD20的属性集合生成合并后虚拟SSD的属性集合,如虚拟SSD的容量以及虚拟SSD的标识。
存储控制器10根据SSD20的数量进行SSD20的合并,实现方式简单,运算量小。
预设规则3,在根据前述预设规则1或预设规则2的规则进行SSD20合并之后,可能还剩余少量的SSD20,这些SSD20不满足前述合并规则,但是,这些SSD20是存储系统仅存的尚未合并的SSD20,因此,可以直接将这些SSD20合并,构造虚拟SSD。
例如,结合预设规则1,存储系统一共包含95个SSD20,每个SSD20的容量为1TB,存储控制器10根据设置得预设容量值10TB,将90个SSD20合并为9个虚拟SSD,剩下的5个SSD20虽然容量达不到预设容量值10TB,但是由于存储系统已经没有未合并的SSD20,存储控制器10直接将这5个SSD20合并,构造一虚拟SSD。
又例如,结合预设规则2,存储系统一共包含95个SSD20,存储控制器10根据设置得预设数量值10,将90个SSD20合并为9个虚拟SSD,剩下的5个SSD20虽然数量达不到预设数量值10,但是由于存储系统已经没有未合并的SSD20,存储控制器10直接将这5个SSD20合并,构造一虚拟SSD。
本申请实施例中,存储控制器10可以对扫描到的所有SSD20进行上述合并操作,也可以只是对其中的一部分SSD20进行上述合并操作,本申请实施例不予限定。
在另一种可能的实现方式中,存储系统中部分或全部的SSD20具有多个SSD控制器(亦即,控制芯片),一个SSD20设置多个SSD控制器的目的在于提高该SSD20的访问速度。但是,存储控制器10在对这种设置有多个SSD控制器的SSD20进行扫描时,将根据该SSD20的SSD控制器数量扫描获得多个属性集合。例如,NVMe驱动程序在对具有4个SSD控制器的SSD20进行扫描时,扫描获得4项属性集合,换言之,NVMe驱动程序将一个物理SSD20盘识别为4个SSD20。这种情况下,存储控制器10将扫描获得的SSD属性集合上报给应用后,应用需要维护的属性集合的数量变多。
为解决该问题,本申请实施例中,存储控制器10可以根据扫描获得的SSD属性集合进行SSD20合并。
例如,在采用前述方式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扫描为SSD209、SSD2010、SSD2011、SSD2012,上述SSD201至SSD2012中每个SSD20的属性集合表明其容量为1TB。存储控制器10在对SSD20进行合并时,对上述SSD201至SSD2012的容量进行累加,确定SSD201至SSD2010的容量之和达到10TB,根据属性集合1至属性集合10生成虚拟SSD的属性集合,构造虚拟SSD。
又例如,在采用前述方式2进行SSD20合并时,存储控制器10在对SSD20进行合并时,对上述属性集合1至属性集合12的数量进行累加,确定属性集合1至属性集合10的数量之和达到预设数量值10,根据属性集合1至属性集合10生成虚拟SSD的属性集合,构造虚拟SSD。
可见,如果一个SSD20物理盘被扫描为多个逻辑意义上的SSD20,存储控制器10在构造虚拟SSD时,并不关心扫描到的SSD20的物理分布,因此,一个SSD20扫描出的第一部分SSD20可以被合并到第一虚拟SSD,而该SSD20扫描出的第二部分SSD20被合并到第二虚拟SSD。
通过上述技术方案,能够在SSD20具有多个SSD控制器的情况下,减少应用需要维护的SSD属性集合,减少应用的资源消耗。
本申请实施例中,存储控制器10在生成虚拟SSD后,保存每个虚拟SSD的逻辑地址与SSD20中的物理地址的映射。应用维护虚拟SSD的属性集合,根据虚拟SSD的属性集合对虚拟SSD进行访问,其中的一种可能的实现方式如下:
应用向存储控制器10发送第一访问请求,该第一访问请求中包含第一虚拟SSD中的第一逻辑地址。
存储控制器10根据存储的映射,确定第一虚拟SSD中的该第一逻辑地址对应第一SSD中的第一物理地址。然后,存储控制器10向该该第一SSD实体发送第二访问请求,第二访问请求与第一访问请求所请求的数据操作相同。所谓的第二访问请求与第一访问请求所请求的数据操作相同,指的是:第二访问请求只是对第一访问请求的转发,二者的不同之处在于,对数据的地址的表述方式不同,在第一访问请求中,数据的地址为虚拟SSD中的第一逻辑地址,而在第二访问请求中,数据地址为第一SSD20中的该第一物理地址。
可选的,结合上述存储控制器10向SSD20发送第二访问请求的技术方案,SSD20根据第二访问请求向存储控制器10返回访问结果,例如,在第二访问请求为读数据请求时,该访问结果为目标数据;又例如,在第二访问请求为写数据请求时,该访问结果为数据写入成功/失败消息。
而存储控制器10在接收到该访问结果后,将该访问结果返回给应用,以使得应用能够获得访问结果。
本申请实施例中,一个存储控制器10可以将虚拟SSD的属性集合上报给多个应用,每个应用均可以根据虚拟SSD的属性集合进行数据访问。在这种系统架构中,每个应用仅需维护少量的虚拟SSD的属性集合,在需要对数据进行访问时,应用将数据在虚拟SSD中的地址发送给存储控制器10,存储控制器10可以将该地址转化为SSD20中的地址,并向该SSD20转发应用的访问请求。换言之,应用只需要关心少量的虚拟SSD,由存储控制器10负责虚拟SSD与SSD20之间的转换。在一个存储控制器10为多个应用服务时,每个应用的负担均大幅减小,整个系统的效率可以得到大幅提高。
需要说明的是,在一种可能的实现中,在存储控制器10为图1b所示的形态时,该存储控制器10除了可以扫描自身硬盘框内的SSD20,还能够通过网络扫描其他硬盘框内的SSD20。
本申请实施例还提供一种管理存储系统的方法,参照图2,该方法由图1a、图1b任一所示的存储控制器10执行,该方法包括如下步骤:
步骤301:存储控制器对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性集合,每个SSD的对应至少一个属性集合;
步骤302:存储控制器根据扫描获得的M项所述属性集合构造N个虚拟SSD,每个虚拟SSD根据至少两项属性集合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合合并而成,M为大于或等于2的整数,N为小于M的正整数;
步骤303:存储控制器向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。
在一种可能的实现方式中,所述每个属性集合中包括存储空间大小,步骤302:根据扫描获得的M项所述属性集合构造N个虚拟SSD,包括:
对所述属性集合中的存储空间大小进行合并,根据合并后的存储空间大小达到预设容量的所述至少两项属性集合构造一个虚拟SSD。
在一种可能的实现方式中,步骤302:根据扫描获得的M项所述属性集合构造N个虚拟SSD,包括:
根据预设数量的所述属性集合,构造一个虚拟SSD。
在一种可能的实现方式中,参照图3,在步骤302执行的同时或之后,还包括如下步骤:
步骤304:存储控制器存储每个所述虚拟SSD的逻辑地址与所述至少一个中物理地址的映射;
在步骤303之后,所述方法还包括如下步骤:
步骤305:存储控制器获得所述应用的第一访问请求,所述第一访问请求包括所述N个虚拟SSD中第一虚拟SSD中的逻辑地址;
步骤306:存储控制器根据存储的所述映射,确定与所述逻辑地址对应的所述至少一个中第一SSD的物理地址;
步骤307:存储控制器向所述第一SSD发送第二访问请求,所述第二访问请求包括所述物理地址,所述第二访问请求与所述第一访问请求所请求的数据操作相同。
在一种可能的实现方式中,所述至少一个中的第二SSD包括多个SSD控制器;步骤301执行过程中,根据所述第二SSD的每个SSD控制器扫描获得一项所述属性集合。
上述步骤301至步骤307由图1a或图1b中的存储控制器10执行,上述步骤的具体实现方式可以参照前面对存储控制器10功能的描述,在此不予重复。
本申请实施例还提供一种管理存储系统的设备,参照图4,该设备包括:
SSD驱动模块401,用于对至少一个SSD进行扫描,获得所述至少一个SSD的M项属性集合,每个SSD的对应至少一个属性集合;
容量转换模块402,用于根据扫描获得的M项所述属性集合构造N个虚拟SSD,每个虚拟SSD根据至少两项属性集合构造,且每个虚拟SSD的属性集合由所述至少两项属性集合合并而成,M为大于或等于2的整数,N为小于M的正整数;
发送模块403,用于向应用上报所述N个虚拟SSD各自的属性集合,以使所述应用根据所述N个虚拟SSD的属性集合对所述N个虚拟SSD进行访问。
在一种可能的实现方式中,所述每个属性集合中包括存储空间大小,容量转换模块402具体用于:对所述属性集合中的存储空间大小进行合并,根据合并后的存储空间大小达到预设容量的所述至少两项属性集合构造一个虚拟SSD。
在一种可能的实现方式中,容量转换模块402具体用于:根据预设数量的所述属性集合,构造一个虚拟SSD。
在一种可能的实现方式中,所述设备还包括:
存储模块404,用于存储每个所述虚拟SSD的逻辑地址与所述至少一个中物理地址的映射;
接收模块405,用于获得所述应用的第一访问请求,所述第一访问请求包括所述N个虚拟SSD中第一虚拟SSD中的逻辑地址;
映射模块406,用于根据所述存储模块中存储的所述映射,确定与所述逻辑地址对应所述至少一个中第一SSD的物理地址;该映射模块406与容量转换模块402可以为同一模块;
发送模块403,还用于向所述第一SSD发送第二访问请求,所述第二访问请求包括所述物理地址,所述第二访问请求与所述第一访问请求所请求的数据操作相同。
在一种可能的实现方式中,所述至少一个中的第二SSD包括多个SSD控制器;SSD驱动模块401具体用于:对第二SSD进行扫描,并根据所述第二SSD的每个SSD控制器扫描获得一项所述属性集合。
上述管理存储系统的设备的各模块的实施方式请参照图1a、图1b中任一存储控制器10所实现的功能,在此不予重复。
本申请实施例还提供一种存储控制器,参照图5,该存储控制器包括处理器501、收发器502以及总线503,处理器501与收发器502通过总线503通信。收发器502用于与网络中的其他网元通信,如多个SSD,又如服务器。处理器501用于通过收发器502实现图1a中存储控制器的功能,该处理器501以及收发器502的实施方式可以参照前面对图1a中存储控制器实施方式的描述。
本申请实施例中,处理器501可以是一个处理元件,例如,该处理器501可以是CPU,通过该CPU实现存储控制器10的功能,如通过收发器实现对多个SSD20进行扫描,又如根据扫描获得的SSD20的属性集合构造虚拟SSD。该处理器501也可以是多个处理元件的统称。例如,存储控制器10的处理器501包括CPU以及ASIC,该CPU通过收发器实现对多个SSD20进行扫描,而该ASIC用于根据扫描获得的SSD20的属性集合构造虚拟SSD。
该收发器可以为有线通信类型的收发器,如以太网数据收发器;收发器也可以为无线通信类型的收发器,如包括天线以及与该天线连接的射频模块的收发器。
可选的,存储控制器还可以包括存储器504,该存储器504用于存储可执行程序代码或存储控制器10运行所需要参数、数据,扫描获得的SSD20属性集合,等等。且该存储器可以包括随机存储器(英文:random-access memory,RAM),也可以包括非易失性存储器(英文:non-volatile memory,NVM),等等。图5中存储器504表明存储器504不是实现本申请实施例中存储控制器功能所必需的元件。
本申请实施例还提供一种存储设备,该存储设备包括至少一个SSD以及图1b中的存储控制器,该存储控制器的实施方式请参照图1b中存储控制器10的实施方式,在此不予详述。
本申请实施例中,存储控制器可以包括1个或多个处理器,如1个或多个CPU,或者,1个或多个ASIC,或者,CPU与ASIC的结合。在存储控制器包括一个处理器时,由该处理器实现存储控制器的功能;在存储控制器包括多个处理器时,每个处理器实现存储控制器的部分功能。
在一种可能的实施中,多个本申请实施例中的存储设备通过网络连接,每个存储设备中的存储控制器除了可以扫描本存储设备中的至少一个SSD,也可以通过网络扫描其他存储设备中的SSD,并根据对其他存储设备中SSD扫描获得的属性集合构造虚拟SSD。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

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所述的方法,其特征在于,在所述根据扫描获得的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所述的设备,其特征在于,所述设备还包括:
存储模块,用于存储每个所述虚拟SSD的逻辑地址与所述至少一个SSD中物理地址的映射;
接收模块,用于获得所述应用的第一访问请求,所述第一访问请求包括所述N个虚拟SSD中第一虚拟SSD中的逻辑地址;
映射模块,用于根据所述存储模块中存储的所述映射,确定与所述逻辑地址对应的所述至少一个SSD中第一SSD的物理地址;
所述发送模块,还用于向所述第一SSD发送第二访问请求,所述第二访问请求包括所述物理地址,所述第二访问请求与所述第一访问请求所请求的数据操作相同。
10.如权利要求6至9任一项所述的设备,其特征在于,所述至少一个SSD中的第二SSD包括多个SSD控制器;SSD驱动模块具体用于:对所述第二SSD进行扫描,并根据所述第二SSD的每个SSD控制器扫描获得一项所述属性集合。
CN201610281745.9A 2016-04-29 2016-04-29 一种管理存储系统的方法及设备 Active CN105892955B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610281745.9A CN105892955B (zh) 2016-04-29 2016-04-29 一种管理存储系统的方法及设备
CN201910920051.9A CN110851383B (zh) 2016-04-29 2016-04-29 一种管理存储系统的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610281745.9A CN105892955B (zh) 2016-04-29 2016-04-29 一种管理存储系统的方法及设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910920051.9A Division CN110851383B (zh) 2016-04-29 2016-04-29 一种管理存储系统的方法及设备

Publications (2)

Publication Number Publication Date
CN105892955A CN105892955A (zh) 2016-08-24
CN105892955B true CN105892955B (zh) 2019-10-18

Family

ID=56703115

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910920051.9A Active CN110851383B (zh) 2016-04-29 2016-04-29 一种管理存储系统的方法及设备
CN201610281745.9A Active CN105892955B (zh) 2016-04-29 2016-04-29 一种管理存储系统的方法及设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910920051.9A Active CN110851383B (zh) 2016-04-29 2016-04-29 一种管理存储系统的方法及设备

Country Status (1)

Country Link
CN (2) CN110851383B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614671B (zh) * 2016-12-12 2023-02-28 北京忆恒创源科技股份有限公司 基于命名空间的键-数据访问方法与固态存储设备
JP6773229B2 (ja) 2016-12-29 2020-10-21 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ストレージコントローラおよびioリクエスト処理方法
CN109799956B (zh) 2017-01-05 2023-11-17 华为技术有限公司 一种存储控制器及io请求处理方法
CN108628762B (zh) * 2017-03-22 2021-05-28 北京忆恒创源科技有限公司 一种固态存储设备及其处理io命令的方法
CN107526548B (zh) * 2017-08-31 2020-09-25 苏州浪潮智能科技有限公司 多namespace的固态硬盘及数据删除方法与装置
CN109002258A (zh) * 2018-06-27 2018-12-14 郑州云海信息技术有限公司 固态硬盘内命名空间分配方法、系统及设备和存储介质
CN109491601B (zh) * 2018-10-26 2021-11-26 深圳市硅格半导体有限公司 固态硬盘数据的并行处理方法、装置及可读存储介质
CN110321678B (zh) * 2019-06-19 2021-08-31 北京信安世纪科技股份有限公司 一种虚拟系统的控制方法、装置、设备和介质
US11620083B2 (en) 2021-07-02 2023-04-04 Samsung Electronics Co., Ltd. Method for implementing predictable latency mode feature in SSD, and non-volatile memory (NVM) based storage device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387989A (zh) * 2008-10-29 2009-03-18 北京世纪红山科技有限公司 构建基于分区管理的虚拟存储设备的计算机系统及方法
CN102830941A (zh) * 2012-06-15 2012-12-19 记忆科技(深圳)有限公司 固态硬盘的驱动方法及其存储系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226679B (zh) * 2007-05-09 2016-06-08 金士顿科技股份有限公司 安全且可扩充的固态磁盘系统
CN102117184B (zh) * 2010-01-05 2017-06-27 联想(北京)有限公司 用于多存储器的控制器、终端设备及其启动和访问方法
US9645943B2 (en) * 2011-02-22 2017-05-09 Infinidat Ltd. Storage arrangement and method using a plurality of storage spaces which have separate control layers and separate mapping structures
WO2014016866A1 (en) * 2012-07-24 2014-01-30 Hitachi, Ltd. Storage system, storage control method and storage control program
US9323662B2 (en) * 2012-12-31 2016-04-26 SanDisk Technologies, Inc. Flash memory using virtual physical addresses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387989A (zh) * 2008-10-29 2009-03-18 北京世纪红山科技有限公司 构建基于分区管理的虚拟存储设备的计算机系统及方法
CN102830941A (zh) * 2012-06-15 2012-12-19 记忆科技(深圳)有限公司 固态硬盘的驱动方法及其存储系统

Also Published As

Publication number Publication date
CN110851383A (zh) 2020-02-28
CN110851383B (zh) 2023-08-22
CN105892955A (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
CN105892955B (zh) 一种管理存储系统的方法及设备
US20220084085A1 (en) Parcelled Quantum Resources
KR102220528B1 (ko) 데이터 액세스 장치 및 그것의 동작 방법
CN107015845A (zh) Gpu虚拟化
CN102141931B (zh) 一种创建虚拟机的方法、虚拟机监控器及虚拟机系统
CN109791536A (zh) 可配置逻辑平台
CN110119303A (zh) 构建虚拟主板和虚拟存储设备
CN102929786A (zh) 非易失性存储设备集合的易失性存储器表示
KR102198615B1 (ko) 듀얼 프로그램 동작을 사용하는 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및 그들의 동작 방법
CN103218312A (zh) 文件访问方法及系统
US20160306655A1 (en) Resource management and allocation using history information stored in application's commit signature log
CN110321331A (zh) 利用多级散列函数来确定存储地址的对象存储系统
CN110275840A (zh) 在存储器接口上的分布式过程执行和文件系统
CN111324427A (zh) 一种基于dsp的任务调度方法及装置
WO2020081805A1 (en) Parcelled quantum resources
CN109086141A (zh) 内存管理方法和装置以及计算机可读存储介质
CN115904212A (zh) 数据处理的方法、装置、处理器和混合内存系统
CN106598724A (zh) 用于在计算系统中管理内存的方法
WO2022068760A1 (zh) 内存管理的方法及其装置
Kim et al. HMB-SSD: Framework for efficient exploiting of the host memory buffer in the NVMe SSD
CN109840048A (zh) 存储命令处理方法及其存储设备
CN108228333A (zh) 一种多核系统的核间资源隔离方法
CN109597565A (zh) 虚拟Plane管理
CN110308865A (zh) 存储器系统、计算系统及其操作方法
CN110383255A (zh) 管理对物理设备的客户分区访问

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant