CN114691014A - 存储设备管理方法、设备及存储系统 - Google Patents

存储设备管理方法、设备及存储系统 Download PDF

Info

Publication number
CN114691014A
CN114691014A CN202011599870.7A CN202011599870A CN114691014A CN 114691014 A CN114691014 A CN 114691014A CN 202011599870 A CN202011599870 A CN 202011599870A CN 114691014 A CN114691014 A CN 114691014A
Authority
CN
China
Prior art keywords
storage capacity
user
visible
storage
storage device
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.)
Pending
Application number
CN202011599870.7A
Other languages
English (en)
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 CN202011599870.7A priority Critical patent/CN114691014A/zh
Priority to PCT/CN2021/142390 priority patent/WO2022143741A1/zh
Publication of CN114691014A publication Critical patent/CN114691014A/zh
Pending legal-status Critical Current

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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

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)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供一种存储设备管理方法,所述方法包括:访问设备获得第一存储设备的故障信息;所述故障信息用于指示所述第一存储设备的组件发生故障;向所述第一存储设备发送第一释放命令以从存储设备的用户可见存储容量中释放第一用户可见存储容量;所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。

Description

存储设备管理方法、设备及存储系统
技术领域
本发明涉及信息技术领域,特别涉及一种存储设备管理方法、设备及存储系统。
背景技术
独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID)技术是存储系统中广泛使用的保证数据可靠性的技术,当存储系统发生硬盘损坏时,通过未损坏硬盘上数据和校验数据,可以重新计算出损坏硬盘上的数据,这样一个过程被称为RAID的重构。硬盘中数据丢失重构,在提高数据可靠性的同时,也面临硬盘性能的问题。
发明内容
第一方面,本发明实施例提供了一种存储设备管理方法,所述方法包括:
访问设备获得第一存储设备的故障信息;其中,所述故障信息用于指示所述第一存储设备的组件发生故障;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;
所述访问设备根据所述故障信息向所述第一存储设备发送第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。
本发明实施例在存储设备组件发生故障,释放一定容量的用户可见存储容量,减少存储设备对冗余空间的存储容量的占用,从而减少存储设备写放大,提高了写性能。
可选的,所述组件为一个通道上连接的多个颗粒封装,或者为一个或多个颗粒封装,或者为一个或多个颗粒,或者为一个或多个闪存片。
进一步的,所述方法还包括:所述访问设备获取所述发生故障的组件的存储容量的信息,从而确定因为组件发生故障导致的存储容量损失。
进一步的,所述访问设备获取所述发生故障的组件的存储容量,具体包括:
所述访问设备从所述故障信息中获取所述发生故障的组件的存储容量。存储设备可以在故障信息中携带发生故障的组件的存储容量。
进一步的,所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量,具体包括:所述第一释放命令用于从所述第一存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量,从而保证逻辑块地址的连续性。
进一步的,所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量,具体包括:
所述第一释放命令用于从所述第一存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
进一步的,所述方法还包括:
所述访问设备向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量。本发明实施例可以分多次释放相应的用户可见存储容量。例如,基于存储设备的使用率,按比例释放。
进一步的,所述第一释放命令和所述第二释放命令具体为去映射(unmap)命令或去分配(deallocate)命令。
进一步的,所述方法还包括:
所述访问设备将所述第一用户可见存储容量对应的逻辑块地址中的数据复制到第二存储设备,从而保证第一存储设备中被释放的逻辑块地址中的数据不丢失。
进一步的,所述第一存储设备为固态硬盘SSD。
第二方面,本发明实施例提供了一种存储设备管理方法,所述存储设备包含多个组件,所述多个组件为所述存储设备提供用户可见存储容量和冗余空间的存储容量;访问设备用于访问所述用户可见存储容量;所述方法包括:
所述存储设备向所述访问设备发送故障信息;所述故障信息用于指示所述存储设备的组件发生故障;
所述存储设备接收所述访问设备发送的第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量的命令;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量;
所述存储设备根据所述第一释放命令擦除所述第一用户可见存储容量中存储的数据。
本发明实施例,存储设备在组件发生故障后,释放掉不大于发生故障的存储组件所能够提供的存储容量的用户可见存储容量,在不影响整个存储设备的使用的同时,减少或不占用冗余空间的存储容量,从而减少了SSD的写放大,提高了存储性能。
进一步的,所述方法还包括:
所述存储设备向所述访问设备发送所述发生故障的组件提供的存储容量信息。
进一步的,所述第一释放命令具体用于从所述存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
进一步的,所述第一释放命令具体用于从所述存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
进一步的,所述方法还包括:
所述存储设备接收所述访问设备发送的第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量的命令;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量;
所述存储设备根据所述第二释放命令擦除所述第二用户可见存储容量中存储的数据。
进一步的,所述第一释放命令和所述第二释放命令为去映射(unmap)命令或去分配(deallocate)命令。
进一步的,所述存储设备为固态硬盘SSD。
第三方面,本发明实施例提供了一种访问设备,包括各单元,用于实现第一方面各种方案。
第四方面,本发明实施例提供了一种存储设备,包含多个组件,所述多个组件为所述存储设备提供用户可见存储容量和冗余空间的存储容量;访问设备用于访问所述用户可见存储容量;所述存储设备还包括多个单元用于实现第二方面各种方案。
第五方面,本发明实施例提供了一种访问设备,包括处理器和接口,处理器和接口通信,处理器用于实现第一方面各种方案。
第六方面,本发明实施例提供了一种存储设备,所述存储设备包含存储设备控制器和多个组件,所述多个组件为所述存储设备提供用户可见存储容量和冗余空间的存储容量;访问设备用于访问所述用户可见存储容量;所述存储设备控制器用于实现第二方面各种方案。
第七方面,本发明实施例提供了一种存储系统,所述存储系统包含第五方面的访问设备和第六方面的存储设备。
第八方面,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包含计算机程序指令,当计算机执行所述计算机程序指令以执行第一方面各种方案。
第九方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序指令,当计算机执行所述计算机程序指令以执行第一方面各种方案。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明实施例的存储系统示意图;
图2为本发明实施例的存储阵列控制器结构示意图;
图3为本发明实施例分布式存储系统示意图;
图4为本发明实施例分布式存储系统中的服务器结构示意图;
图5为本发明实施例SSD的结构示意图;
图6为本发明实施例中SSD基本存储单元示意图;
图7为本发明实施例存储系统中块组关系示意图;
图8为本发明实施例访问设备操作流程示意图
图9为本发明实施例释放用户可见存储空间示意图;
图10为本发明实施例存储设备操作流程示意图;
图11为本发明实施例访问设备结构示意图;
图12为本发明实施例存储设备结构示意图。
具体实施方式
下面对本申请实施例中的技术方案进行更详细地描述。
如图1所示,本发明实施例中的存储系统,可以为存储阵列(如
Figure BDA0002868576240000031
Figure BDA0002868576240000032
18000系列,
Figure BDA0002868576240000033
V6系列)。存储阵列包括控制器101和多块SSD。其中,SSD可以位于存储阵列的硬盘框。如图2所示,控制器101包含中央处理单元(Central ProcessingUnit,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 BusAdaptor,HBA)。
进一步的,本发明实施例的存储系统还可以为分布式存储系统(如
Figure BDA0002868576240000041
Figure BDA0002868576240000042
系列)等。以
Figure BDA0002868576240000043
Figure BDA0002868576240000044
100D系列。示例性的如图3所示,分布式块存储系统包括多台服务器,如服务器1、服务器2、服务器3、服务器4、服务器5和服务器6,服务器间通过InfiniBand或以太网络等互相通信。在实际应用当中,分布式块存储系统中服务器的数量可以根据实际需求增加,本发明实施例对此不作限定。
分布式块存储系统的服务器中包含如图4所示的结构。如图4所示,分布式块存储系统中的每台服务器包含中央处理单元(Central Processing Unit,CPU)401、内存402、接口403、SSD 1、SSD 2和SSD 3,内存402中存储计算机程序指令,CPU401执行内存402中的程序指令执行相应的操作。接口403可以为硬件接口,如网络接口卡(Network InterfaceCard,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 BusAdaptor,HBA)。在分布式存储系统中,负责分布式存储系统中存储管理的服务器称为控制器。具体的,控制器用于执行存储空间管理,数据访问等。
SSD以页(page)为读写单元,以块(block)为擦除单元,SSD可以实现通道(channel)、颗粒封装(package)、闪存芯片、颗粒(die)、闪存片(plane)等多个级别的数据访问的并行。SSD以多通道方式组织闪存颗粒封装,每个通道上可连接多个颗粒封装,多颗粒封装之间共享传输通道,但可独立执行指令。SSD具体结构可参考图5,包含接口501、SSD控制器502、channel 503、封装504。其中,一个封装504中包含多个闪存芯片,每一个闪存芯片包含一个或多个颗粒,每一个颗粒包含多个闪存片,每一个闪存片包含多个块,每一个块包含多个页。其中,接口501可以是支持串行连接小型计算机系统接口(Serial AttachedSmall Computer System Interface,SAS)协议、非易失性内存快速(Non-Volatile MemoryExpress,NVMe)协议或者快速外设互联(Peripheral Component Interconnect Express,PCIe)协议的接口等。
SSD中的NAND Flash的基本存储单元是浮栅晶体管,一个浮栅晶体管对应一个cell。浮栅晶体管的结构如图6的所示,从上至下包含控制栅极、氧化层、浮栅层(FloatingGate)、隧道氧化层,最下面是源极、漏极和衬底。其中,在源极(Source)和漏极(Drain)之间电流单向传导的晶体管上形成存储电子的浮栅层,浮栅层上下被绝缘层包围,从而使电子易进难出,存储在里面的电子不会因为掉电而消失,所以闪存是非易失性存储器。浮栅晶体管通过对浮栅层进行充放电子来实现对浮栅晶体管写入和擦除数据。在写入数据的时候,在控制栅极施加正电压,使电子通过绝缘层进入浮栅层,即写入数据的过程是充电过程。擦除数据时,在衬底加正电压,使电子从浮栅层的绝缘层穿过,从而把电子从浮栅层中释放。数据是以0和1二进制进行保存的,根据浮栅层中有没有电子两种状态,可以表示数据的0和1,这样就可以进行数据的存储。一般把有电子的状态记为0,没有电子的状态记为1。由于同一个物理块的浮栅晶体管位于同一个衬底,因此,在将电子从浮栅层中释放时,会将同一个物理块上所有电子释放,即在擦除数据时,会擦除整个物理块的数据。
目前根据单元cell能够存储的比特(bit)数量的不同,可以分为以下类型的单元:单级单元(Single Level Cell,SLC)、多级单元(Multi-Level Cell,MLC)、三级单元(Triple Level Cell,TLC)和四级单元(Quad Level Cell,QLC)。Cell能够存储的bit数量也称为cell的容量。其中,SLC,每个单元能够存储1bit数据,即一个浮栅晶体管通过将浮栅层中有无1个电子2种状态表示存储的1bit数据。因此,SLC对应的浮栅晶体管可以存储的1bit数据可以用0和1来表示。MLC,每个单元能够存储2bit数据,即一个浮栅晶体管通过将浮栅层中的是否有最多2个电子的4种状态表示2bit数据。因此,MLC对应的浮栅晶体管可以存储的2bit数据可以用00、01、10、11来表示。TLC,每个单元能够存储3bit数据,即一个浮栅晶体管通过将浮栅层中的是否有最多3个电子的8种状态表示3bit数据。因此,TLC对应的浮栅晶体管可以存储的3bit数据可以用000、001、010、011、100、101、110、111来表示。QLC,每个单元能够存储4bit数据,即一个浮栅晶体管通过将浮栅层中的是否有最多4个电子的16种状态表示4bit数据。
由于SSD只能以物理块为单位进行擦除。如果物理块包含存储有效数据的物理页,SSD在擦除物理块中的数据之前,需要将有效数据读出并且写入到其他块的物理页中。这一过程称为垃圾回收。只有物理页处于空闲状态,才不需要进行擦除操作。为此,SSD提供了冗余空间(Over Provisioning,OP)。冗余空间保证大量物理块块处于空白和保留状态,有助于保持SSD性能的一致性,减少写放大。OP是指SSD提供的超出用户可见存储容量的NANDFlash的存储容量,例如:SSD的用户可见存储容量是400G,但是NAND Flash总存储容量是512G,那么多出的112G的存储容量就是冗余空间的存储容量。冗余空间在NAND Flash总存储容量的比例越大,那么SSD的写放大越小。
SSD用户可见存储容量,对用户是以逻辑地址的形式提供的。本发明实施例中的用户是指访问SSD的设备,即访问设备。具体,可以是服务器或存储阵列中的控制器。在另一种实现中,还可以是主机或终端设备。在SSD中,逻辑地址为逻辑块地址(Logical BlockAddress,LBA),SSD使用闪存转换层(Flash Translation Layer,FTL)将LBA映射到SSD的物理块上的物理页(page),并且建立LBA到物理页地址的映射关系。
根据SSD的结构,SSD包含提供存储容量的组件,例如,通道(channel)、颗粒封装(package)、闪存芯片、颗粒(die)和闪存片(plane)等。因此,SSD的存储容量是由组件提供的。SSD发生故障,通常只是SSD的一个或几个组件发生故障,而不是整个SSD发生故障。也就是说当SSD内部发生故障时,潜在的受该故障影响的存储容量并不是整个SSD的总存储容量,而是SSD的一部分存储容量,本发明实施例称受该故障影响的存储容量所在的组件为故障组件。根据SSD的结构,故障组件可以是一个通道上连接的多个颗粒封装,或者一个或多个颗粒,或者一个或多个闪存片等。本发明实施例中,SSD发生故障,需要对该故障组件存储的数据进行恢复。实际应用场景中,SSD的组件发生故障可以是该故障组件整体发生故障,也可以是该故障组件中的一部分发生故障。例如,以组件为颗粒为例,一个颗粒发生故障,可能整个颗粒都不能够访问,由整个颗粒提供的存储容量都不可以使用。另一种情况,一个颗粒发生故障,可能是颗粒中部分存储容量不可以使用。SSD监控每一个组件的状态。具体实现,SSD控制器使用后台巡检等方式监控组件的状态。SSD还可以根据每一个组件内的物理块Block的擦除次数确定组件的状态,即根据磨损程度确定组件的状态。
本发明实施例中,控制器101可以获取SSD的组件的状态。具体实现可以是存储系统查询SSD的组件的状态,或者由SSD主动上报组件的状态。以存储系统为存储阵列为例,存储系统可以获取SSD的组件的状态,具体为存储阵列的控制器获取SSD的组件的状态。
进一步的,控制器101可以获取SSD的逻辑块地址与组件提供的物理地址之间的映射关系,即SSD的逻辑块地址与SSD的组件上的物理页的映射关系。具体实现,可以由控制器101通过查询获取,或由SSD主动上报。另一种实现,SSD的逻辑块地址与SSD的组件上的物理地址的映射,可以包含多级映射。例如,SSD的逻辑块地址与虚拟逻辑块组的映射,虚拟逻辑块组与物理块或物理页的映射;或者SSD的逻辑块地址与物理块组的映射,物理块组与物理页的映射。
控制器101可以获取SSD的组件信息,例如SSD的组件信息可以包含的组件类型、组件数据以及每一个组件提供的存储容量中一种或几种。
本发明实施例以1个SSD包含140个颗粒,SSD的用户可见存储容量为32TB为例进行描述。SSD的用户可见存储容量为32TB,即可提供32TB的逻辑地址,或称为可提供32TB的地址空间。SSD的冗余空间的存储容量为3TB。其中,每一个颗粒提供556GB的存储容量,则140个颗粒中的128个颗粒提供32TB的用户可见存储容量,140个颗粒中的另外12个颗粒提供3TB的冗余空间的存储容量。结合图1所示的存储阵列,SSD提供32TB的逻辑块地址,即32TB的CK容量。其中,SSD提供固定长度的块(Chunk,CK)组成资源池,控制器101根据使用冗余算法,例如纠删码(Erasure Coding,EC)算法或独立磁盘冗余阵列(Redundancy array ofindependent disks,RAID)算法,将分别来不同的SSD的Chunk组成块组(Chunk Group,CKG),将CKG划分成固定粒度的块(Extent),为存储阵列对外部提供的逻辑单元号(LogicalUnit Number,LUN)提供存储资源。如图7所示,CKG由CK1、CK2和CK3组成。CK1由SSD1的第1颗粒提供,CK2由SSD2的第2颗粒提供,CK3由SSD3的第3颗粒提供。CK1对应SSD1的LBA1,CK2对应SSD2的LBA2,CK3对应SSD3的LBA3。其中,LBA1映射到SSD1的第1颗粒提供的物理地址;LBA2映射到SSD2的第2颗粒提供的物理地址,LBA3映射到SSD3的第3颗粒提供的物理地址。本发明实施例中以SSD1、SSD2和SSD3均包含140个颗粒,用户可见存储容量均为32TB,冗余空间均为3TB为例进行说明。本发明实施例中,从多个SSD选择CK组成CKG时,可以考虑根据基于负载选择SSD的CK。负载可以为输入输出(InputOutput,IO)的类型,IO冷热度等。本发明实施例也可以基于均衡算法选择SSD的CK。
本发明实施例中,例如,SSD1的第1颗粒发生故障,SSD1向控制器101发送故障信息,用于指示颗粒发生故障。SSD1向控制器101发送故障信息,可以是SSD1主动向控制器101发送故障信息;也可以是基于控制器101的查询向控制器101发送故障信息,从控制器101侧,统称为控制器101接收SSD1的故障信息。具体的,该故障信息可以包含发生故障的颗粒的数量,或者该故障信息包含发生故障的颗粒的标识,或者故障信息可以包含发生故障的颗粒提供的存储容量等。该故障信息可以包含受第1颗粒影响的SSD1的逻辑块地址范围。结合本发明实施例前面的描述,控制器101可以获取SSD的组件信息。因此,在故障信息仅仅包含发生故障的颗粒的数量或者该故障信息发生故障的颗粒的标识的情况下,控制器101仍然可以获得发生故障的组件提供的存储容量信息。一种实现,SSD1向控制器101发送组件故障信息,控制器101根据SSD1的逻辑块地址与组件的对应关系确定受影响的逻辑块地址范围,即受故障影响的CK。控制器101根据受故障影响的CK所在CKG恢复出受故障影响的CK存储的数据,从而不需要对SSD1存储的所有数据进行恢复,减少了需要恢复的数据的数量。控制器101可以将恢复出来的数据写入到SSD1,SSD1将恢复出来的数据存储到SSD1的冗余空间中的物理页,从而保持用来存储恢复出来的数据的CK仍然是原来的CK,SSD1只需要更新逻辑块地址到物理页地址的映射。
另外一种实现,SSD1可以基于SSD内部的数据恢复机制,恢复映射到第1颗粒的逻辑块地址中的数据,在不需要对SSD1存储的所有数据进行恢复,减少了需要恢复的数据的数量的同时,也减少了控制器101进行数据恢复时的计算资源消耗。例如,SSD1可以基于SSD1内部的独立磁盘冗余阵列(Redundancy array of independent disks,RAID)机制恢复映射到第1颗粒的逻辑块地址中的数据。SSD1可以将恢复出来的数据存储到SSD1的冗余空间中的物理页,从而保持用来存储恢复出来的数据的CK仍然是原来的CK,SSD1只需要更新逻辑块地址到物理页地址的映射。因此,SSD1可以不需要向控制器101发送用于具体指示第1颗粒发生故障的故障信息。例如,故障信息可以只包含发生故障的组件影响的存储容量的信息。如256GB的存储容量损失,即第1颗粒所提供的存储容量。
基于上述两种数据恢复方式恢复出来的数据还可以存储到其他SSD中,控制器101选择新的CK用于存储恢复出来的数据。
上述几种实现方式,由于SSD1的第1颗粒发生故障,第1颗粒不能够提供相应的存储容量。在SSD1提供的逻辑块地址不变的情况下,需要SSD1的冗余空间来提供第1颗粒故障损失的存储容量,从而消耗了冗余空间的存储容量。
如前面所描述,冗余空间的存储容量的减少,会增加写放大,影响SSD的写性能。为此,本发明实施例,提供了如图8所示的方案,包括:
801:访问设备接收第一存储设备的故障信息;
其中,所述故障信息用于指示所述第一存储设备的组件发生故障;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;
802:所述访问设备根据所述故障信息向所述第一存储设备发送第一释放命令;
所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。
进一步的,所述访问设备向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量。
所述访问设备将所述第一用户可见存储容量对应的逻辑块地址中的数据复制到第二存储设备。
本发明实施例在存储设备组件发生故障,释放一定容量的用户可见存储容量,减少存储设备对冗余空间的存储容量的占用,从而减少存储设备写放大,提高了写性能。
仍以前面的SSD为例进行说明,在第1颗粒发生故障,可以释放SSD1的部分用户可见存储容量。在基于FTL机制的SSD中,用户可见存储容量以逻辑块地址形式体现,释放用户可见存储容量,即释放相应逻辑块地址。FTL可以们于SSD中,也可以位于访问设备。部分用户可见存储容量可以小于第1颗粒的存储容量。释放的部分用户可见存储容量可以是第1颗粒提供的全部存储容量。释放SSD的用户可见存储容量,具体实现为减少SSD提供的逻辑块地址。其中,一种实现方式可以将映射到第1颗粒的物理页的至少一部分逻辑块地址释放。因为逻辑块地址为线性连续的地址,上述这种逻辑块地址释放方式可能会造成SSD提供的逻辑块地址的不连续。另一种实现方式,从SSD的逻辑块地址结束位置开始释放相应用户可见存储容量的逻辑块地址。因为逻辑块地址是线性递交的逻辑地址,因此逻辑块地址结束位置开始释放,即从最大逻辑块地址向最小逻辑块地址方向释放相应用户可见存储容量的逻辑块地址。例如,映射到第1颗粒的物理页的逻辑块地址的容量为256GB,SSD的用户体现的容量的逻辑块地址范围0-(32TB-1),如图9所示,则从32TB-1位置开始释放256GB的逻辑块地址容量,释放掉的逻辑块地址用
Figure BDA0002868576240000081
表示,则SSD的逻辑块地址范围变为0-(31.75TB-1),从而保证逻辑块地址的连续性。当需要释放的逻辑块地址对应的物理页存储有数据时,在释放该逻辑块地址前,将逻辑块地址对应的物理页中的数据迁移到其他SSD。被释放掉的逻辑块地址不再使用,即控制器101不再向释放掉的逻辑块地址对应的CK写入数据,SSD也不再建立释放掉的逻辑块地址到物理页的映射。控制器101可以将释放掉的逻辑块地址对应的CK标识为不可用。
另一种实现,控制器101可以分多次释放用户可见存储容量。例如,每次可以释放64GB用户可见存储容量,或者按照SSD的使用率多次释放用户可见存储容量,但释放的用户可以存储容量总和不超过256GB,即不超过发生故障的第1颗粒提供的存储容量。
相应的,本发明实施例提供了一种存储设备,用于执行如图10所示的方案,包括:
1001:所述存储设备向所述访问设备发送故障信息;
其中,所述故障信息用于指示所述存储设备的组件发生故障;
1002:所述存储设备接收所述访问设备发送的第一释放命令;
其中,所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量的命令;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量;
1003:所述存储设备根据所述第一释放命令擦除所述第一用户可见存储容量中存储的数据。
SSD根据释放命令擦除所述第一用户可见存储容量中存储的数据可以基于SSD具体情况决定启动擦除操作的时间。例如,可以在接收到释放命令立即启动擦除操作,也可以在接收释放命令一段时间后再启动擦除操作。
进一步的,所述存储设备接收所述访问设备发送的第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量的命令;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量;
所述存储设备根据所述第二释放命令擦除所述第二用户可见存储容量中存储的数据。
结合前面实施你描述,上述释放SSD的逻辑块地址的操作,根据SSD所支持协议不同,可以使用不同的命令。例如,针对支持SAS协议的SSD,控制器101可以使用去映射(unmap)命令释放掉SSD相应的逻辑块地址。针对支持NVMe协议的SSD,控制器101可以使用去分配(deallocate)命令释放掉SSD相应的逻辑块地址。控制器101也可以使用私有命令释放掉SSD相应的逻辑块地址。SSD根据unmap命令或deallocate命令擦除上述需要释放的用户可见存储容量中的数据。即需要释放的逻辑块地址对应的物理页上的数据,解除需要释放掉的逻辑块地址与物理页之间的映射。SSD可以将释放掉的逻辑块地址标识为不可用,或者不再分配状态,还可以将释放掉的逻辑块地址对控制器101不可见。控制器101也可以记录相应CK的状态,不再使用释放掉的用户可见存储容量对应的CK。
本发明实施例,在第1颗粒发生故障后,控制器释放掉不大于第1颗粒提供的存储容量大小的用户可见存储容量,在不影响整个SSD的使用的同时,减少或不占用冗余空间的存储容量,从而减少了SSD的写放大,提高了存储性能。
本发明另一实施例中,存储阵列的控制器101可以不基于CK的方式组织存储资源,本发明实施例对此不作限制。本发明实施例中的逻辑地址还可以是键值(Key-Value,KV)盘中的KV,或者日志(log)盘的log等。本发明另一实施例中,SSD可以支持开放通道(openchannel)的SSD,在支持开放通道的SSD中,SSD对外提供的存储容量可以基于连续存储空间的形式提供,而不是逻辑块地址的形式,或者是物理空间。另一种实现,一个SSD可以提供多个用户可见存储容量。本发明实施例还可以应用于叠瓦式磁记录(Shingled MagneticRecording,SMR)盘。本发明实施例还可以应用于分布式存储、服务器或者终端设备存储等。本发明实施例对此不作限定。因此,将存储阵列的控制器、服务器、终端设备以及实现上述实施例功能的分布式存储设备中的服务器均称为访问设备。
相应的,本发明实施例提供了一种访问设备,用于实现本发明实施例上述相应的方法,如图11所示,包括:接收单元1101和发送单元1102。其中,接收单元1101,用于接收第一存储设备的故障信息;其中,所述故障信息用于指示所述第一存储设备的组件发生故障;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;发送单元1102,用于向所述第一存储设备发送第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。
进一步的,所述获取单元1101还用于获取所述发生故障的组件的存储容量的信息。
进一步的,所述获取单元1101具体用于从所述故障信息中获取所述发生故障的组件的存储容量。
进一步的,所述第一释放命令具体用于从所述第一存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
进一步的,所述第一释放命令具体用于从所述第一存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
进一步的,所述发送单元1102,还用于向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量。
进一步的,所述第一释放命令和所述第二释放命令具体为去映射(unmap)命令或去分配(deallocate)命令。
进一步的,访问设备还包括复制单元,用于将所述第一用户可见存储容量对应的逻辑块地址中的数据复制到第二存储设备。
图11所示的访问设备,其中一种硬件实现,可以参考存储阵列的控制器、服务器、终端设备以及分布式存储设备中的服务器的结构,本发明实施例在此不再赘述。另一种实现,本发明实施例图11所示的访问设备还可以由软件实现或者由硬件与软件共同实现。
相应的,本发明实施例还提供了一种存储设备,如图12所示,存储设备包含多个组件1201,所述多个组件为所述存储设备提供用户可见存储容量和冗余空间的存储容量;访问设备用于访问所述用户可见存储容量;所述存储设备还包括:
发送单元1202,用于向所述访问设备发送故障信息;所述故障信息用于指示所述存储设备的组件发生故障;
接收单元1203,用于接收所述访问设备发送的第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量的命令;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量;
释放单元1204,用于根据所述第一释放命令擦除所述第一用户可见存储容量中存储的数据。
进一步的,所述发送单元1202,还用于向所述访问设备发送所述发生故障的组件提供的存储容量信息。
进一步的,所述第一释放命令具体用于从所述存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
进一步的,所述第一释放命令具体用于从所述存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
进一步的,所述接收单元1203,还用于接收所述访问设备发送的第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量的命令;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量;
所述擦除单元1204,还用于根据所述第二释放命令擦除所述第二用户可见存储容量中存储的数据。
图12所示的存储设备,其中一种硬件实现,可以参考前述实施例中的SSD、SMR盘等的结构,本发明实施例在此不再赘述。另一种实现,本发明实施例图12所示的访问设备还可以由软件实现或者由硬件与软件共同实现。
本发明实施例还提供了一种包含访问设备和存储设备的存储系统,具体实现可以参考本发明前面实施例的描述,在此不再赘述。
该计算机可读存储介质中存储有计算机程序指令,当该计算机程序指令在图1所示的控制器101或者图4所示的服务器上运行时,执行本发明实施例中的方法。
本发明实施例提供了一种包含计算机程序指令的计算机程序产品,当该计算机程序指令在图1所示的控制器101或者图4所示的服务器运行时,执行本发明实施例中的方法。
本发明实施例提供的数据恢复装置的各单元可以由处理器实现,也可以由处理器与存储器共同实现,也可以由软件实现。
本发明实施例提供了一种包含计算机程序指令的计算机程序产品,当该计算机程序指令在计算机中运行时,执行本发明实施例中的访问设备执行的方法。
本发明实施例还提供了一种非易失性可读存储介质,非易失性可读存储介质包含计算机程序指令,当该计算机程序指令在计算机中运行时,执行本发明实施例中的访问设备执行的方法。
本发明实施例中提供的存储系统还可以是支持文件的存储系统,或者支持对象的存储系统,或者为同时支持块和文件的存储系统,或者为同时支持块和对象的存储系统,或者为同时支持文件和对象的存储系统,或者为同时支持块、文件和对象的存储系统。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机程序指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储计算机程序指令的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (57)

