CN107885457B - 一种固态硬盘ssd、存储装置及数据存储方法 - Google Patents

一种固态硬盘ssd、存储装置及数据存储方法 Download PDF

Info

Publication number
CN107885457B
CN107885457B CN201610873544.8A CN201610873544A CN107885457B CN 107885457 B CN107885457 B CN 107885457B CN 201610873544 A CN201610873544 A CN 201610873544A CN 107885457 B CN107885457 B CN 107885457B
Authority
CN
China
Prior art keywords
target
data
cache partition
external cache
stored
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
CN201610873544.8A
Other languages
English (en)
Other versions
CN107885457A (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 CN201610873544.8A priority Critical patent/CN107885457B/zh
Priority to PCT/CN2017/104017 priority patent/WO2018059495A1/zh
Publication of CN107885457A publication Critical patent/CN107885457A/zh
Application granted granted Critical
Publication of CN107885457B publication Critical patent/CN107885457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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
    • 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
    • G06F3/0688Non-volatile semiconductor memory arrays

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)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种固态硬盘SSD、存储装置及数据存储方法,该SSD包括:盘体,所述盘体上设置有用于与磁盘阵列连接的连接口、至少一个存储条接口;控制器,设置于所述盘体中,所述控制器分别与所述连接口和所述存储条接口电性连接;至少一个存储条,可插拔的插设于所述至少一个存储条接口上,所述至少一个存储条中每个存储条上设置有至少两个闪存颗粒,所述闪存颗粒用于存储数据,所述控制器用于通过每个存储条接口对每个存储条接口连接的存储条上的闪存颗粒中的数据进行读写。本发明中的SSD,便于拆卸与更换。

Description

