CN106168920B - 控制包括只读闪速数据存储设备的独立磁盘冗余阵列 - Google Patents
控制包括只读闪速数据存储设备的独立磁盘冗余阵列 Download PDFInfo
- Publication number
- CN106168920B CN106168920B CN201610342214.6A CN201610342214A CN106168920B CN 106168920 B CN106168920 B CN 106168920B CN 201610342214 A CN201610342214 A CN 201610342214A CN 106168920 B CN106168920 B CN 106168920B
- Authority
- CN
- China
- Prior art keywords
- data storage
- data
- flash
- equipment
- flash data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/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
- G06F11/1068—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 in sector programmable memories, e.g. flash 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/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/2053—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 persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
-
- 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
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/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/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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开的实施例涉及控制包括只读闪速数据存储设备的独立磁盘冗余阵列(RAID)。提供了一种用于控制独立磁盘冗余阵列(RAID)的方法。该方法包括计算机系统将数据写到RAID和从RAID读取数据,其中RAID包括控制器和多个数据存储设备,其包括闪速数据存储设备。该方法还包括控制器检测闪速数据存储设备是否在只读模式中,并且控制器响应于检测闪速数据存储设备在只读模式中,阻止将数据写到闪速数据存储设备的尝试。可选地,当闪速数据存储设备在只读模式中时,控制器可以将旨在针对闪速数据存储设备的写重定向到另一数据存储设备或者高速缓存存储器上的空的数据存储空间,或者鉴于旨在被写入的数据,修改主条带的奇偶校验条带。还公开了一种计算机系统。
Description
技术领域
本发明涉及数据存储的管理,特别地包括独立磁盘冗余阵列的使用。
背景技术
在现代计算机系统中,对于数据可靠性和输入/输出性能的需求已经导致在多个数据存储设备中间划分和复制数据的一系列数据存储方案的开发。这样的存储方案通常被称为独立磁盘冗余阵列 (RAID)。RAID系统通过使用专用硬件或软件将诸如磁盘驱动器的物理数据存储设备组合为单个物理单元。硬件方案将通常被设计为将自身呈现给所附接的系统作为单个逻辑设备或者驱动器,使得操作系统不知道底层阵列的技术工作。备选地,软件方案可以实现在操作系统中,并且将类似地将RAID驱动器呈现给应用程序作为单个设备或者驱动器。驱动器的最小数目和数据可靠性的水平取决于被实现的RAID方案的类型。
最初,存在五个RAID级别,其中,不同的RAID级别使用被称为镜像、加条带(striping)和错误纠正的一个或多个技术。镜像包含将数据拷贝到超过一个磁盘,加条带涉及跨越超过一个磁盘散布数据,并且错误纠正涉及存储冗余数据(奇偶校验)以允许问题被检测并且可能固定。
RAID 0在没有奇偶校验的情况下跨越两个或两个以上磁盘均匀地散布数据。因此,可以说,RAID 0在没有任何冗余的情况下提供加条带。RAID 0适于其中存在很少或者没有关于数据完整性的关心的高性能。
RAID 1阵列提供两个或两个以上磁盘上的数据的完整并且精确的拷贝。因此,RAID 1包括完整的冗余或者镜像。RAID 1的性能是好的,并且可以可选地包括使得磁盘的不同区段的独立读取能够进一步增加速度的双工。由于伙伴磁盘中所维持的完整复制,因而 RAID 1的数据完整性也是好的。
一般而言,RAID 3利用专用奇偶校验磁盘提供字节级加条带, RAID 4利用专用奇偶校验磁盘提供块级加条带,并且RAID 5利用遍及所有成员磁盘分布的奇偶校验数据提供块级加条带。RAID 5已经实现由于其冗余的低成本的流行度。通常,利用用于奇偶校验计算的硬件支持实现RAID 5。针对完整RAID 5配置一般地要求最少三个磁盘。RAID 5提供针对大多数服务器工作量的价格与性能之间的平衡,并且通过实现被称为单个方程单个未知数(single equation single unknown)的技术提供单驱动故障容限。校验和信息均匀地分布在所有驱动器之上,并且校验和更新操作在阵列内均匀地平衡。
在读操作期间,通常未读取奇偶校验块,这是因为这将是不必要的开销并且将降低性能。然而,当数据扇区的读取导致CRC错误时(每个扇区也由CRC保护),读取奇偶校验块。在这种情况下,条带中的剩余数据块中的每个数据块内与条带中的奇偶校验块内的相同相对位置中的扇区被用于重建错误扇区。因此,CRC错误对主计算机是隐藏的。同样地,如果磁盘在阵列中故障,则来自尚存磁盘的奇偶校验块与来自尚存磁盘的数据块数学地组合以重建“在飞行中”故障的驱动器上的数据。然而,在其中存在每条带的单个奇偶校验块的RAID 5中,第二个驱动器的故障导致全部数据丢失。 RAID级别的前述讨论旨在提供包括在不同RAID级别中的特征的一般示例,并且不旨在是RAID级别的综合性列表或者描述。
不管RAID级别如何,已经在机械硬盘驱动器的使用周围已经建立RAID栈。然而,闪速数据存储设备不断增长地使用在各种应用中。闪速数据存储设备更快并且可以提供利用机械硬盘驱动器不可能实现的响应时间。然而,闪速数据存储设备以可能导致操作问题的方式与机械硬盘驱动器不同地操作。例如,闪速数据存储设备具有对设备可以写入的次数的非常可测量的限制。为了允许用户仍然访问其数据,闪速数据存储设备将进入只读模式,使得即使系统不再能够将数据写入到设备,计算机系统也仍然可以从设备读取数据。这在RAID阵列中是有问题的,因为RAID控制器将在所尝试的写入失败时使驱动器废止。而且,这样的写入可以发生在这样的情况中,诸如在用户甚至将不试图访问数据时清洗的后台数据的情况。此外,启动操作系统以便尝试救援来自设备的数据的动作可能触发将使得设备故障并且变得被标记为废止的写入。
发明内容
本发明的一个实施例提供了一种控制独立磁盘冗余阵列(RAID) 的方法。方法包括计算机系统将数据写入到独立磁盘冗余阵列并且从独立磁盘冗余阵列读取数据,其中独立磁盘冗余阵列包括控制器和多个数据存储设备,并且其中多个数据存储设备包括闪速数据存储设备。该方法还包括控制器检测闪速数据存储设备是否在只读模式中,并且控制器响应于检测闪速数据存储设备在只读模式中,阻止将数据写入到闪速数据存储设备的尝试。
附图说明
图1根据本发明的一个实施例的包括闪速数据存储设备的独立磁盘冗余阵列(RAID)的示图。
图2是根据本发明的一个实施例的包括只读模式中的闪速数据存储设备的独立磁盘冗余阵列(RAID)的示图。
图3是根据本发明的一个实施例的包括具有更新的数据的替换闪速数据存储设备的独立磁盘冗余阵列(RAID)的示图。
图4A-B是处理涉及独立磁盘冗余阵列(RAID)中的闪速数据存储设备的读写操作的方法的流程图。
具体实施方式
本发明的一个实施例提供了一种控制独立磁盘冗余阵列(RAID) 的方法。该方法包括计算机系统将数据写入到独立磁盘冗余阵列并且从独立磁盘冗余阵列读取数据,其中独立磁盘冗余阵列包括控制器和多个数据存储设备,并且其中多个数据存储设备包括闪速数据存储设备。该方法还包括控制器检测闪速数据存储设备是否在只读模式中,并且控制器响应于检测闪速数据存储设备在只读模式中,阻止将数据写入到闪速数据存储设备的尝试。然而,作为在只读模式中的结果,闪速数据存储设备被标记为废止的,并且RAID阵列能够继续跨越多个数据存储设备存储数据。闪速数据存储设备可以包括存储闪速存储设备是否在只读模式中的指示的寄存器集。可选地,多个数据存储设备可以包括至少一个硬盘驱动器。
在一个选项中,控制器可以响应于闪速数据存储设备在只读模式中,将旨在针对闪速数据存储设备的写入重定向到多个数据存储设备内的另一个数据存储设备上的空的数据存储空间。当数据被写入到空的数据存储空间时,数据与写原始预期或者引导到的闪速数据存储设备的次条带相关联。
在类似选项中,控制器可以响应于闪速数据存储设备在只读模式中,将旨在针对数据存储设备的写入重定向到对控制器可访问的高速缓存存储器。高速缓存存储器可以与控制器直接附接或相关联或者高速缓存存储器可以是闪速数据存储设备的一部分。
在又一选项中,控制器可以修改主条带的奇偶校验条带,如若对闪速数据存储设备的写已经发生,并且控制器存储其中在闪速数据存储设备在只读模式中时由于旨在针对闪速数据存储设备的写入而修改的奇偶校验条带的每个主条带的列表。根据该选项,响应于控制器确定在闪速数据存储设备在只读模式中时数据尚未修改,可以直接从只读模式中的闪速数据存储设备读取数据。例如,控制器可以查看其中修改奇偶校验条带的主条带的列表,并且如果待从闪速数据存储设备读取的数据未定位在那些主条带中的任一个主条带中,那么可以在没有任何附加开销的情况下,直接从闪速数据存储设备将数据读取为正常的。然而,响应于控制器确定在闪速数据存储设备在只读模式中时修改了数据,控制器可以使用相同主条带中的、被存储在其他数据存储设备上的经修改的奇偶校验条带和数据重新生成针对闪速数据存储设备的相关联的次条带。换句话说,如果控制器已经将主条带列出为已经修改,那么实际上存储在闪速数据存储设备的相关联的次条带上的数据被认为是失效或者坏的。但是由于修改奇偶校验条带以反映旨在写到闪速数据存储设备的该次条带的数据,可以在该次条带中引导的读取的满足中重新生成旨在写入的数据。虽然数据的重新生成要求附加的计算或者开销,但是即使闪速数据存储设备在只读模式中,前述操作也允许独立磁盘冗余阵列在不丢失数据的情况下继续执行读写功能。
根据本发明的另一实施例,方法还可以包括通过读取被存储在闪速数据存储设备上的未修改数据和被存储在设备高速缓存、存储控制器高速缓存、阵列内的另一个数据存储设备上的经修改的数据或者使用奇偶校验重新生成数据,来创建一个或多个文件的备份。实际上,可以从设备高速缓存、存储控制器高速缓存、阵列内的另一个数据存储设备的任何组合或者使用奇偶校验重新生成数据,来读取经修改的数据。
在又一实施例中,方法可以包括通过读取被存储在闪速数据存储设备上的未修改的数据和被存储在设备高速缓存、存储控制器高速缓存、阵列内的另一个数据存储设备上的经修改的数据或者使用奇偶校验重新生成所述数据,来在第二数据存储设备上创建将整个闪速数据存储设备的拷贝。实际上,可以从设备高速缓存、存储控制器高速缓存、阵列内的另一数据存储设备的任何组合或者使用奇偶校验重新生成数据,来读取经修改的数据。可选地,可以利用第二数据存储设备替换闪速数据存储设备。当第二数据存储设备已经替换闪速数据存储设备,那么可以删除存储与闪速数据存储设备相关联的数据的任何设备高速缓存、存储控制器高速缓存或者阵列内的数据存储设备。应当理解,第二数据存储设备还可以是第二闪速数据存储设备或者其他类型的数据存储装置,诸如硬盘驱动器。
在一个选项中,控制器响应于在写入到闪速数据存储设备时的写入错误,检测闪速数据存储设备是否在只读模式中。当控制器在任何写入尝试之前可以检测闪速数据存储设备是否在只读模式中时,等待写入错误阻止在闪速数据存储设备的每次写入之前执行该检测的开销。在另一选项中,控制器可以响应于在写入到闪速数据存储设备的写入错误并且检测闪速数据存储设备不在只读模式中,对在写入到闪速数据存储设备时所发生的写入错误的数目进行计数。随后,控制器可以响应于写入错误的数目超过写入错误的设定点数目,将闪速数据存储设备标记为废止的。
在另一选项中,方法还可以包括响应于闪速数据存储设备在只读模式中,关闭计算机系统的、将涉及将数据写入到闪速数据存储设备的后台任务。关闭后台任务将具有减少将需要被写入到阵列的其他设备上的空的空间、被写入到高速缓存或者被反映在奇偶校验的修改中的数据量的效果。
图1根据本发明的一个实施例的包括闪速数据存储设备的独立磁盘冗余阵列(RAID)10的示图。独立磁盘冗余阵列10包括控制器20和形成阵列的多个数据存储设备30。控制器20连接用于与计算机系统12通信并且还连接用于与阵列中的数据存储设备30中的每个数据存储设备通信。优选地,计算机系统12将独立磁盘冗余阵列10视为单个逻辑实体并且将读和写指令发送给控制器20。负责管理如何将数据存储在跨越阵列的主条带中的是控制器20。通过可用的数据存储设备30的数目和所实现的RAID级别来影响控制器的精确操作和阵列的配置。图1中所示的独立磁盘冗余阵列10的非限制性示例包括操作为RAID级别5的四个数据存储设备30,其利用分布的奇偶校验表征块级加条带。例如,在主条带1中,数据A被存储在数据存储设备1上的次条带中,数据B被存储在数据存储设备 2上的次条带中,数据C被存储在数据存储设备3上的次条带中,并且奇偶校验P1(ABC)存储在数据存储设备4上的次条带中。使用第一主条带中的数据A、数据B和数据C作为输入、使用预先确定的奇偶校验计算来计算奇偶校验P1(ABC)。奇偶校验计算的一个示例是跨条带的数据的异OR(XOR)。其他RAID级别还可以包含本发明的特征。
如所示,数据存储设备30之一是闪速数据存储设备40。闪速数据存储设备40可以包括指示闪速数据存储设备40是在正常模式还是在只读模式中的寄存器集42。在正常模式中,控制器20可以读取和写入设备上的任何地方的数据。在只读模式中,控制器20可以仍然读取设备上的任何地方的数据,但是将数据写入到设备的任何尝试将导致写入错误。在优选的实施方式中,控制器20读取寄存器42 并且将设备模式的指示存储在与控制器20相关联的存储器中。如所示,控制器20存储指示闪速数据存储设备40当前在正常模式/状态、只读模式/状态还是废止状态中的表22。还示出了控制器20,其存储列出自从闪速数据存储设备40进入只读模式以来已经修改闪速数据存储设备40的那些次条带的第二表24。应当认识到,在只读模式中的闪速数据存储设备的上下文中,术语“经修改的”意指闪速数据存储设备上的数据是失效或者坏的。根据各种实施例,针对次条带的“经修改的”数据可以存储在其他数据存储设备30、设备高速缓存存储器44、控制器高速缓存存储器26之一上的空的空间中或者通过奇偶校验的重新计算,如本文所描述的。在数据存储在其他数据存储设备、设备高速缓存存储器或者控制器高速缓存存储器之一上的情况下,控制器将数据的位置和相关联的次条带的标识存储在存储器映射26中。虽然其他数据存储设备30(即,设备2、设备3和设备4)可以是硬盘驱动器或者其他类型的数据存储,但是本发明涵盖其中阵列10中的多个数据存储设备30全部是闪速数据存储设备的实施例。
图2是根据本发明的一个实施例的包括只读模式中的闪速数据存储设备40的独立磁盘冗余阵列(RAID)10的示图。如所示,闪速数据存储设备40已经改变其状态寄存器集42以指示其现在在只读模式中。控制器20已经读取状态寄存器集42并且存储具有闪速数据存储设备在只读临界状态中的指示的表22。“只读临界状态”指示闪速存储器设备在只读模式中并且控制器将采取步骤以对阵列 10继续读取和写入数据,而没有实际上将数据写入到闪速数据存储设备40。
在图2的示例中,控制器20需要将数据存储在主条带3中的次条带G。然而,由于闪速数据存储设备40在只读临界状态中,因而控制器20避免将数据写入到闪速数据存储设备40。相反,控制器 20可以将数据存储在其他数据存储设备30、设备高速缓存存储器 44、控制器高速缓存存储器26之一上的空的空间32中或者通过奇偶校验P3(GHI)到P3(G'H'I')的计算,如本文所描述的。当将数据存储到另一数据存储设备或者高速缓存存储器时,控制器20将该数据映射到闪速数据存储设备的预期的次条带G,使得在次条带G 处引导的任何后续读指令将满足来自其他数据存储设备或者高速缓存存储器的相关部分的数据。当使用奇偶校验修改或者重新计算时,其他数据存储设备30(即,设备3和设备4)上的非奇偶校验次条带写入正常,并且使用设备3上的当前数据H'、设备4上的当前数据I'和旨在写在次条带G之上的数据(G')来计算奇偶校验次条带 (即,设备2)。在P3(G'H'I')已经被计算并且存储在设备2中之后,那么控制器可以清除旨在写到次条带G的数据G'的其存储器。
注意,在主条带4中,闪速数据存储设备40上的次条带存储奇偶校验P4(JKL)。在其他数据存储设备之一将发生故障的情况下,控制器20可以仍然读取该奇偶校验P4(JKL)以便重建故障的设备。如果修改次条带J、K或者L中的任一个次条带中的数据,那么奇偶校验应当重新计算。在该实例中,由于经重新计算的奇偶校验不能写入到闪速数据存储设备40,因而控制器可以将经重新计算的奇偶校验存储在其他数据存储设备30、设备高速缓存存储器44或者控制器高速缓存存储器26之一上的空的空间32中。
可以提供另一数据存储设备50(即,数据存储设备1A)以便备份只读闪速数据存储设备40的内容,也许使得另一数据存储设备50 可以替换在只读状态中的闪速数据存储设备40。为了进行备份,控制器20将使用其所存储的映射来标识映射到闪速数据存储设备40的任何数据的位置,并且将数据从那些位置拷贝到数据存储设备50 的相关次条带。这可以涉及读取存储在其他数据存储设备30、设备高速缓存存储器44或者控制器高速缓存存储器26之一上的先前空的空间32中的数据。此外,当控制器20重新计算奇偶校验而不是将旨在针对闪速存储器的次条带数据写在另一位置中时,那么控制器20必须读取其他数据存储设备30(即,设备2、设备3和设备4) 的次条带并且使用与奇偶校验计算(即,XOR)相同的功能确定什么数据旨在写到闪速数据存储设备40。因此,确定然后写到适当的次条带中的备份数据存储设备50的数据。
图3是包括替换只读闪速数据存储设备40的具有更新的/当前的数据的新数据存储设备50的独立磁盘冗余阵列(RAID)10的示图。由于可以将数据写到新数据存储设备(即,其在正常模式而非只读模式中),因而控制器20改变其表22以指示新数据存储设备50在正常状态中。因此,控制器20可以将数据读取和写入到整个阵列作为正常的。注意,新数据存储设备50现在存储数据G'。而且,控制器可以删除或者重新使用先前被用于存储不能写到只读闪速数据存储设备40的数据的其他数据存储设备或者高速缓存存储器上的存储器位置。
图4A-B提供了用于处理涉及独立磁盘冗余阵列(RAID)中的闪速数据存储设备的读和写操作的方法60的一个实施例的流程图。方法优选地允许只读闪速数据存储设备在不损害阵列的数据完整性的情况下保持阻止标记废止的。
在步骤62中,方法确定闪速数据存储设备是否在“只读临界”状态中。如果闪速数据存储设备不在“只读临界”状态中,那么方法转到(即,跟随“否”分支)步骤64,在其中方法确定预期的操作是来自闪存设备的读取还是到闪存设备的写入。如果预期的操作是来自闪存设备的读取,那么方法转到(即,跟随“读取”分支) 步骤66,在其中方法正常读取来自闪存设备的次条带。由于读取功能完成,因而方法结束。如果请求另一读取或者写入,那么方法可以再次开始。
如果步骤64确定预期的操作是到闪存设备的写入,那么方法转到(即,跟随“写入”分支)步骤68,在其中方法尝试写入到闪存设备。步骤70然后确定在所尝试的写入期间是否存在写入错误。如果不存在写入错误,那么方法结束。然而,如果步骤70确定存在写入错误,那么方法转到步骤72以确定闪存设备是否在“只读”模式中。如果闪存设备被确定为在只读模式中,那么在步骤74中,控制器存储闪存设备在“只读临界”状态中的指示,使得根据本发明执行附加的程序。在步骤74之后,方法转到图4B(参见连接点“B”)。
如果步骤72确定闪存设备不在“只读”模式中,那么步骤76 确定与当前写入指令相关联的写入错误的数目是否大于写入错误的设定点数目。如果步骤76实现肯定确定,那么步骤78将闪存设备标记为废止的。备选地,如果步骤76实现否定确定,那么步骤80 在返回到步骤70之前执行正常写入错误过程以确定下一个所尝试的写入是否发生写入错误。
返回参考步骤62,如果方法确定闪速数据存储设备在“只读临界”状态中,那么方法转到(即,跟随“是”分支)步骤82,在其中方法确定预期的操作是来自闪存设备的读取还是到闪存设备的写入。如果预期的操作是写入操作,那么方法转到图4B(参见连接点“B”)。然而,如果步骤82确定预期的操作是读取操作,那么步骤84确定次条带是否已经先前列出为经修改的。注意,“经修改的”次条带的列表仅包括在闪速数据存储设备进入只读模式之后“经修改的”次条带。因此,“经修改的”列表意指与次条带相关联的数据被存储在其他数据存储设备30、设备高速缓存存储器44或者控制器高速缓存存储器26之一上,或者控制器可以使用跨阵列的相同主条带内的数据和奇偶校验次条带来重新计算期望的数据。如果次条带没有被列出为经修改的,那么步骤86正常读取来自闪存设备的次条带。如果次条带被列出为已经修改,那么步骤88使用其他数据存储设备上的奇偶校验和数据重新生成次条带,如先前所描述的。备选地或者与重新生成数据进行组合,方法可以使用映射标识其中与次条带相关联存储数据的另一位置。如果步骤82确定预期的操作是写入操作,那么方法转到图4B(参见连接点“B”)。
从步骤74或者步骤82中的任一个步骤继续,图4B描述了用于处理在“只读”模式中的闪速数据存储设备上的次条带的写入操作的步骤。在步骤90中,方法确定是否存在阵列中的其他数据存储设备上可用的可用数据存储空间。如果是的话,步骤92将数据存储在另一数据存储设备上并且步骤94存储其中已经存储每个次条带的位置的列表。对于后续读取操作而言,需要位置的该列表。如果按照步骤90存在其他数据存储设备上可用的不足的数据存储空间,那么步骤96确定是否存在设备高速缓存或者控制器高速缓存中可用的足够的可用数据存储空间。如果是的话,那么步骤98将数据存储在可用的高速缓存中并且步骤94存储其中已经存储每个次条带的高速缓存位置的列表。如果按照步骤96存在高速缓存中可用的不足的数据存储空间,那么步骤100修改主条带奇偶校验,如若数据写入到闪存设备。步骤102存储主条带的列表,其中已经修改奇偶校验以反映旨在写到只读闪速数据存储设备的数据。
如本领域的技术人员将理解到,本发明的方面可以实现为系统或者方法。因此,本发明的方面可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等等)或者可以在本文中全部一般地被称为“电路”、“模块”或者“系统”的组合软件和硬件方面的实施例。在不脱离本发明的范围和精神的情况下,许多修改和变型将对于本领域的技术人员是明显的。选择和描述实施例以便最好地解释本发明的原理和实际应用,并且使得本领域的普通技术人员能够理解针对具有如适于所预期的特定使用的各种修改的各种实施例的本发明。
Claims (22)
1.一种方法,包括:
由可操作耦合到独立磁盘冗余阵列的处理器接收数据以及将所述数据存储在所述独立磁盘冗余阵列上的请求,其中所述独立磁盘冗余阵列包括多个数据存储设备,并且其中所述多个数据存储设备包括闪速数据存储设备;
所述处理器检测所述闪速数据存储设备是否处于只读模式;
所述处理器响应于检测到所述闪速数据存储设备处于只读模式,阻止所述数据被写入到所述闪速数据存储设备;
所述处理器修改主条带的奇偶校验条带,如同所述数据被写入到处于只读模式的所述闪速数据存储设备;以及
所述处理器存储在所述闪速数据存储设备处于只读模式时已被修改的每个奇偶校验条带的列表。
2.根据权利要求1所述的方法,还包括:
由所述处理器接收从所述独立磁盘冗余阵列读取所述数据的请求;
响应于所述处理器确定在所述闪速数据存储设备处于所述只读模式时所述数据没有被修改,直接从处于所述只读模式的所述闪速数据存储设备读取所述数据;以及
响应于所述处理器确定在所述闪速数据存储设备处于所述只读模式时所述奇偶校验条带被修改,使用相同主条带中的、被存储在其他数据存储设备上的经修改的所述奇偶校验条带和所述数据以重新生成所述数据。
3.根据权利要求1所述的方法,还包括:
通过读取被存储在所述闪速数据存储设备上的未修改的数据和被存储在所述设备高速缓存、存储控制器高速缓存、所述阵列内的另一个数据存储设备上的经修改的数据的组合或者使用奇偶校验重新生成所述数据,来创建一个或多个文件的备份。
4.根据权利要求1所述的方法,还包括:
通过读取被存储在所述闪速数据存储设备上的未修改的数据和被存储在所述设备高速缓存、存储控制器高速缓存、所述阵列内的另一个数据存储设备上的经修改的数据的组合或者使用奇偶校验重新生成所述数据,来在第二数据存储设备上创建整个闪速数据存储设备的副本;以及
利用所述第二数据存储设备替换所述闪速数据存储设备。
5.根据权利要求1所述的方法,其中响应于在写入到所述闪速数据存储设备时的写入错误,执行所述处理器检测所述闪速数据存储设备是否处于只读模式的步骤。
6.根据权利要求5所述的方法,还包括:
响应于在写入到所述闪速数据存储设备时的写入错误并且检测到所述闪速数据存储设备没有处于只读模式,所述处理器对在写入到所述闪速数据存储设备时发生的写入错误的数目进行计数;以及
所述处理器响应于写入错误的所述数目超过写入错误的设定点数目,将所述闪速数据存储设备标记为废止的。
7.根据权利要求1所述的方法,还包括:
仅当所述闪速数据存储设备没有处于只读模式并且写入错误的数目超过写入错误的设定点数目,所述处理器才将所述闪速数据存储设备当作废止的。
8.根据权利要求1所述的方法,其中所述多个数据存储设备包括至少一个硬盘驱动器。
9.根据权利要求1所述的方法,其中所述闪速数据存储设备包括存储所述闪速数据存储设备是否处于只读模式的指示的寄存器集。
10.根据权利要求1所述的方法,还包括:
响应于所述闪速数据存储设备处于只读模式,关闭计算机系统的将涉及将数据写入到所述闪速数据存储设备的后台任务。
11.根据权利要求1所述的方法,其中所述独立磁盘冗余阵列存储由所述独立磁盘冗余阵列可操作耦合到的所述处理器使用的操作系统。
12.一种计算机系统,包括:
独立磁盘冗余阵列,其包括多个数据存储设备,其中所述多个数据存储设备包括闪速数据存储设备;以及
处理器,被配置为:
接收数据以及将所述数据存储到所述独立磁盘冗余阵列的请求;
检测所述闪速数据存储设备是否处于只读模式;
响应于检测到所述闪速数据存储设备处于只读模式,阻止所述数据被写入到所述闪速数据存储设备;
修改主条带的奇偶校验条带,如同所述数据被写入到处于只读模式的所述闪速数据存储设备;以及
存储在所述闪速数据存储设备处于只读模式时已被修改的每个奇偶校验条带的列表。
13.根据权利要求12所述的计算机系统,其中所述处理器还被配置为:
从所述独立磁盘冗余阵列读取所述数据的请求;
响应于所述处理器确定在所述闪速数据存储设备处于所述只读模式时所述数据没有被修改,直接从处于所述只读模式的所述闪速数据存储设备读取所述数据;以及
响应于所述处理器确定在所述闪速数据存储设备处于所述只读模式时所述奇偶校验条带被修改,使用相同主条带中的、被存储在其他数据存储设备上的经修改的所述奇偶校验条带和所述数据以重新生成所述数据。
14.根据权利要求12所述的计算机系统,其中所述处理器还被配置为:
通过读取被存储在所述闪速数据存储设备上的未修改的数据和被存储在所述设备高速缓存、存储控制器高速缓存、所述阵列内的另一个数据存储设备上的经修改的数据的组合或者使用奇偶校验重新生成所述数据,来创建一个或多个文件的备份。
15.根据权利要求12所述的计算机系统,其中所述处理器还被配置为:
通过读取被存储在所述闪速数据存储设备上的未修改的数据和被存储在所述设备高速缓存、存储控制器高速缓存、所述阵列内的另一个数据存储设备上的经修改的数据的组合或者使用奇偶校验重新生成所述数据,来在第二数据存储设备上创建整个闪速数据存储设备的副本;以及
利用所述第二数据存储设备替换所述闪速数据存储设备。
16.根据权利要求12所述的计算机系统,其中所述处理器还被配置为响应于在写入到所述闪速数据存储设备时的写入错误,检测所述闪速数据存储设备是否处于只读模式。
17.根据权利要求16所述的计算机系统,其中所述处理器还被配置为:
响应于在写入到所述闪速数据存储设备时的写入错误并且检测到所述闪速数据存储设备没有处于只读模式,对在写入到所述闪速数据存储设备时发生的写入错误的数目进行计数;以及
响应于写入错误的所述数目超过写入错误的设定点数目,将所述闪速数据存储设备标记为废止的。
18.根据权利要求12所述的计算机系统,其中所述处理器还被配置为:
仅当所述闪速数据存储设备没有处于只读模式并且写入错误的数目超过写入错误的设定点数目,才将所述闪速数据存储设备当作废止的。
19.根据权利要求12所述的计算机系统,其中所述多个数据存储设备包括至少一个硬盘驱动器。
20.根据权利要求12所述的计算机系统,其中所述闪速数据存储设备包括存储所述闪速数据存储设备是否处于只读模式的指示的寄存器集。
21.根据权利要求15所述的计算机系统,其中所述处理器还被配置为:
响应于所述闪速数据存储设备处于只读模式,关闭所述计算机系统的将涉及将数据写入到所述闪速数据存储设备的后台任务。
22.根据权利要求12所述的计算机系统,其中所述独立磁盘冗余阵列被配置为存储由所述独立磁盘冗余阵列可操作耦合到的所述处理器使用的操作系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/718,560 US9690651B2 (en) | 2015-05-21 | 2015-05-21 | Controlling a redundant array of independent disks (RAID) that includes a read only flash data storage device |
US14/718,560 | 2015-05-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106168920A CN106168920A (zh) | 2016-11-30 |
CN106168920B true CN106168920B (zh) | 2019-11-29 |
Family
ID=57231683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610342214.6A Active CN106168920B (zh) | 2015-05-21 | 2016-05-20 | 控制包括只读闪速数据存储设备的独立磁盘冗余阵列 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9690651B2 (zh) |
CN (1) | CN106168920B (zh) |
DE (1) | DE102016108733B4 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798623B2 (en) * | 2012-05-11 | 2017-10-24 | Seagate Technology Llc | Using cache to manage errors in primary storage |
US9588857B2 (en) * | 2015-06-22 | 2017-03-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Raid logical stripe backup to non-volatile memory in response to raid storage device media errors |
US10379943B2 (en) * | 2016-12-06 | 2019-08-13 | International Business Machines Corporation | Management of foreground and background processes in a storage controller |
US10481834B2 (en) * | 2018-01-24 | 2019-11-19 | Samsung Electronics Co., Ltd. | Erasure code data protection across multiple NVME over fabrics storage devices |
CN112947847B (zh) * | 2019-12-11 | 2023-12-29 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法、设备和计算机程序产品 |
US11803446B2 (en) | 2020-07-13 | 2023-10-31 | Samsung Electronics Co., Ltd. | Fault resilient storage device |
US11947838B2 (en) * | 2020-11-30 | 2024-04-02 | International Business Machines Corporation | Utilizing statuses to preserve a state of data during procedures such as testing without causing functional interruptions |
CN112948863B (zh) * | 2021-03-15 | 2022-07-29 | 清华大学 | 敏感数据的读取方法、装置、电子设备及存储介质 |
CN113608675B (zh) * | 2021-06-25 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种raid数据io处理方法、装置、计算机设备及介质 |
US12001712B2 (en) * | 2021-11-17 | 2024-06-04 | Samsung Electronics Co., Ltd. | Storage device for autonomous driving and operating method thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067114A (zh) * | 2008-06-26 | 2011-05-18 | Lsi公司 | 利用固态驱动器和写重定向快照有效根启动 |
US8495432B2 (en) * | 2009-12-15 | 2013-07-23 | International Business Machines Corporation | Blocking write access to memory modules of a solid state drive |
CN103699457A (zh) * | 2013-09-26 | 2014-04-02 | 深圳市泽云科技有限公司 | 基于条带化的磁盘阵列修复方法及装置 |
WO2015052833A1 (ja) * | 2013-10-11 | 2015-04-16 | 株式会社日立製作所 | ストレージ装置、ストレージシステム、及びストレージ装置制御方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6339810B1 (en) | 2000-01-11 | 2002-01-15 | International Business Machines Corporation | Serial data storage system with automatically adjusted data protection to implement worm media with limited overwrite allowing write appending |
US8280855B2 (en) | 2009-11-04 | 2012-10-02 | International Business Machines Corporation | Extended logical worm data integrity protection with unique worm identifier in header and database |
-
2015
- 2015-05-21 US US14/718,560 patent/US9690651B2/en active Active
-
2016
- 2016-05-11 DE DE102016108733.5A patent/DE102016108733B4/de active Active
- 2016-05-20 CN CN201610342214.6A patent/CN106168920B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067114A (zh) * | 2008-06-26 | 2011-05-18 | Lsi公司 | 利用固态驱动器和写重定向快照有效根启动 |
US8495432B2 (en) * | 2009-12-15 | 2013-07-23 | International Business Machines Corporation | Blocking write access to memory modules of a solid state drive |
CN103699457A (zh) * | 2013-09-26 | 2014-04-02 | 深圳市泽云科技有限公司 | 基于条带化的磁盘阵列修复方法及装置 |
WO2015052833A1 (ja) * | 2013-10-11 | 2015-04-16 | 株式会社日立製作所 | ストレージ装置、ストレージシステム、及びストレージ装置制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US9690651B2 (en) | 2017-06-27 |
US20160342465A1 (en) | 2016-11-24 |
CN106168920A (zh) | 2016-11-30 |
DE102016108733A1 (de) | 2016-11-24 |
DE102016108733B4 (de) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106168920B (zh) | 控制包括只读闪速数据存储设备的独立磁盘冗余阵列 | |
US6467023B1 (en) | Method for logical unit creation with immediate availability in a raid storage environment | |
US6523087B2 (en) | Utilizing parity caching and parity logging while closing the RAID5 write hole | |
US7774643B2 (en) | Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array | |
JPH05505264A (ja) | データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶 | |
US6055604A (en) | Forced transaction log posting using a least busy storage media without maintaining redundancy of the transaction log | |
US7222135B2 (en) | Method, system, and program for managing data migration | |
US7849258B2 (en) | Storage apparatus and data verification method for the same | |
US9081697B2 (en) | Storage control apparatus and storage control method | |
JPH05505265A (ja) | 独立ディスクの冗長アレイに適用できるデータ訂正 | |
JP4324088B2 (ja) | データ複製制御装置 | |
JP2004326759A (ja) | Raidストレージ・システム用にメモリを構成すること | |
JP2007513435A (ja) | データ組織化を管理するための方法、システム、及びプログラム | |
JP4114877B2 (ja) | 不正データを検出するための装置、方法、及びプログラム | |
JP2006146833A (ja) | ディスク装置の整合性検査支援方法およびディスクアレイ装置の整合性検査方法 | |
TWI456389B (zh) | 儲存虛擬化系統中更新實體儲存裝置控制程式之方法及用此方法之儲存虛擬化控制器與系統 | |
WO2014132373A1 (ja) | ストレージシステム及び記憶デバイス障害回復方法 | |
TW201107981A (en) | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system | |
JP4491330B2 (ja) | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム | |
US7398448B2 (en) | Storage system has the function of preventing drive write error | |
US20150347224A1 (en) | Storage control apparatus and method therefor | |
US8418029B2 (en) | Storage control device and storage control method | |
JP2007524932A (ja) | パリティデータを生成するための方法、システム、及びプログラム | |
CN102216906A (zh) | 镜像盘中的恢复控制 | |
JPH06119126A (ja) | ディスクアレイ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210611 Address after: 23 / F, Lincoln building, 979 King's road, Quarry Bay, Hong Kong, China Patentee after: Lenovo Global Technology International Co.,Ltd. Address before: Singapore City Patentee before: Lenovo Enterprise Solutions (Singapore) Pte. Ltd. |
|
TR01 | Transfer of patent right |