1.一种存储设备管理方法,其特征在于,所述方法包括:
访问设备接收第一存储设备的故障信息;其中,所述故障信息用于指示所述第一存储设备的组件发生故障;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;
所述访问设备根据所述故障信息向所述第一存储设备发送第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述访问设备获取所述发生故障的组件的存储容量的信息。
3.根据权利要求2所述的方法,其特征在于,所述访问设备获取所述发生故障的组件的存储容量,具体包括:
所述访问设备从所述故障信息中获取所述发生故障的组件的存储容量。
4.根据权利要求1所述的方法,其特征在于,所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量,具体包括:
所述第一释放命令用于从所述第一存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
5.根据权利要求1所述的方法,其特征在于,所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量,具体包括:
所述第一释放命令用于从所述第一存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括:
所述访问设备向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量。
7.根据权利要求6所述的方法,其特征在于,所述第一释放命令和所述第二释放命令具体为去映射(unmap)命令或去分配(deallocate)命令。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述访问设备将所述第一用户可见存储容量对应的逻辑块地址中的数据复制到第二存储设备。
9.根据权利要求1-8任一所述的方法,其特征在于,所述第一存储设备为固态硬盘SSD。
10.一种存储设备管理方法,其特征在于,所述存储设备包含多个组件,所述多个组件为所述存储设备提供用户可见存储容量和冗余空间的存储容量;访问设备用于访问所述用户可见存储容量;所述方法包括:
所述存储设备向所述访问设备发送故障信息;所述故障信息用于指示所述存储设备的组件发生故障;
所述存储设备接收所述访问设备发送的第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量的命令;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量;
所述存储设备根据所述第一释放命令擦除所述第一用户可见存储容量中存储的数据。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述存储设备向所述访问设备发送所述发生故障的组件提供的存储容量信息。
12.根据权利要求10所述的方法,其特征在于,所述第一释放命令具体用于从所述存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
13.根据权利要求10所述的方法,其特征在于,所述第一释放命令具体用于从所述存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
14.根据权利要求10-13任一所述的方法,其特征在于,所述方法还包括:
所述存储设备接收所述访问设备发送的第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量的命令;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量;
所述存储设备根据所述第二释放命令擦除所述第二用户可见存储容量中存储的数据。
15.根据权利要求14所述的方法,其特征在于,所述第一释放命令和所述第二释放命令为去映射(unmap)命令或去分配(deallocate)命令。
16.根据权利要求10-15任一所述的方法,其特征在于,所述存储设备为固态硬盘SSD。
17.一种访问设备,其特征在于,包括:
接收单元,用于接收第一存储设备的故障信息;其中,所述故障信息用于指示所述第一存储设备的组件发生故障;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;
发送单元,用于根据所述故障信息向所述第一存储设备发送第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。
18.根据权利要求17所述的访问设备,其特征在于,所述获取单元还用于:
获取所述发生故障的组件的存储容量的信息。
19.根据权利要求18所述的访问设备,其特征在于,所述获取单元具体用于从所述故障信息中获取所述发生故障的组件的存储容量。
20.根据权利要求17所述的访问设备,其特征在于,所述第一释放命令具体用于从所述第一存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
21.根据权利要求17所述的访问设备,其特征在于,所述第一释放命令具体用于从所述第一存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
22.根据权利要求17-21任一所述的访问设备,其特征在于,所述发送单元,还用于向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量。
23.根据权利要求22所述的访问设备,其特征在于,所述第一释放命令和所述第二释放命令具体为去映射(unmap)命令或去分配(deallocate)命令。
24.根据权利要求17所述的访问设备,其特征在于,还包括复制单元,用于将所述第一用户可见存储容量对应的逻辑块地址中的数据复制到第二存储设备。
25.一种存储设备,其特征在于,所述存储设备包含多个组件,所述多个组件为所述存储设备提供用户可见存储容量和冗余空间的存储容量;访问设备用于访问所述用户可见存储容量;所述存储设备还包括:
发送单元,用于向所述访问设备发送故障信息;所述故障信息用于指示所述存储设备的组件发生故障;
接收单元,用于接收所述访问设备发送的第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量的命令;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量;
释放单元,用于根据所述第一释放命令擦除所述第一用户可见存储容量中存储的数据。
26.根据权利要求25所述的存储设备,其特征在于,所述发送单元,还用于向所述访问设备发送所述发生故障的组件提供的存储容量信息。
27.根据权利要求25所述的存储设备,其特征在于,所述第一释放命令具体用于从所述存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
28.根据权利要求25所述的存储设备,其特征在于,所述第一释放命令具体用于从所述存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
29.根据权利要求25-28任一所述的存储设备,其特征在于,
所述接收单元,还用于接收所述访问设备发送的第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量的命令;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量;
所述擦除单元,还用于根据所述第二释放命令擦除所述第二用户可见存储容量中存储的数据。
30.根据权利要求25-29任一所述的存储设备,其特征在于,所述第一释放命令和所述第二释放命令为去映射(unmap)命令或去分配(deallocate)命令。
31.一种访问设备,其特征在于,包括:接口和处理器,所述接口与所述处理器通信;其中,所述处理器用于:
接收第一存储设备的故障信息;其中,所述故障信息用于指示所述第一存储设备的组件发生故障;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;
根据所述故障信息向所述第一存储设备发送第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。
32.根据权利要求31所述的访问设备,其特征在于,所述处理器还用于:
获取所述发生故障的组件的存储容量的信息。
33.根据权利要求32所述的访问设备,其特征在于,所述处理器具体用于从所述故障信息中获取所述发生故障的组件的存储容量。
34.根据权利要求31所述的访问设备,其特征在于,所述第一释放命令用于从所述第一存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
35.根据权利要求31所述的访问设备,其特征在于,所述第一释放命令用于从所述第一存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
36.根据权利要求31-35任一所述的访问设备,其特征在于,所述处理器还用于向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量。
37.根据权利要求36所述的访问设备,其特征在于,所述第一释放命令和所述第二释放命令具体为去映射(unmap)命令或去分配(deallocate)命令。
38.根据权利要求31所述的访问设备,其特征在于,所述处理器具体还用于将所述第一用户可见存储容量对应的逻辑块地址中的数据复制到第二存储设备。
39.一种存储设备,其特征在于,所述存储设备包含存储设备控制器和多个组件,所述多个组件为所述存储设备提供用户可见存储容量和冗余空间的存储容量;访问设备用于访问所述用户可见存储容量;所述存储设备控制器用于:
向所述访问设备发送故障信息;所述故障信息用于指示所述存储设备的组件发生故障;
接收所述访问设备发送的第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量的命令;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量;
释放单元,用于根据所述第一释放命令擦除所述第一用户可见存储容量中存储的数据。
40.根据权利要求39所述的存储设备,其特征在于,所述存储设备控制器,还用于向所述访问设备发送所述发生故障的组件提供的存储容量信息。
41.根据权利要求39所述的存储设备,其特征在于,所述第一释放命令具体用于从所述存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
42.根据权利要求39所述的存储设备,其特征在于,所述第一释放命令具体用于从所述存储设备映射到所述发生故障的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
43.根据权利要求39-42任一所述的存储设备,其特征在于,所述存储设备控制器,还用于:
接收所述访问设备发送的第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量的命令;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量;
根据所述第二释放命令擦除所述第二用户可见存储容量中存储的数据。
44.根据权利要求43所述的存储设备,其特征在于,所述第一释放命令和所述第二释放命令为去映射(unmap)命令或去分配(deallocate)命令。
45.一种存储系统,其特征在于,所述存储系统包含访问设备和第一存储设备;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;其中,
所述访问设备用于:
访问设备接收第一存储设备的故障信息;其中,所述故障信息用于指示所述第一存储设备的组件发生故障;
根据所述故障信息向所述第一存储设备发送第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量;
所述存储设备用于:
向所述访问设备发送所述故障信息;
接收所述第一释放命令;
根据所述第一释放命令擦除所述第一用户可见存储容量中存储的数据。
46.根据权利要求45所述的存储系统,其特征在于,所述访问设备还用于获取所述发生故障的组件的存储容量的信息。
47.根据权利要求45所述的存储系统,其特征在于,所述访问设备用于从所述故障信息中获取所述发生故障的组件的存储容量。
48.根据权利要求45所述的存储系统,其特征在于,所述第一释放命令用于从所述第一存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
49.根据权利要求45所述的存储系统,其特征在于,所述第一释放命令用于从所述第一存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
50.根据权利要求45-49所述的存储系统,其特征在于,
所述访问设备还用于向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量;
所述第一存储设备还用于:
接收所述第二释放命令;
根据所述第二释放命令擦除所述第二用户可见存储容量中存储的数据。
51.根据权利要求45-50所述的存储系统,其特征在于,所述访问设备还用于将所述第一用户可见存储容量对应的逻辑块地址中的数据复制到第二存储设备。
52.一种计算机程序产品,其特征在于,所述计算机程序产品包含计算机程序指令,当计算机执行所述计算机程序指令以执行下列操作:
接收第一存储设备的故障信息;其中,所述故障信息用于指示所述第一存储设备的组件发生故障;所述第一存储设备包含多个组件,所述多个组件用于提供所述第一存储设备的用户可见存储容量和冗余空间的存储容量;所述访问设备用于访问所述用户可见存储容量;
根据所述故障信息向所述第一存储设备发送第一释放命令;所述第一释放命令用于从所述用户可见存储容量中释放第一用户可见存储容量;其中,所述第一用户可见存储容量不大于发生故障的组件提供的存储容量。
53.根据权利要求52所述的计算机程序产品,其特征在于,当所述计算机执行所述计算机程序指令还用于获取所述发生故障的组件的存储容量的信息。
54.根据权利要求52所述的计算机程序产品,其特征在于,所述第一释放命令具体用于从所述第一存储设备的逻辑块地址的结束位置开始释放所述第一用户可见存储容量。
55.根据权利要求52所述的计算机程序产品,其特征在于,所述第一释放命令具体用于从所述第一存储设备映射到所述发生故障的组件的物理地址的逻辑块地址中释放第一可见存储容量的逻辑块地址。
56.根据权利要求52-55任一所述的计算机程序产品,其特征在于,所述计算机执行所述计算机程序指令还用于向所述第一存储设备发送第二释放命令;所述第二释放命令用于从所述用户可见存储容量中释放第二用户可见存储容量;其中,所述第一用户可见存储容量和所述第二用户可见存储容量之和不大于发生故障的组件提供的存储容量。
57.根据权利要求56所述的计算机程序产品,其特征在于,所述第一释放命令和所述第二释放命令具体为去映射(unmap)命令或去分配(deallocate)命令。
CN202011599870.7A 2020-12-29 2020-12-29 存储设备管理方法、设备及存储系统 Pending CN114691014A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011599870.7A CN114691014A (zh) 2020-12-29 2020-12-29 存储设备管理方法、设备及存储系统
PCT/CN2021/142390 WO2022143741A1 (zh) 2020-12-29 2021-12-29 存储设备管理方法、设备及存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011599870.7A CN114691014A (zh) 2020-12-29 2020-12-29 存储设备管理方法、设备及存储系统