一种固态硬盘SSD、存储装置及数据存储方法
技术领域
本发明涉及存储技术领域,尤其涉及一种固态硬盘SSD、存储装置及数据存储方法。
背景技术
固态硬盘(英文:Solid State Drives,简称:SSD)是存储阵列的一个重要存储部件。在现有的SSD生产方式中,SSD的闪存颗粒、控制器以及其它辅助元件,例如电容均焊接在一块印刷电路板(英文:Printed Circuit Board,简称:PCB)上。然后通过两块盖板将PCB进行封装,组成一块完整的SSD。
因此,现有的SSD,因为闪存颗粒、控制器均焊接在同一块PCB上,任意一个闪存颗粒或者控制器损坏导致SSD失效,则需要拆卸下整块PCB进行更换,所以拆卸和更换复杂,而且更换整块PCB,成本也较高。
发明内容
本发明提供一种固态硬盘SSD、存储装置及数据存储方法,用以解决现有技术中SSD的结构导致拆卸以及更换复杂的技术问题。
第一方面,本发明实施例提供一种固态硬盘SSD,包括:
盘体,所述盘体上设置有用于与磁盘阵列连接的连接口、至少一个存储条接口;控制器,设置于所述盘体中,所述控制器分别与所述连接口和所述存储条接口电性连接;至少一个存储条,可插拔的插设于所述至少一个存储条接口上,所述至少一个存储条中每个存储条上设置有至少两个闪存颗粒,所述闪存颗粒用于存储数据,所述控制器用于通过每个存储条接口对每个存储条接口连接的存储条上的闪存颗粒中的数据进行读写。通过将存储条设计成可插拔的形式,便于更换存储条,而无需像现有技术中那样需要拆开盖板,更换整个PCB,所以也能降低成本。
在一个可能的设计中,所述SSD还包括至少两个外部缓存分区,每个外部缓存分区对应一个闪存颗粒,每个闪存颗粒具有一个内部缓存区;所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标闪存颗粒,确定所述目标闪存颗粒对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒。通过外部缓存分区,将下发到某个存储条的每个闪存颗粒的待存储数据缓存起来,然后再分别存储到各个目标闪存颗粒,每次外部缓存分区中的待存储数据存储到各个目标闪存颗粒都可以并行进行,既可以省去控制器的调度处理,也提升了数据写请求的处理速度和性能。
在一个可能的设计中,所述SSD还包括至少两个备份外部缓存分区,所述至少两个备份外部缓存分区与所述至少两个外部缓存分区一一对应,所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;在将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标闪存颗粒。通过为外部缓存分区设计备份外部缓存分区,在将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒失败时,还可以通过备份外部缓存分区将数据存储至目标闪存颗粒,避免了因目标外部缓存分区中的数据丢失以致于无法将数据成功写入目标闪存颗粒。
在一个可能的设计中,所述控制器还用于确定所述目标闪存颗粒的备份闪存颗粒,确定所述备份闪存颗粒对应的外部缓存分区,将所述待存储数据存入所述备份闪存颗粒对应的外部缓存分区;将所述待存储数据从所述备份闪存颗粒对应的外部缓存分区存储至所述备份闪存颗粒。通过为目标闪存颗粒设计备份闪存颗粒,并且在备份闪存颗粒中也存储待存储数据,如此可以避免因误拔存储条或者闪存颗粒故障造成数据丢失。
在一个可能的设计中,所述控制器还用于侦测是否有故障的闪存颗粒;在侦测到有故障的闪存颗粒时,所述控制器还用于确定所述故障的闪存颗粒所在的存储条以及所述故障的闪存颗粒在所述存储条上的位置;所述控制器还用于上报所述故障的闪存颗粒所在的存储条的标识以及所述故障的闪存颗粒在所述存储条上的位置。因为及时侦测和上报故障闪存颗粒,所以可以提示用户及时采取措施,例如更换故障的闪存颗粒或者更换故障的闪存颗粒所在的存储条。
在一个可能的设计中,所述盘体上还包括控制器插槽,所述控制器所在的电路板可插拔的插入所述控制器插槽中。如此便于更换所述控制器,而无需像现有技术中那样拆开盖板,更换整个PCB。
在一个可能的设计中,所述至少两个闪存颗粒以贴片的方式设置在所述存储条上。相较于现有技术中将闪存颗粒焊接在PCB上的方式,更容方便用户更换闪存颗粒。
在一个可能的设计中,每个所述存储条接口之间并联,每个所述存储条接口和所述控制器之间串联。如此可以实现存储条和存储条之间通道的数据通信由串行转并行方式,所以可以提高数据写请求的处理速度和性能。
在一个可能的设计中,每个所述存储条上的闪存颗粒之间并联,闪存颗粒与自身所在的存储条所连接的存储条接口串联。如此可以实现存储条内部各闪存颗粒之间数据通信由串行转并行方式,所以可以提高数据写请求的处理速度和性能。
在一个可能的设计中,所述盘体上设置有缓冲器插槽,所述外部缓存分区所在的电路板可插拔的插入所述缓冲器插槽中。如此方便更换新的外部缓存分区。
在一个可能的设计中,每个闪存颗粒还可以根据自身的磨损程度极端自身的失效时间,并将失效时间或者告警信号发送给所述控制器。所述控制器将将要失效的闪存颗粒所在的存储条的编号或标识以及将要失效的闪存颗粒在存储条上的位置上报给阵列系统或主机。如此,可以便于主机或阵列系统进行相应的操作,例如进行数据迁移,还可以提示用户及时更换将要失效的闪存颗粒。
第二方面,本发明实施例提供一种存储装置,包括:
框架,所述框架上设置有至少一个存储接口;控制器,设置于所述框架中;至少一个存储模块,可插拔的插设于所述至少一个存储接口上;至少一个外部缓存分区,与所述至少一个存储模块一一对应;所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标存储模块,确定所述目标存储模块对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块。通过外部缓存分区,将下发到某个存储模块的待存储数据缓存起来,然后再分别存储到各个目标存储模块,每次外部缓存分区中的待存储数据存储到各个目标存储模块都可以并行进行,既可以省去控制器的调度处理,也提升了数据写请求的处理速度和性能。
在一个可能的设计中,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;所述控制器用于从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区,将所述待存储数据存入所述目标外部子缓存分区;将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。因为每个存储模块上设置有至少两个存储单元,所以与每个存储模块对应的外部缓存分区也包括与至少两个存储单元对应的至少两个外部子缓存分区。进一步,因为通过外部子缓存分区,将下发到某个存储单元的待存储数据缓存起来,然后再分别存储到各个目标存储单元,每次外部子缓存分区中的待存储数据存储到各个目标存储单元都可以并行进行,既可以省去控制器的调度处理,也提升了数据写请求的处理速度和性能。
在一个可能的设计中,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。通过为外部缓存分区设计备份外部缓存分区,避免了因目标外部缓存分区中的数据丢失以致于无法将数据成功写入目标存储模块。
在一个可能的设计中,所述控制器还用于确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区,将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。通过为目标存储模块设计备份存储模块,并且在备份存储模块中也存储待存储数据,如此可以避免因误拔存储模块或存储模块故障造成数据丢失。
第三方面,本发明实施例提供一种数据存储方法,用于控制如第二方面所述的存储装置。该方法从控制器的角度进行描述。在该方法中,控制器接收数据写请求。然后控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区。接下来控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块。
在一个可能的设计中,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;所述控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;以及所述控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块,包括:所述控制器从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区;所述控制器将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。
在一个可能的设计中,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,从控制器的角度来描述,所述方法还包括:所述控制器确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;所述控制器在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。
在一个可能的设计中,从控制器的角度来描述,所述方法还包括:所述控制器确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区;所述控制器将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。
第四方面,本发明实施例提供一种控制装置,用于控制如第二方面所述的存储装置。具体的,该控制装置可以为控制器。该控制装置具有实现第三方面的方法中控制器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
在一个可能的设计中,作为控制器的控制装置的具体结构可包括接收单元、确定单元以及处理单元。接收单元、确定单元以及处理单元可执行上述第三方面的方法中的相应功能。
第五方面,本发明实施例提供一种计算机存储介质,用于存储为上述第四方面所描述的控制装置所用的计算机软件指令,并包含用于执行上述方面所设计的程序。
附图说明
图1为本发明实施例提供的一种SSD的结构图;
图2为本发明实施例提供的另一种SSD的结构图;
图3为本发明实施例提供的一种系统结构图;
图4为本发明实施例提供的一种可视化管理界面的示意图;
图5为本发明实施例提供的一种存储装置的结构图;
图6为本发明实施例提供的一种数据存储方法的流程图;
图7为本发明实施例提供的一种控制装置的功能框图。
具体实施方式
本发明提供一种固态硬盘SSD、存储装置及数据存储方法,用以解决现有技术中SSD的结构导致拆卸以及更换复杂的技术问题。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面将结合本发明实施例中的附图,本发明实施例中的技术方案进行描述。
请参考图1所示,为本发明实施例提供的一种SSD的结构图。该SSD包括:盘体10,盘体10上设置有用于与磁盘阵列连接的连接口101、至少一个存储条接口102。连接口101例如为串行小型计算机系统接口(英文:Serial Attached Small Computer SystemInterface,简称:SAS)或者是快速外设组件接口(英文:Peripheral Component InterfaceExpress,简称:PCIE或PCIe)。
该SSD还包括控制器20,设置于盘体10中。控制器20分别与连接口101和存储条接口102电性连接。
可选的,盘体10上还包括控制器插槽,控制器20所在的电路板可插拔的插入控制器插槽中。如此便于更换控制器20,而无须像现有技术中那样需要拆开盖板,更换整个PCB。
该SSD还包括至少一个存储条30,可插拔的插设于至少一个存储条接口102上。具体的,存储条30包括连接头302。通过连接头302和存储条接口102,存储条30可插设于盘体10中,也可以从盘体10中脱离。
可选的,存储条30还包括拉手303。拉手303便于用户对存储条30进行插拔。
至少一个存储条30中每个存储条上设置有至少两个闪存(英文:Flash)颗粒301。闪存颗粒301用于存储数据。控制器20可以通过连接口101接收上层主机或其它实体发送的数据读写请求。控制器20用于根据该数据读写请求通过每个存储条接口102对每个存储条接口102连接的存储条上的闪存颗粒301中的数据进行读写。
如此便于更换存储条30,而无须像现有技术中那样需要拆开盖板,更换整个PCB,同时也能降低更换成本。
可选的,闪存颗粒301包括内部缓存区和闪存。
可选的,存储条30上还可以放置电容和非易失性随机访问存储器(英文:Non-Volatile Random Access Memory,简称:NVRAM)。电容和NVRAM可以完成一些SSD的辅助功能,例如整流,滤波,防止电路各部分供电电压因负载变化而产生变化,提高数据访问的速度等。
可选的,存储条30上的闪存颗粒301、电容或NVRAM均可以采用贴片的方式设置在存储条30上,相较于现有技术中闪存颗粒301、电容或NVRAM被焊接在PCB上的方式,贴片的方式更方便用户更换。
可选的,盘体10还包括存储条容槽103,当存储条30插设于存储条接口102上时,存储条30可以容置于存储条容槽103中,一方面便于固定存储条30,另一方面便于搬运SSD。
请继续参考图1所示,为了提高数据访问速度,在本实施中提供了两级串转并通道,简而言之,即将同类型器件先并联起来,然后再和别的器件进行串联。具体的,其中一级串转并通道为:每个存储条接口102之间是并联结构,然后每个存储条接口102和控制器20之间是串联。如此,存储条30和存储条30之间通道的数据通信由串行转并行方式。
可选的,控制器20与存储条接口102之间的通信总线201可以为PCIe串行总线。
第二级串转并通道为:将存储条30内部的闪存颗粒301进行并联,然后再与存储条接口102串联。换言之,闪存颗粒301之间是并联的,但是闪存颗粒和存储条接口102之间是串联的。如此可以实现存储条内部各闪存颗粒301之间数据通信由串行转并行方式。
可选的,存储条接口102与闪存颗粒301之间的总线202可以为热插拔缓冲式内部整合电路(英文:Inter-Integrated Circuit,简称:I2C)总线。
接下来请参考图2所示,SSD还包括外部缓存区40。外部缓存区40与控制器20之间可以采用PCIe总线进行互联。外部缓存区40被划分为至少两个外部缓存分区401。每个外部缓存分区401对应一个闪存颗粒301。每个闪存颗粒301具有一个内部缓存区3011。如图2所示,外部缓存区40包括4个外部缓存分区401,分别为外部缓存分区C1至C4。外部缓存分区C1与第一存储条的闪存颗粒1对应。闪存颗粒1具有一个内部缓存区C1’。外部缓存分区C2与第一存储条的闪存颗粒2对应。闪存颗粒2具有一个内部缓存区C2’。外部缓存分区C3与第一存储条的闪存颗粒3对应。闪存颗粒3具有一个内部缓存区C3’。外部缓存分区C4与第一存储条的闪存颗粒4对应。闪存颗粒4具有一个内部缓存区C4’。
请同时参考图3所示,为具有外部缓存区之后的系统图。其中主机可以向SSD写数据,也可以从SSD读数据,所以主机可以通过连接口101向控制器20下发数据读写请求,也可以称为输入(英文:Input,简称:I)/输出(英文:Output,简称:O)请求。
另外,在图3中,外部缓存区40还可以包括外部缓存分区C9和外部缓存分区C10。外部缓存分区C9和外部缓存分区C10分别与第二存储条的闪存颗粒9和闪存颗粒10对应。
需要说明的是,在图3中,实线箭头表示I/O交互流程,即表示I/O请求从上层主机下发到外部缓存分区401,再由外部缓存分区401将待存储数据存储到闪存颗粒301的内部缓存区3011。虚线箭头表示逻辑处理流程,即表示外部缓存分区401与闪存颗粒的内部缓存区3011建立起逻辑上的映射关系,或外部缓存区40与外部缓存区50建立起逻辑映射关系,互为备份关系。其中互为备份关系的内容将在后面详细描述。
可选的,盘体10上还可以预留缓冲器插槽,外部缓存区40可以通过缓冲器插槽插入到盘体10上或者从盘体10上拔出。在外部缓存区40损坏的情况下,可以拔出损坏的外部缓存区40,离线更换新的外部缓存区40或者是外部缓存分区401。
在实际运用中,可以建立一个外部缓存分区401和闪存颗粒301之间的对应关系映射表,存储在控制器20中或者其它存储单元上。当然也可以直接建立一个外部缓存分区401和内部缓存区3011之间的对应关系映射表。通过该映射表,控制器20可以确定每个闪存颗粒对应的外部缓存分区是哪个分区。
当控制器20在接收到数据写请求时,例如从连接口101接收到主机发送的数据写请求,从所述数据写请求中获取存储待存储数据的目标闪存颗粒,确定所述目标闪存颗粒对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒。
举例来说,控制器20通过连接口101接收到主机发送的数据写请求。数据写请求中可以包含待存储数据以及用于存储所述待存储数据的目标闪存颗粒的位置,例如编号为1的存储条30上的闪存颗粒1。在该种情况下,控制器20就可以通过数据写请求获取目标闪存颗粒,例如目标闪存颗粒为编号为1的存储条30上的闪存颗粒1。
可选的,数据写请求中也可以不包括用于存储所述待存储数据的目标闪存颗粒的位置,控制器20可以根据预设的写数据规则,为本次数据写请求中包含的待存储数据确定一个目标闪存颗粒。例如确定出的目标闪存颗粒为编号为1的存储条30上的闪存颗粒1。
可选的,控制器20例如是通过前述映射表确定所述目标闪存颗粒对应的目标外部缓存分区。
举例来说,控制器20根据映射表确定目标闪存颗粒对应的目标外部缓存分区为外部缓存分区C1。
接下来控制器20将待存储数据存入目标外部缓存分区,例如存入外部缓存分区C1。
可选的,将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒,可以是直接将待存储数据从目标外部缓存分区迁移至目标闪存颗粒,也可以是将目标外部缓存分区中的待存储数据复制一份,存储至目标闪存颗粒。
可选的,因为存储条接口102与连接至其上的存储条30上的闪存颗粒301是串联,各个闪存颗粒301之间是并联,所以存储条接口102可以并行进行多个将待存储数据发往对应的目标闪存颗粒的操作。如此,存储条接口102就可以并行处理多个数据写请求。
举例来说,控制器20将存储在目标外部缓存分区C1上的待存储数据通过目标闪存颗粒,即闪存颗粒1所连接的存储条接口102迁移至闪存颗粒1。同时控制器20还可以将存储在目标外部缓存分区C2上的待存储数据通过目标闪存颗粒,即闪存颗粒2所连接的存储条接口102迁移至闪存颗粒2,其中,闪存颗粒1和闪存颗粒2所连接的存储条接口是相同的存储条接口。
需要说明的是,若是通过将目标外部缓存分区中的待存储数据复制一份,存储至目标闪存颗粒的方式,那么在待存储数据存储在目标闪存颗粒上之后,目标闪存颗粒可以发送已存储成功的响应给控制器20,控制器20根据该响应将存储在目标外部缓存分区上的待存储数据进行删除,以节约存储空间。若未存储成功,控制器20可以重复控制将待存储数据从目标外部缓存分区中复制一份存储至目标闪存颗粒,直至存储成功。
可选的,将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒,可以是直接将待存储数据从目标外部缓存分区存储至目标闪存颗粒的闪存上,也可以是先将待存储数据从目标外部缓存分区存储至目标闪存颗粒的内部缓存区中,然后目标闪存颗粒的控制器再通过内部缓存机制,将待存储数据从内部缓存区中存储在目标闪存颗粒的闪存上。
由以上描述可以看出,本发明实施例通过外部缓存分区401,将下发到某个存储条30的每个闪存颗粒的待存储数据缓存起来,然后再分别存储到各个目标闪存颗粒,每次外部缓存分区401中的待存储数据存储到各个目标闪存颗粒都可以并行进行,既可以省去控制器20的调度处理,也提升了数据写请求的处理速度和性能。举例来说,假设某个存储条30包含有4个闪存颗粒301,主机下发4个数据写请求,分别向这4个闪存颗粒写数据,控制器20将这4个数据写请求中的待存储数据分别存入这4个闪存颗粒对应的外部缓存分区,然后再将存放在这4个闪存颗粒301对应的外部缓存分区中的待存储数据并行存入到这4个闪存颗粒301中。
可选的,至少两个外部缓存分区之间是相互连通的,所以控制器20可以直接控制数据从一个外部缓存分区转移至另一个外部缓存分区,而数据不需要通过控制器20进行中转,所以可以实现数据快速交互的目的。
可选的,请继续参考图2所示,SSD还包括另一外部缓存区50,可以作为外部缓存区40的备份缓存区。外部缓存区50和外部缓存区40之间可以通过接口总线串联在一起,保持互通。
具体的,外部缓存区50例如包括至少两个外部缓存分区501,例如分别为外部缓存分区C5至C8。外部缓存分区C5为外部缓存分区C1的备份缓存分区。外部缓存分区C6为外部缓存分区C2的备份缓存分区。外部缓存分区C7为外部缓存分区C3的备份缓存分区。外部缓存分区C8为外部缓存分区C4的备份缓存分区。
可选的,用于备份的外部缓存区50的数量可以是一个,也可以是多个。
在实际运用中,可以建立两个外部缓存区中每个外部缓存分区之间的备份映射关系。备份映射关系可以存储在控制器20上或者其它存储单元上。在这种情况下,控制器20在确定目标闪存颗粒对应的目标外部缓存分区后,还可以根据备份映射关系确定目标外部缓存分区的备份外部缓存分区。进一步,控制器20可以将待存储数据存入目标闪存颗粒对应的目标外部缓存分区,以及存入目标外部缓存分区的备份外部缓存分区。继续以前述实例为例,假设目标外部缓存分区为外部缓存分区C1,那么控制器20可以确定外部缓存分区C1的备份外部缓存分区为外部缓存分区C5。然后控制器20可以将待存储数据存入外部缓存分区C1和外部缓存分区C5。
接下来如果在将待存储数据从目标外部缓存分区存储至目标闪存颗粒前,目标外部缓存分区出现故障;或者从目标外部缓存分区迁移至目标闪存颗粒的过程中,用户误拔出了存储条30或者目标闪存颗粒出现故障,导致待存储数据未成功存储至目标闪存颗粒,控制器20在接收到存储失败的响应以及以上失败原因时,控制器20还可以从备份外部缓存分区中获取待存储数据,并再将待存储数据存储至目标闪存颗粒中。
需要说明的是,对于在用户误拔存储条30的情况下,若是用户重新将存储条30插入,那么在控制器20向目标闪存颗粒存储待存储数据时,将前次已存储的部分待存储数据覆盖掉,以保证数据的一致性。如果用户已将存储条30更换,那么控制器20就直接将备份的外部缓存分区中的待存储数据直接存入已更换的存储条的目标闪存颗粒中。如此同样可以保证数据的完整性和一致性。
通过该实施例中的备份外部缓存分区,可以提高数据存储的可靠性。
可选的,为了误拔存储条30或者闪存颗粒301故障造成数据丢失,在本发明实施例中,控制器20在确定出用于存储待存储数据的目标闪存颗粒之后,控制器20还可以确定目标闪存颗粒的备份闪存颗粒。具体的,控制器20可以是根据闪存颗粒之间的备份关系表确定目标闪存颗粒的备份闪存颗粒。该备份关系表为预先配置给控制器20,或者是控制器20根据预设规则建立的。
控制器20还可以根据前述映射表确定备份闪存颗粒对应的外部缓存分区。然后控制器20还将待存储数据存储至备份闪存颗粒对应的外部缓存分区,再将待存储数据从备份闪存颗粒对应的外部缓存分区存储至备份闪存颗粒的内部缓存区,进而再存储至备份闪存颗粒的闪存上。一个数据写请求中的待存储数据被存储至目标闪存颗粒以及备份闪存颗粒上,当目标闪存颗粒出现故障时,依然可以在备份闪存颗粒上找到该待存储数据,保证主机的正常运行。
较佳的,备份闪存颗粒和目标闪存颗粒位于不同的存储条30上。如此一来,一个数据写请求中的待存储数据被存储至目标闪存颗粒以及备份闪存颗粒上,当目标闪存颗粒所在的存储条30被误拔之后,依然可以在备份闪存颗粒上找到该待存储数据,而不会因为目标闪存颗粒所在的存储条30被误拔导致数据丢失。
接下来将描述如何在线变更存储条30的容量,例如在线减少或增加闪存颗粒301,或者是替换闪存颗粒301,或者是插入,拔出或删除存储条30,或者是存储条30的数据迁移。
在一个可能的例子中,可以修改现有的小型计算机系统接口(英文:SmallComputer System Interface,简称:SCSI)协议来配合存储条30的在线容量变更。修改后的SCSI协议的一种可能的格式如表一所示。
Figure BDA0001125409440000141
Figure BDA0001125409440000151
表一
其中,在表一中,操作码类似于现有SCSI协议的读命令0x28,写命令0x2a,本实施例可以定义一个特殊的操作码来表示存储条操作,比如定义操作码0xf1表示存储条操作。
存储条操作代码:表示对存储条30执行具体的操作,例如插入或拔出某个存储条30,可以用一个字节来表示具体的操作代码,比如可以定义为:0x1表示查询某个存储条30,0x2表示删除某个存储条30,0x3表示插入某个存储条条30,0x6表示迁移某个存储条30的数据,其它类似,在此不再一一举例。
被控存储条标识:标识待操作的存储条30的编号。比如被控存储条标识定义为0x5,表示要迁移数据的存储条30的标识为0x5。
控制变量和数据1:指定将数据迁往的存储条30的标识以及要迁移的数据量,数据地址,数据长度,以及是否迁移完成的标志位等。可选的,在操作指令较简单时,此字段可为空。
控制变量和数据2和保留字段属于可进一步扩展的字段。可选的,在操作指令较简单时,此字段可以为空。举例来说,插入某个存储条30时,就只需要制定到被控存储条30的标识即可,控制变量和数据1、控制变量和数据2和保留字段就可以为空。因此,表一中的部分字段是否为空取决于操作的繁简程度。
在以上扩展的SCSI协议中,控制变量可以支持到闪存颗粒301的管理,并且设计了两个控制变量和数据的字段,能够保证完成多种命令参数的组合。
进一步,当存储条30被插拔时,控制器20可以自动向阵列系统上报存储条30被插入或被拔出。
可选的,控制器20侦测是否有故障的闪存颗粒301;若侦测到有故障的闪存颗粒301,确定所述故障的闪存颗粒301所在的位置,例如故障的闪存颗粒301所在的存储条30的编号或标识,以及故障的闪存颗粒301在存储条30上的位置;然后控制器20可以向阵列系统或主机上报故障的闪存颗粒的位置。需要说明的是,控制器20侦测是否有故障的闪存颗粒301的方式为本领域技术人员所熟知的,例如控制器20定期向所有在线的闪存颗粒301发送侦测信号,若在预设时间内未收到某个闪存颗粒301的回复信号,则表示该闪存颗粒301故障了。
可选的,闪存颗粒301还可以根据自身的磨损程度计算自身的失效时间,然后将失效时间或者告警信号发送给控制器20。控制器20可以将将要失效的闪存颗粒301所在的存储条30的编号或标识以及将要失效的闪存颗粒301在存储条30上的位置上报给阵列系统或主机。
可选的,控制器20还可以根据前述扩展的SCSI协议将将要失效的闪存颗粒301上的数据迁移至其它未失效的闪存颗粒301上。
可选的,本发明实施例还提供了一种可视化管理界面,用于配合存储条30的操作使用,例如可以将故障的闪存颗粒301和将要失效的闪存颗粒301进行显示,提示用户进行更换操作。
请参考图4所示,为一种可能的可视化管理界面的示意图。当阵列系统或主机接收到控制器20上报的故障的闪存颗粒301或将要失效的闪存颗粒301后,就在可视化管理界面上对应故障的闪存颗粒301或将要失效的闪存颗粒301的图标位置上进行提示,在图4中,利用不同的填充背景表示不同状态的闪存颗粒,但在实际应用中,可以用其它提示方式进行提示,例如用红色表示故障,绿色表示正常,黄色表示将要失效。
可选的,前述外部缓存分区、备份缓存分区、备份目标闪存颗粒的方案还可以应用于硬盘阵列、服务器中。
具体的,请参考图5所示,为本发明实施例提供的一种存储装置的结构图。该存储装置包括:框架601,框架601上设置有至少一个存储接口6011;控制器602,设置于框架601中;至少一个存储模块603,可插拔的插设于至少一个存储接口6011上;至少一个外部缓存分区604,与至少一个存储模块603一一对应。
请同时参考图6所示,为应用于图5所示存储装置的数据存储方法的流程图。以下将结合图5和图6说明数据存储方法的实施过程以及存储装置的各个部分所能实现的功能。如图6所示,该方法包括:
步骤701:控制器602接收数据写请求;
步骤702:控制器602从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;
步骤703:控制器602将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块。
可选的,每个存储模块603包括一个内部缓存区6031和存储本体。因此,步骤703中,将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块,可以是将待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块的内部缓存区6031,也可以是待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块的存储本体。如果是先存储目标存储模块的内部缓存区6031,那么目标存储模块的控制器可以根据内部缓存机制,将待存储数据从目标存储模块的内部缓存区6031存储到目标存储模块的存储本体。
若每个存储模块603上仅有一个存储单元,即一个存储模块603就是一个单独的存储单元,那么步骤701至步骤703的实施过程,与前述描述SSD时,SSD的控制器20的数据存储方法是类似的,只要将前述描述中的闪存颗粒301替换为本实施例中的存储模块603即可。
若每个存储模块603上设置有至少两个存储单元,例如前述SSD的存储条30上设置有至少两个闪存颗粒301。对应的,与每个存储模块603对应的外部缓存分区604包括与至少两个存储单元对应的至少两个外部子缓存分区。对应的,步骤702包括:控制器602从数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区。步骤703包括:控制器602将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。具体的实现方式与前述SSD时是类似的,只要将闪存颗粒替换为存储单元,即为本实施例中步骤702和步骤703的实施过程。
可选的,每个存储单元包括一个内部子缓存区和存储本体。
可选的,在每个存储模块603上设置有至少两个存储单元的情况下,也可以使用前述备份外部缓存分区和备份目标闪存颗粒的方案,只要将闪存颗粒替换为存储单元,即为本实施例中的具体实施过程。
可选的,在每个存储模块603为单独的一个存储单元的情况下,也可以使用前述备份外部缓存分区和备份目标存储单元的方案,具体的实施过程如下:所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应。相应的,控制器602确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;控制器602在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。该方案为采用备份外部缓存分区的方案,可以提供数据存储的可靠性。详细的实施过程可以参考前述SSD中对备份外部缓存分区的描述。
采用备份存储模块的方案如下:控制器602还确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区;控制器602还将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。通过该方案可以避免目标存储模块故障或者被误拔之后,还可以在备份存储模块中找到数据,避免了数据丢失。详细的实施过程可以参考前述SSD中对备份闪存颗粒的描述。
基于同一发明构思,本发明实施例提供一种控制装置,用于实现前述图6所示的数据存储方法,以控制如前述图5所示的存储装置。作为一个例子,请参考图7所示,为该控制装置的功能框图,该控制装置包括:接收单元801、确定单元802以及处理单元803。
其中,接收单元801,用于接收数据写请求;确定单元802,用于从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;处理单元803,用于用于将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块。
可选的,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;确定单元802用于从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区;处理单元803用于将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。
可选的,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,确定单元802还用于:确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;处理单元803还用于:在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。
可选的,确定单元802还用于:确定所述目标存储模块的备份存储模块,确定所述备份闪存颗粒对应的外部缓存分区;处理单元803还用于:将所述待存储数据存入所述备份闪存颗粒对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。
需要说明的是,控制装置以功能单元的形式展示。在不受限制的情况下,本文所使用的术语“单元”可指执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、(共享、专用或组)处理器以及存储器,组合逻辑电路,和/或提供所述功能的其它合适的部件。
前述SSD实施例中的各种变化方式和具体实例同样适用于本实施例的存储装置和控制装置,通过前述对SSD的详细描述,本领域技术人员可以清楚的知道本实施例中存储装置和控制装置的实施方法,所以为了说明书的简洁,在此不再详述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种固态硬盘SSD,其特征在于,包括:
盘体,所述盘体上设置有用于与磁盘阵列连接的连接口、至少一个存储条接口;
控制器,设置于所述盘体中,所述控制器分别与所述连接口和所述存储条接口电性连接;每个存储条接口之间是并联结构,每个存储条接口和控制器之间是串联结构;
至少一个存储条,可插拔的插设于所述至少一个存储条接口上,所述至少一个存储条中每个存储条上设置有至少两个闪存颗粒,所述闪存颗粒用于存储数据,所述控制器用于通过每个存储条接口对每个存储条接口连接的存储条上的闪存颗粒中的数据进行读写;所述至少两个闪存颗粒之间是并联的;
所述SSD还包括至少两个外部缓存分区,每个外部缓存分区对应一个闪存颗粒,所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标闪存颗粒,确定所述目标闪存颗粒对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;
将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒。
2.如权利要求1所述的SSD,其特征在于,所述SSD还包括至少两个备份外部缓存分区,所述至少两个备份外部缓存分区与所述至少两个外部缓存分区一一对应,
所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;
在将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标闪存颗粒。
3.如权利要求1所述的SSD,其特征在于,所述控制器还用于确定所述目标闪存颗粒的备份闪存颗粒,确定所述备份闪存颗粒对应的外部缓存分区,将所述待存储数据存入所述备份闪存颗粒对应的外部缓存分区;将所述待存储数据从所述备份闪存颗粒对应的外部缓存分区存储至所述备份闪存颗粒。
4.如权利要求1-3中任一项所述的SSD,其特征在于,所述控制器还用于侦测是否有故障的闪存颗粒;
在侦测到有故障的闪存颗粒时,所述控制器还用于确定所述故障的闪存颗粒所在的存储条以及所述故障的闪存颗粒在所述存储条上的位置;所述控制器还用于上报所述故障的闪存颗粒所在的存储条的标识以及所述故障的闪存颗粒在所述存储条上的位置。
5.一种存储装置,其特征在于,包括:
框架,所述框架上设置有至少一个存储接口;
控制器,设置于所述框架中;
至少一个存储模块,可插拔的插设于所述至少一个存储接口上;每个存储接口之间是并联结构,每个存储接口和控制器之间是串联结构;
至少一个外部缓存分区,与所述至少一个存储模块一一对应;
所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标存储模块,确定所述目标存储模块对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;
将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块;
所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;所述至少两个存储单元之间是并联的;
所述控制器用于从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区,将所述待存储数据存入所述目标外部子缓存分区;
将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。
6.如权利要求5所述的存储装置,其特征在于,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,
所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;
在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。
7.如权利要求5所述的存储装置,其特征在于,所述控制器还用于确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区,将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。
8.一种数据存储方法,用于如权利要求6所述的存储装置,其特征在于,所述方法包括:
所述控制器接收数据写请求;
所述控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;
所述控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块;
其中,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;所述控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;以及所述控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块,包括:
所述控制器从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区;
所述控制器将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元,当所述控制器接收多个数据写请求时,将多个目标外部子缓存分区中的待存储数据并行存入各个目标存储单元。
9.如权利要求8所述的方法,其特征在于,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,所述方法还包括:
所述控制器确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;
所述控制器在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。
10.如权利要求8所述的方法,其特征在于,所述方法还包括:
所述控制器确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区;
所述控制器将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。
CN201610873544.8A 2016-09-30 2016-09-30 一种固态硬盘ssd、存储装置及数据存储方法 Active CN107885457B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610873544.8A CN107885457B (zh) 2016-09-30 2016-09-30 一种固态硬盘ssd、存储装置及数据存储方法
PCT/CN2017/104017 WO2018059495A1 (zh) 2016-09-30 2017-09-28 一种固态硬盘ssd、存储装置及数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610873544.8A CN107885457B (zh) 2016-09-30 2016-09-30 一种固态硬盘ssd、存储装置及数据存储方法

