CN108334285A - 存储系统和操作存储系统的方法 - Google Patents
存储系统和操作存储系统的方法 Download PDFInfo
- Publication number
- CN108334285A CN108334285A CN201810056894.4A CN201810056894A CN108334285A CN 108334285 A CN108334285 A CN 108334285A CN 201810056894 A CN201810056894 A CN 201810056894A CN 108334285 A CN108334285 A CN 108334285A
- Authority
- CN
- China
- Prior art keywords
- storage device
- storage
- controller
- data
- data block
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
- G06F11/201—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2012—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant and using different communication protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
- Read Only Memory (AREA)
Abstract
公开了一种用于跨多个存储设备提供擦除代码保护的系统和方法。存储系统中的数据交换机将多个存储设备连接到远程主机。每个存储设备也连接到控制器,例如基板管理控制器。在正常操作期间,来自远程主机的读取和写入命令通过数据交换机被发送到相应的存储设备。当执行写入命令时,执行命令的存储设备将数据的副本发送到控制器,控制器例如在专用于存储擦除代码并且对远程主机不可见的存储设备上产生并存储擦除代码。当设备发生故障或被移除时,控制器重新配置数据交换机,以将寻址到故障或不存在的存储设备的所有业务重定向到控制器,并且控制器响应主机命令。
Description
相关申请的交叉引用
本申请要求于2017年1月20日提交的题为“CONTROL PLANE METHOD ANDAPPARATUS FOR PROVIDING ERASURE CODE DATA PROTECTION ACROSS MULTIPLE NVMEOVER FABRICS STORAGE DEVICES(ESSDS)”的美国临时申请No.62/448,648的优先权和权益,其全部内容通过引用并入本文。
技术领域
根据本发明的实施例的一个或多个方面涉及数据存储,并且更具体地涉及具有用于提供擦除代码保护的控制器的存储系统。
背景技术
利用非易失性存储器快速(NVMe)光纤结构(NVM-f)配置,例如使用以太网连接的NVMe固态驱动器(SSD)的配置,改善以太网和SSD成本和性能可以是具有挑战性的。例如,以太网速度随着50G/100G技术的出现而增加,而SSD性能可取决于外围组件互连快速(PCIe)接口和NAND技术。由于每个设备可以提供点对点连接,因此以光纤连接的SSD可能会出现额外的独特设计挑战,以支持擦除代码数据保护。可以使用芯片上RAID(ROC)专用集成电路(ASIC)来提供数据保护,但是可能会增加延迟和成本,并降低性能。
因此,需要一种在多个存储设备中存储数据的改进的系统和方法。
发明内容
本公开的实施例的多个方面针对用于跨多个存储设备提供擦除代码保护的系统和方法。存储系统中的数据交换机将多个存储设备连接到远程主机。每个存储设备也连接到控制器,例如基板管理控制器。在正常操作期间,来自远程主机的读取和写入命令通过数据交换机被发送到相应的存储设备。当执行写入命令时,执行命令的存储设备将数据的副本发送到控制器,控制器例如在专用于存储擦除代码并且对远程主机不可见的存储设备上产生并存储擦除代码。当设备发生故障或被移除时,控制器重新配置数据交换机,以将寻址到故障或不存在的存储设备的所有业务重定向到控制器,并且控制器以与故障或不存在的存储设备在其存在并且正确地操作时应当发送的命令响应相同的命令响应来响应主机命令。
根据本发明的实施例,提供了一种具有存储接口的存储系统,所述系统包括:多个存储设备,被配置为存储擦除代码,所述擦除代码足以恢复所述多个存储设备中的任何一个存储设备上存储的数据,所述数据是从所述多个存储设备中的其他存储设备上的数据恢复的;数据交换机,被配置为在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述存储命令路由到所述多个存储设备中的相应存储设备;以及控制器,被配置为在所述多个存储设备中的任何存储设备故障或不存在的情况下,进行以下操作:重新配置所述数据交换机以将寻址到故障或不存在的存储设备的存储命令路由到所述控制器;以及响应于接收到的每个存储命令,通过所述数据交换机并通过所述存储接口发送与故障或不存在的设备在其存在并且正确地操作时将会发送的命令响应相同的命令响应。
在一个实施例中,每个存储设备被配置为在正常操作期间,在接收到包括数据块的写入命令时,存储所述数据块并且将所述数据块的副本发送到所述控制器。
在一个实施例中,所述控制器被配置为在从所述多个存储设备中的第一存储设备接收到数据块的副本时,产生足以恢复所述数据块的擦除代码,并且将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
在一个实施例中,所述多个存储设备中的第一存储设备被配置为在正常操作期间,在接收到包括数据块的写入命令时,进行以下操作:产生足以恢复所述数据块的擦除代码;以及将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
在一个实施例中,所述多个存储设备中的第一存储设备被配置为存储擦除代码;以及所述数据交换机被配置为在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令的相应地址将每个存储命令路由到所述多个存储设备的子集中的相应存储设备,第一存储设备不是所述子集的成员。
在一个实施例中,所述控制器被配置为在所述多个存储设备中的任何一个存储设备故障或不存在的情况下,响应于接收到的请求数据块的读取命令进行以下操作:从所述多个存储设备中的存在的且正确地操作的存储设备读取擦除代码;恢复所述数据块;以及通过所述数据交换机并通过所述存储接口将所恢复的数据块作为命令响应的一部分进行发送。
在一个实施例中,每个存储设备包括具有存在引脚的连接器,所述存在引脚连接到所述控制器的相应感测引脚;以及所述控制器被配置为通过相应感测引脚处的电压或电流的变化来检测所述存储设备中的任何一个的移除。
在一个实施例中,所述数据交换机是以太网交换机。
在一个实施例中,所述数据交换机具有与所述控制器的端口连接的PCIe控制端口,并且所述数据交换机被配置为通过所述PCIe控制端口从所述控制器接收配置命令。
在一个实施例中,所述系统包括PCIe交换机,其中所述多个存储设备中的每一个通过所述PCIe交换机连接到所述控制器。
在一个实施例中,所述控制器是基板管理控制器。
根据本发明的实施例,提供了一种操作存储系统的方法,所述存储系统具有存储接口并且包括多个存储设备、数据交换机和控制器,所述方法包括:在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述存储命令路由到所述多个存储设备中的相应存储设备;以及在所述多个存储设备中的任何存储设备故障或不存在的情况下,进行以下操作:由所述控制器重新配置所述数据交换机以将寻址到故障或不存在的存储设备的存储命令路由到所述控制器;以及由所述控制器响应于接收到的每个存储命令,通过所述数据交换机并通过所述存储接口发送与故障或不存在的设备在其存在并且正确地操作时将会发送的命令响应相同的命令响应。
在一个实施例中,所述方法包括:在正常操作期间,在由所述多个存储设备中的存储设备接收到包括数据块的写入命令时,进行以下操作:由该存储设备存储所述数据块;以及由该存储设备将所述数据块的副本发送到所述控制器。
在一个实施例中,所述方法包括:在由所述控制器从所述多个存储设备中的第一存储设备接收到数据块的副本时,进行以下操作:由所述控制器产生足以恢复所述数据块的擦除代码;以及由所述控制器将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
在一个实施例中,所述方法包括:在正常操作期间,在由所述多个存储设备中的第一存储设备接收到包括数据块的写入命令时,进行以下操作:由所述第一存储设备存储所述数据块;由所述第一存储设备产生足以恢复所述数据块的擦除代码;以及由所述第一存储设备将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
在一个实施例中,所述多个存储设备中的第一存储设备被配置为存储擦除代码;以及所述方法包括:在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令的相应地址将每个存储命令路由到所述多个存储设备的子集中的相应存储设备,所述第一存储设备不是所述子集的成员。
在一个实施例中,所述方法包括:在所述多个存储设备中的任何一个存储设备故障或不存在的情况下,响应于由所述控制器接收到请求数据块的读取命令而进行以下操作:由所述控制器通过所述PCIe交换机从所述多个存储设备中存在的且正确地操作的存储设备读取擦除代码;由所述控制器恢复所述数据块;以及由所述控制器通过所述数据交换机并通过所述存储接口将所恢复的数据块作为命令响应的一部分进行发送。
在一个实施例中,每个存储设备具有与所述控制器的相应感测引脚连接的存在引脚;以及所述方法还包括:由所述控制器通过相应感测引脚处的电压或电流的变化来检测所述存储设备中的任何一个的移除。
根据本发明的实施例,提供了一种具有存储接口的存储系统,所述系统包括:多个存储设备,被配置为存储擦除代码,所述擦除代码足以恢复所述多个存储设备中的任何一个存储设备上存储的数据,所述数据是从所述多个存储设备中的其他存储设备上的数据恢复的;数据交换机,被配置为在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述存储命令路由到所述多个存储设备中的相应存储设备;以及控制装置,用于在所述多个存储设备中的任何存储设备故障或不存在的情况下进行以下操作:重新配置所述数据交换机以将寻址到故障或不存在的存储设备的存储命令路由到所述控制装置;以及响应于接收到的每个存储命令,通过所述数据交换机并通过所述存储接口发送与故障或不存在的设备在其存在并且正确地操作时应当发送的命令响应相同的命令响应。
在一个实施例中,每个存储设备被配置为在正常操作期间,在接收到包括数据块的写入命令时,存储所述数据块并且将所述数据块的副本发送到所述控制装置。
附图说明
参照说明书、权利要求书和附图,将认识和理解本发明的这些和其他特征和优点,在附图中:
图1A是根据本发明的实施例的连接到存储系统的远程主机的框图;
图1B是根据本发明的实施例的连接到存储系统的远程主机的框图;
图1C是根据本发明的实施例的连接到存储系统的远程主机的框图;
图2是根据本发明的实施例的用于操作存储系统的方法的流程图;以及
图3是根据本发明的实施例的用于操作存储系统的方法的流程图。
具体实施方式
以下结合附图阐述的详细描述旨在作为对根据本发明提供的跨多个存储设备提供擦除代码保护的控制平面方法和装置的示例实施例的描述,并且不旨在仅表示可以构造或利用本发明的形式。说明书结合所示实施例阐述了本发明的特征。然而,应理解的是,相同或等同的功能和结构可以通过不同的实施例来实现,这些实施例也意图包含在本发明的精神和范围内。如本文其他地方所表示的,相似的元件编号旨在指示相似的元件或特征。
控制平面可以与数据平面区分开来,例如在路由器中,如下所示。控制平面可以做出关于发送业务(例如,数据业务)的决定。控制平面功能可以包括路由表信息的系统配置、管理和交换;控制平面可以是网络的信令。由于控制功能可能无法在每个到达的单个数据分组上执行,所以它们可能不具有严格的速度约束,并且可能与数据平面中的功能相比对时间要求更不高。数据平面(也可以被称为转发平面)根据控制平面逻辑将业务沿着通往所选目的地网络的路径转发到下一跳。数据平面分组可以通过路由器。路由器/交换机使用控制平面构建的处置传入和传出帧和分组的内容。在存储系统中,可以在存储系统的控制平面与存储系统的数据平面之间进行类似的区分。例如,对于基于NVMf的系统或机箱,所有以太网端口可以在为数据平面的本地以太网交换机和以太网SSD(eSSD)之间进行物理分区,并且可以使用PCI-e通道来通过为控制平面的控制器(如下面进一步详细讨论的)和PCIe交换机连接eSSD。
图1A示出了根据本发明的一个实施例的连接到远程主机的存储系统的框图。该系统包括以太网交换机110、PCIe交换机120、多个存储设备105和控制器115(例如,基板管理控制器)。这里,多个存储设备105与以太网交换机110和PCIe交换机120通信,PCIe交换机120与控制器115通信。存储系统可以连接到远程主机100。在以太网交换机110和控制器115之间可以进行附加连接,以提供增强的擦除代码保护功能。
更具体地说,图1B是根据一些实施例的连接到存储系统的存储接口(例如,以太网接口)的远程主机100的框图。多个存储设备105通过以太网交换机110连接到远程主机100。每个存储设备105可以提供持久性存储,即,如果电力暂时丢失,数据的存储将持续存在。每个存储设备105可以是固态驱动器(SSD),例如以太网SSD(eSSD)。在正常操作中,远程主机100可以向存储设备105发送存储命令,每个存储命令被寻址到一个或多个存储设备105,并且存储设备105可以向远程主机100发送命令响应。存储命令可以是写入命令和/或读取命令。例如,为了将数据存储在存储设备105中,远程主机100可以将写入命令发送给存储设备105(例如使用存储设备的以太网地址,命令被寻址到存储设备105)。
每个写入命令可以包括要被写入存储设备105的数据(或“数据块”)的数量以及主机可以在未来的读取命令中通过其参考相同数据的逻辑块地址(LBA)。作为响应,存储设备105可以存储数据,并且一旦存储操作完成,可以向远程主机100发送命令响应(例如,命令完成),以用信号通知存储操作被成功完成。如这里所使用的,“数据块”是存储命令或命令响应中的数据有效载荷,例如在写入命令中要写入永久存储器的数据、或在读取命令中从永久存储器读取的数据。
为了从存储设备105读取数据,远程主机100可以将读取命令发送给存储设备105,以向存储设备105请求数据。作为响应,存储设备105可以从存储设备105内部的非易失性存储器读取数据,并且一旦读取操作完成,其可以向远程主机100发送包括从存储器读取的数据的数据块在内的命令响应(例如,命令完成),并且用信号通知读取操作被成功完成。
在存储系统中可以使用擦除代码来在存储设备105中的一个出现故障或移除的情况下保护所存储的数据。数据块的擦除代码可以包括冗余附加信息(例如,由冗余附加信息组成),如果数据的一部分丢失,则该冗余附加信息可以用于重建数据块中的数据。擦除代码通常可以与它们保护的数据分开存储在单独存储设备105中,使得任一存储设备的故障或移除都不会导致数据的丢失;如果存储擦除代码的磁盘故障或被移除,则数据不受影响,并且如果存储数据的磁盘故障或被移除,则可以根据擦除代码恢复数据。
在一些实施例中,一个或多个存储设备105专用于仅存储擦除代码。在这种情况下,以太网交换机110可以被配置为隐藏这些存储设备105以不让远程主机100知晓,使得它们对于远程主机100是不可见的。在这样的配置中,从远程主机100的角度来看,存储系统可能看起来包括与存在于物理存储设备中相比更少的存储设备105,并且可以通过由专用于存储擦除代码的存储设备105提供的擦除代码保护来增强存储器的可靠性。在其他实施例中,擦除代码不仅仅存储在专用于仅存储擦除代码的存储设备105上,而是存储在也存储其他数据的驱动器上。
擦除代码可以由控制器115产生。控制器115可以通过PCIe交换机120连接到每个存储设备105。控制器115和PCIe交换机120及其到存储设备105的连接可以形成控制平面,并且以太网交换机110及其到存储设备105的连接可以形成数据平面。在操作中,当存储设备105通过以太网交换机110接收到写入命令时,可以将数据(即,包括在写入命令中的数据块的数据)存储在存储设备105内部的非易失性存储器中,并将数据的副本以及逻辑块地址发送到控制器115。然后,控制器115通过经由PCIe交换机将写入命令发送到要存储擦除代码数据的存储设备105,来产生擦除代码并将它们存储在例如与接收到写入命令的存储设备不同的存储设备105上。控制器115可以维持列出已经存储了擦除代码的逻辑块地址和擦除代码的相应位置的表格。在正常操作中,控制器115可以对于远程主机100和存储设备105之间的数据路径是透明的,例如,数据可以直接在远程主机100和存储设备105之间传送而不经过控制器115。
每个存储设备105(例如,SSD)可以包括存储接口连接器,其可以是U.2连接器。U.2连接器的多个引脚可以被分配为提供用于与PCIe交换机120通信的PCIe链路(例如,一乘四PCIe通道或两乘两PCIe通道)。U.2连接器的其他引脚可以被分配为提供到以太网交换机110的以太网连接。U.2连接器的另外引脚125可以用作“存在引脚”以允许控制器115检测存储设备105是否存在。例如,每个存储设备105可以将设定电压提供给存在引脚125或通过存在引脚125驱动设定电流。每个存储设备105的存在引脚125可以连接到控制器115的相应感测引脚,并且控制器可以推断,如果它停止检测其感测引脚之一处的设定电压或设定电流,则相应存储设备105不再存在。
在其他实施例中,存储设备105和控制器115之间的NVMe管理接口(NVMe-MI)连接可以用于相同的目的,例如,每个存储设备105的多个引脚提供NVMe管理接口的物理连接,并作为存在引脚。
每个存储设备105可以连接到中间平面130,中间平面130可以是具有多个(例如,24个)U.2连接器的印刷电路板,以容纳相应的多个存储设备105。中间平面130可以包括导电迹线,所述导电迹线形成连接到存储设备105的连接器与PCIe交换机120的存储设备侧的对应的多个连接器(例如,24个连接器)之间的连接。中间平面130还可以提供存储设备105的存在引脚与控制器115的对应感测引脚之间的连接以及存储设备105的以太网引脚与以太网交换机110的存储设备侧的连接器的对应引脚之间的连接。
每个存储设备105可以包括多个非易失性存储器(例如,闪存)芯片和存储设备控制器(例如,与存储系统的控制器115分离并且不同的SSD控制器),其可以是或可以包括处理电路,如在下面进一步详细讨论。控制器115也可以是或者包括处理电路。控制器115可以是基板管理控制器(BMC),包括如下特征:例如,通过在基板管理控制器外部并连接到基板管理控制器的相应引脚的温度传感器来执行对存储系统的温度监视和控制的能力,和/或通过I2C接口或SMBus执行风扇控制的能力。如本文所使用的,“控制装置”是指实现至少具有本文所公开和要求保护的特征的控制器115的硬件、固件和软件的任何组合,并且可以完全以硬件实现,或者以在通用处理电路上(例如,在通用CPU上)执行的软件实现。
当存储设备105故障或被移除时(如图1C的虚线所示),控制器115可以意识到由于如上所述的控制器的感测引脚的变化而导致的不存在或故障,或者控制器可以被以太网交换机110通知发送到存储设备105之一的存储命令不导致命令响应。
如下面进一步详细描述的,在一些实施例中,在正常操作中,当执行写入命令时,将要存储的数据写入到一个或多个存储设备105,并且产生擦除代码并且还将擦除代码写入一个或多个存储器设备105,例如,擦除代码被存储在与擦除代码保护的数据不同的存储设备105上,使得任何一个存储设备的故障通常不会导致不可恢复的数据丢失。当存储设备105故障时,控制器115可以重新配置以太网交换机110以将寻址到故障存储设备105的任何读取或写入命令重定向到控制器,并且控制器115可以模拟存储设备105的行为,使得除了性能(例如,速度)的降低之外,存储设备105的故障对于远程主机100是不可感知的。
存储系统可以包括复杂的可编程逻辑器件(CPLD)(图1B和图1C中未示出),连接在存储设备105的相应存在引脚125与控制器115之间。在检测到存在引脚中的至少一个的任何变化之后,CPLD可以经由中断通知控制器115。然后,控制器115可以对CPLD中的一些寄存器进行置数(例如,读取或写入),以找出哪个驱动器已经(或哪个驱动器已经)被移除或安装。这可使得BMC能够进行任何适当的改变,例如通过启用或禁用某些端口来重新配置以太网交换机。
在一些实施例中,控制器115然后重新配置以太网交换机110以使寻址到故障的或不存在的存储设备105的所有以太网业务重定向,使得该业务被转发到控制器115。然后,控制器处理来自远程主机的存储命令并发送命令响应,使得远程主机100接收与存储设备105没有发生故障或被移除的情况相同的命令响应。
例如,响应于来自远程主机100的寻址到故障的或不存在的存储设备105并被重定向到控制器115的读取命令,控制器115可以从一个或多个其他存储设备105上存储的擦除代码(例如,擦除奇偶校验码和数据码)中恢复已从仍然存在并且正确地操作的故障的或不存在的存储设备105读取的数据(例如,可以通过XOR操作来重新生成数据,以从故障的/不存在的存储驱动器105正常地恢复数据),并且控制器115可以向远程主机100发送包含恢复的数据的命令响应。
响应于来自远程主机100的寻址到故障的或不存在的存储设备105并被重定向到控制器115的写入命令,控制器115可以产生和存储与故障的或不存在的存储设备105在其仍然存在并且正确地操作时所存储的擦除代码相同的擦除代码,并且向远程主机100发送与故障的或不存在的存储设备105在其仍然存在并且正确地操作时所发送的命令响应相同的命令响应。在一些实施例中,在存储设备105发生故障之后,在系统的继续操作期间,控制器115通过产生新的数据和擦除代码以替换在存储设备105故障时丢失的任何数据,将新的数据和擦除代码存储在一个或多个剩余的存储设备105上,并且在剩余的存储设备105之间移动数据(和擦除代码),来重新配置系统以少于一个的驱动器进行操作,直到再次是所有数据都被擦除代码保护并且每个擦除代码被存储在与其所保护的数据不同的存储设备105上的情况。如果存储设备105被移除(而不是故障),则控制器可以采取相同的动作。
当更换驱动器随后被安装时,控制器115可以在系统的继续操作期间并且在继续代表故障或不存在的存储设备105进行响应时,重建更换驱动器,即,控制器115可以恢复在故障或不存在的存储设备105上的数据并将其存储在更换驱动器中。一旦更换驱动器已被重建,则控制器可以重新配置以太网交换机110以进行正常操作。
图2示出了一个实施例中的存储系统的启动顺序的流程图。在动作205中,控制器115(例如,BMC)初始化其自身并且根据预先调节每一期望的RAID配置的所有数据存储设备105(例如,SSD)。然后,在动作210中,控制器115将一些存储设备105指定为数据存储设备,并且将一些存储设备105指定为擦除代码存储设备。这可以在所有存储设备105和命令的初始化时完成,或者可以基于每个命令完成。然后,在动作215中,控制器115在SSD各自的容量不同的情况下使SSD标准化,并且然后在动作220中,控制器115将擦除代码存储设备标记为对于任何主机不可见,如上所述。
图3示出了存储系统的操作的流程图,在替代实施例中,存储设备105而不是控制器115产生擦除代码。系统中的每个存储设备105具有唯一的阵列成员标识,例如来自控制器115的插槽编号或分配的编号。在动作305中,数据存储设备中的每一个继续执行与主机或发起者的正常的NVMe光纤(NVMf)事务,并且在动作310中,执行正常的发现服务并开始执行事务(例如,处理和响应存储命令)。在动作315中,主机将数据写入数据存储设备之一。在动作315中,主机不产生擦除代码。然后,在动作320中,数据存储设备接收要写入的数据并将其存储在数据存储设备内部的非易失性存储器中。在动作320中,数据存储设备还产生擦除代码并将它们写入(多个存储设备中的)一个或多个擦除代码存储设备。
例如,对于任何写入,写入数据可以临时存储在目标存储设备中的滞后写入缓冲器中。同时,目标存储设备可以经由控制平面(例如,PCIe控制平面)将写入数据传送到控制器115。在接收到写入数据之后,控制器115可以通过从其他存储设备读取共享相同LBA的对应数据来执行奇偶校验生成。控制器115可以执行一个或多个适当的XOR操作并将新的奇偶校验写入奇偶校验存储设备。当完成时,控制器115可以向原始目标存储设备发送滞后写入缓冲器可以被清除的消息。
在一些实施例中,若干存储设备105存储擦除代码。在动作325中,擦除代码存储设备接收擦除代码并将其存储在擦除代码存储设备内部的非易失性存储器中,并向数据存储设备发送提交消息。数据存储设备和擦除代码存储设备之间的通信可以通过PCIe交换机120。
鉴于上述内容,一些实施例提供了用于跨多个存储设备提供擦除代码保护的系统和方法。存储系统中的数据交换机将多个存储设备连接到远程主机。每个存储设备也连接到控制器,例如基板管理控制器。在正常操作期间,来自远程主机的读取和写入命令通过数据交换机被发送到相应的存储设备。当执行写入命令时,执行命令的存储设备将数据的副本发送到控制器,控制器例如在专用于存储擦除代码并且对远程主机不可见的存储设备上产生并存储擦除代码。当设备发生故障或被移除时,控制器重新配置数据交换机,以将寻址到故障或不存在的存储设备的所有业务重定向到控制器,并且控制器以与故障或不存在的存储设备在其存在并且正确地操作时将会发送的命令响应相同的命令响应来响应主机命令。
术语“处理电路”在此用来表示为了处理数据或数字信号所采用的硬件、固件和软件的任何组合。处理电路硬件可以包括例如专用集成电路(ASIC)、通用或专用中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)和可编程逻辑器件,例如现场可编程门阵列(FPGA)。在处理电路中,如在此所使用的,每个功能或者由被配置为(即,硬连线)执行该功能的硬件执行,或者由被配置为执行存储在非暂时性存储介质中的指令的诸如CPU之类的更通用的硬件执行。处理电路可以制造在单个印刷电路板(PCB)上或分布在若干互连的PCB上。处理电路可以包含其他处理电路;例如,处理电路可以包括PCB上互连的两个处理电路,FPGA和CPU。
将理解,虽然本文中可以使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于区分一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分。因此,在不偏离本发明构思的精神和范围的情况下,下文中讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分。
这里所用的术语仅用于描述特定实施例的目的,而不是为了限制本发明构思。如本文所使用的,术语“基本上”、“大约”和类似术语被用作近似术语而不是程度术语,并且旨在说明测量值或计算值中的固有偏差,这些偏差将被本领域的普通技术人员所认识到。
如本文中使用的,单数形式“一”和“一个”意在也包括复数形式,除非上下文明确地另外指示。还将理解,术语“包括”和/或“包含”当在本说明书中使用时,规定了存在所声明的特征、整数、步骤、操作、要素和/或组件,但是并没有排除存在或添加一个或多个其他特征、整数、步骤、操作、要素、组件和/或其组合。如本文中使用的,术语“和/或”包括关联列出的项目中的一个或更多个的任意和所有组合。诸如“......中的至少一个”之类的表述在元件列表之后时修饰整个元件列表,而不是修饰列表中的单独元件。此外,当描述本发明构思的实施例时,“可以”的使用表示“本发明的一个或多个实施例”。此外,术语“示例性”旨在表示示例或说明。如本文所使用的,术语“使用”、“通过使用”和“所使用的”可以被认为分别与术语“利用”、“通过利用”和“所利用的”同义。
将理解,当元件或层被称为在另一元件或层“上”、“连接到”、“耦合到”或“邻近于”另一元件或层时,其可以直接在另一元件或层上、直接连接到、耦合到或邻近于另一元件或层,或者可以存在中间元件或层。相反,当元件被称为“直接”在另一元件或层“上”、“直接连接到”、“直接耦合到”或“直接邻近于”另一元件或层时,不存在中间元件或层。
本文所述的任何数值范围旨在包括包含在所述范围内的具有相同数值精度的所有子范围。例如,“1.0至10.0”的范围旨在包括所述最小值1.0和所述最大值10.0之间(并且包括所述最小值1.0和所述最大值10.0)的所有子范围,即,具有等于或大于1.0的最小值和等于或小于10.0的最大值,例如2.4至7.6。本文所述的任何最大数值限制旨在包括其中所包含的所有较低数值限制,并且本说明书中所述的任何最小数值限制旨在包括其中所包含的所有较高数值限制。
尽管已经在本文中具体描述和示出了用于跨多个存储设备提供擦除代码保护的控制平面方法和装置的示例实施例,但是对于本领域技术人员而言,许多修改和变化将是显然的。因此,应理解的是,根据本发明原理构造的用于跨多个存储设备提供擦除代码保护的控制平面方法和装置可以以不同于本文具体描述的方式来实现。还在所附权利要求及其等同物中限定本发明。
Claims (20)
1.一种具有存储接口的存储系统,所述系统包括:
多个存储设备,被配置为存储擦除代码,所述擦除代码足以恢复所述多个存储设备中的任何一个存储设备上存储的数据,所述数据是从所述多个存储设备中的其他存储设备上的数据恢复的;
数据交换机,被配置为在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述存储命令路由到所述多个存储设备中的相应存储设备;以及
控制器,被配置为在所述多个存储设备中的任何存储设备故障或不存在的情况下,进行以下操作:
重新配置所述数据交换机以将寻址到故障或不存在的存储设备的存储命令路由到所述控制器;以及
响应于接收到的每个存储命令,通过所述数据交换机并通过所述存储接口发送与故障或不存在的设备在其存在并且止确地操作时应当发送的命令响应相同的命令响应。
2.根据权利要求1所述的系统,其中,每个存储设备被配置为在正常操作期间,在接收到包括数据块的写入命令时,存储所述数据块并且将所述数据块的副本发送到所述控制器。
3.根据权利要求2所述的系统,其中,所述控制器被配置为在从所述多个存储设备中的第一存储设备接收到数据块的副本时,产生足以恢复所述数据块的擦除代码,并且将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
4.根据权利要求1所述的系统,其中,所述多个存储设备中的第一存储设备被配置为在正常操作期间,在接收到包括数据块的写入命令时,进行以下操作:
存储所述数据块;
产生足以恢复所述数据块的擦除代码;以及
将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
5.根据权利要求1所述的系统,其中:
所述多个存储设备中的第一存储设备被配置为存储擦除代码;以及
所述数据交换机被配置为在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述每个存储命令路由到所述多个存储设备的子集中的相应存储设备,所述第一存储设备不是所述子集的成员。
6.根据权利要求1所述的系统,其中,所述控制器被配置为在所述多个存储设备中的任何一个存储设备故障或不存在的情况下,响应于接收到的请求数据块的读取命令进行以下操作:
从所述多个存储设备中的存在的且正确地操作的存储设备读取擦除代码;
恢复所述数据块;以及
通过所述数据交换机并通过所述存储接口将所恢复的数据块作为命令响应的一部分进行发送。
7.根据权利要求1所述的系统,其中:
每个存储设备包括具有存在引脚的连接器,所述存在引脚连接到所述控制器的相应感测引脚;以及
所述控制器被配置为通过相应感测引脚处的电压或电流的变化来检测所述存储设备中的任何一个的移除。
8.根据权利要求1所述的系统,其中,所述数据交换机是以太网交换机。
9.根据权利要求1所述的系统,其中,所述数据交换机具有与所述控制器的端口连接的PCIe控制端口,并且所述数据交换机被配置为通过所述PCIe控制端口从所述控制器接收配置命令。
10.根据权利要求1所述的系统,还包括PCIe交换机,其中所述多个存储设备中的每一个通过所述PCIe交换机连接到所述控制器。
11.根据权利要求1所述的系统,其中,所述控制器是基板管理控制器。
12.一种操作存储系统的方法,所述存储系统具有存储接口并包括多个存储设备、数据交换机和控制器,所述方法包括:
在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述存储命令路由到所述多个存储设备中的相应存储设备;以及
在所述多个存储设备中的任何存储设备故障或不存在的情况下,进行以下操作:
由所述控制器重新配置所述数据交换机以将寻址到故障或不存在的存储设备的存储命令路由到所述控制器;以及
由所述控制器响应于接收到的每个存储命令,通过所述数据交换机并通过所述存储接口发送与故障或不存在的设备在其存在并且正确地操作时应当发送的命令响应相同的命令响应。
13.根据权利要求12所述的方法,还包括:在正常操作期间,在由所述多个存储设备中的存储设备接收到包括数据块的写入命令时,进行以下操作:
由该存储设备存储所述数据块;以及
由该存储设备将所述数据块的副本发送到所述控制器。
14.根据权利要求13所述的方法,还包括:在由所述控制器从所述多个存储设备中的第一存储设备接收到数据块的副本时,进行以下操作:
由所述控制器产生足以恢复所述数据块的擦除代码;以及
由所述控制器将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
15.根据权利要求12所述的方法,还包括:在正常操作期间,在由所述多个存储设备中的第一存储设备接收到包括数据块的写入命令时,进行以下操作:
由所述第一存储设备存储所述数据块;
由所述第一存储设备产生足以恢复所述数据块的擦除代码;以及
由所述第一存储设备将所述擦除代码存储在所述多个存储设备中除所述第一存储设备以外的一个或多个存储设备上。
16.根据权利要求12所述的方法,其中,
所述多个存储设备中的第一存储设备被配置为存储擦除代码;以及
所述方法包括:在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述每个存储命令路由到所述多个存储设备的子集中的相应存储设备,所述第一存储设备不是所述子集的成员。
17.根据权利要求12所述的方法,其中,所述系统还具有PCIe交换机,并且所述控制器通过所述PCIe交换机连接到所述存储设备,
所述方法还包括:在所述多个存储设备中的任何一个存储设备故障或不存在的情况下,响应于由所述控制器接收到请求数据块的读取命令而进行以下操作:
由所述控制器通过所述PCIe交换机从所述多个存储设备中存在的且正确地操作的存储设备读取擦除代码;
由所述控制器恢复所述数据块;以及
由所述控制器通过所述数据交换机并通过所述存储接口将所恢复的数据块作为命令响应的一部分进行发送。
18.根据权利要求17所述的方法,其中,每个存储设备具有与所述控制器的相应感测引脚连接的存在引脚;以及
所述方法还包括:由所述控制器通过相应感测引脚处的电压或电流的变化来检测所述存储设备中的任何一个的移除。
19.一种具有存储接口的存储系统,所述系统包括:
多个存储设备,被配置为存储擦除代码,所述擦除代码足以恢复所述多个存储设备中的任何一个存储设备上存储的数据,所述数据是从所述多个存储设备中的其他存储设备上的数据恢复的;
数据交换机,被配置为在正常操作期间,根据通过所述存储接口接收的存储命令中的每个存储命令中的相应地址将所述存储命令路由到所述多个存储设备中的相应存储设备;以及
控制装置,用于在所述多个存储设备中的任何存储设备故障或不存在的情况下进行以下操作:
重新配置所述数据交换机以将寻址到故障或不存在的存储设备的存储命令路由到所述控制装置;以及
响应于接收到的每个存储命令,通过所述数据交换机并通过所述存储接口发送与故障或不存在的设备在其存在并且正确地操作时应当发送的命令响应相同的命令响应。
20.根据权利要求19所述的系统,其中,每个存储设备被配置为在正常操作期间,在接收到包括数据块的写入命令时,存储所述数据块并且将所述数据块的副本发送到所述控制装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762448648P | 2017-01-20 | 2017-01-20 | |
US62/448,648 | 2017-01-20 | ||
US15/470,774 US10255134B2 (en) | 2017-01-20 | 2017-03-27 | Control plane method and apparatus for providing erasure code protection across multiple storage devices |
US15/470,774 | 2017-03-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334285A true CN108334285A (zh) | 2018-07-27 |
CN108334285B CN108334285B (zh) | 2023-04-18 |
Family
ID=62906306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810056894.4A Active CN108334285B (zh) | 2017-01-20 | 2018-01-19 | 存储系统和操作存储系统的方法 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10255134B2 (zh) |
JP (1) | JP7002346B2 (zh) |
KR (1) | KR102527151B1 (zh) |
CN (1) | CN108334285B (zh) |
TW (2) | TWI780016B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045597A (zh) * | 2018-10-12 | 2020-04-21 | 三星电子株式会社 | 计算机系统 |
CN111309246A (zh) * | 2018-12-12 | 2020-06-19 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN113282232A (zh) * | 2020-02-19 | 2021-08-20 | 希捷科技有限公司 | 具有协同优化的多级擦除系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255134B2 (en) * | 2017-01-20 | 2019-04-09 | Samsung Electronics Co., Ltd. | Control plane method and apparatus for providing erasure code protection across multiple storage devices |
US10275180B2 (en) * | 2017-05-08 | 2019-04-30 | Samsung Electronics Co., Ltd. | Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch |
CN112214166B (zh) * | 2017-09-05 | 2022-05-24 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
US20240095196A1 (en) * | 2018-03-02 | 2024-03-21 | Samsung Electronics Co., Ltd. | Method for supporting erasure code data protection with embedded pcie switch inside fpga+ssd |
US10990554B2 (en) | 2018-03-02 | 2021-04-27 | Samsung Electronics Co., Ltd. | Mechanism to identify FPGA and SSD pairing in a multi-device environment |
US10635609B2 (en) | 2018-03-02 | 2020-04-28 | Samsung Electronics Co., Ltd. | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US10795846B1 (en) * | 2019-07-15 | 2020-10-06 | Cisco Technology, Inc. | Scalable NVMe storage management over system management bus |
CN111931255A (zh) * | 2020-04-02 | 2020-11-13 | 深圳云存科技有限公司 | 自动销毁与拷贝系统 |
TWI789020B (zh) * | 2021-09-23 | 2023-01-01 | 宇瞻科技股份有限公司 | 儲存裝置之控制系統及控制方法 |
JP2023096958A (ja) * | 2021-12-27 | 2023-07-07 | 株式会社日立製作所 | ストレージシステム及びストレージシステム制御方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250017A1 (en) * | 2003-06-09 | 2004-12-09 | Patterson Brian L. | Method and apparatus for selecting among multiple data reconstruction techniques |
CN104094236A (zh) * | 2012-04-02 | 2014-10-08 | 国际商业机器公司 | 防止数据丢失的系统和方法 |
CN104283938A (zh) * | 2013-07-08 | 2015-01-14 | 英特尔公司 | 用于在存储服务器之间复制数据的技术 |
CN104541251A (zh) * | 2012-06-13 | 2015-04-22 | 卡林戈公司 | 在存储群集中的擦除编码和复制 |
CN104813276A (zh) * | 2012-11-26 | 2015-07-29 | 亚马逊科技公司 | 从备份系统流式恢复数据库 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3184171B2 (ja) * | 1998-02-26 | 2001-07-09 | 日本電気株式会社 | ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体 |
US20030217305A1 (en) * | 2002-05-14 | 2003-11-20 | Krehbiel Stanley E. | System, method, and computer program product within a data processing system for assigning an unused, unassigned storage device as a replacement device |
KR20050075764A (ko) * | 2002-10-31 | 2005-07-21 | 링 테크노로지 엔터프라이즈, 엘엘씨 | 스토리지 시스템에 관한 방법 및 시스템 |
US20050228943A1 (en) * | 2004-04-02 | 2005-10-13 | Decenzo David P | Multipath redundant storage system architecture and method |
US7353318B2 (en) * | 2005-08-26 | 2008-04-01 | International Business Machines Corporation | Apparatus and method to assign addresses to plurality of information storage devices |
US7827439B2 (en) | 2007-09-28 | 2010-11-02 | Symantec Corporation | System and method of redundantly storing and retrieving data with cooperating storage devices |
US8522073B2 (en) * | 2009-02-03 | 2013-08-27 | Bittorrent, Inc. | Distributed storage of recoverable data |
US8234447B2 (en) * | 2009-10-09 | 2012-07-31 | Hitachi, Ltd. | Storage control device for storage system provided with storage device coupled to switch network |
JP5416843B2 (ja) * | 2010-05-12 | 2014-02-12 | 株式会社日立製作所 | ストレージ装置、及びストレージ装置の制御方法 |
KR101491484B1 (ko) * | 2010-06-18 | 2015-02-10 | 엘에스아이 코포레이션 | 스케일러블 스토리지 디바이스들 |
US8812901B2 (en) * | 2011-09-23 | 2014-08-19 | Lsi Corporation | Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system |
TW201351126A (zh) * | 2012-05-03 | 2013-12-16 | Thomson Licensing | 分佈式資料儲存系統內資料檔案之儲存方法和管理裝置以及故障儲存裝置之修理方法和修理管理裝置 |
US8762353B2 (en) | 2012-06-13 | 2014-06-24 | Caringo, Inc. | Elimination of duplicate objects in storage clusters |
JP6003610B2 (ja) * | 2012-12-17 | 2016-10-05 | 日本電気株式会社 | 情報処理装置 |
US9229854B1 (en) | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
WO2014118776A1 (en) * | 2013-01-31 | 2014-08-07 | Technion Research & Development Foundation Limited | Management and recovery of distributed storage of replicas |
JP2014154042A (ja) | 2013-02-12 | 2014-08-25 | Ricoh Co Ltd | 情報処理装置及びその記憶装置の交換処理方法 |
US9026846B2 (en) * | 2013-03-15 | 2015-05-05 | Lsi Corporation | Data recovery in a raid controller by offloading contents of DRAM to a flash module on an SAS switch |
US10209904B2 (en) * | 2013-04-09 | 2019-02-19 | EMC IP Holding Company LLC | Multiprocessor system with independent direct access to bulk solid state memory resources |
US9354991B2 (en) * | 2013-06-25 | 2016-05-31 | Microsoft Technology Licensing, Llc | Locally generated simple erasure codes |
JP6213130B2 (ja) * | 2013-10-09 | 2017-10-18 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 |
US9887008B2 (en) | 2014-03-10 | 2018-02-06 | Futurewei Technologies, Inc. | DDR4-SSD dual-port DIMM device |
US9923970B2 (en) * | 2014-08-22 | 2018-03-20 | Nexenta Systems, Inc. | Multicast collaborative erasure encoding and distributed parity protection |
WO2016060675A1 (en) | 2014-10-17 | 2016-04-21 | Hitachi, Ltd. | Method and apparatus for managing data recovery of distributed storage system |
US9565269B2 (en) * | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9098451B1 (en) * | 2014-11-21 | 2015-08-04 | Igneous Systems, Inc. | Shingled repair set for writing data |
US9880750B1 (en) * | 2014-12-05 | 2018-01-30 | Vexata, Inc. | Storage architecture for storage class memories |
US9575669B2 (en) | 2014-12-09 | 2017-02-21 | Western Digital Technologies, Inc. | Programmable solid state drive controller and method for scheduling commands utilizing a data structure |
US9959274B2 (en) * | 2014-12-19 | 2018-05-01 | Amazon Technologies, Inc. | Volume-level redundancy coding techniques for sequential transfer optimized storage devices |
WO2016137402A1 (en) | 2015-02-26 | 2016-09-01 | Agency For Science, Technology And Research | Data stripping, allocation and reconstruction |
US9529542B2 (en) | 2015-04-14 | 2016-12-27 | E8 Storage Systems Ltd. | Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect |
US10114778B2 (en) | 2015-05-08 | 2018-10-30 | Samsung Electronics Co., Ltd. | Multi-protocol IO infrastructure for a flexible storage platform |
US9792179B1 (en) * | 2015-07-06 | 2017-10-17 | Amazon Technologies, Inc. | Eventually durable redundancy encoded data storage |
US9785495B1 (en) * | 2015-12-14 | 2017-10-10 | Amazon Technologies, Inc. | Techniques and systems for detecting anomalous operational data |
US10452279B1 (en) * | 2016-07-26 | 2019-10-22 | Pavilion Data Systems, Inc. | Architecture for flash storage server |
US10229000B2 (en) * | 2016-08-09 | 2019-03-12 | Seagate Llc | Erasure codes to prevent lower page corruption in flash memory |
US10268538B2 (en) * | 2016-11-28 | 2019-04-23 | Alibaba Group Holding Limited | Efficient and enhanced distributed storage clusters |
US10459795B2 (en) * | 2017-01-19 | 2019-10-29 | International Business Machines Corporation | RAID systems and methods for improved data recovery performance |
US10255134B2 (en) * | 2017-01-20 | 2019-04-09 | Samsung Electronics Co., Ltd. | Control plane method and apparatus for providing erasure code protection across multiple storage devices |
-
2017
- 2017-03-27 US US15/470,774 patent/US10255134B2/en active Active
- 2017-12-15 KR KR1020170173110A patent/KR102527151B1/ko active IP Right Grant
-
2018
- 2018-01-16 TW TW111114166A patent/TWI780016B/zh active
- 2018-01-16 TW TW107101465A patent/TWI764973B/zh active
- 2018-01-17 JP JP2018005598A patent/JP7002346B2/ja active Active
- 2018-01-19 CN CN201810056894.4A patent/CN108334285B/zh active Active
-
2019
- 2019-02-28 US US16/289,257 patent/US11042442B2/en active Active
-
2021
- 2021-06-04 US US17/339,772 patent/US11429487B2/en active Active
-
2022
- 2022-08-29 US US17/898,328 patent/US20220413964A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250017A1 (en) * | 2003-06-09 | 2004-12-09 | Patterson Brian L. | Method and apparatus for selecting among multiple data reconstruction techniques |
CN104094236A (zh) * | 2012-04-02 | 2014-10-08 | 国际商业机器公司 | 防止数据丢失的系统和方法 |
CN104541251A (zh) * | 2012-06-13 | 2015-04-22 | 卡林戈公司 | 在存储群集中的擦除编码和复制 |
JP2015519674A (ja) * | 2012-06-13 | 2015-07-09 | カリンゴ・インコーポレーテッドCaringo Incorporated | ストレージクラスタにおける消失符号付加および複製 |
CN104813276A (zh) * | 2012-11-26 | 2015-07-29 | 亚马逊科技公司 | 从备份系统流式恢复数据库 |
CN104283938A (zh) * | 2013-07-08 | 2015-01-14 | 英特尔公司 | 用于在存储服务器之间复制数据的技术 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045597A (zh) * | 2018-10-12 | 2020-04-21 | 三星电子株式会社 | 计算机系统 |
CN111045597B (zh) * | 2018-10-12 | 2024-08-20 | 三星电子株式会社 | 计算机系统 |
CN111309246A (zh) * | 2018-12-12 | 2020-06-19 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN113282232A (zh) * | 2020-02-19 | 2021-08-20 | 希捷科技有限公司 | 具有协同优化的多级擦除系统 |
Also Published As
Publication number | Publication date |
---|---|
KR102527151B1 (ko) | 2023-05-02 |
JP2018116704A (ja) | 2018-07-26 |
US20190196909A1 (en) | 2019-06-27 |
CN108334285B (zh) | 2023-04-18 |
JP7002346B2 (ja) | 2022-01-20 |
TW202230147A (zh) | 2022-08-01 |
KR20180086124A (ko) | 2018-07-30 |
TWI780016B (zh) | 2022-10-01 |
US20180210785A1 (en) | 2018-07-26 |
US20220413964A1 (en) | 2022-12-29 |
US11042442B2 (en) | 2021-06-22 |
US20210294699A1 (en) | 2021-09-23 |
TW201828073A (zh) | 2018-08-01 |
TWI764973B (zh) | 2022-05-21 |
US10255134B2 (en) | 2019-04-09 |
US11429487B2 (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334285A (zh) | 存储系统和操作存储系统的方法 | |
JP6228347B2 (ja) | ストレージ装置及び記憶デバイス | |
US8977781B1 (en) | Computer system | |
US10838885B2 (en) | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD | |
US8412863B2 (en) | Storage apparatus and virtual port migration method for storage apparatus | |
JP5087249B2 (ja) | ストレージシステムおよびストレージシステムの制御方法 | |
US10027532B2 (en) | Storage control apparatus and storage control method | |
JP5069732B2 (ja) | 計算機装置、計算機システム、アダプタ承継方法 | |
CN110312999A (zh) | 基于软件配置/策略分发的PCIe盘阵列的动态划分 | |
CN110069213A (zh) | 跨多个NVMe over Fabric存储设备的擦除代码数据保护 | |
CN101517541A (zh) | 横越冗余存储子系统的连接sas raid控制器设备通道的系统和方法 | |
US20110145452A1 (en) | Methods and apparatus for distribution of raid storage management over a sas domain | |
CN109388515A (zh) | 用于存储数据的系统及方法 | |
JP2007128175A (ja) | ストレージシステム | |
US20200225962A1 (en) | Software Deployment In Disaggregated Computing Platforms | |
ES2726302T3 (es) | Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo | |
JP2006227856A (ja) | アクセス制御装置及びそれに搭載されるインターフェース | |
CN112306388A (zh) | 存储装置 | |
CN104170307A (zh) | 失效切换方法、装置和系统 | |
JP5998884B2 (ja) | ストレージ装置、およびモジュール間データ転送方法 | |
JP5217128B2 (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 |