Publications (1)

Publication Number Publication Date
CN114691014A true CN114691014A (zh) 2022-07-01

Family

ID=82132134

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011599870.7A Pending CN114691014A (zh) 2020-12-29 2020-12-29 存储设备管理方法、设备及存储系统

Country Status (2)

Country Link
CN (1) CN114691014A (zh)
WO (1) WO2022143741A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582193B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
US10430079B2 (en) * 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system

Also Published As

Publication number Publication date
WO2022143741A1 (zh) 2022-07-07

Similar Documents

Publication Publication Date Title
US11726688B2 (en) Storage system managing metadata, host system controlling storage system, and storage system operating method
KR101739556B1 (ko) 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법
US9298534B2 (en) Memory system and constructing method of logical block
US8843697B2 (en) Operating method of data storage device
US9195541B2 (en) Controlling nonvolatile memory device and nonvolatile memory system
EP2631916A1 (en) Data deletion method and device
US10146435B2 (en) Storage system and data write method
US20120304039A1 (en) Bit error reduction through varied data positioning
CN107797934B (zh) 处理去分配命令的方法与存储设备
WO2021196956A1 (zh) 一种固态硬盘管理方法及固态硬盘
US11526439B2 (en) Storage device and operating method thereof
CN114496051A (zh) 固态硬盘及固态硬盘管理方法
CN117441164A (zh) 在非易失性存储器的控制器的写入高速缓存中镜像数据
CN110781093B (zh) 能够改变映射高速缓存缓冲器大小的数据存储设备
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
US10268399B2 (en) Memory system using message monitoring and first and second namespaces
US11550502B2 (en) Apparatus and method for controlling multi-stream program operations performed in a memory block included in a memory system
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20230138586A1 (en) Storage device and method of operating the same
US11934264B2 (en) ECC parity biasing for Key-Value data storage devices
WO2018041258A1 (zh) 去分配命令处理的方法与存储设备
CN114691014A (zh) 存储设备管理方法、设备及存储系统
US10515693B1 (en) Data storage apparatus and operating method thereof
WO2020082888A1 (zh) 存储系统中数据恢复方法、系统及装置
CN110928482A (zh) 部分页条带与使用部分页条带的存储设备及其方法

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