Publications (2)

Publication Number Publication Date
CN107885457A CN107885457A (zh) 2018-04-06
CN107885457B true CN107885457B (zh) 2020-08-07

Family

ID=61763714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610873544.8A Active CN107885457B (zh) 2016-09-30 2016-09-30 一种固态硬盘ssd、存储装置及数据存储方法

Country Status (2)

Country Link
CN (1) CN107885457B (zh)
WO (1) WO2018059495A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108932138B (zh) * 2018-06-21 2021-08-10 郑州云海信息技术有限公司 一种rssd硬盘的配置方法、装置、设备及介质
CN109378021A (zh) * 2018-10-10 2019-02-22 郑州云海信息技术有限公司 服务器及其ssd盘片
CN114496051A (zh) * 2018-10-25 2022-05-13 华为技术有限公司 固态硬盘及固态硬盘管理方法
CN112817533A (zh) * 2021-01-29 2021-05-18 深圳忆联信息系统有限公司 Ssd管理方法、装置计算机设备及存储介质
CN115599310B (zh) * 2022-11-30 2023-03-24 苏州浪潮智能科技有限公司 存储节点中存储资源的控制方法、装置以及存储节点

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201725323U (zh) * 2010-06-07 2011-01-26 宇达电脑(上海)有限公司 独立冗余磁盘阵列
CN202102724U (zh) * 2011-06-17 2012-01-04 刘淑敏 以挥发性存储器实现的固态存储装置
CN103092267A (zh) * 2011-11-07 2013-05-08 鸿富锦精密工业(深圳)有限公司 安装有固态硬盘的主板
CN103049220B (zh) * 2012-12-19 2016-05-25 华为技术有限公司 存储控制方法、存储控制装置和固态存储系统
CN103713969A (zh) * 2013-12-30 2014-04-09 华为技术有限公司 提高固态硬盘可靠性方法和装置
CN103729148A (zh) * 2013-12-30 2014-04-16 华澜微电子有限公司 一种具有raid功能的固态硬盘
CN104461964B (zh) * 2014-12-12 2017-03-15 杭州华澜微电子股份有限公司 一种存储装置
CN104575595B (zh) * 2014-12-12 2017-07-07 杭州华澜微电子股份有限公司 非易失性随机存取的存储装置
CN204440375U (zh) * 2015-02-25 2015-07-01 浪潮集团有限公司 一种存储容量可调节的PCIe固态硬盘

