CN102483686A - 数据存储系统和用于操作数据存储系统的方法 - Google Patents
数据存储系统和用于操作数据存储系统的方法 Download PDFInfo
- Publication number
- CN102483686A CN102483686A CN2010800369938A CN201080036993A CN102483686A CN 102483686 A CN102483686 A CN 102483686A CN 2010800369938 A CN2010800369938 A CN 2010800369938A CN 201080036993 A CN201080036993 A CN 201080036993A CN 102483686 A CN102483686 A CN 102483686A
- Authority
- CN
- China
- Prior art keywords
- data
- entity
- equipment
- memory devices
- memory
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 claims abstract description 74
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000009434 installation Methods 0.000 description 11
- 230000007257 malfunction Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008263 repair mechanism Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- 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/0647—Migration mechanisms
-
- 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/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/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/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7211—Wear leveling
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种数据存储系统,包括:至少一个存储器设备阵列,包括用于存储数据的存储器设备;以及存储子系统控制器,通过将奇偶校验实体从第一存储器设备重定位到替代故障存储器设备的备用存储器设备,并且通过将一个或多个重建数据实体存储到第一存储器设备上,来执行操作所述存储器设备阵列中所述存储器设备的方法。
Description
技术领域
本发明涉及一种操作存储器设备的方法和系统,尤其是数据存储系统的固态驱动器(SSD),特别是受RAID(廉价盘冗余阵列)保护的数据存储系统。
背景技术
RAID是一种主要公知为与多个硬盘驱动器有关的数据存储系统,其中数据分布到多个硬盘驱动器上,可以引入或者不引入冗余来保护数据。存在由诸如RAID0、RAID1、RAID2等的编号表示的具有不同设计的不同RAID体系结构来增强数据可靠性和输入/输出性能。硬盘驱动器的RAID阵列跨越多个盘分配数据,但是盘阵列被连接到该阵列的计算机或服务器虚拟地看作是单个存储设备。因此,RAID通过使用特殊硬件或软件将两个或多个物理硬盘驱动器结合为单个存储设备。
在RAID系统中可能包含不同的概念,尤其是镜像(mirroring)、分条(striping)和错误校正。镜像包括将数据复制到多于一个硬盘上。数据分条包括将数据分离(split)到阵列的多于一个盘上。为了错误校正的目的,存储冗余数据以使得错误被检测到并可能被校正。不同RAID层次体系结构根据提高存储系统的数据可靠性或输入/输出性能的需求而使用这些技术中的一种或多种。RAID数据存储系统被设计用来提高数据的可靠性和有用性以保证重要的数据可用、或提高数据文件的访问速度,例如在为银行/交易数据库系统传递大量事务的数据存储系统中,或在向很多观看者或客户传递视频点播节目的数据存储系统中。
RAID数据存储系统的配置以不同的方式影响可靠性和性能。由于使用多于一个盘,因此一个盘更可能失效。通过使用错误检验来解决这个问题,使得整个数据存储系统能够更可靠。可以使用分条以增强性能,因为其允许同时从多个盘中读取数据序列。错误检验通常减慢了数据存储系统,因为数据需要从多个存储位置中读取、并且互相比较,但是错误检验增加了可靠性,并且能够在一个或几个盘发生故障时提供修复机制。
在RAID5数据存储体系结构中,奇偶校验实体(parity entity)分布在不同硬盘上以增强性能。分布的奇偶校验实体需要除了一个之外的所有的驱动器或硬盘可操作。如果发生了驱动器故障,任何后续的读取操作从分布的奇偶校验实体被计算,这样对用户屏蔽了驱动器故障。
RAID6体系结构提供两个驱动器故障的故障容限,也就是说,阵列能在最多两个驱动器故障时接着工作。双重奇偶校验提供重建阵列的时间,而没有在重建完成之前发生进一步驱动器故障的风险。
在传统的RAID存储系统中,当有盘故障时,使用备用盘重建丢失的数据。在传统的RAID存储系统中,替代故障盘的备用盘与数据存储系统的其余仍然运行的盘以相同方式使用。
存储器设备可以实施为闪存设备,例如能存储用户数据的基于闪存的固态驱动器SSD或基于闪存的模块。这种基于固态的非易失性存储器设备面临耐久性挑战。耐久性可被定义为在每个数据块损耗之前能在其上执行的写入/擦除周期的最大数量。耗损均衡(wear leveling)是延长例如闪存的可擦除计算机存储介质的服务寿命的公知技术。在耗损均衡中,写操作均等地分布到存储空间的块或设备上。耗损均衡通常由闪存设备控制器基于物理块地址PBA来执行。
发明内容
根据本发明的一个方面,提供一种操作数据存储系统的存储器设备的方法,该方法包括:将一个或多个奇偶校验实体从第一存储器设备重定位到替代故障存储器设备的备用存储器设备,并且将一个或多个重建的数据实体存储到第一存储器设备上。
该方法旨在提供一种耗损均衡方法并且利用下述事实:替代故障存储器设备的所安装备用存储器设备通常尚未耗损,也就是还没有经受写周期。因此,新安装的备用存储器设备代表用来重定位一部分或全部频繁更新的奇偶校验实体PE的理想介质。这减轻了数据存储系统的其余存储器设备的负担,因为它们的损耗率降低了。因此,这提高了整个数据存储系统的可靠性并增加了其寿命。
优选地,该方法提供了在RAID(廉价盘冗余阵列)数据存储系统中的耗损均衡方案,其可以在逻辑块阵列(LBA)上执行,并且因此可与设备级上的耗损均衡结合,以便更密集地利用备用存储器设备并防止其余存储器设备更多地过度损耗。
从中取得重定位到备用存储器设备的一个或多个奇偶校验实体的存储器设备最好是其余存储器设备之一,也就是除了故障存储器设备之外的任何一个存储器设备。可以构想仅将一个或几个奇偶校验实体从这样的设备重定位,还可以构想该第一存储器设备的所有奇偶校验实体将被重定位。这样,该第一存储器设备的损耗将来将被减少,这会增加整个数据存储系统的寿命和可靠性。
在优选实施例中,相比于数据实体或数据扇区频繁更新的一定数量的奇偶校验扇区或奇偶校验实体PE逐渐从其余的(就耗损而言)较老的存储器设备移除,并且放置在新安装的(就耗损而言)较新的备用存储器设备上。将被重定位的奇偶校验实体的选择依赖于标记机制,指示具有最大损耗率的奇偶校验实体最先被重定位。
在优选实施例中,来自一个、几个或甚至所有其余存储器设备的一个、几个或甚至所有奇偶校验实体被重定位到备用存储器设备。重定位动作可在用备用设备替换故障存储器设备时实现,或者在以后实现。
在本方法的一实施例中,在满足预设重定位准则时,执行奇偶校验实体PE重定位到备用存储器设备。该重定位准则可考虑数据存储系统的存储器设备的相对年龄,其中存储器设备的相对年龄由随着相应存储器设备上的每次写操作而增长的年龄计数与所述存储器设备的预期寿命之间的比率决定。重定位准则可以直接依赖于或者间接依赖于所确定的相对年龄。
在一个可能的实施例中,要存储在数据存储系统上的数据被分离为多组数据实体。每组数据实体优选地包括多个存储在不同存储器设备上的数据实体。优选地,对于给定数量N个存储器设备,一组数据实体包括N-1个数据实体,每个数据实体存储在一个不同的存储器设备上。数据实体可由所存储信息的任何特定且合适的单位来表示,例如位、字节、字、页、块等,并且当然可包括非二进制的编码。
优选地,为每组数据实体计算至少一个奇偶校验实体PE,并将其存储在所述数据存储系统的存储器设备上,优选地存储在其上没有存储与相应数据实体组相关联的任何数据实体的存储器设备上。在上述例子中,如果N-1个存储器设备承载一组数据实体,则第N’个存储器设备可以承载相对应的奇偶校验实体。优选地,计算与一组数据实体相关联的奇偶校验实体,其中对所述数据实体组的数据实体执行逐位XOR操作。根据一可选实施例,通过对一组数据实体的数据实体执行Galois域操作来计算该数据实体组的奇偶校验实体。
优选地,在存储器设备之一故障时,为此目的而预留的备用存储器设备将被激活。可以借助测试电路自动检测存储器设备的故障,并且可以在检测到故障时自动激活备用存储器设备。优选地,先前存储在故障存储器设备中的所有数据实体基于各组数据实体的其余的数据实体和相对应的计算出的奇偶校验实体而被重建。取代数据实体,在故障存储器设备上可能存储有奇偶校验实体,所有奇偶校验实体也可以基于存储在其他存储器设备上的各组数据实体而被重建。
优选地,通常会被存储在备用存储器设备上的重建的数据实体现在被存储在另一个其余存储器设备上,该存储器设备在本上下文中也被称为第一存储器设备。优选地,驻留于该第一存储器设备上的一个、一些或所有奇偶校验实体以及与同一组重建数据实体相关联的奇偶校验实体现在被重定位到备用存储器设备。
由于一个存储器设备故障而丢失的数据实体可以首先例如通过使用寄存器而被重建,然后存储在备用设备上,并且之后与位于第一存储器设备上的奇偶校验实体交换。可选地,在重建之后,重建的数据实体可以立即被存储在第一存储器设备上,而不用预先存储在备用存储器设备上。对象奇偶校验实体重定位到备用存储器设备可以在将重建的数据实体存储到第一设备之前发生,或在重建活动之后发生。
在该方法的优选实施例中,包括对数据分条,其中属于同一组的数据实体被分离到几个存储器设备上,为每一组数据实体计算至少一个奇偶校验实体,并且将所述奇偶校验实体存储到存储器设备上,在所述数据存储系统的备用存储器设备上重建故障存储器设备的所有数据实体,并且通过在备用存储器设备上重建的数据实体与存储在数据存储系统的其他存储器设备上的奇偶校验实体之间的交换,来将奇偶校验实体重定位到备用存储器。
根据本发明的另一方面,提供一种数据存储系统,包括用于存储数据的存储器设备,以及存储子系统控制器,被设计用于执行通过将一个或多个奇偶校验实体从第一存储器设备重定位到替代故障存储器设备的备用存储器设备来操作所述存储器设备,并且用于将一个或多个重建数据实体存储到第一存储器设备上。
优选地,存储器设备包括固态驱动器。优选地,存储器设备包括闪存芯片和/或相变存储器芯片。
根据优选实施例,存储子系统控制器包括用于执行程序的微处理器,用于交换数据的接口,用于存储至少一个程序的非易失性存储器,以及用于临时存储由接口单元发送或接收的数据的高速缓存。
根据本发明的另一方面,提供一种计算机程序元件,包括计算机可读指令,用于执行根据任何上述方法之一的方法。这样的计算机程序元件可以存储在数据载体中。
方法的优选特征应当也被认为是所公开的系统的优选特征,并且反之亦然。
附图说明
下面,操作数据存储系统的方法和数据存储系统的实施例将参考附图来更详细地描述。
图1示出根据本发明的数据存储系统的实施例。
图2示出了根据本发明的数据存储系统的实施例的框图。
图3是根据本发明的耗损均衡方法的可能实施例的流程图。
图4是描述根据本发明的耗损均衡方法的另一图表。
具体实施方式
从图1中可以看到,根据本发明实施例的数据存储系统1包括存储子系统控制器2,用于控制至少一个固态驱动器阵列3。固态驱动器阵列3包括几个存储器设备或固态驱动器3-i(SSD)。这些存储器设备3-i可以是基于闪存的固态驱动器(SSD)或基于闪存的模块,用于存储用户数据。固态驱动器阵列3的存储器设备可以包括闪存芯片和/或相变存储器芯片。如图1所示,存储子系统控制器2通过控制或数据总线接口4连接到固态驱动器阵列3。在一个可能的实施例中,存储子系统控制器2和固态驱动器阵列3整合到数据存储系统单元中。在可选的实施例中,存储子系统控制器2和固态驱动器阵列3可以形成单独的单元。在可能的实施例中,存储子系统控制器2形成连接到固态驱动器阵列3的计算机或服务器的一部分。
图2示出了图1的存储子系统控制器2的细节。在所示的实施例中,存储子系统控制器2包括微处理器2A,其能访问高速缓冲存储器2B和非易失性存储器2C。另外,接口单元2D用于与终端或服务器5交换数据。在图2所示的实施例中,微处理器2A能执行从非易失性存储器2C装载的程序,该非易失性存储器2C中至少存储具有执行根据本发明的方法的指令的计算机程序。高速缓冲存储器2B用于临时存储由接口单元2D发送或接收的数据。耗损均衡方法也可由在连接到固态驱动器阵列3的计算机上运行的操作系统的程序完成。
如图2中所示的存储子系统控制器2适用于通过下述操作来执行固态驱动器阵列3中的存储器设备或固态驱动器的耗损均衡:通过交换在一个存储器设备或固态驱动器SSD故障后重建于备用存储器上的数据实体DE和存储于固态驱动器阵列3的其他存储器设备或固态驱动器上的奇偶校验实体PE,来重定位奇偶校验实体PE到至少一个备用存储器。备用存储器替代了固态驱动器阵列3的故障存储器设备。在另一实施例中,备用存储器是安装在固态驱动器阵列3中的附加存储器,以扩充阵列的存储容量。
在一实施例中,如果满足预定的重定位准则,存储子系统控制器2执行奇偶校验实体PE重定位到备用存储器。该重定位准则可以是由存储子系统控制器2监控的所述数据存储系统1的存储器设备或固态驱动器SSD的相对年龄的函数。
在一个可能的实施例中,存储子系统控制器2对于每个存储器设备或每个固态驱动器SSD包括一个相对应的年龄计数器或寄存器,其随着每次在相应存储器设备上或固态驱动器上的写操作而增加,并且将相应存储器设备或固态驱动器SSD的相对年龄计算为年龄计数值和预定的预期寿命值的比率。
存储子系统控制器2适于逐渐将一定量的奇偶校验扇区或奇偶校验实体PE从较老的存储器设备或固态驱动器重定位到新安装的备用存储器设备或固态驱动器。因此,根据本发明由数据存储系统1所使用的存储子系统控制器2通过浮动奇偶检验布置来执行动态的耗损均衡。
图3示出了根据本发明的方法的可能实施例的流程图。
在第一步骤S1中,执行数据分条,其中通过接口单元2D从计算机或服务器5接收的数据实体DE的组被分离到固态驱动器阵列3的几个存储器设备或固态驱动器3-i上。
在进一步的步骤S2中,计算每组数据实体DE或数据块的至少一个奇偶校验实体PE,并且所计算出的奇偶校验实体被存储在固态驱动器阵列3的存储器设备或固态驱动器上。奇偶校验实体PE初始地可以分布在所有存储器设备或固态驱动器中。
在进一步的步骤S3中,固态驱动器阵列3的故障存储器设备或固态驱动器的所有数据实体DE和奇偶校验实体PE重建于固态驱动器阵列3的备用存储器设备或备用固态驱动器SSD上。步骤S3中的重建在各组数据实体的其余数据实体DE和相对应的计算出的奇偶校验实体的基础上执行。在一个可能的实施例中,一组数据实体DE的奇偶校验实体PE是通过对相同组的数据实体DE执行逐位XOR操作来计算的。在另一实施例中,一组数据实体DE的奇偶校验实体PE是通过对该组数据实体DE的数据实体DE进行逐位XOR操作或Galois域操作来计算的。
在进一步的步骤S4中,通过重建在备用存储器上的数据实体DE和存储在数据存储系统1的其他较老存储器设备或固态驱动器SSD上的奇偶校验实体PE之间的交换,而将一些奇偶校验实体PE重定位到至少一个新安装的备用存储器。
在可能的实施例中,如果满足至少一个预定的重定位准则,则执行步骤S4中的奇偶校验实体重定位到该备用存储器或备用固态驱动器SSD。在根据本发明的耗损均衡方法的实施例中,这个重定位准则由数据存储系统1的存储器设备或固态驱动器SSD的相对年龄的函数形成。存储器设备SSD或固态驱动器的相对年龄R可被计算为随着每次在相应存储器设备或固态驱动器SSD上的写操作而增加的计数器的年龄计数值ACV和存储器设备或固态驱动器的期望寿命值ELTV之间的比率R=ACV/ELTV。在一个可能的实施例中,固态驱动器阵列3中的所有存储器设备SSD或固态驱动器的预期寿命值ELTV是相同的,因为所实施的固态驱动器SSD具有相同的预期寿命。在一个可选的实施例中,固态驱动器阵列3中的不同固态驱动器或存储器设备由于不同的设计或先前的使用,可以具有不同的寿命特性。
在一个可能的实施例中,当一个存储器设备或固态驱动器SSD的耗损度大大超过了其他存储器设备或固态驱动器SSD的耗损度时,执行该方法。例如,这可能由将具有不同寿命特性的存储器设备或固态驱动器SSD混合在同一阵列3中而引起。这种情况下,已损耗的较老的存储器设备上的一部分奇偶校验扇区重定位到其余存储器设备或固态驱动器上,以减轻其过度损耗。
在一个可能的实施例中,在存储子系统控制器2中提供所述固态驱动器阵列3的每个存储器设备3-i的计数器,用于测量和监控对相应存储器设备3-i执行的擦除操作或周期的总数。当阵列3的一个存储器设备3-i出故障,则其数据内容被重建在备用存储器设备或备用固态驱动器SSD中,并且相对应的计数器被重置为0。优选地,存储在固态驱动器阵列3的其余存储器设备上的奇偶校验实体PE接下来通过重建于新安装的备用存储器设备上的数据实体DE和驻留于其余存储器设备上的奇偶校验实体PE之间的交换,而被重定位到新安装的备用存储器设备上。从其余存储器设备重定位到至少一个新安装的备用存储器设备上的奇偶校验实体的量可依赖于位于新安装的备用存储器设备上的奇偶校验实体PE的数量,并且依赖于所有存储器设备的由年龄计数值ACV与相对应的预期寿命值ELTV的比例表示的相对年龄计数值,在可能实施例中,预期寿命值ELTV能够由用户基于存储器设备生产商提供的数据规范所给出的信息通过接口单元2D来配置。
年龄计数值ACV与相对应的预期寿命值ELTV的比率越高,也就是相应存储器设备的年龄越大,从其重定位到新安装的备用存储器设备的奇偶校验实体PE的量就越大。在可能的实施例中,重定位的奇偶校验扇区或奇偶校验实体PE的量或数目还可以具有上限。这样,更多或所有的奇偶校验扇区或奇偶校验实体PE在重定位后被放置在新安装的备用存储器设备上。这具有能避免性能瓶颈的优势。
在可能实施例中,奇偶校验扇区或奇偶校验实体PE的重定位不仅仅在固态驱动器阵列3的存储器设备或固态驱动器SSD故障并且使用新安装的存储器设备时执行,还在年龄(也就是相应存储器设备的年龄计数值ACV与相对应的预期寿命值ELTV的比率)超过后续下一存储器设备的年龄一可调整阈值的某个时间点上执行。在这种情况下,存储在这个最老的存储器设备上的奇偶校验扇区的一部分根据由相对应的年龄计数器得出的相对年龄,而被重定位到其余存储器设备或固态驱动器SSD上。
图4显示了根据本发明的耗损均衡方法的示意图。计算机或服务器5的用户可以向根据本发明的数据存储系统1提供如图4中所示的数据实体DE或数据块A,B,C,D,E,F,G,H。例如具有微处理器2A的存储子系统控制器2分布这些数据块到图4中所示的固态驱动器阵列3中的物理存储器设备3-i或固态驱动器SSD上。从服务器5的角度看,存在一个包括如图4中所示的所有数据块或数据实体A-H的虚拟存储设备。在所给示例中,一组四个数据实体(例如数据块A,B,C,D或数据块E,F,G,H)的奇偶校验实体PE是通过对该预期的一组数据实体DE的数据实体执行逐位XOR操作或Galois域操作来计算的,并且计算出的奇偶校验实体PEABCD和PEEFGH分布到如图4所示的固态驱动器阵列3的不同固态驱动器SSD上。当固态驱动器阵列3的一个固态驱动器SSD(例如包含数据块A,E的固态驱动器3-i)发生故障,丢失的数据借助于数据块组的其余的数据块或数据实体以及相应组的计算出的奇偶校验实体PE重建。例如为了重建数据块A,存储在其他固态驱动器SSD上的数据块B,C,D以及存储在另一个固态驱动器SSD上的计算出的奇偶校验实体PEABCD被用来重建丢失的数据块A。以同样的方式,通过使用数据块F,G,H和奇偶校验实体PEEFGH重建数据块E。在本实施例中,在步骤S3中重建数据实体A,E之后,例如PEABCD和PEEFGH的奇偶校验实体重定位到新安装的存储器设备处,其中通过一些或所有存储的重建数据实体A,E与一些或所有存储于固态驱动器阵列3的其他固态驱动器SSD上的奇偶校验实体PEABCD,PEEFGH的交换来存储重建的数据A,E。例如,在根据本发明的方法中,第五固态驱动器3-5的奇偶校验实体PEABCD可以与存储在第一固态驱动器3-1中的重建数据块A交换。因此,在该例子中,频繁更新的奇偶校验实体PEABCD被置于最新实现的备用存储器设备3-1上,用于减轻较老的其余存储器设备3-5的负担以降低其耗损率,并且因此提高整个数据存储系统1的可靠性并增加其寿命。
根据本发明的方法可用于具有可能发生损耗的存储器设备的任何类型的数据存储系统。各个存储器设备3-i的大小或容量可以不同。另外,根据本发明,在数据存储系统1的同一固态驱动器阵列3中可以使用具有不同设计和寿命预期的不同存储器设备。
在一个可能的实施例中,寿命预期值计数器可通过接口配置。
在一个可能的实施例中,存储子系统控制器2能从相应存储器设备或固态驱动器SSD的保留存储位置处直接读取该配置寿命预期值。
在一个可能的实施例中,年龄(也就是年龄计数值ACV和预期寿命值ELTV的比率)可例如在显示器上表示给用户或操作者,以显示数据存储系统1中不同存储器设备3-i的耗损。
在一个可能的实施例中,当故障存储器设备3-i被备用存储器设备替代时,触发执行根据本发明的方法。
在一个可选实施例中,当存储器设备3-i的相对年龄大大超过数据存储系统1中其他存储器设备3-i的年龄时,触发执行根据本发明的方法。
在另一实施例中,如果所显示的年龄计数值ACV和预期寿命值ELTV之间的比率示出一个存储器设备3-i具有的年龄大大超过同一数据存储系统1中其他存储器设备3-i的年龄,根据本发明的方法通过操作者或用户的输入而触发。
在一个可能的实施例中,其他事件可能触发方法的执行,例如,增加存储器设备或固态驱动器,开始对阵列3的操作,或者开始和引导系统,以及连接设备或计算机到数据存储系统1。
奇偶校验实体PE的重定位可以在系统操作期间进行,例如在空闲操作时期间。在一个可能的实施例中,故障存储器设备的替换也可以在数据存储系统1的操作期间进行。根据本发明的方法和系统通过均衡各个存储器设备的耗损而显著地增加了所使用的存储器设备或固态驱动器SSD的预期寿命或操作时间。因此,整个数据存储系统1的可靠性增加了。
本发明还提供了一种用于操作受RAID(廉价盘冗余阵列)保护的数据存储系统1的存储器设备或固态驱动器SSD的方法,包括将频繁更新的奇偶校验实体从具有较高的写操作对预期寿命值比率的第一存储器设备3-i重定位到具有较低的写操作对预期寿命值比率的第二存储器设备3-i。
在一个可能的实施例中,第二存储器设备3-j由新安装的备用存储器设备形成。
根据本发明的耗损均衡方法可以在一事件发生时被启动。该事件可包括第一存储器设备3-i的预期寿命值的写操作的比例超过了预设阈值。在一个可能的实施例中,触发事件可以是存储器设备阵列中的存储器设备被替换或增加。在另一个可能的实施例中,事件通过接收到启动耗损均衡的指令而形成。在另一个可能的实施例中,事件是数据存储系统被启动,或一个或几个存储器设备被连接到数据存储系统。
Claims (14)
1.一种用于操作数据存储系统(1)的存储器设备的方法,包括:
将一个或多个奇偶校验实体(PE)从第一存储器设备重定位(S4)到替代故障存储器设备的备用存储器设备,并且
将一个或多个重建数据实体(DE)存储到第一存储器设备上。
2.根据权利要求1的方法,其中
如果满足至少一个预定的重定位准则,则执行所述的将所述一个或多个奇偶校验实体(PE)重定位(S4)到所述备用存储器设备。
3.根据权利要求1或2的方法,
其中,所述重定位准则考虑所述数据存储系统(1)的一个或多个存储器设备的相对年龄,存储器设备的所述相对年龄被计算为随相应存储器设备上的每次写操作而增长的年龄计数值(ACV)和所述存储器设备的预期寿命值(ELTV)之间的比率。
4.根据权利要求1到3中任一项的方法,其中
要存储在所述数据存储系统(1)上的数据被分离成数据实体(DE)的组,并且其中属于同一组的数据实体(DE)被存储在所述数据存储系统(1)的不同存储器设备上。
5.根据权利要求4的方法,其中
为每组数据实体(DE)计算至少一个奇偶校验实体(PE),并且该至少一个奇偶校验实体(PE)被存储在与存储同一组的数据实体(DE)的存储器设备不同的存储器设备上。
6.根据上述权利要求中任何一项的方法,其中
存储在故障存储器设备(1)上的一个或多个数据实体(DE)基于相应的一组数据实体(DE)中的其余数据实体(DE)和所述组的相对应的计算出的奇偶校验实体(PE)而被重建。
7.根据权利要求5的方法,其中
一组数据实体(DE)的奇偶校验实体(PE)是通过对所述的一组数据实体中的数据实体(DE)执行逐位XOR操作来计算的。
8.根据权利要求5的方法,其中
一组数据实体(DE)的奇偶校验实体(PE)是通过对所述的一组数据实体中的数据实体(DE)执行Galois域操作来计算的。
9.根据上述权利要求中任何一项的方法,其中
第一存储器设备的一个或多个奇偶校验实体(PE)通过与存储在备用存储器设备上的一个或多个重建数据实体(DE)进行交换而被重定位到备用存储器设备。
10.根据权利要求1-8中的任何一项的方法,其中
在重建之后,一个或多个重建数据实体(DE)被直接存储在第一存储器设备上。
11.一种数据存储系统(1),包括:
(a)用于存储数据的存储器设备;以及
(b)存储子系统控制器(2),被设计用于通过将一个或多个奇偶校验实体(PE)从所述存储器设备中的第一存储器设备重定位到替代故障的所述存储器设备的备用存储器设备来操作所述存储器设备,并且用于将一个或多个重建数据实体存储到所述第一存储器设备上。
12.根据权利要求11的数据存储系统,
其中所述存储器设备包括固态驱动器(3-i)。
13.根据权利要求11或12的数据存储系统,
其中所述存储器设备包括闪存芯片和/或相变存储器芯片。
14.一种计算机程序元件,包括用于执行根据权利要求1-10的方法的计算机可读指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09168424.1 | 2009-08-21 | ||
EP09168424 | 2009-08-21 | ||
PCT/IB2010/053544 WO2011021126A1 (en) | 2009-08-21 | 2010-08-05 | Data storage system and method for operating a data storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102483686A true CN102483686A (zh) | 2012-05-30 |
CN102483686B CN102483686B (zh) | 2015-03-25 |
Family
ID=42813505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080036993.8A Active CN102483686B (zh) | 2009-08-21 | 2010-08-05 | 数据存储系统和用于操作数据存储系统的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8977894B2 (zh) |
CN (1) | CN102483686B (zh) |
DE (1) | DE112010003345B4 (zh) |
GB (1) | GB2484846A (zh) |
WO (1) | WO2011021126A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281499A (zh) * | 2014-10-28 | 2015-01-14 | 苏州工业职业技术学院 | 基于奇偶校验的raid条带镜像数据分布方法 |
CN106649104A (zh) * | 2016-12-02 | 2017-05-10 | 中国工商银行股份有限公司 | 一种基于主机系统交易重放的测试系统及方法 |
CN107111730A (zh) * | 2014-11-07 | 2017-08-29 | 新思公司 | 用于数据存储的完整性保护 |
CN111164576A (zh) * | 2018-03-06 | 2020-05-15 | 西部数据技术公司 | 故障存储设备重建方法 |
CN113282232A (zh) * | 2020-02-19 | 2021-08-20 | 希捷科技有限公司 | 具有协同优化的多级擦除系统 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037564B2 (en) | 2011-04-29 | 2015-05-19 | Stephen Lesavich | Method and system for electronic content storage and retrieval with galois fields on cloud computing networks |
US9361479B2 (en) | 2011-04-29 | 2016-06-07 | Stephen Lesavich | Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks |
US9137250B2 (en) | 2011-04-29 | 2015-09-15 | Stephen Lesavich | Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US9177609B2 (en) | 2011-06-30 | 2015-11-03 | Sandisk Technologies Inc. | Smart bridge for memory core |
US9208070B2 (en) | 2011-12-20 | 2015-12-08 | Sandisk Technologies Inc. | Wear leveling of multiple memory devices |
US20140172325A1 (en) * | 2012-12-14 | 2014-06-19 | Virtium Technology, Inc. | Life monitoring in solid-state drive |
US20140181437A1 (en) * | 2012-12-26 | 2014-06-26 | Unisys Corporation | Equalizing wear on mirrored storage devices through file system controls |
US10642505B1 (en) | 2013-01-28 | 2020-05-05 | Radian Memory Systems, Inc. | Techniques for data migration based on per-data metrics and memory degradation |
US9229854B1 (en) | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9317367B2 (en) * | 2013-08-01 | 2016-04-19 | Globalfoundries Inc. | Re-distributing high usage data in a raid solid state drive array |
US9229640B2 (en) | 2013-11-15 | 2016-01-05 | Microsoft Technology Licensing, Llc | Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table |
US10067829B2 (en) | 2013-12-13 | 2018-09-04 | Intel Corporation | Managing redundancy information in a non-volatile memory |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US10275310B2 (en) | 2015-03-09 | 2019-04-30 | Western Digital Technologies, Inc. | Updating exclusive-or parity data |
US9921969B2 (en) | 2015-07-14 | 2018-03-20 | Western Digital Technologies, Inc. | Generation of random address mapping in non-volatile memories using local and global interleaving |
US10452560B2 (en) | 2015-07-14 | 2019-10-22 | Western Digital Technologies, Inc. | Wear leveling in non-volatile memories |
US10445232B2 (en) | 2015-07-14 | 2019-10-15 | Western Digital Technologies, Inc. | Determining control states for address mapping in non-volatile memories |
US10452533B2 (en) | 2015-07-14 | 2019-10-22 | Western Digital Technologies, Inc. | Access network for address mapping in non-volatile memories |
US10445251B2 (en) | 2015-07-14 | 2019-10-15 | Western Digital Technologies, Inc. | Wear leveling in non-volatile memories |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
JP6554990B2 (ja) * | 2015-08-11 | 2019-08-07 | 富士通株式会社 | ストレージ制御装置およびストレージ制御プログラム |
CN107025066A (zh) | 2016-09-14 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
CN112230845B (zh) | 2019-07-15 | 2024-06-14 | 美光科技公司 | 存储器子系统中基于子组写计数的损耗均衡 |
US11360885B2 (en) * | 2019-07-15 | 2022-06-14 | Micron Technology, Inc. | Wear leveling based on sub-group write counts in a memory sub-system |
US11175984B1 (en) | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
CN113094307B (zh) * | 2021-04-06 | 2023-12-05 | 深圳宏芯宇电子股份有限公司 | 映射信息管理方法、存储器存储装置及存储器控制器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250161A1 (en) * | 2003-06-09 | 2004-12-09 | Brian Patterson | Method and apparatus for data reconstruction |
EP1840722A2 (en) * | 2006-03-29 | 2007-10-03 | Hitachi, Ltd. | Storage system using flash memories, wear-leveling method for the same system and wear-leveling program for the same system |
US20080094811A1 (en) * | 2006-10-23 | 2008-04-24 | International Business Machines Corporation | High density high reliability memory module with a fault tolerant address and command bus |
CN101281481A (zh) * | 2008-05-23 | 2008-10-08 | 北京时代民芯科技有限公司 | 一种存储器抗单粒子翻转的纠错检错方法 |
CN101436149A (zh) * | 2008-12-19 | 2009-05-20 | 华中科技大学 | 磁盘阵列数据重建方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199129A1 (en) * | 2001-06-21 | 2002-12-26 | International Business Machines Corp. | Data storage on a computer disk array |
JP2005100259A (ja) * | 2003-09-26 | 2005-04-14 | Hitachi Ltd | ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法 |
US7484137B2 (en) * | 2005-03-31 | 2009-01-27 | Hitachi Global Storage Technologies Netherlands B.V. | RAID system using regional error statistics for redundancy grouping |
US8200887B2 (en) * | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
JP4932427B2 (ja) * | 2006-10-20 | 2012-05-16 | 株式会社日立製作所 | 記憶装置及び記憶方法 |
US20080140918A1 (en) * | 2006-12-11 | 2008-06-12 | Pantas Sutardja | Hybrid non-volatile solid state memory system |
JP4912174B2 (ja) * | 2007-02-07 | 2012-04-11 | 株式会社日立製作所 | ストレージシステム及び記憶管理方法 |
JP5124217B2 (ja) * | 2007-09-18 | 2013-01-23 | 株式会社日立製作所 | ストレージ装置 |
JP4499776B2 (ja) * | 2007-10-31 | 2010-07-07 | 富士通株式会社 | ストレージ制御装置、方法、及びプログラム |
US20090172335A1 (en) * | 2007-12-31 | 2009-07-02 | Anand Krishnamurthi Kulkarni | Flash devices with raid |
US8055835B2 (en) * | 2008-06-23 | 2011-11-08 | International Business Machines Corporation | Apparatus, system, and method for migrating wear spots |
JP5192352B2 (ja) * | 2008-10-30 | 2013-05-08 | 株式会社日立製作所 | 記憶装置及びデータ格納領域管理方法 |
US8689040B2 (en) * | 2010-10-01 | 2014-04-01 | Lsi Corporation | Method and system for data reconstruction after drive failures |
-
2010
- 2010-08-05 CN CN201080036993.8A patent/CN102483686B/zh active Active
- 2010-08-05 GB GB1200228.3A patent/GB2484846A/en not_active Withdrawn
- 2010-08-05 WO PCT/IB2010/053544 patent/WO2011021126A1/en active Application Filing
- 2010-08-05 DE DE112010003345.5T patent/DE112010003345B4/de active Active
- 2010-08-05 US US13/387,740 patent/US8977894B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250161A1 (en) * | 2003-06-09 | 2004-12-09 | Brian Patterson | Method and apparatus for data reconstruction |
EP1840722A2 (en) * | 2006-03-29 | 2007-10-03 | Hitachi, Ltd. | Storage system using flash memories, wear-leveling method for the same system and wear-leveling program for the same system |
US20080094811A1 (en) * | 2006-10-23 | 2008-04-24 | International Business Machines Corporation | High density high reliability memory module with a fault tolerant address and command bus |
CN101281481A (zh) * | 2008-05-23 | 2008-10-08 | 北京时代民芯科技有限公司 | 一种存储器抗单粒子翻转的纠错检错方法 |
CN101436149A (zh) * | 2008-12-19 | 2009-05-20 | 华中科技大学 | 磁盘阵列数据重建方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281499A (zh) * | 2014-10-28 | 2015-01-14 | 苏州工业职业技术学院 | 基于奇偶校验的raid条带镜像数据分布方法 |
CN104281499B (zh) * | 2014-10-28 | 2017-10-13 | 苏州工业职业技术学院 | 基于奇偶校验的raid条带镜像数据分布方法 |
CN107111730A (zh) * | 2014-11-07 | 2017-08-29 | 新思公司 | 用于数据存储的完整性保护 |
CN107111730B (zh) * | 2014-11-07 | 2021-01-08 | 新思公司 | 用于数据存储的完整性保护 |
CN106649104A (zh) * | 2016-12-02 | 2017-05-10 | 中国工商银行股份有限公司 | 一种基于主机系统交易重放的测试系统及方法 |
CN111164576A (zh) * | 2018-03-06 | 2020-05-15 | 西部数据技术公司 | 故障存储设备重建方法 |
CN111164576B (zh) * | 2018-03-06 | 2023-03-10 | 西部数据技术公司 | 故障存储设备重建方法 |
CN113282232A (zh) * | 2020-02-19 | 2021-08-20 | 希捷科技有限公司 | 具有协同优化的多级擦除系统 |
Also Published As
Publication number | Publication date |
---|---|
US8977894B2 (en) | 2015-03-10 |
GB2484846A (en) | 2012-04-25 |
DE112010003345T5 (de) | 2012-08-09 |
WO2011021126A1 (en) | 2011-02-24 |
DE112010003345B4 (de) | 2017-07-27 |
CN102483686B (zh) | 2015-03-25 |
US20120131381A1 (en) | 2012-05-24 |
GB201200228D0 (en) | 2012-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102483686B (zh) | 数据存储系统和用于操作数据存储系统的方法 | |
US11941257B2 (en) | Method and apparatus for flexible RAID in SSD | |
US10372366B2 (en) | Memory system with multiple striping of RAID groups and method for performing the same | |
US10157016B2 (en) | Memory management system and method | |
EP3696676B1 (en) | Memory system with multiple striping of raid groups and method for performing the same | |
US9292228B2 (en) | Selective raid protection for cache memory | |
US9575844B2 (en) | Mass storage device and method of operating the same to back up data stored in volatile memory | |
US20110029728A1 (en) | Methods and apparatus for reducing input/output operations in a raid storage system | |
US11960743B2 (en) | Memory system with multiple striping of RAID groups and method for performing the same | |
US9547554B2 (en) | Mass storage device and method of operating the same to store parity data | |
WO2013023564A9 (en) | Method and apparatus for flexible raid in ssd |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |