CN109426584A - 基于逻辑块地址的独立磁盘冗余阵列的系统和方法 - Google Patents
基于逻辑块地址的独立磁盘冗余阵列的系统和方法 Download PDFInfo
- Publication number
- CN109426584A CN109426584A CN201810971349.8A CN201810971349A CN109426584A CN 109426584 A CN109426584 A CN 109426584A CN 201810971349 A CN201810971349 A CN 201810971349A CN 109426584 A CN109426584 A CN 109426584A
- Authority
- CN
- China
- Prior art keywords
- lba
- storage
- parity
- data
- raid
- 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
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000003860 storage Methods 0.000 claims abstract description 171
- 238000000429 assembly Methods 0.000 claims abstract description 18
- 230000000712 assembly Effects 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000002347 injection Methods 0.000 description 5
- 239000007924 injection Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005299 abrasion Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 1
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000013349 risk mitigation Methods 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- 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
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/061—Improving I/O performance
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/065—Replication mechanisms
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种用于LBA RAI D存储设备的系统和方法。LBA RAI D存储设备包括多个数据通道和多个存储组件。每个存储组件连接到多个数据通道中的一个。存储控制器被配置为接收数据并将数据写入由多个存储组件中的至少两个存储组件组成的RAI D组,每个存储组件都连接到单独的数据通道。
Description
相关申请的交叉引用
本申请要求于2017年8月29日提交的美国临时专利申请No.62/551,505以及于2018年1月24日提交的美国临时专利申请No.62/621,450的优先权和权益,其内容通过引用整体并入本文。
本申请还涉及于2017年12月5日提交的美国专利系列号15/832,681的优先权,其全部内容通过引用并入本文。
技术领域
本公开的一些实施例一般涉及具有多个存储组件的存储设备中的基于逻辑块地址(LBA)的RAID。
背景技术
自引入具有从千兆字节到兆兆字节的存储容量的现代驱动器之后,SSD容量一直在稳步增加。随着SSD尺寸的增加,与数据损坏和驱动器故障相关的潜在损失已成为一个更大的问题。传统上,独立磁盘冗余阵列(RAID)已被用于提供更高的数据保护和/或增加的存储性能。RAID的常见实现包括跨多个驱动器(RAID 0)的数据分段、数据镜像(RAID 1)以及带奇偶性的分段(RAID 5和RAID 6)。一些RAID系统通过使用静态物理页码(PPN)(例如,物理NAND页面)计算奇偶性来实现。但是,在SSD中使用PPN效率不高。因此需要一种在SSD中利用RAID的更有效的方法。此外,尽管当前的每个RAID实施都提供了不同程度的风险缓解,但实施RAID需要多个驱动器。在许多应用中,使用多个驱动器不是一种选择。因此,需要能够在单个驱动器上配置的类似于RAID的数据保护机制。
以上信息仅用于增强对本公开的实施例的背景的理解,并且因此可以包含不构成现有技术的信息。
发明内容
本公开的一些实施例提供了一种用于LBA RAID存储设备的系统和方法。在各种实施例中,LBA RAID存储设备具有多个数据通道和多个存储组件。在各种实施例中,多个存储组件中的每一个连接到多个数据通道中的一个。在各种实施例中,LBA RAID存储设备还包括存储控制器,该存储控制器被配置为接收数据并将数据写入RAID组,所述RAID组包括多个存储组件中的至少两个存储组件,每个存储组件连接到单独的数据通道。
在各种实施例中,多个存储组件包括闪存芯片。
在各种实施例中,RAID组具有用于接收数据的M个存储组件和一个奇偶性存储组件,其中M大于1。
在各种实施例中,RAID组具有用于接收数据的N个存储组件和两个奇偶性存储组件,其中N大于1。
在各种实施例中,多个存储组件包括在第一数据通道上操作的第一存储组件、在第二数据通道上操作的第二存储组件、在第三数据通道上操作的第三存储组件、以及在第四数据通道上操作的第四存储设备组件。在各种实施例中,存储控制器进一步被配置为在第一存储组件、第二存储组件和第三存储组件上分段数据,计算数据的奇偶性,并且将奇偶性存储在第四存储组件上。
在各种实施例中,跨第一存储组件,第二存储组件和第三存储组件分段数据包括:将第一数据集写入第一存储组件上的第一逻辑块地址(LBA),将第二数据集写入到第二存储组件上的第二LBA,并且将第三数据集写到第三存储组件上的第三LBA。
在各种实施例中,计算奇偶性包括基于第一LBA、第二LBA和第三LBA计算奇偶性。
在各种实施例中,通过取第一LBA、第二LBA和第三LBA的异或(XOR)来计算奇偶性。
在各种实施例中,存储控制器包括LBA-PPN奇偶性表和奇偶性组表。
在各种实施例中,存储控制器还被配置为根据LBA-PPN奇偶性表和奇偶性组表将数据写入RAID组。
在各种实施例中,存储控制器还被配置为识别多个存储组件中的垃圾收集擦除块的有效条目,将来自垃圾收集擦除块的候选数据复制到相同存储器上的新物理地址组件,并用新的物理地址更新LBA-PPN奇偶性表。
在各种实施例中,LBA RAID存储设备具有在多个数据通道上操作的多个存储组件。LBA RAID存储设备包括在第一数据通道上操作的第一存储组件上的第一逻辑块地址(LBA)、在第二数据通道上操作的第二存储组件上的第二LBA、在第三数据通道上操作的第三存储组件上的第三LBA、在第四数据通道上操作的第四存储组件上的第四LBA。在各种实施例中,LBA RAID存储设备还包括存储控制器,其被配置为将数据写入第一LBA、第二LBA和第三LBA,计算数据的奇偶性位,并将奇偶性位存储在第四LBA上。
在各种实施例中,第一存储组件、第二存储组件、第三存储组件和第四存储组件是闪存芯片。
在各种实施例中,写入数据包括跨越第一LBA、第二LBA和第三LBA对数据进行分段。
在各种实施例中,通过取第一LBA、第二LBA和第三LBA的异或(XOR)来计算奇偶性。
在各种实施例中,存储控制器包括LBA-PPN奇偶性表和奇偶性组表。
在各种实施例中,存储控制器还被配置为根据LBA-PPN奇偶性表和奇偶性组表将数据写入RAID组。
在各种实施例中,存储控制器还被配置为识别第一LBA上的垃圾收集擦除块的有效条目,将来自第一LBA的候选数据复制到第一存储组件上的新物理地址,并且用第一LBA的新物理地址更新LBA-PPN奇偶性表。
在各种实施例中,一种控制固态盘的方法包括:接收写入请求以在存储控制器处存储数据;将数据写入在第一数据通道上操作的第一存储组件、在第二数据通道上操作的第二存储组件和在第三数据通道上操作的第三存储组件,并且计算奇偶性并将奇偶性存储在操作于第四数据通道上的第四存储组件中。
在各种实施例中,写入数据包括将数据写入第一存储组件上的第一逻辑块地址(LBA)、第二存储组件上的第二LBA以及第三存储组件上的第三LBA。
在各种实施例中,该方法进一步包括根据存储在固件上的LBA-PPN奇偶性表和奇偶性组表,将写请求映射到RAID组。
在各种实施例中,计算奇偶性包括取第一LBA、第二LBA和第三LBA的异或(XOR)。
附图说明
根据以下结合附图的描述,可以更加详细地理解一些实施例,其中:
图1描绘了根据本发明的各种实施例的示例的基于LBA的RAID存储设备;
图2描绘了根据本发明的各种实施例的基于LBA的RAID存储设备中的存储器芯片和数据总线的示例;
图3描绘了根据本发明的各种实施例的将数据存储在LBA RAID存储设备中的方法;
图4描绘了根据本发明的各种实施例的在LBA RAID存储设备上操作的基于LBA的RAID组;
图5描绘了根据本发明的各种实施例的示例LBA-物理页码(PPN)-奇偶性表;
图6描绘了根据本发明的各种实施例的示例奇偶性组表。
具体实施方式
通过参考实施例和附图的以下详细描述,可以更容易地理解本发明构思的特征及其实现方法的特征。在下文中,将参考附图更详细地描述实施例,其中相同的附图标记始终表示相同的元件。然而,本发明可以以各种不同的形式来实施,并且不应该被解释为仅限于在此示出的实施例。而是,提供这些实施例作为例子,以使得本公开将是彻底和完整的,并且将向本领域技术人员充分地传达本发明的各方面和特征。因此,可能不会描述本领域普通技术人员理解本发明的方面和特征不需要的过程、元件和技术。除非另有说明,否则在整个附图和书面描述中,相同的附图标记表示相同的元件,并且因此将不重复其描述。在附图中,为了清楚起见,元件、层和区域的相对尺寸可能被夸大。
在以下描述中,出于解释的目的,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节或者具有一个或多个等同布置的情况下实施各种实施例。在其他情况下,以框图形式示出公知的结构和设备,以避免不必要地模糊各种实施例。
应该理解,当元件、层、区域或组件被称为“在另一元件、层、区域或组件”上,“连接到”或“耦合到”另一元件、层、区域或组件时,它可以是直接在另一个元件、层、区域或组件上,直接连接到或耦合到另一个元件、层、区域或组件,或者可以存在一个或多个中间元件、层、区域或组件。然而,“直接连接/直接连接”是指一个部件直接连接或连接另一个组件而没有中间组件。同时,描述诸如“之间”、“直接在......之间”或“与...相邻”之类的组件之间的关系的其他表述可以被类似地解释。此外,还将理解的是,当元件或层被称为在两个元件或层“之间”时,它可以是两个元件或层之间的唯一元件或层,或者一个或多个中间元件或层也可能存在。
这里使用的术语仅用于描述特定实施例的目的,而不意图限制本发明。如本文所使用的,除非上下文另外清楚地指出,否则单数形式“一”和“一个”也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包括着”、“具有”、“具有着”、“包含”和“包含着”指明所述特征、整体、步骤、操作、元件和/或组件,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件,组件和/或其组合。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和所有组合。
如本文所使用的,术语“基本上”,“约”,“近似”以及类似术语被用作近似术语而不是程度术语,并且旨在解释本领域普通技术人员将认识到测量或计算的值中的固有偏差。如本文所用,考虑所讨论的测量和与特定量的测量相关的误差(即,测量系统的限制),“约”或“近似”包括所述值和在本领域普通技术人员确定的特定值偏差的可接受范围内的手段。例如,“约”可以表示在一个或多个标准偏差内,或在所述值的±30%、20%、10%、5%内。此外,当描述本发明的实施例时,使用“可以”是指“本发明的一个或多个实施例”。如本文所使用的,术语“使用”、“使用着”和“曾使用”可以被认为是同义的分别使用术语“利用”、“利用着”和“曾利用”。而且,术语“示例性”旨在指代示例或说明。
当某个实施例可以不同地实现时,可以与所描述的顺序不同地执行特定的处理顺序。例如,可以基本上同时执行两个连续描述的过程或者以与所描述的顺序相反的顺序执行两个连续描述的过程。
这里参照作为实施例和/或中间结构的示意图的截面图来描述各种实施例。因此,预期存在由于例如制造技术和/或容差而导致的图示形状的变化。此外,为了描述根据本公开的概念的实施例,这里公开的具体结构或功能描述仅仅是说明性的。因此,本文公开的实施例不应被解释为限于区域的特定示出的形状,而是包括例如由制造引起的形状偏差。例如,示出为矩形的注入区域通常将在其边缘具有圆形或弯曲的特征和/或注入浓度梯度,而不是从注入区域到非注入区域的二元变化。类似地,通过注入形成的掩埋区可以导致在掩埋区和注入发生的表面之间的区域中的一些注入。因此,附图中示出的区域本质上是示意性的,并且它们的形状不旨在示出设备的区域的实际形状,并且不旨在限制。
这里描述的根据本发明实施例的电子或电气设备和/或任何其他相关设备或组件可以利用任何合适的硬件、固件(例如专用集成电路)、软件或组合的软件、固件和硬件来实现。例如,这些设备的各种组件可以形成在一个集成电路(IC)芯片上或分开的IC芯片上。此外,可以在柔性印刷电路膜、带载封装(TCP)、印刷电路板(PCB)上或者在一个基板上形成这些设备的各种组件。此外,这些设备的各种组件可以是一个或多个计算设备中在一个或多个处理器上运行的进程或线程,执行计算机程序指令以及与其他系统组件进行交互以执行本文所述的各种功能。计算机程序指令被存储在可以使用标准存储器设备(例如,随机存取存储器(RAM))在计算设备中实现的存储器中。计算机程序指令也可以存储在其他非暂时性计算机可读介质中,例如CD-ROM、闪存驱动器等。而且,本领域技术人员应该认识到,可以将各种计算设备的功能组合或集成到单个计算设备中,或者可以将特定计算设备的功能分布在一个或多个其他计算设备上而不偏离本发明的示例性实施例的精神和范围。
除非另外定义,否则这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,诸如在通用字典中定义的那些术语应该被解释为具有与其在相关技术和/或本说明书的上下文中的含义相一致的含义,并且不应该被解释为理想化或过于正式的意义,除非在此明确地如此定义。
本发明的实施例包括用于逻辑块地址(LBA)RAID的系统和方法。在各种实施例中,该系统包括具有在多个数据通道上操作的多个闪存芯片的固态驱动器(SSD)系统。在一些示例中,闪存芯片可以是NAND存储器芯片。在各种实施例中,可以通过跨在不同通道上操作的闪存芯片上的数据进行分段来将SSD配置用于基于LBA的RAID。在各种实施例中,可以在与保持数据的通道不同的通道上使用附加芯片来添加奇偶性。
图1描绘了根据本发明的各种实施例的示例的基于LBA的RAID存储设备。
参考图1,在各种实施例中,LBA RAID存储设备利用多存储器组件架构来在LBARAID存储设备内执行基于LBA的RAID操作。例如,在各种实施例中,LBA RAID存储设备包括存储控制器100和用于控制输入/输出(I/O)操作的固件110。存储控制器100从主机(例如主机应用程序)接收I/O请求(例如数据)并且根据存储在固件110上的RAID配置来处理它们。在各种实施例中,LBA RAID存储设备包括永久存储器120,永久存储器120包括多个存储器组件。例如,永久存储器120可以包括多个数据通道130、140、150,并且每个数据通道可以包括多个存储器芯片132-136、142-146、152-156。在各种实施例中,存储器芯片可以包括任何永久存储器芯片。例如,存储器芯片可以包括闪存芯片(例如NAND)、3D XPoint等。在各种实施例中,控制器100和固件110可以被配置为利用操作在不同的数据通道130,140,150上的不同的存储器芯片132-136、142-146、152-156以创建LBA RAID。例如,在各种实施例中,LBARAID可以跨多个芯片分段数据并且在另外的芯片上包括奇偶性位。在另一个例子中,LBARAID可以跨多个芯片分段数据并且利用两个附加芯片用于奇偶性位。例如,LBA RAID可配置为M数据芯片+1奇偶性(类似于RAID 5)或N数据芯片+2奇偶性(类似于RAID 6),其中M和N是大于1的任何数。跨不同通道上运行的多个芯片分段数据可能会提高驱动器的性能。例如,由于阵列中的I/O可能分布在SSD中的多个通道上,因此可能会缓解数据瓶颈。
图2描绘了根据本发明的各种实施例的基于LBA的RAID存储设备中的存储器芯片和数据总线的示例。
参考图2,在各种实施例中,LBA RAID存储设备200可以被配置为与利用多个闪存芯片的RAID系统一起操作。例如,LBA RAID存储设备200包括多个闪存芯片201-216。在各种实施例中,每个闪存芯片201-216可具有逻辑块地址(LBA)。在各种实施例中,多个闪存芯片201-216可以在多个数据通道217-220上操作。举例来说,第一多个快闪存储器芯片201、205、209及213可全部在第一通道217上操作,第二多个快闪存储器芯片202、206、210及214可全部在第二通道218上操作,第三多个快闪存储器芯片203、207、211和215可全部在第三通道219上操作,并且第四多个快闪存储器芯片204、208、212和216可全部在第四通道220上操作。
在各种实施例中,闪存芯片可被分组为RAID组。例如,固态硬盘(SSD)200可以包括具有第一闪存芯片201、第二闪存芯片202、第三闪存芯片203和第四闪存芯片204的第一RAID阵列230。类似地,SSD 200可以包括具有第五闪存芯片205、第六闪存芯片206、第七闪存芯片207和第八闪存芯片208的第二RAID阵列240。在各种实施例中,每个RAID阵列230、240可以配置有奇偶性芯片。在一些示例中,奇偶性位可以存储在不同通道上的闪存芯片上。举例来说,在各种实施例中,第四通道220上的闪存芯片204、208(250)可全部用于存储奇偶性位。
在各种实施例中,可以基于LBA来计算奇偶性数据。例如,在各种实施例中,第一闪存芯片201可以具有1的LBA,第二闪存芯片202可以具有2的LBA,并且第三闪存芯片203可以具有3的LBA。第四闪存芯片204可以是1的LBA和2的LBA以及3的LBA的奇偶性值。奇偶性位可以以与正在使用的奇偶性的类型一致的任何方式来计算(例如,单个奇偶性、双重奇偶性等)例如,在各种实施例中,可以通过对RAID阵列中的每个LBA中存储的数据进行异或(XOR)(例如,基于LBA计算奇偶性位)来计算单个奇偶性系统的奇偶性。例如,在第一RAID组230中,可以跨第一闪存芯片201、第二闪存芯片202和第三闪存芯片203对数据进行分段(例如,在其间分割),并且可以通过采用存储在第一闪速存储器芯片201,第二闪速存储器芯片202和第三闪速存储器芯片203上的数据的XOR来计算奇偶性位,所得到的奇偶性位存储在第四闪速存储器芯片204上(例如数据(LBA1)XOR数据(LBA2)XOR数据(LBA3)=奇偶性数据)。
图3描绘了根据本发明的各种实施例的将数据存储在LBA RAID存储设备中的方法。图4描绘了根据本发明的各种实施例的在LBA RAID存储设备上操作的基于LBA的RAID组。
参照图3和图4,在各种实施例中,LBA RAID存储设备可以包括RAID组(例如RAID阵列)400。在各种实施例中,可以使用用于存储数据的第一闪存芯片410、第二闪存芯片420和第三闪存芯片430以及用于奇偶性的第四闪存芯片440以3+1P方案来配置RAID组400(例如,在以上参照图2描述的配置中,其中数据跨3个芯片被分段和第四个芯片被用作奇偶性)。在各种实施例中,每个闪存芯片410-440可以包括多个LBA并且跨LBA执行RAID。例如,LBA_i、LBA_j、LBA_k和LBA_P可以形成RAID阵列。在各种实施例中,NAND快闪存储器芯片410、420、430、440可以配置有4KB物理页面。在一些实施例中,正在被写入的数据可以被分成LBA尺寸的倍数的RAID元素块。例如,每个LBA可以是512个字节。因此,一个元素可以是LBA尺寸(512字节)、8个LBA尺寸(4KB)、16个LBA尺寸(8KB)等。
在各种实施例中,LBA RAID存储设备在存储控制器接收存储请求以存储来自主机(例如,应用程序)的数据集(S300)。在各种实施例中,存储控制器可以利用LBA-PPN奇偶性表和奇偶性组表来确定用于存储数据集和关联的奇偶性位(例如LBA_i、LBA_j、LBA_k和LBA_P)的合适位置(S310)。例如,在各种实施例中,存储请求是将数据集存储在LBA_i上。存储控制器引用LBA-PPN-奇偶性表,并确定LBA_i的奇偶性索引为1。然后,存储控制器可以引用奇偶性组表来确定与RAID组关联的其他LBA并写入组。例如,存储控制器映射分割的接收到的数据集,使得数据集的第一个4kb被写入到第一芯片410上的LBA_i,然后数据集的第二个4kb被写入到第二芯片420上的LBA_j,以此类推(S320)。然后,控制器可以(例如通过执行XOR函数)计算写入数据的奇偶性位并将奇偶性位存储在奇偶性LBA_P上(S330)(如奇偶性组表中所定义的)。
图5描绘了根据本发明的各种实施例的示例LBA-物理页码(PPN)-平衡表。图6描绘了根据本发明的各种实施例的示例奇偶性组表。
参考图5和图6,LBA RAID存储设备可以包括用于维护数据位置、RAID阵列和奇偶性信息的LBA-PPN奇偶性表500和奇偶性组表600。在各种实施例中,LBA-PPN奇偶性表500和奇偶性组表600可以存储在存储设备的固件中并且由存储控制器更新。在各种实施例中,LBA-PPN奇偶性表500和奇偶性组表600被配置为定义并映射LBA RAID存储设备上的各种RAID阵列。例如,LBA-PPN奇偶性表500和奇偶性组表600可以定义哪些LBA形成阵列以及每个阵列的奇偶性数据的位置。
在各种实施例中,LBA-PPN奇偶性表500被配置为将LBA映射到PPN和奇偶性索引。例如,在各种实施例中,LBA-PPN奇偶性表500包括LBA索引510、相关联的PPN 520和相关联的奇偶性索引530。
在各种实施例中,奇偶性组表600被配置为定义哪些LBA与哪个奇偶性LBA或PPN相关联。例如,奇偶性组表600包括映射到来自LBA-PPN奇偶性表500的奇偶性索引530的奇偶性索引610。与每个奇偶性索引610相关联的是每个具有奇偶性PPN 650的LBA 620、630、640。例如,如LBA-PPN奇偶性表500中所示,LBA_i、LBA_j和LBA_k均与奇偶性索引1相关联。因此,无论何时修改LBA_i、LBA_j和LBA_k上的数据,奇偶性P1也被更新。例如,在各种实施例中,当数据被更新时(例如阵列的至少一个LBA上的数据被改变),相应的奇偶性也使用XOR函数重新计算,并且LBA-PPN-奇偶性表500和奇偶性组表600(例如,PPN 520和奇偶性PPN 650)中的相关联的PPN也被更新。
在各种实施例中,可以从LBA RAID存储设备中的LBA中删除数据。例如,在各种实施例中,可以通过将LBA数据与奇偶性异或来从奇偶性中去除LBA数据。然后可以将更新的奇偶性存储到新的PPN。LBA-PPN-奇偶性表500中的先前PPN和奇偶性索引可以被删除。然后可以将LBA从奇偶性组表600中移除。在一些情况下,所有LBA可能已经从RAID阵列中删除。在从一个RAID阵列中删除所有LBA的情况下,可以从奇偶性组表600中删除相应的奇偶性条目(例如,与奇偶性索引610相关联的所有条目)。
在各种实施例中,LBA RAID存储设备被配置用于片内级垃圾收集和磨损均衡。例如,在垃圾收集或耗损均衡过程中,当有效数据被复制到新的擦除块时,新的擦除块可以从相同的闪存芯片分配。例如,LBA_i可以是闪存芯片x中的垃圾收集候选擦除块(或磨损均衡块)的有效条目,并且因此LBA_i中的数据需要被复制到新的擦除块。在各种实施例中,新的擦除块将被分配在相同的闪存芯片x中。在这些情况下,来自LBA-PPN-奇偶性表500的PPN520被更新,并且不需要更新奇偶性组表600(除非被移动的数据是奇偶性数据)。
因此,本公开的上述实施例提供了一种用于基于LBA的RAID存储设备的系统和方法。在各种实施例中,LBA RAID存储设备具有多个组件,例如可用于在SSD内执行RAID的NAND存储器芯片(例如,闪存芯片),从而提供数据保护和性能方面的改进。在各种实施例中,LBA-PPN奇偶性表和奇偶性组表用于映射数据的位置和相关奇偶性位。
前述内容是对示例实施例的说明,并且不被解释为对其进行限制。虽然已经描述了一些示例实施例,但是本领域技术人员将容易理解,在示例实施例中可以进行许多修改而不实质上脱离示例实施例的新颖教导和优点。因此,所有这样的修改旨在被包括在如权利要求中所限定的示例实施例的范围内。在权利要求中,装置加功能的条款旨在覆盖在此描述的执行所述功能的结构,并且不仅包括结构等同物而且还包括等同结构。因此,应当理解的是,前述内容是对示例实施例的说明,并且不被解释为限于所公开的具体实施例,并且旨在将对所公开的示例实施例以及其他示例实施例的修改包括在所附权利要求的范围内。本发明构思由以下权利要求限定,其中包括权利要求的等同物。
Claims (22)
1.一种LBA RAID存储设备,包括:
多个数据通道;
多个存储组件,其中所述多个存储组件中的每一个都连接到所述多个数据通道中的一个;和
存储控制器,被配置为接收数据并且将数据写入RAID组,RAID组包括多个存储组件中的至少两个存储组件,每个存储组件都连接到单独的数据通道。
2.如权利要求1所述的LBA RAID存储设备,其中所述多个存储组件包括闪存芯片。
3.如权利要求1所述的LBA RAID存储设备,其中所述RAID组包括用于接收所述数据的M个存储组件和一个奇偶性存储组件,其中M大于1。
4.如权利要求1所述的LBA RAID存储设备,其中所述RAID组包括用于接收所述数据的N个存储组件和两个奇偶性存储组件,其中N大于1。
5.如权利要求1所述的LBA RAID存储设备,其中:
所述多个存储组件包括在第一数据通道上操作的第一存储组件,在第二数据通道上操作的第二存储组件,在第三数据通道上操作的第三存储组件和在第四数据通道上操作的第四存储组件;
存储控制器还被配置为:
将跨越第一存储组件、第二存储组件和第三存储组件分段数据;
计算数据的奇偶性;和
将奇偶性存储在第四个存储组件上。
6.根据权利要求5所述的LBA RAID存储设备,其中跨所述第一存储组件,所述第二存储组件和所述第三存储组件分段所述数据包括:
将第一数据集写入第一存储组件上的第一逻辑块地址(LBA);
将第二数据集写入第二存储组件上的第二LBA;和
将第三数据集写入第三存储组件上的第三LBA。
7.根据权利要求6所述的LBA RAID存储设备,其中计算所述奇偶性包括基于所述第一LBA、所述第二LBA和所述第三LBA计算奇偶性。
8.如权利要求7所述的LBA RAID存储设备,其中,通过取第一LBA、第二LBA和第三LBA的异或(XOR)来计算奇偶性。
9.如权利要求1所述的LBA RAID存储设备,其中所述存储控制器包括LBA-PPN奇偶性表和奇偶性组表。
10.如权利要求9所述的LBA RAID存储设备,其中,所述存储控制器还被配置为根据所述LBA-PPN-奇偶性表和所述奇偶性组表将所述数据写入RAID组。
11.如权利要求9所述的LBA RAID存储设备,其中所述存储控制器进一步经配置以:
识别所述多个存储组件中的垃圾收集擦除块的有效条目;
将来自所述垃圾收集擦除块的候选数据复制到所述多个存储组件中的相同存储组件上的新物理地址;和
用新的物理地址更新LBA-PPN-奇偶性表。
12.一种LBA RAID存储设备,包括:
在第一数据通道上操作的第一存储组件上的第一逻辑块地址(LBA)
在第二数据通道上操作的第二存储组件上的第二LBA;
在第三数据通道上操作的第三存储组件上的第三LBA;
在第四数据通道上操作的第四存储组件上的第四LBA;和
存储控制器,被配置为:
将数据写入第一个LBA、第二LBA和第三LBA;和
计算数据的奇偶性;和
将奇偶性存储在第四LBA上。
13.如权利要求12所述的LBA RAID存储设备,其中所述第一存储组件、所述第二存储组件、所述第三存储组件和所述第四存储组件包括闪存芯片。
14.如权利要求12所述的LBA RAID存储设备,其中写入所述数据包括跨所述第一LBA、所述第二LBA和所述第三LBA上分段所述数据。
15.如权利要求12所述的LBA RAID存储设备,其中,通过取第一LBA、第二LBA和第三LBA的异或(XOR)来计算奇偶性。
16.如权利要求12所述的LBA RAID存储设备,其中所述存储控制器包括LBA-PPN奇偶性表和奇偶性组表。
17.如权利要求16所述的LBA RAID存储设备,其中,所述存储控制器还被配置为根据所述LBA-PPN奇偶性表和所述奇偶性组表将所述数据写入RAID组。
18.如权利要求16所述的LBA RAID存储设备,其中所述存储控制器还被配置以:
识别第一LBA上的垃圾收集擦除块的有效条目;
将来自第一LBA的候选数据复制到第一存储组件上的新物理地址;和
用第一LBA的新物理地址更新LBA-PPN奇偶性表。
19.一种控制固态盘的方法,包括:
接收写入请求以在存储控制器处存储数据;
将数据写入在第一数据通道上操作的第一存储组件、在第二数据通道上操作的第二存储组件和在第三数据通道上操作的第三存储组件;和
计算奇偶性并将奇偶性存储在操作于第四数据通道上的第四存储组件中。
20.如权利要求19所述的控制固态盘的方法,其中写入所述数据包括将所述数据写入第一存储组件上的第一逻辑块地址(LBA)、第二存储组件上的第二LBA以及第三存储组件上的第三LBA。
21.如权利要求20所述的控制固态盘的方法,还包括:
根据存储在固件上的LBA-PPN奇偶性表和奇偶性组表,将写请求映射到RAID组。
22.如权利要求20所述的控制固态盘的方法,其中计算奇偶性包括取第一LBA、第二LBA和第三LBA的异或(XOR)。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762551505P | 2017-08-29 | 2017-08-29 | |
US62/551,505 | 2017-08-29 | ||
US201862621450P | 2018-01-24 | 2018-01-24 | |
US62/621,450 | 2018-01-24 | ||
US15/949,943 US11221958B2 (en) | 2017-08-29 | 2018-04-10 | System and method for LBA-based RAID |
US15/949,943 | 2018-04-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426584A true CN109426584A (zh) | 2019-03-05 |
CN109426584B CN109426584B (zh) | 2024-03-08 |
Family
ID=65437250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810971349.8A Active CN109426584B (zh) | 2017-08-29 | 2018-08-24 | 基于逻辑块地址的独立磁盘冗余阵列的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (4) | US11221958B2 (zh) |
KR (1) | KR20190024627A (zh) |
CN (1) | CN109426584B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764665A (zh) * | 2019-10-21 | 2021-05-07 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221958B2 (en) * | 2017-08-29 | 2022-01-11 | Samsung Electronics Co., Ltd. | System and method for LBA-based RAID |
US10983724B2 (en) * | 2018-09-14 | 2021-04-20 | Micron Technology, Inc. | Controller with distributed sequencer components |
US11210002B2 (en) * | 2020-01-29 | 2021-12-28 | Samsung Electronics Co., Ltd. | Offloaded device-driven erasure coding |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100037091A1 (en) * | 2008-08-06 | 2010-02-11 | Anant Baderdinni | Logical drive bad block management of redundant array of independent disks |
US20110078496A1 (en) * | 2009-09-29 | 2011-03-31 | Micron Technology, Inc. | Stripe based memory operation |
US20120054413A1 (en) * | 2010-08-31 | 2012-03-01 | Micron Technology, Inc. | Stripe-based non-volatile multilevel memory operation |
US20120246443A1 (en) * | 2011-03-21 | 2012-09-27 | Anobit Technologies Ltd. | Independent management of data and parity logical block addresses |
CN103577111A (zh) * | 2012-07-23 | 2014-02-12 | 上海宝存信息科技有限公司 | 基于非易失性存储器的动态独立冗余阵列存储系统及方法 |
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid系统及方法 |
US20170123995A1 (en) * | 2015-11-03 | 2017-05-04 | Intel Corporation | Efficient redundant array of independent disks (raid) write hole solutions |
CN110383251A (zh) * | 2017-03-28 | 2019-10-25 | 株式会社日立制作所 | 存储系统、计算机可读记录介质、系统的控制方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822251A (en) | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
US8060670B2 (en) | 2004-03-17 | 2011-11-15 | Super Talent Electronics, Inc. | Method and systems for storing and accessing data in USB attached-SCSI (UAS) and bulk-only-transfer (BOT) based flash-memory device |
US20080086608A1 (en) | 2006-10-10 | 2008-04-10 | Hitachi, Ltd. | System and method for migration of CDP journal data between storage subsystems |
JP5489434B2 (ja) | 2008-08-25 | 2014-05-14 | 株式会社日立製作所 | フラッシュメモリ搭載ストレージ装置 |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US9424128B2 (en) | 2011-08-12 | 2016-08-23 | Futurewei Technologies, Inc. | Method and apparatus for flexible RAID in SSD |
US9251059B2 (en) | 2011-09-23 | 2016-02-02 | Avalanche Technology, Inc. | Storage system employing MRAM and redundant array of solid state disk |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
KR101445025B1 (ko) | 2012-02-09 | 2014-09-26 | 서울시립대학교 산학협력단 | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 |
US8996782B2 (en) | 2012-03-23 | 2015-03-31 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
US8938584B2 (en) | 2012-04-30 | 2015-01-20 | Dell Products, Lp | System and method to keep parity consistent in an array of solid state drives when data blocks are de-allocated |
JP6039699B2 (ja) | 2012-07-23 | 2016-12-07 | 株式会社日立製作所 | ストレージシステム及びデータ管理方法 |
CN104956309B (zh) | 2013-01-25 | 2017-12-12 | 株式会社日立制作所 | 存储系统及数据管理方法 |
US9268702B2 (en) | 2013-04-11 | 2016-02-23 | Institute of Computer Science (ICS) of the Foundation for Research and Technology—Hellas (FORTH) | Storage I/O path partitioning to eliminate I/O interference in consolidated servers |
US9798620B2 (en) * | 2014-02-06 | 2017-10-24 | Sandisk Technologies Llc | Systems and methods for non-blocking solid-state memory |
US9319073B2 (en) | 2014-02-11 | 2016-04-19 | Seagate Technology Llc | Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding |
WO2016112957A1 (en) | 2015-01-13 | 2016-07-21 | Hitachi Data Systems Engineering UK Limited | Computer program product, method, apparatus and data storage system for managing defragmentation in file systems |
US10528272B2 (en) | 2015-02-20 | 2020-01-07 | International Business Machines Corporation | RAID array systems and operations using mapping information |
WO2016194095A1 (ja) | 2015-06-01 | 2016-12-08 | 株式会社日立製作所 | 情報処理システム、ストレージ装置及び記憶デバイス |
US9626246B1 (en) * | 2015-09-10 | 2017-04-18 | Datadirect Networks, Inc. | System and method for I/O optimized data migration between high performance computing entities and a data storage supported by a de-clustered raid (DCR)architecture with vertical execution of I/O commands |
US9778855B2 (en) * | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
JP6696280B2 (ja) | 2016-04-13 | 2020-05-20 | 富士通株式会社 | 情報処理装置、raid制御方法、およびraid制御プログラム |
US20180059976A1 (en) * | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Storage System with Integrated Components and Method for Use Therewith |
US10198205B1 (en) | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
US11221958B2 (en) * | 2017-08-29 | 2022-01-11 | Samsung Electronics Co., Ltd. | System and method for LBA-based RAID |
TWI775268B (zh) * | 2021-01-07 | 2022-08-21 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
-
2018
- 2018-04-10 US US15/949,943 patent/US11221958B2/en active Active
- 2018-06-05 KR KR1020180064849A patent/KR20190024627A/ko active IP Right Grant
- 2018-08-24 CN CN201810971349.8A patent/CN109426584B/zh active Active
-
2020
- 2020-05-08 US US16/870,344 patent/US11237977B2/en active Active
-
2022
- 2022-01-28 US US17/588,158 patent/US11789873B2/en active Active
-
2023
- 2023-10-13 US US18/380,136 patent/US20240037041A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100037091A1 (en) * | 2008-08-06 | 2010-02-11 | Anant Baderdinni | Logical drive bad block management of redundant array of independent disks |
US20110078496A1 (en) * | 2009-09-29 | 2011-03-31 | Micron Technology, Inc. | Stripe based memory operation |
US20120054413A1 (en) * | 2010-08-31 | 2012-03-01 | Micron Technology, Inc. | Stripe-based non-volatile multilevel memory operation |
US20120246443A1 (en) * | 2011-03-21 | 2012-09-27 | Anobit Technologies Ltd. | Independent management of data and parity logical block addresses |
CN103577111A (zh) * | 2012-07-23 | 2014-02-12 | 上海宝存信息科技有限公司 | 基于非易失性存储器的动态独立冗余阵列存储系统及方法 |
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid系统及方法 |
US20170123995A1 (en) * | 2015-11-03 | 2017-05-04 | Intel Corporation | Efficient redundant array of independent disks (raid) write hole solutions |
CN110383251A (zh) * | 2017-03-28 | 2019-10-25 | 株式会社日立制作所 | 存储系统、计算机可读记录介质、系统的控制方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764665A (zh) * | 2019-10-21 | 2021-05-07 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
CN112764665B (zh) * | 2019-10-21 | 2024-05-10 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US20200272572A1 (en) | 2020-08-27 |
KR20190024627A (ko) | 2019-03-08 |
CN109426584B (zh) | 2024-03-08 |
US11221958B2 (en) | 2022-01-11 |
US20190065389A1 (en) | 2019-02-28 |
US11237977B2 (en) | 2022-02-01 |
US20240037041A1 (en) | 2024-02-01 |
US20220156199A1 (en) | 2022-05-19 |
US11789873B2 (en) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426584A (zh) | 基于逻辑块地址的独立磁盘冗余阵列的系统和方法 | |
US10379948B2 (en) | Redundancy coding stripe based on internal addresses of storage devices | |
US11249664B2 (en) | File system metadata decoding for optimizing flash translation layer operations | |
US10877898B2 (en) | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements | |
US20160154592A1 (en) | Copying volumes between storage pools | |
US10474528B2 (en) | Redundancy coding stripe based on coordinated internal address scheme across multiple devices | |
CN108733319A (zh) | 用于非易失性存储器中的混合推拉数据管理的系统和方法 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
US10481979B2 (en) | Storage system, computing system, and methods thereof | |
CN113448497B (zh) | 子块的动态分配 | |
EP3506117B1 (en) | Stream classification based on logical regions | |
CN108022611A (zh) | 存储系统及其操作方法 | |
US20120246443A1 (en) | Independent management of data and parity logical block addresses | |
US20130246722A1 (en) | Storage system having nonvolatile semiconductor storage device with nonvolatile semiconductor memory | |
US11513949B2 (en) | Storage device, and control method and recording medium thereof | |
CN103064765A (zh) | 数据恢复方法、装置及集群存储系统 | |
US10649893B2 (en) | Namespace planning of non-volatile memory of data storage device | |
US10901649B2 (en) | Storage reclamation for distributed storage systems | |
CN117931055A (zh) | 在多个存储器区域中分配和存储写入数据的设备和方法 | |
CN111177041B (zh) | 支持新能力的可配置集成电路 | |
US10521156B2 (en) | Apparatus and method of managing multi solid state disk system | |
CN112748848A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
US20170060421A1 (en) | System and Method to Support Shingled Magnetic Recording Hard Drives in a Storage System | |
CN111161781A (zh) | 用于处理编程错误的存储器系统及其方法 | |
US20180032265A1 (en) | Storage assist memory module |
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 |