Also Published As

Publication number Publication date
WO2018059495A1 (zh) 2018-04-05
CN107885457A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107885457B (zh) 一种固态硬盘ssd、存储装置及数据存储方法
US7660867B2 (en) Virtual computer system and virtual computer migration control method
US9740416B2 (en) Essential metadata replication
US9501231B2 (en) Storage system and storage control method
KR102329762B1 (ko) 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
US20200293191A1 (en) Electronic system with storage management mechanism and method of operation thereof
US9696922B2 (en) Storage system
US8516208B2 (en) Data backup method and information processing apparatus
US9792056B1 (en) Managing system drive integrity in data storage systems
US8762771B2 (en) Method for completing write operations to a RAID drive pool with an abnormally slow drive in a timely fashion
JP2012185687A (ja) 制御装置、制御方法およびストレージ装置
US10607714B2 (en) Verification of storage media upon deployment
CN111541753A (zh) 区块链数据的分布式存储系统、方法、计算机设备及介质
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
US20140297988A1 (en) Storage device, allocation release control method
KR100827287B1 (ko) 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법
US20120005441A1 (en) Copying apparatus, copying method, memory medium, and program
US9348704B2 (en) Electronic storage system utilizing a predetermined flag for subsequent processing of each predetermined portion of data requested to be stored in the storage system
US9836359B2 (en) Storage and control method of the same
US20210117094A1 (en) Mirroring data onto disparate types of non-volatile data storage
CN102132245B (zh) 具有执行格式化或粉碎功能的存储系统
CN111857944A (zh) 虚拟机热迁移的方法、装置、系统和计算机可读存储介质
US11074144B2 (en) Active firmware replacement in storage system and in storage controller, and computer-readable recording medium having stored therein program for active firmware replacement in controlling storage
EP2924576A1 (en) Storage control apparatus, control program, and control method
JP6810353B2 (ja) 情報処理システム、情報処理装置およびプログラム

Legal Events

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