CN109726033A - 映射的raid数据存储系统中的基于驱动器盘区的寿命终止检测和主动复制 - Google Patents

映射的raid数据存储系统中的基于驱动器盘区的寿命终止检测和主动复制 Download PDF

Info

Publication number
CN109726033A
CN109726033A CN201711050623.XA CN201711050623A CN109726033A CN 109726033 A CN109726033 A CN 109726033A CN 201711050623 A CN201711050623 A CN 201711050623A CN 109726033 A CN109726033 A CN 109726033A
Authority
CN
China
Prior art keywords
panel
driver
raid
drive
data storage
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
Application number
CN201711050623.XA
Other languages
English (en)
Other versions
CN109726033B (zh
Inventor
高宏坡
康剑斌
高健
龚绍钦
孙蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201711050623.XA priority Critical patent/CN109726033B/zh
Priority to US15/808,119 priority patent/US10459814B2/en
Publication of CN109726033A publication Critical patent/CN109726033A/zh
Application granted granted Critical
Publication of CN109726033B publication Critical patent/CN109726033B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

映射的RAID(独立磁盘冗余阵列)技术将个体驱动器分为多个驱动器盘区,将驱动器盘区分配给RAID映射表中的RAID盘区条目,并且在每驱动器盘区的基础上执行“寿命终止”检测和数据在数据存储驱动器之间的主动复制。当软介质错误与驱动器盘区的总的I/O操作的比率超过阈值错误比率时,将给定的驱动器盘区确定为“寿命终止”。然后将存储在驱动器盘区上的数据主动复制到新分配的驱动器盘区,修改RAID映射表,使得数据随后从新分配的驱动器盘区被访问,并且排除将驱动器盘区再次用于存储主机数据。因此,驱动器遇到软介质错误的速率变慢,延长了其有效寿命。

Description

映射的RAID数据存储系统中的基于驱动器盘区的寿命终止检 测和主动复制
技术领域
本公开整体上涉及提供RAID(独立磁盘冗余阵列)数据存储技术的智能数据存储系统,并且更具体地涉及用于映射的RAID数据存储系统中的数据存储驱动器的基于驱动器盘区的寿命终止检测和主动复制的技术。
背景技术
数据存储系统是硬件和软件的布置,其通常包括耦合到诸如磁盘驱动器、电子闪存驱动器和/或光驱动器的非易失性数据存储驱动器阵列的一个或多个存储处理器。存储处理器服务于从主机机器接收的主机I/O操作。所接收的I/O操作规定要根据所接收的I/O操作来被写入、读取、创建或删除的一个或多个存储对象(例如,逻辑磁盘或“LUN”)。存储处理器运行如下软件:该软件管理传入的I/O操作,并且执行各种数据处理任务以组织和保护从主机机器接收的并且然后存储在非易失性数据存储设备上的主机数据。
一些先前的数据存储系统已经提供了传统的RAID(独立磁盘冗余阵列)技术。传统的RAID是一种数据存储虚拟化/保护技术,其可以用于将多个物理驱动器组合成单个逻辑单元以提供数据冗余和/或性能改进。取决于所需要的冗余和性能级别,数据可以通过多种方式之一而跨驱动器分布,该多种方式被称为RAID级别或配置。一些RAID级别采用数据条带化(“条带化”)来改进性能。通常,条带化涉及将接收到的主机数据分段成逻辑上顺序的块(例如,逻辑存储对象的地址空间的顺序块),并且然后将写入块的逻辑序列中的连续块的数据存储到不同的驱动器上。跨不同驱动器存储的一系列连续的逻辑上顺序的数据块有时被称为RAID“条带”。通过跨可以同时访问的多个驱动器散布数据段,可以提高总的数据吞吐量。
一些RAID级别采用“奇偶校验”错误保护方案来提供容错。当使用具有奇偶校验保护的RAID级别时,在每个条带中维持一个或多个附加奇偶校验块。例如,可以维持用于条带的奇偶校验块,其是跨条带的数据块执行按位“异或”(XOR)操作的结果。当条带中的数据块的存储失败时,例如,由于驱动器故障,可以通过跨剩余的数据块和奇偶校验块执行XOR操作来恢复丢失的数据块。
使用具有分布式奇偶校验错误保护的块级条带化的RAID配置的一个示例是4D+1P(“四个数据加一个奇偶校验”)RAID-5。在4D+1PRAID-5中,每个条带由4个数据块和奇偶校验信息块组成。在传统的4D+1P RAID-5磁盘组中,至少五个存储磁盘用于存储数据和奇偶校验信息,使得可以将每个条带的四个数据块和奇偶校验信息中的每个存储在不同的磁盘上。还可以保持备用磁盘可用以处理磁盘故障。在磁盘中的一个磁盘故障的情况下,可以通过在每条带的基础上对剩余数据块和奇偶校验信息执行XOR操作来将存储在故障磁盘上的数据重建到备用磁盘上。4D+1P RAID-5通常被认为能够在单个磁盘故障的情况下有效地防止数据丢失。但是,当两个或更多个磁盘同时故障时,数据可能会丢失。
其他RAID配置即使在多个磁盘同时故障的情况下也能提供数据保护。例如,4D+2PRAID-6提供具有在每条带的基础上提供的双分布式奇偶校验信息的条带化。由4D+2PRAID-6维持的双奇偶校验信息支持对于最多两个同时故障的驱动器的数据保护。
先前的数据存储系统中的一些存储处理器已经可操作以响应于从数据存储系统中包含的或附接到数据存储系统的非易失性数据存储设备接收到某些错误指示来执行某些动作。特别地,一些先前的存储处理器已经可操作以从数据存储驱动器接收错误消息,错误消息指示整个数据存储驱动器的状态为“寿命终止”并且因此驱动器本身应当被替换。一些数据存储驱动器通过使用内部的保留扇区集合来进行操作,以便在正在处理被定向到数据存储驱动器的I/O操作的同时透明地替换故障扇区。每次由数据存储驱动器分配保留扇区以替换故障扇区时,数据存储驱动器使用替换扇区成功地完成导致故障的所请求的I/O操作,并且然后报告指示已经发生“软介质错误”的完成状态。当数据存储驱动器已经分配了其所有保留扇区以替换故障扇区时,数据存储驱动器可以向存储处理器发送指示数据存储驱动器的状态为“寿命终止”的错误消息。先前的存储处理器已经通过将存储在“寿命终止”数据存储驱动器上的整个数据集合复制到替换数据存储驱动器来对从数据存储驱动器接收到“寿命终止”消息进行响应。
不幸的是,由于现代硬盘的容量随着时间的推移而显著地增加,通过将存储在数据存储驱动器上的整个数据集合复制到单个健康的数据存储驱动器来对从数据存储驱动器接收到“寿命终止”消息进行响应已经成为数据存储系统中的存储处理器的过高地浪费时间和资源密集型的操作。
发明内容
本文中描述的映射的RAID技术提供了关于使用传统RAID技术的先前的数据存储系统的技术缺陷的改进。与本文中描述的映射的RAID技术相反,使用传统RAID的先前的数据存储系统在添加新磁盘的能力方面以及在磁盘故障的情况下将数据重建到替换磁盘上所需要的时间量方面表现出显著的限制。例如,传统的RAID系统不支持在个体磁盘的基础上添加新磁盘,而是代替地要求新的存储容量只能以与支持特定RAID配置所需要的最小磁盘数相等的增量来添加,即等于所使用的RAID条带的宽度的磁盘数。因此,对于4D+1PRAID-5配置,新磁盘只能以一次5个磁盘的增量添加到传统的RAID系统。对于4D+2P RAID-6配置,新磁盘只能以6个磁盘的增量添加到传统的RAID系统。由于个体磁盘的容量随着时间的推移随着新存储技术的推出已增加,所以传统RAID系统在增加新容量方面的这种不灵活性变得越来越繁重和不切实际。
在另一示例中,由于个体磁盘的总容量已增加,传统RAID系统将整个故障磁盘的数据重建到单个备用磁盘上所需要的时间量也增加了,并且单个备用磁盘的写入带宽成为关于总的重建时间的显著的性能瓶颈。此外,虽然先前存储在故障磁盘上的数据正在被重建到备用磁盘上,但是在重建过程期间传统RAID系统中的一个或多个附加磁盘的并发故障可能会导致数据丢失的风险。
本文中描述的映射的RAID技术通过允许将个体非易失性数据存储驱动器添加到数据存储系统以增加系统的存储容量来改进传统RAID技术,并且还解决了传统RAID中在写入专用备用磁盘时由写入带宽瓶颈引起的长的重建时间的问题。在本文中描述的映射的RAID技术中,每个数据存储驱动器被划分为被称为“驱动器盘区(extent)”的非易失性数据存储的多个连续区域,该驱动器盘区从驱动器盘区池被分配。RAID映射表包含多个RAID盘区条目,每个RAID盘区条目指示已经分配给该RAID盘区条目并且用于存储主机数据的驱动器盘区集合,主机数据被写入到位于逻辑地址空间中的相对应的RAID盘区,逻辑地址空间表示由RAID映射表表示的非易失性存储器。RAID映射表中的每个RAID盘区条目指示从驱动器盘区池分配的唯一的驱动器盘区集合,并且分配给给定RAID盘区的每个驱动器盘区必须位于不同的数据存储驱动器上。以这种方式,由RAID盘区条目指示的驱动器盘区用于存储由RAID盘区条目表示的非易失性数据存储条带的数据块和奇偶校验信息块。因此,由RAID映射表中的每个RAID盘区条目指示的驱动器盘区的总数可以与传统RAID系统中用于存储用于相同RAID级别的数据块和奇偶校验信息的磁盘数相同。例如,在支持4D+1P RAID-5配置的映射的RAID系统中,RAID映射表中的每个RAID盘区条目指示总共有五个驱动器盘区用于存储由RAID盘区表示的条带的四个主机数据块和奇偶信息块。在4D+2P RAID-6映射的RAID配置中,每个RAID盘区条目指示两个奇偶校验信息块,以提供更高级别的容错,并且RAID映射表中的每个RAID盘区条目指示总共六个驱动器盘区。
在映射的RAID系统中的驱动器故障的情况下,可以分配位于贡献驱动器盘区池的多个数据存储驱动器上的备用驱动器盘区,以便替换来自故障驱动器的驱动器盘区,从而有利于通过跨多个数据存储驱动器散布重建的读写入操作来增加并行处理,并且有效地消除了先前由传统RAID对于重建到单个备用磁盘的依赖而造成的写入带宽瓶颈。以这种方式,映射的RAID通常可以减少面对单个驱动器故障的重建时间。此外,随着正在使用的数据存储驱动器的数目的增加,在重建过程期间可能发生的并发处理的量也可能增加,通常会导致由于增加贡献驱动器盘区池的数据存储驱动器的数目的重建性能的逐渐提高。
除了以上描述的由所公开的映射的RAID技术提供的在支持添加个体非易失性数据存储驱动器并且减少数据重建时间方面对传统RAID的改进之外,本文中公开的技术还提供了关于响应于从驱动器接收到“寿命终止”消息而将存储在数据存储驱动器上的整个数据集合复制到单个健康驱动器的先前的存储系统的耗时和资源密集型操作的改进。所公开的技术有利地在每驱动器盘区的基础上执行主机数据的“寿命终止”检测和主动复制。通过在每驱动器盘区的基础上进行“寿命终止”检测和主动复制,所公开的存储处理器技术有利地在每次由存储处理器确定驱动器盘区处于其“寿命终止”时复制相对较少量的数据。因此,为被确定为“寿命终止”错误的每个驱动器盘区执行的主动复制所需要的时间和所利用的资源相对较小,从而提高了整体存储系统性能。另外,由于数据存储驱动器上的故障扇区的位置可能在驱动器内物理上彼此接近,并且由于所公开的系统中的每个驱动器盘区包含多个扇区,所以通过响应于检测到个体驱动器盘区的“寿命终止”状态来在驱动器盘区的基础上主动地复制数据,所公开的技术预示了驱动器需要替换每个“寿命终止”驱动器盘区内尚未故障但是有可能故障的扇区,原因在于它们接近导致驱动器盘区被标识为“寿命终止”的先前故障的扇区。以这种方式,所公开的技术避免了数据存储驱动器需要使用保留扇区来替换在“寿命终止”驱动器盘区内物理上接近先前故障的扇区的扇区,这些扇区在继续使用的情况下可能故障,但是在驱动器盘区被确定为“寿命终止”之后在所公开的技术中不会用于存储主机数据。所公开的技术相应地降低了由于软介质错误而导致每个数据存储驱动器内的保留扇区被消耗的总速率,从而潜在地延长了数据存储系统中的每个驱动器的有效寿命。
在所公开的技术中,为数据存储系统中的诸如逻辑磁盘(“LUN”)的至少一个存储对象提供RAID(独立磁盘冗余阵列)数据保护。数据存储系统包括至少一个存储处理器和可通信地耦合到存储处理器的数据存储驱动器阵列。在操作期间,所公开的技术生成包含多个RAID盘区条目的RAID映射表。RAID映射表中包含的每个RAID盘区条目指示预定总数的驱动器盘区,并且由每个RAID盘区条目指示的驱动器盘区用于持久地存储主机数据,该主机数据被写入逻辑地址空间内的多个RAID盘区中的相对应的RAID盘区,该逻辑地址空间被映射到存储对象。每个驱动器盘区是位于数据存储驱动器之一上的非易失性数据存储的唯一的连续区域,并且每个数据存储驱动器具有位于其上的多个驱动器盘区。
对于被定向到存储对象的每个主机I/O操作,存储处理器可以执行监测操作,其包括:i)递增与I/O操作被定向到的目标驱动器盘区相对应的总的I/O操作计数器,其中与目标驱动器盘区相对应的总的I/O操作计数器存储已经被定向到目标驱动器盘区的I/O操作的总数,ii)从目标驱动器盘区所位于的数据存储驱动器接收I/O操作的完成状态,以及iii)响应于检测到I/O操作的所接收的完成状态指示在对目标驱动器盘区执行I/O操作的同时在数据存储驱动器内发生了软介质错误:
a)递增与目标驱动器盘区相对应的软介质错误计数器,与目标驱动器盘区相对应的软介质错误计数器存储在对目标驱动器盘区执行I/O操作的同时已经发生的软介质错误的总数,
b)计算目标驱动器盘区的错误比率,目标驱动器盘区的错误比率等于与目标驱动器盘区相对应的软介质错误计数器的当前值和与目标驱动器盘区相对应的总的I/O操作计数器的当前值的比率,以及
c)响应于检测到目标驱动器盘区的错误比率超过阈值错误比率,对目标驱动器盘区执行主动复制操作,主动复制操作将存储在目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,使得对目标驱动器盘区执行主动复制操作还修改RAID映射表中存储目标驱动器盘区的指示的RAID盘区条目以存储新分配的驱动器盘区的指示,从而从目标驱动器盘区复制到新分配的驱动器盘区的主机数据通过对新分配的驱动器盘区的随后接收的I/O操作而被访问。
在一些实施例中,对目标驱动器盘区执行主动复制操作还可以包括设置与目标驱动器盘区相对应的“死标志”,并且所公开的技术进一步操作以响应于与目标驱动器盘区相对应的死标志被设置,防止目标驱动器盘区随后被分配给RAID映射表中的任何RAID映射表条目。
在一些实施例中,可以从数据存储驱动器接收“寿命终止”指示,并且响应于从数据存储驱动器接收到寿命终止指示,可以对位于数据存储驱动器内的所有驱动器盘区执行主动复制操作在,主动复制操作仅将存储在位于数据存储驱动器中的由RAID映射表中的RAID盘区条目指示(即先前已经分配给RAID映射表中的RAID盘区条目)的那些驱动器盘区上的主机数据复制到新分配的驱动器盘区,并且主动复制操作还修改RAID映射表中存储位于数据存储驱动器内的驱动器盘区的指示的RAID盘区条目以存储新分配的驱动器盘区的指示,使得从位于数据存储驱动器内的由RAID映射中的RAID盘区条目指示的驱动器盘区复制到新分配的驱动器盘区的主机数据通过对新分配的驱动器盘区的随后接收的I/O操作而被访问。
在一些实施例中,对位于数据存储驱动器内的所有驱动器盘区执行主动复制操作还包括设置与位于数据存储驱动器内的每个驱动器盘区相对应的死标志,并且所公开的技术进一步操作以响应于检测到与位于数据存储驱动器内的每个驱动器盘区相对应的死标志被设置,防止位于数据存储驱动器内的驱动器盘区随后被分配给RAID映射表中的任何RAID映射表条目。
在一些实施例中,对目标驱动器盘区执行主动复制操作还包括:i)设置与目标驱动器盘区相对应的“寿命终止标志”,ii)通过后台进程检测与目标驱动器盘区相对应的寿命终止标志被设置,以及iii)响应于检测到与目标驱动器盘区相对应的寿命终止标志被设置,通过后台进程将存储在目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,并且通过后台进程修改RAID映射表中存储目标驱动器盘区的指示的RAID盘区条目以存储新分配的驱动器盘区的指示。
在一些实施例中,对位于数据存储驱动器内的所有驱动器盘区执行主动复制操作还包括设置与位于数据存储驱动器内并且还由RAID映射表中的RAID盘区条目指示的每个驱动器盘区相对应的寿命终止标志,并且通过后台进程检测与位于数据存储驱动器内并且还由RAID映射表中的RAID盘区条目指示的驱动器盘区相对应的寿命终止标志被设置。响应于通过后台进程检测到与位于数据存储驱动器内并且还由RAID映射表中的RAID盘区条目指示的驱动器盘区相对应的寿命终止标志被设置,后台进程将存储在位于数据存储驱动器内并且还由RAID映射表中的RAID盘区条目指示的驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,并且修改RAID映射表中存储位于数据存储驱动器内的驱动器盘区之一的指示的每个RAID盘区条目以存储新分配的驱动器盘区之一的指示。
在一些实施例中,目标驱动器盘区所位于的数据存储驱动器包括用于替换故障磁盘扇区的保留磁盘扇区集合,并且指示在对目标驱动器盘区执行I/O操作的同时在数据存储驱动器内发生了软介质错误的I/O操作的所接收的完成状态指示响应于目标驱动器盘区内I/O操作被定向到的原始磁盘扇区故障,使用保留磁盘扇区集合中的一个保留磁盘扇区替换原始磁盘扇区。
在一些实施例中,从数据存储驱动器接收的寿命终止指示指示响应于I/O操作被定向到的原始磁盘扇区故障,已经使用阈值最大数目的保留磁盘扇区替换原始磁盘扇区。例如,阈值最大数目的保留磁盘扇区可以是数据存储驱动器中的所有保留磁盘扇区。
对于本领域技术人员显而易见的是,所公开的技术的实施例可以提供关于先前存储系统的技术缺点的显著改进。例如,所公开的映射的RAID技术可以在支持添加个体非易失性数据存储驱动器并且减少数据重建时间方面提供对传统RAID系统的改进。在另一示例中,所公开的技术可以通过在每驱动器盘区的基础上执行“终止寿命”检测和主机数据的主动复制来提高整体存储系统性能,这有利地在每次确定驱动器盘区处于其“寿命终止”时复制相对较少量的数据,使得为被确定为“寿命终止”错误的每个驱动器盘区执行的主动复制所需要的时间和所利用的资源相对较小。由于数据存储驱动器上的故障扇区的位置可能在驱动器内物理上彼此接近,并且由于每个驱动器盘区包含多个扇区,所以通过响应于检测到个体驱动器盘区的“寿命终止”状态来在驱动器盘区的基础上主动地复制数据,所公开的技术预先使用保留扇区来替换每个“寿命终止”驱动器盘区内尚未故障但是有可能故障的扇区,由于它们接近导致驱动器盘区被标识为“寿命终止”的先前故障的扇区。因此,所公开的技术可以避免数据存储驱动器需要使用保留扇区来替换在“寿命终止”驱动器盘区内物理上接近先前故障的扇区的健康扇区,这些扇区在继续使用的情况下可能故障,但是在驱动器盘区被确定为“寿命终止”之后在所公开的系统中不会用于存储主机数据。以这种方式,所公开的技术降低了用于处理软介质错误而消耗每个数据存储驱动器内的保留扇区的总速率,并且因此可以潜在地延长个体数据存储驱动器的有效寿命。
附图说明
上述和其他目的、特征和优点将从如附图所示的对本公开的特定实施例的以下描述中变得显而易见,在附图中相同的附图标记在不同的视图中指代相同的部分。附图不一定按比例绘制,而是将重点放在说明本公开的各种实施例的原理。
图1是示出包括其中可以实施所公开的技术的数据存储系统的示例的用于所公开的技术的操作环境的框图;
图2是示出在一些实施例中可以在RAID映射表中提供的指示位于多个数据存储驱动器上的驱动器盘区的RAID盘区条目的示例的框图;
图3是示出在一些实施例中RAID映射表中的RAID盘区条目如何可以被映射到逻辑地址空间的示例的框图,该逻辑地址空间被映射到存储对象;
图4是示出在一些实施例中被维持的每驱动器盘区数据结构的示例的框图;
图5是示出在一些实施例中由存储处理器执行以监测I/O操作和每个监测的I/O操作的完成状态的步骤的示例的流程图;
图6是示出响应于由存储处理器从数据存储驱动器接收到数据存储驱动器具有“寿命终止”状态的指示而执行的步骤的示例的流程图;
图7是示出在一些实施例中通过在存储处理器中执行的后台进程执行以扫描驱动器盘区的寿命终止标志并且响应于检测到设置的寿命终止标志来在每驱动器盘区的基础上执行主动复制的步骤的示例的流程图;以及
图8是示出在一些实施例中执行的步骤的示例的另一流程图。
具体实施方式
现在将描述本发明的实施例。应当理解,下面描述的实施例仅作为示例被提供,以便说明本发明的各种特征和原理,并且本发明比下面描述的具体实施例更广泛。
图1是示出包括其中可以实施所公开的技术的数据存储系统的示例的用于所公开的技术的操作环境的示例的框图。图1的数据存储环境包括一些数目的主机计算设备110,主机计算设备110被称为“主机”并且由主机110(1)到110(N)示出用于说明的目的,主机计算设备110访问由数据存储系统116提供的非易失性数据存储,例如通过诸如局域网(LAN)的一个或多个计算机网络和/或诸如因特网的广域网(WAN)等,其在图1中由网络114示出用于说明的目的。数据存储系统116包括至少一个存储处理器120和物理非易失性数据存储驱动器阵列128。存储处理器120可以例如被提供作为电路板组件或“刀片”,其插入到机箱中,机箱包围并且冷却多个存储处理器并且具有用于互连存储处理器的背板。然而,不需要特定的硬件配置,并且存储处理器120可以被实施为能够处理从主机110接收的主机输入/输出(I/O)操作(例如,I/O读取和I/O写入操作、创建存储对象操作、删除存储对象操作等)的任何特定类型的计算设备。
物理非易失性数据存储驱动器阵列128可以包括数据存储驱动器,诸如磁盘驱动器、固态驱动器、混合驱动器和/或光驱动器。在图1的示例中,物理非易失性数据存储驱动器阵列128包括由驱动器组129示出的至少一组数据存储驱动器。驱动器组129包括例如六十四个数据存储驱动器,其由驱动器0 150、驱动器1 152、驱动器2 154到驱动器63 155示出。驱动器组129中的每个数据存储驱动器最初在其中保留一组扇区,随后它将使用这组扇区来在被定向到驱动器的I/O操作正在数据存储驱动器内进行处理的同时透明地替换故障的扇区。在图1的示例中,驱动器0 150最初保留保留扇区151,驱动器1152最初保留保留扇区153,驱动器2 154最初保留保留扇区155,以此类推直到驱动器63 155,其最初保留保留扇区156。当驱动器组129中的数据存储驱动器之一在处理I/O操作的同时检测到扇区故障时,它会分配其保留扇区之一并且创建内部映射,内部映射将故障扇区替换为驱动器的地址空间内的所分配的保留扇区。然后,驱动器使用所分配的保留扇区完成I/O操作,并且向存储处理器120返回指示“软介质错误”的完成状态,完成状态向存储处理器120指示尽管I/O操作已经成功完成,但是在处理I/O操作的同时发生了“软介质错误”。因此,每当驱动器组129中的数据存储驱动器之一发出指示I/O操作的“软介质错误”的完成状态时,这是对存储处理器120的在处理I/O操作的同时用于该驱动器的保留扇区之一被消耗的指示。
当驱动器组129中包含的任何数据存储驱动器达到其已经分配全部或几乎所有其保留扇区以替换先前故障扇区的点时,驱动器将向存储处理器120发出消息,该消息指示驱动器已经进入“寿命终止”状态,并且因此应当被替换。例如,在一些实施例中,当响应于I/O操作被定向到的原始磁盘扇区故障,相应的驱动器中的阈值最大数目的保留磁盘扇区已经被用于替换原始磁盘扇区时,驱动器组129中包含的数据存储驱动器中的个体数据存储驱动器可以向存储处理器120传达寿命终止指示。例如,用于数据存储驱动器的保留磁盘扇区的阈值最大数目可以是等于由数据存储驱动器保留的扇区的总数。备选地,用于数据存储驱动器的保留磁盘扇区的阈值最大数目可以是等于由数据存储驱动器保留的磁盘扇区的总数的大百分比的数目,例如等于由数据存储驱动器保留的磁盘扇区总数的百分之九十的数目等。
物理非易失性数据存储驱动器阵列128可以直接物理连接到存储处理器120和/或包含在存储处理器120内,和/或可以通过一个或多个计算机网络可通信地连接到存储处理器120,例如包括存储区域网络(SAN)等或者由其组成。
存储处理器120中的存储器126存储在处理电路124上可执行的程序代码。存储器126可以包括易失性存储器(例如,RAM)和/或其他类型的存储器。处理电路124可以例如包括一个或多个微处理器(例如中央处理单元(CPU)、多核处理器、芯片和/或组件)和相关联的电路或者由其组成。处理电路124和存储器126一起形成控制电路,控制电路被配置和布置为执行如本文中描述的各种方法和功能。存储器126存储可以以可执行程序代码的形式提供的各种软件构件。例如,如图1所示,存储器126可以包括诸如主机I/O处理逻辑135的软件构件。当程序代码由处理电路124执行时,处理电路124被引起执行软件构件的操作。虽然为了说明和解释的目的而示出和描述了某些软件构件,但是本领域技术人员将认识到,存储器126可以包括各种其他软件构件,诸如操作系统、各种应用、其他进程等。
在操作期间,驱动器盘区池逻辑132通过将驱动器组129中的每个数据存储驱动器划分成多个相同大小的驱动器盘区来生成驱动器盘区池134,每个驱动器盘区包括位于单个驱动器上的物理上连续的非易失性数据存储范围。例如,驱动器盘区池逻辑132可以将驱动器组129中的每个数据存储驱动器划分为物理上连续的非易失性存储的固定数目的相同大小的驱动器盘区,并且向驱动器盘区池134添加每个所得到的驱动器盘区的指示(例如,驱动器索引和驱动器盘区索引等)。驱动器组129中的物理驱动器被划分成的驱动器盘区的大小对于每个数据存储驱动器是相同的。在不同的实施例中可以使用各种具体的固定大小的驱动器盘区。例如,在一些实施例中,每个驱动器盘区可以具有10吉字节的大小。在备选实施例中,可以使用更大或更小的驱动器盘区大小。
驱动器盘区从驱动器盘区池134分配给RAID映射表138中包含的特定RAID盘区条目。例如,RAID映射表138的每一行可以由可以被分配驱动器盘区的RAID盘区条目组成。RAID逻辑地址空间139由RAID盘区组成,并且分配给每个个体RAID盘区条目的驱动器盘区每个被用于存储被定向到RAID逻辑地址空间139内的RAID盘区中的相对应的RAID盘区的主机数据。例如,驱动器盘区可以响应于分配请求(例如,来自RAID映射逻辑136)从驱动器盘区池134被分配到RAID映射表138中包含的特定RAID盘区条目,并且随后用于存储被定向到RAID逻辑地址空间139的相对应的RAID盘区部分的主机数据,这个相对应的RAID盘区部分被存储对象映射逻辑140进一步映射到存储对象的地址空间的部分,诸如一个或多个LUN144内的逻辑磁盘的地址空间的部分。
RAID映射表138中的每个RAID盘区条目指示相同数目的分配的驱动器盘区,并且驱动器盘区被分配给RAID映射表138中的RAID盘区条目,使得由任何单个RAID盘区条目指示的两个驱动器盘区都没有位于相同的数据存储驱动器上。
响应于来自RAID组映射逻辑136的解除分配请求等(例如,当驱动器盘区不再需要存储主机数据时),驱动器盘区可以从特定的RAID盘区被释放(即解除分配)回到驱动器盘区池134,并且从而可用于分配给不同的RAID盘区条目。
当将驱动器盘区被分配给RAID盘区条目时,驱动器盘区的指示可以存储到该RAID盘区条目中。例如,被分配给RAID盘区条目的驱动器盘区可以在该RAID盘区条目中使用一对索引“m|n”来指示,其中“m”指示驱动器盘区所位于的数据存储驱动器的驱动器索引(例如,驱动器组129内的数字驱动器号、物理驱动器所位于的插槽号、或文本驱动器名称等),“n”指示数据存储驱动器内的驱动器盘区的索引(例如,数字驱动器盘区号、块偏移、扇区号等)。例如,在其中数据存储驱动器在驱动器组129中从0开始被索引并且其中驱动器盘区在包含它们的数据存储驱动器中从0开始被索引的实施例中,驱动器0 150的第一驱动器盘区可以由“0|0”表示,驱动器0 150内的第二驱动器盘区可以由“0|1”表示,依此类推。
在图1的示例中,驱动器盘区池134中先前已经分配给RAID映射表138中的RAID盘区条目的那些驱动器盘区由已分配驱动器盘区131示出。驱动器盘区池134中先前尚未分配给RAID映射表138中的RAID盘区条目的那些驱动器盘区由空闲驱动器盘区133示出。
主机I/O处理逻辑135将一个或多个逻辑存储对象暴露给主机110用于读取和/或写入主机数据,使得主机110可以向特定存储对象发出主机I/O操作112,例如使用存储对象的名称或其他标识符。暴露给主机I/O操作112的存储对象可以由主机110通过主机I/O操作112来写入、读取、创建和/或删除。暴露给主机110的存储对象可以包括有时被称为“LUN”(如LUN 144所示)的逻辑磁盘或者由其组成。备选地,暴露给主机110的存储对象可以包括主机文件系统、虚拟卷、和/或某个其他特定类型的存储对象或者由其组成,主机I/O处理逻辑135使得存储对象对主机110可访问以用于读取和/或写入主机数据。
存储对象映射逻辑140和/或RAID映射逻辑136可以例如将写入一个或多个LUN144中的逻辑磁盘的逻辑地址空间中的连续块集合的主机数据引导到RAID逻辑地址空间139中的特定的相对应的RAID盘区,使得写入逻辑磁盘的逻辑地址空间中的连续块集合的主机数据可以通过分配给RAID映射表138中的相对应的RAID盘区条目并且由RAID映射表138中的相对应的RAID盘区条目指示的驱动器盘区来持久地存储,并且使得可以计算奇偶校验信息并且将其存储在由相对应的RAID盘区条目指示的驱动器盘区中的至少一个驱动器盘区中,以便支持数据恢复。例如,一个或多个LUN 144中的逻辑磁盘的地址空间可以由一组顺序的相等大小的逻辑块组成。每个主机写入I/O操作可以指示要写入逻辑磁盘的地址空间内的特定块,例如使用逻辑块号(例如,逻辑块地址)或偏移。在一些实施例中,可以使用具有分布式奇偶校验错误保护的4D+1P RAID-5块级别条带化来保护逻辑磁盘,其中每个RAID条带由四个数据块和奇偶校验信息块组成,并且每个RAID条带由单个RAID盘区条目表示并且被映射到由该RAID盘区条目指示的驱动器盘区。在这样的实施例中,RAID映射表138中的每个RAID盘区条目指示总共五个驱动器盘区。对于被映射到RAID逻辑地址空间139中的单个RAID盘区的逻辑磁盘的逻辑地址空间中的每组四个连续块,通过将被写入逻辑磁盘的逻辑地址空间的四个连续块中的连续块的主机数据存储到由相对应的RAID盘区条目指示的五个驱动器盘区中的四个驱动器盘区中的不同的驱动器盘区中,可以跨由相对应的RAID盘区条目指示的驱动器盘区对主机数据进行条带化。可以计算奇偶校验信息并且将其存储在由相对应的RAID盘区条目指示的第五驱动器盘区中,例如作为存储在由该RAID盘区条目指示的其他四个驱动器盘区中的主机数据的XOR。以这种方式,存储在存储主机数据的由RAID盘区条目指示的四个驱动器盘区中的任一个中的主机数据可以在包含存储主机数据的由RAID盘区条目指示的四个驱动器盘区之一的数据存储驱动器故障的情况下被恢复,例如通过结合存储在由RAID盘区条目指示的第五驱动器盘区中的奇偶校验信息对存储在存储主机数据的由RAID盘区条目指示的三个存活驱动器盘区中的数据执行一个或多个XOR运算。
在其他实施例中,RAID映射表138中的RAID盘区条目每个可以指示一些其他固定数目的驱动器盘区。例如,在被配置为为一个或多个LUN 144提供4D+2P RAID-6保护的一些实施例中,RAID映射表138中的每个RAID盘区条目可以通过指示总共六个驱动器盘区来表示单个数据条带,其中六个驱动器盘区中的每个位于驱动器组129中的不同的数据存储驱动器上,并且其中四个指示的驱动器盘区用于存储主机数据,该主机数据写入被映射到RAID逻辑地址空间139中的相对应的RAID盘区的逻辑磁盘地址空间的部分,并且两个指示的驱动器盘区用于存储奇偶校验信息。
另外,在操作期间,对于被定向到一个或多个LUN 144的每个主机I/O操作(例如,对于被定向到一个或多个LUN 144并且由存储处理器120接收的主机I/O操作112中的每个),驱动器盘区寿命终止检测和主动复制逻辑160内的I/O操作监测逻辑162执行监测操作,监测操作包括递增与I/O操作被定向到的目标驱动器盘区相对应的总的I/O操作计数器。I/O操作被定向到的目标驱动器盘区是由RAID映射表138中与RAID逻辑地址空间139中的RAID盘区相对应的RAID盘区条目指示的驱动器盘区,该RAID盘区由存储对象映射逻辑140映射到一个或多个LUN 144内的逻辑磁盘内I/O操作被定向到的地址空间的部分。因此,I/O操作被定向到的目标驱动器盘区是位于驱动器组129中的数据存储驱动器之一内的驱动器盘区,并且从该驱动器盘区中访问由I/O操作指示的主机数据(在监测的I/O读取操作的情况下),或者由I/O操作指示的主机数据持久地存储在该驱动器盘区中(在监测的I/O写入操作的情况下)。与目标驱动器盘区相对应的总的I/O操作计数器存储已经被定向到目标驱动器盘区的I/O操作的总数。
由I/O操作监测逻辑162执行的监测操作还可以包括从目标驱动器盘区所位于的数据存储驱动器(例如,驱动器组129中的数据存储驱动器之一)接收I/O操作的完成状态。例如,在目标驱动器盘区位于驱动器0 150内的情况下,I/O监测逻辑162将从驱动器0 150接收I/O操作的完成状态。
由I/O操作监测逻辑162执行的监测操作还可以包括检测I/O操作的接收到的完成状态指示在对目标驱动器盘区执行I/O操作的同时目标驱动器盘区所位于的数据存储驱动器内发生了软介质错误。例如,在目标驱动器盘区位于驱动器0 150内的情况下,I/O监测逻辑162可以检测到从驱动器0 150接收到的I/O操作的完成状态指示在对目标驱动器盘区执行I/O操作的同时在驱动器0 150内发生了软介质错误。响应于检测到I/O操作的接收到的完成状态指示在对目标驱动器盘区执行I/O操作的同时在数据存储驱动器内发生了软介质错误,I/O操作监测逻辑162可以操作以递增与目标驱动器盘区相对应的软介质错误计数器。与目标驱动器盘区相对应的软介质错误计数器存储在对目标驱动器盘区执行I/O操作的同时已经发生的软介质错误的总数。
进一步响应于检测到I/O操作的接收到的完成状态指示在对目标驱动器盘区执行I/O操作的同时在数据存储驱动器内发生了软介质错误,I/O操作监测逻辑162可以操作以计算目标驱动器盘区的错误比率。在一些实施例中,目标驱动器盘区的错误比率等于i)与目标驱动器盘区相对应的软介质错误计数器的当前值和ii)与目标驱动器盘区相对应的总的I/O操作计数器的当前值的比率。
由I/O操作监测逻辑162执行的监测操作还可以包括检测目标驱动器盘区的错误比率超过阈值错误比率。响应于检测到目标驱动器盘区的错误比率超过阈值错误比率,由I/O操作监测逻辑162执行的监测操作还可以包括执行对目标驱动器盘区的主动复制操作或者引起其被执行,主动复制操作包括分配新的驱动器盘区,例如从空闲驱动器盘区133。对目标驱动器盘区执行的主动复制操作还可以包括将存储在目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,而不复制存储在目标驱动器盘区所位于的数据存储驱动器上的任何其他主机数据。对目标驱动器盘区执行的主动复制操作还可以包括修改RAID映射表138中存储目标驱动器盘区的指示的RAID盘区条目,使得作为修改的结果,RAID映射表138中存储目标驱动器盘区的指示的RAID盘区条目存储新分配的驱动器盘区的指示,而不是目标驱动器盘区的指示。作为修改RAID映射表138中存储目标驱动器盘区的指示的RAID盘区条目以代替地存储新分配的驱动器盘区的指示的结果,随后能够通过对新分配的驱动器盘区的随后接收的I/O操作(例如,主机I/O操作112中的随后接收的主机I/O操作)来访问从目标驱动器盘区复制到新分配的驱动器盘区的主机数据。
在一些实施例中,对目标驱动器盘区执行主动复制操作还可以包括设置与目标驱动器盘区相对应的“死标志”。随后,驱动器盘区池逻辑132可以操作以响应于检测到与目标驱动器盘区相对应的死标志已经被设置,防止目标驱动器盘区被分配给RAID映射表138中的任何RAID盘区条目。
此外,在操作期间,在一些实施例中,驱动器寿命终止处理逻辑163可以从驱动器组129中的数据存储驱动器之一接收“寿命终止”指示。例如,驱动器寿命终止处理逻辑163可以从驱动器0 150接收“寿命终止”指示。响应于从数据存储驱动器接收到寿命终止指示,驱动器寿命终止处理逻辑163可以对位于从其接收到寿命终止指示的数据存储驱动器内所有驱动器盘区执行主动复制操作,或者引起主动复制操作被执行。因此,响应于从驱动器0150接收到寿命终止指示,驱动器寿命终止处理逻辑163可以对位于驱动器0 150上的所有驱动器盘区执行主动复制操作,或者引起主动复制操作被执行。在一些实施例中,由驱动器寿命终止处理逻辑163执行或者被引起由驱动器寿命终止处理逻辑163执行的主动复制操作可以仅复制存储在位于从其接收到寿命终止指示的数据存储驱动器内的那些驱动器盘区上的主机数据,这些驱动器盘区也被分配给RAID映射表138中的RAID盘区条目,例如由RAID映射表138中的RAID盘区条目指示。例如,由驱动器寿命终止处理逻辑163执行或者被引起由驱动器寿命终止处理逻辑163执行的主动复制操作可以包括从空闲驱动器盘区133分配新的驱动器盘区以替换位于从其接收到寿命终止指示的数据存储驱动器内的、被分配给RAID映射表138中的RAID盘区条目的驱动器盘区,并且然后从位于从其接收到寿命终止指示的数据存储驱动器内的、被分配给RAID映射表138中的RAID盘区条目的驱动器盘区向那些新分配的驱动器盘区复制主机数据。由驱动器寿命终止处理逻辑163执行或者被引起由驱动器寿命终止处理逻辑163执行的主动复制操作还可以包括修改RAID映射表138中存储位于从其接收到寿命终止指示的数据存储驱动器内的驱动器盘区的指示的RAID盘区条目以代替地存储新分配的驱动器盘区的指示。作为修改RAID映射表138中存储位于从其接收到寿命终止指示的数据存储驱动器内的驱动器盘区的指示的RAID盘区条目的结果,这导致那些RAID盘区条目代替地存储新分配的驱动器盘区的指示,随后通过对新分配的驱动器盘区的随后接收的I/O操作(例如,主机I/O操作112中的随后接收的主机I/O操作)来访问从位于从其接收到寿命终止指示的数据存储驱动器上的先前被分配给RAID映射表138中的RAID盘区条目的驱动器盘区复制到新分配的驱动器盘区的主机数据。
在一些实施例中,由驱动器寿命终止处理逻辑163执行或者被引起由驱动器寿命终止处理逻辑163执行的对在从其接收到寿命终止指示的数据存储驱动器内的所有驱动器盘区的主动复制操作还可以包括设置与位于该数据存储驱动器内的每个驱动器盘区相对应的“死标志”,该驱动器盘区包括被分配给RAID映射表138中的RAID盘区条目的驱动器盘区和未分配给RAID映射表138中的RAID盘区条目的驱动器盘区两者。驱动器盘区池逻辑132随后可以操作以响应于检测到与那些驱动器盘区相对应的死标志已经被设置,防止位于从其接收到寿命终止指示的数据存储驱动器内的所有驱动器盘区随后被分配给RAID映射表138中的任何RAID盘区条目。
为了有利地在数据存储系统116内的资源具有相对较高的可用性时执行主动数据复制,使得存储处理器120关于处理主机I/O操作112的性能不被不利影响,并且避免执行符合个体I/O操作的监测的大量数据复制,所公开技术的一些实施例包括并且使用后台主动复制进程164来执行由驱动器盘区寿命终止检测和主动复制逻辑160执行的主机数据的主动复制。例如,后台主动复制进程164可以被安排用于在存储处理器120内的共享的系统资源的所有或至少大部分(诸如处理电路124、存储处理器120与物理非易失性数据存储驱动器阵列128之间的接口和/或连接等)对于I/O处理逻辑135处理主机I/O操作112而言不需要或者没有由I/O处理逻辑135大量使用来处理主机I/O操作112时执行。在一些实施例中,由I/O操作监测逻辑162对目标驱动器盘区执行的主动复制操作涉及I/O操作监测逻辑162简单地设置与目标驱动器盘区相对应的“寿命终止”标志。以这种方式,I/O操作监测逻辑162不必执行新的驱动器盘区的实际分配,将主机数据从目标驱动器盘区复制到新分配的驱动器盘区,并且修改RAID映射表138中的RAID盘区条目以指示新分配的驱动器盘区。相反,当后台主动复制进程164随后执行并且检测到与目标驱动器盘区相对应的寿命终止标志被设置时,这些操作被引起由后台主动复制进程164执行。例如,后台主动复制进程164检查驱动器盘区池逻辑132中的每个驱动器盘区的寿命终止标志,并且检测到与目标驱动器盘区相对应的寿命终止标志已经被设置。响应于检测到与目标驱动器盘区相对应的寿命终止标志已经被设置,后台主动复制进程164从空闲驱动器盘区133分配新的驱动器盘区以替换目标驱动器盘区,将存储在目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,并且修改RAID映射表138中的存储目标驱动器盘区的指示的RAID盘区条目以代替地存储新分配的驱动器盘区的指示。
类似地,由驱动器寿命终止处理逻辑163对位于从其接收到寿命终止指示的数据存储驱动器中的驱动器盘区执行的主动复制操作可以涉及驱动器寿命终止处理逻辑163简单地设置与位于从其接收到寿命终止指示的数据存储驱动器中的、也被分配给RAID映射表138中的RAID盘区条目的每个驱动器盘区相对应的“寿命终止”标志。在位于从其接收到寿命终止指示的数据存储驱动器中的、未被分配给RAID映射表138中的任何RAID盘区条目的驱动器盘区的情况下,驱动器寿命终止处理逻辑163可以简单地设置“死标志”以防止其随后被分配。以这种方式,驱动器寿命终止处理逻辑163不必执行新的驱动器盘区的实际分配,将主机数据从驱动器盘区复制到新分配的驱动器盘区,并且修改RAID映射表138中的RAID盘区条目以指示新分配的驱动器盘区。相反,当后台主动复制进程164随后执行并且检测到与位于从其接收到寿命终止指示的数据存储驱动器中并且被分配给RAID映射表138中的RAID盘区条目的驱动器盘区相对应的寿命终止标志时,这些动作被引起由后台主动复制进程164执行。例如,当后台主动复制进程164随后检查至少驱动器盘区池逻辑132中的每个分配的驱动器盘区的寿命终止标志时,它检测到与位于从其接收到寿命终止指示的数据存储驱动器中并且被分配给RAID映射表138中的RAID盘区条目的驱动器盘区相对应的寿命终止标志已经全部被设置。响应于检测到与位于从其接收到寿命终止指示的数据存储驱动器上并且被分配给RAID映射表138中的RAID盘区条目的驱动器盘区相对应的寿命终止标志已经被设置,后台主动复制进程164从空闲驱动器盘区133分配新的驱动器盘区以替换位于从其接收到寿命终止指示的数据存储驱动器上的、被分配给RAID映射表138中的RAID盘区条目的驱动器盘区,将存储在位于从其接收到寿命终止指示的数据存储驱动器上的、被分配给RAID映射表138中的RAID盘区条目的驱动器盘区上的主机数据复制到新分配的驱动器盘区,并且修改存储位于从其接收到寿命终止指示的数据存储驱动器上的驱动器盘区的指示的RAID盘区条目以代替地存储新分配的驱动器盘区的指示。
图2是示出RAID映射表中的RAID盘区条目的示例的框图。图2所示的RAID盘区条目指示位于一组数据存储驱动器中包含的数据存储驱动器上的驱动器盘区。例如,在提供映射的4D+1P RAID-5条带化和数据保护的实施例或配置中,RAID盘区条目200可以被包含在RAID映射表中。如图2的示例所示,RAID盘区条目200包括用于RAID映射表中的某一总数的RAID盘区的第一RAID盘区条目0、第二RAID盘区条目1、第三RAID盘区条目2等。例如,每个RAID盘区条目可以是具有RAID映射表的行。为了提供4D+1P RAID-5,RAID盘区条目200中的每个RAID盘区条目指示总共五个驱动器盘区。
为了说明的目的,示出了RAID盘区条目0,其指示作为数据存储驱动器0 202中的第一驱动器盘区的第一驱动器盘区0|0、作为数据存储驱动器2 206中的第一驱动器盘区的第二驱动器盘区2|0、作为数据存储驱动器3 308中的第一驱动器盘区的第三驱动器盘区3|0、作为数据存储驱动器4 310中的第一驱动器盘区的第四驱动器盘区4|0、和作为数据存储驱动器5 212中的第一驱动器盘区的第五驱动器盘区5|0。
为了说明的目的,示出了RAID盘区条目1,其指示作为数据存储驱动器0 202中的第二驱动器盘区的第一驱动器盘区0|1、作为数据存储驱动器1 204中的第一驱动器盘区的第二驱动器盘区1|0、作为数据存储驱动器3 208中的第二驱动器盘区的第三驱动器盘区3|1、作为数据存储驱动器6 214中的第一驱动器盘区的第四驱动器盘区6|0、和作为数据存储驱动器7 216中的第一驱动器盘区的第五驱动器盘区7|0。
为了说明的目的,示出了RAID盘区条目2,其指示作为数据存储驱动器0 202中的第三驱动器盘区的第一驱动器盘区0|2、作为数据存储驱动器2 206中的第二驱动器盘区的第二驱动器盘区2|1、作为数据存储驱动器4 210中的第二驱动器盘区的第三驱动器盘区4|1、作为数据存储驱动器5 212中的第二驱动器盘区的第四驱动器盘区5|1、和作为数据存储驱动器7 216中的第二驱动器盘区的第五驱动器盘区7|1。
图3是示出在一些实施例中RAID映射表中的RAID盘区条目如何可以被映射到逻辑地址空间的示例的框图,该逻辑地址空间被映射到存储对象。如图3所示,在使用逻辑块寻址的实施例中,RAID逻辑地址空间139可以由逻辑块300组成,包括块0、块1、块2到块N,每个块与RAID逻辑地址空间139内的逻辑块地址或索引相对应。逻辑块300内的块每个可以具有相同的块大小。块大小可以等于或大于图1所示的驱动器组129中的数据存储驱动器的个体扇区的大小。
RAID逻辑地址空间139进一步被划分为RAID盘区,如RAID盘区0 308、RAID盘区1310到RAID盘区M 312所示。RAID逻辑地址空间139中的每个RAID盘区跨RAID逻辑地址空间139内的一组多个连续的逻辑块延伸。因此,RAID盘区0 308跨从块0开始的第一组连续的逻辑块延伸,RAID盘区1 310跨第二组连续的逻辑块延伸,第二组连续的逻辑块在RAID盘区0308在其上延伸的逻辑块之后开始,以此类推,RAID盘区M 312跨RAID逻辑地址空间139中的最后一组逻辑块延伸。
RAID逻辑地址空间139内的每个RAID盘区与RAID映射表中的RAID盘区条目相对应。例如,RAID盘区0 308与RAID盘区条目0 352相对应,RAID盘区1 310与RAID盘区条目1354相对应,依此类推,RAID盘区M 312与RAID盘区条目M 356相对应。在所公开的技术的操作期间,由RAID盘区条目指示的驱动器盘区用于存储被定向到一个或多个LUN 144的地址空间内的逻辑块的主机数据,该逻辑块例如由存储对象映射逻辑140和/或RAID映射逻辑136映射到RAID逻辑地址空间139内的相对应的RAID盘区。因此,由被被定向到一个或多个LUN 144的地址空间内的被映射到RAID盘区0308的逻辑块的主机写入I/O操作写入的主机数据存储在由RAID盘区条目0 352指示的驱动器盘区中,由被被定向到一个或多个LUN 144的地址空间内的被映射到RAID盘区1 310的逻辑块的主机写入I/O操作写入的主机数据存储在由RAID盘区条目1 354指示的驱动器盘区中,以此类推,由被被定向到一个或多个LUN144的地址空间内的被映射到RAID盘区M 312内包含的逻辑块的逻辑块的主机写入I/O操作写入的主机数据存储在由RAID盘区条目M 356指示的驱动器盘区中。
图4是示出在一些实施例中被维持的每驱动器盘区数据结构的示例的框图。在一些实施例中,为驱动器盘区池134中的每个驱动器盘区维持图4所示的数据结构的单独集合。图4所示的数据结构是为单个驱动器盘区“X”维持的数据结构的示例,并且是图1中示出为每驱动器盘区数据结构166的为个体驱动器盘区维持的数据结构的示例。
在图4的示例中,为为了解释的目的而被称为驱动器盘区“X”的示例性个体驱动器盘区维持的每驱动器盘区数据结构400包括用于驱动器盘区“X”的总的I/O操作计数器、用于驱动器盘区“X”的软介质错误计数器、用于驱动器盘区“X”的寿命终止标志406、用于驱动器盘区“X”的死标志408、以及用于驱动器盘区“X”的已分配标志410。用于驱动器盘区“X”的总的I/O操作计数器402的值通过所公开的技术被维持为等于已经被定向到驱动器盘区“X”的I/O操作的总数的值。用于驱动器盘区“X”的软介质错误计数器404的值通过所公开的技术被维持为等于在对驱动器盘区“X”执行I/O操作的同时已经发生的软介质错误的总数的值。用于驱动器盘区“X”的寿命终止标志406可以由I/O操作监测逻辑162或驱动器寿命终止处理逻辑163来设置,以与后台主动复制进程164通信,并且指示存储在驱动器盘区“X”上的主机数据应当被复制到新分配的驱动器盘区,并且应当修改RAID映射表138中指示驱动器盘区“X”的RAID盘区条目以指示新分配的驱动器盘区,并且在复制完成之后应当设置用于驱动器盘区“X”的死标志408。用于驱动器盘区“X”的死标志408可以由驱动器寿命终止处理逻辑163或后台主动复制进程164来设置,以向驱动器盘区池逻辑132指示驱动器盘区“X”不应当被分配给RAID映射表138中的任何RAID盘区条目。
图5是示出在一些实施例中由存储处理器执行以监测I/O操作和每个监测的I/O操作的完成状态的步骤的示例的流程图。例如,图5的步骤可以在主机I/O处理逻辑135的操作期间执行。
在步骤500,接收被定向到存储对象的I/O操作。例如,被定向到一个或多个LUN144的主机操作112之一可以由存储处理器120接收。
在步骤502,向位于数据存储系统内的数据存储驱动器上的目标驱动器盘区发出I/O操作。例如,存储对象映射逻辑140可以确定RAID逻辑地址空间139内的逻辑块,该逻辑块被映射到所接收的I/O操作被定向到的一个或多个LUN 144内的逻辑磁盘的地址空间内的逻辑块。RAID映射逻辑136可以使用RAID映射表138来定位与包含RAID逻辑地址空间139内的该逻辑块的RAID盘区相对应的RAID盘区条目。然后,RAID映射逻辑136可以确定由该RAID盘区条目指示的、用于存储被定向到RAID逻辑地址空间139内的该逻辑块的主机数据的特定驱动器盘区,并且然后引起该驱动器盘区被用作在步骤502向其发出I/O操作的目标驱动器盘区。
在步骤504,I/O操作监测逻辑162递增目标驱动器盘区的总的I/O操作计数器。
在步骤506,I/O操作监测逻辑162从目标驱动器盘区所位于的数据存储驱动器接收I/O操作的完成状态。
在步骤508,I/O操作监测逻辑162确定在步骤506接收到的完成状态是否指示已经发生了不能从其恢复的硬介质错误。如果在步骤508确定在步骤506接收到的完成状态指示已经发生了不能从其恢复的硬介质错误,则步骤508之后是步骤510,在步骤510,为目标驱动器盘区所位于的数据存储驱动器触发重建操作。在步骤510触发的重建操作可以例如使用由指示RAID映射表138中的目标驱动器盘区的相同RAID盘区条目指示的其他驱动器盘区中的主机数据以及奇偶校验数据来恢复存储在目标驱动器盘区所位于的数据存储驱动器上的数据。
否则,如果在步骤508确定在步骤506接收的完成状态不指示已经发生硬介质错误,则步骤508之后是步骤512,在步骤512,I/O操作监测逻辑162确定在步骤506接收的完成状态是否指示已经发生软介质错误。如果在步骤512确定没有发生软介质错误,则步骤512之后是步骤526,并且对I/O操作的监测完成。否则,如果在步骤512确定已经发生软介质错误,则步骤512之后是步骤514。
在步骤514,I/O操作监测逻辑162确定软介质错误是否为错误突发的部分。例如,如果自从先前的软介质错误发生以来已经过去了小于100毫秒,则将软介质错误确定为错误突发的部分,并且步骤514之后是步骤516。否则,步骤514之后是步骤518。
在步骤516中,I/O操作监测逻辑162减少与软介质错误相关联的错误加权。例如,在一些实施例中,在步骤506接收到的完成状态可以包括发生软介质错误的指示、以及指示软介质错误的严重程度并且可以在作为错误突发的部分接收到软介质错误的情况被减小的相关联的错误加权两者。
在步骤516中,I/O操作监测逻辑162将与软介质错误相关联的错误加权减小预定百分比,例如减小20%。通过减小错误加权,所公开的技术可以避免基于在非常短的时间段内发生的错误突发来将驱动器盘区设置为寿命终止。
在步骤518,不执行与软介质错误相关联的加权的减小。步骤516和518之后是步骤520。
在步骤520,I/O操作监测逻辑162递增目标驱动器盘区的软介质错误计数器,并且计算目标驱动器盘区的错误比率。例如,在一些实施例中,与目标驱动器盘区相对应的软介质错误计数器可以递增与软介质错误相关联的权重。错误比率例如可以是与目标驱动器盘区相对应的软介质错误计数器的当前值和与目标驱动器盘区相对应的总的I/O操作计数器的当前值的比率。
例如,在一些实施例中,目标驱动器盘区的总的I/O操作计数器可以被初始化为大的初始值,诸如1000000:
total_IO_operations_counter=1000000
(总的I/O操作计数器=1000000)
然后在步骤520中,在关于被定向到目标驱动器盘区的I/O操作发生第一软介质错误时的随后时间点,可以将目标驱动器盘区的软介质错误计数器初始化为等于在该时间的目标驱动器盘区的总的I/O操作计数器的当前值与预定的“间隔”值之间的差值的值:
soft_media_error_counter=total_IO_operations_counter-interval
(软介质错误计数器=总的I/O操作计数器-间隔)
其中“间隔”的值可以例如为1000000。“间隔”的值表示计算错误比率的时间窗口,并且不能大于总的I/O操作计数器被设置的初始值。
对于关于被定向到目标驱动器盘区的I/O操作发生的每个随后的软介质错误,可以在步骤520将目标驱动器盘区的软介质错误计数器递增与软介质错误相关联的错误加权:
soft_media_error_counter+=error_weighting
(软介质错误计数器+=错误加权)
注意,如上所述,在错误突发的情况下,在步骤520之前,在步骤516,可以将“error_weighting(错误加权)”的值减小预定百分比。例如,在一些实施例中,“error_weighting”的原始(非减小)值可以是36000。
然后在步骤520可以通过I/O操作监测逻辑162来将错误比率计算为0到100之间的百分比值,如下:
error_ratio=(1-(total_IO_operations_counter-soft_media_error_counter)/interval)*100
(错误比率=(1-(总的I/O操作计数器-软介质错误计数器)/间隔)*100)
在上面的示例中,所得到的错误比率(即“error_ratio(错误比率)”的值)被计算为0到100之间的百分比值。在步骤522,I/O操作监测逻辑162将在步骤520计算的错误比率的值520与预定或配置的阈值错误比率相比较,阈值错误比率也可以是0到100之间的值,例如89。如果在步骤520计算的错误比率不超过阈值错误比率,则在步骤522之后是步骤526,并且对I/O操作的监测完成。否则,如果在步骤520计算的错误比率超过阈值错误比率,则步骤522之后是步骤524,在步骤524,I/O操作监测逻辑162设置目标驱动器盘区的“寿命终止”标志。步骤524之后是步骤526,并且对I/O操作的监测完成。
图6是示出响应于由存储处理器从数据存储驱动器接收到数据存储驱动器具有“寿命终止”状态的指示而执行的步骤的示例的流程图。例如,图6的步骤可以在主机I/O处理逻辑135的操作期间执行。
在步骤600,驱动器寿命终止检测和主动复制逻辑160中的驱动器寿命终止处理逻辑163从数据存储系统中的数据存储驱动器(例如,图1所示的驱动器组129中的数据存储驱动器之一)接收“寿命终止”指示。
在步骤602,驱动器寿命终止处理逻辑163扫描位于在步骤600从其接收到“寿命终止”指示的数据存储驱动器上的所有驱动器盘区,以便确定位于从其接收到“寿命终止”指示的数据存储驱动器上的每个驱动器盘区当前是否被分配。
在步骤604,对于位于从其接收到“寿命终止”指示的数据存储驱动器上的每个驱动器盘区,驱动器寿命终止处理逻辑163确定驱动器盘区当前是否被分配。例如,驱动器寿命终止处理逻辑163可以检查与位于从其接收到“寿命终止”指示的数据存储驱动器上的每个驱动器盘区相关联的“已分配”标志等(参见图4)的状态。在驱动器盘区的“已分配”标志被设置的情况下,驱动器盘区当前被分配给RAID映射表138中的RAID盘区条目,并且步骤604之后是步骤608,在步骤608,驱动器寿命终止处理逻辑163为驱动器盘区设置“寿命终止”标志等(参见图4),其向后台主动复制进程164指示关于该驱动器盘区应当执行主动复制操作。否则,在驱动器盘区的“已分配”标志没有被设置的情况下,驱动器盘区当前未分配,并且步骤604之后是步骤606,在步骤606,驱动器寿命终止处理逻辑163设置驱动器盘区的“死”标志等(参见图4),其向驱动器盘区池逻辑132指示驱动器盘区随后不应当被分配给RAID映射表138中的任何RAID盘区条目。在步骤606和608之后,在步骤610由驱动器寿命终止处理逻辑163对“寿命终止”指示的处理完成。
图7是示出在一些实施例中通过在存储处理器中执行的后台进程执行以扫描驱动器盘区的寿命终止标志并且响应于检测到设置的寿命终止标志来在每驱动器盘区的基础上执行主动复制的步骤的示例的流程图。例如,图7的步骤可以在主机I/O处理逻辑135的操作期间执行。
在步骤700,主机I/O处理逻辑135中的后台主动复制进程164扫描驱动器盘区池134中的已分配驱动器盘区131内的驱动器盘区。例如,已分配驱动器盘区131内的每个驱动器盘区可以具有设置的相关联的“已分配”标志等。步骤702、704、706、708和710由后台主动复制进程164对于已分配驱动器盘区131中的每个驱动器盘区来执行。
在步骤702,后台主动复制进程164确定当前是否设置了驱动器盘区的“寿命终止”标志。如果没有,则步骤702之后是步骤712,并且由后台主动复制进程164对驱动器盘区的处理完成。否则,如果驱动器盘区的“寿命终止”标志当前被设置,则步骤702之后是步骤704。
在步骤704,后台主动复制进程164从驱动器盘区池134分配新的驱动器盘区,例如从空闲驱动器盘区133。
在步骤706,后台主动复制进程164将存储在驱动器盘区上的主机数据复制到新分配的驱动器盘区。
在步骤708,后台主动复制进程164修改RAID映射表138中指示驱动器盘区的RAID盘区条目以代替地指示新分配的驱动器盘区。
在步骤710,后台主动复制进程164设置与驱动器盘区相关联的“死”标志,从而防止驱动器盘区随后被分配给RAID映射表138中的任何RAID盘区条目。
在步骤710之后,在步骤712对驱动器盘区的处理完成。
图8是示出在一些实施例中执行的步骤的示例的另一流程图。例如,图8的步骤可以在驱动器寿命终止检测和主动复制逻辑160的操作期间执行。
在步骤800,在数据存储系统的存储处理器中生成RAID映射表。在步骤800生成的RAID映射表包含多个RAID盘区条目。RAID映射表中包含的每个RAID盘区条目指示多个驱动器盘区,每个驱动器盘区持久地存储主机数据,该主机数据被写入逻辑地址空间内的相对应的RAID盘区,该逻辑地址空间被映射到存储对象。每个驱动器盘区是位于一组数据存储驱动器中的数据存储驱动器上的非易失性数据存储的唯一的连续区域。每个数据存储驱动器具有位于其上的多个驱动器盘区。
在步骤802,由存储处理器对于被定向到存储对象的每个I/O操作执行监测操作,例如,对于被定向到存储对象并且由存储处理器接收的每个主机I/O操作执行监测操作。在步骤802执行的监测操作包括步骤804、806和808。
在步骤804,递增与I/O操作被定向到的目标驱动器盘区相对应的总的I/O操作计数器。
在步骤806,从包含目标驱动器盘区的数据存储驱动器接收I/O操作的完成状态。
在步骤808,响应于从数据存储驱动器接收到I/O操作的软介质错误完成状态:
a)递增与目标驱动器盘区相对应的软介质错误计数器,
b)基于目标驱动器盘区的总的I/O操作计数器和软介质错误计数器来计算目标驱动器盘区的错误比率,以及
c)响应于错误比率超过阈值错误比率,对目标驱动器盘区执行主动复制操作,主动复制操作将存储在目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,修改RAID映射表中存储目标驱动器盘区的指示的RAID盘区条目以存储新分配的驱动器盘区的指示,使得通过对新分配的驱动器盘区的随后接收的I/O操作来访问从目标驱动器盘区复制到新分配的驱动器盘区的主机数据。
如本领域技术人员将理解的,本文中公开的技术的各方面可以实施为系统、方法或计算机程序产品。因此,本公开的每个具体方面可以使用硬件、软件(包括固件、驻留软件、微代码等)、或软件和硬件的组合来实现。此外,本文中公开的技术的各方面可以采用在一个或多个非暂态计算机可读存储介质中实施的计算机程序产品的形式,非暂态计算机可读存储介质上存储有用于引起处理器和/或计算机系统执行本公开的这些方面的计算机可读程序代码。
可以使用一个或多个计算机可读存储介质的任何组合。计算机可读存储介质可以是例如但不限于便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或上述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可以包含或存储由指令执行系统、装置或设备来使用或结合指令执行系统、装置或设备来使用的程序的任何非暂态有形介质。
附图包括根据本发明的一个或多个实施例的方法、一个或多个装置和计算机程序产品的框图和流程图。应当理解,这样的图中的每个块以及这些块的组合可以通过计算机程序指令来实现。这些计算机程序指令可以在处理电路上执行以形成专门的硬件。这些计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上以产生机器,使得在计算机或其他可编程数据处理装置上执行的指令创建用于实现在一个或多个块中规定的功能的装置。这些计算机程序指令还可以存储在计算机可读存储器中,该计算机可读存储器可以指示计算机或其他可编程数据处理装置以特定方式工作,使得存储在计算机可读存储器中的指令产生包括指令装置的制品,指令装置实现在一个或多个块中规定的功能。计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上以引起一系列操作步骤在计算机或其他可编程装置上被执行以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在一个或多个块中规定的功能的步骤。
本领域技术人员还应当容易地理解,定义本发明的功能的程序可以以很多形式传送到计算机,包括但不限于:(a)持久地存储在不可写存储介质(例如,计算机内的只读存储器设备,诸如由计算机I/O附件可读的ROM或CD-ROM盘)上的信息;或(b)可变地存储在可写存储介质(例如,软盘和硬盘驱动器)上的信息。
虽然通过上述示例性实施例描述了本发明,但是本领域普通技术人员将会理解,在不脱离本文中公开的发明概念的情况下,可以对所示实施例进行修改和变化。

Claims (19)

1.一种为数据存储系统中的至少一个存储对象提供RAID(独立磁盘冗余阵列)数据保护的方法,其中所述数据存储系统包括至少一个存储处理器和被可通信地耦合到所述存储处理器的数据存储驱动器阵列,所述方法包括:
生成RAID映射表,其中所述RAID映射表包含多个RAID盘区条目,其中所述RAID映射表中包含的每个RAID盘区条目指示各自持久地存储主机数据的预定总数的驱动器盘区,所述主机数据被写入逻辑地址空间内的多个RAID盘区中的相对应的RAID盘区,所述逻辑地址空间被映射到所述存储对象,其中每个驱动器盘区包括位于所述数据存储驱动器中的一个数据存储驱动器上的非易失性数据存储的唯一的连续区域,并且其中所述数据存储驱动器中的每个数据存储驱动器具有位于所述数据存储驱动器上的多个驱动器盘区;
对于被定向到所述存储对象的每个I/O操作,由所述存储处理器执行监测操作,其中所述监测操作包括:
i)递增与所述I/O操作被定向到的目标驱动器盘区相对应的总的I/O操作计数器,其中与所述目标驱动器盘区相对应的所述总的I/O操作计数器存储已经被定向到所述目标驱动器盘区的I/O操作的总数,
ii)从所述目标驱动器盘区所位于的数据存储驱动器接收针对所述I/O操作的完成状态,以及
iii)响应于检测到针对所述I/O操作的所接收的所述完成状态指示在对所述目标驱动器盘区执行所述I/O操作的同时在所述数据存储驱动器内发生了软介质错误:
a)递增与所述目标驱动器盘区相对应的软介质错误计数器,其中与所述目标驱动器盘区相对应的所述软介质错误计数器存储在对所述目标驱动器盘区执行I/O操作的同时已经发生的软介质错误的总数,
b)计算针对所述目标驱动器盘区的错误比率,其中针对所述目标驱动器盘区的所述错误比率包括与所述目标驱动器盘区相对应的所述软介质错误计数器的当前值和与所述目标驱动器盘区相对应的所述总的I/O操作计数器的当前值的比率,以及
c)响应于检测到针对所述目标驱动器盘区的所述错误比率超过阈值错误比率,对所述目标驱动器盘区执行主动复制操作,所述主动复制操作将存储在所述目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,其中对所述目标驱动器盘区执行所述主动复制操作还修改所述RAID映射表中存储所述目标驱动器盘区的指示的RAID盘区条目以存储所述新分配的驱动器盘区的指示,从而从所述目标驱动器盘区被复制到所述新分配的驱动器盘区的所述主机数据通过对所述新分配的驱动器盘区的随后接收的I/O操作而被访问。
2.根据权利要求1所述的方法,其中对所述目标驱动器盘区执行所述主动复制操作还包括设置与所述目标驱动器盘区相对应的死标志,并且其中所述方法还包括:
响应于与所述目标驱动器盘区相对应的所述死标志被设置,防止所述目标驱动器盘区随后被分配给所述RAID映射表中的任何RAID映射表条目。
3.根据权利要求2所述的方法,还包括:
从所述数据存储驱动器接收寿命终止指示;以及
响应于从所述数据存储驱动器接收到所述寿命终止指示,对位于所述数据存储驱动器内的驱动器盘区执行主动复制操作,其中所述主动复制操作仅将存储在位于所述数据存储驱动器中的由所述RAID映射表中的RAID盘区条目指示的那些驱动器盘区上的主机数据复制到新分配的驱动器盘区,并且其中所述主动复制操作还修改所述RAID映射表中存储位于所述数据存储驱动器内的驱动器盘区的指示的所述RAID盘区条目以存储所述新分配的驱动器盘区的指示,从而从位于所述数据存储驱动器内的由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区被复制到所述新分配的驱动器盘区的所述主机数据通过对所述新分配的驱动器盘区的随后接收的I/O操作而被随后访问。
4.根据权利要求3所述的方法,其中对位于所述数据存储驱动器内的所有驱动器盘区执行主动复制操作还包括设置与位于所述数据存储驱动器内的所述驱动器盘区中的每个驱动器盘区相对应的死标志,并且其中所述方法还包括:
响应于与位于所述数据存储驱动器内的所述驱动器盘区中的每个驱动器盘区相对应的所述死标志被设置,防止位于所述数据存储驱动器内的所述驱动器盘区随后被分配给所述RAID映射表中的任何RAID映射表条目。
5.根据权利要求2所述的方法,其中对所述目标驱动器盘区执行所述主动复制操作还包括:
设置与所述目标驱动器盘区相对应的寿命终止标志;
通过后台进程检测与所述目标驱动器盘区相对应的所设置的所述寿命终止标志;以及
响应于检测到与所述目标驱动器盘区相对应的所设置的所述寿命终止标志,通过所述后台进程将存储在所述目标驱动器盘区上的所有所述主机数据复制到所述新分配的驱动器盘区,并且通过所述后台进程修改所述RAID映射表中存储所述目标驱动器盘区的指示的所述RAID盘区条目以存储所述新分配的驱动器盘区的指示。
6.根据权利要求4所述的方法,其中对位于所述数据存储驱动器内的所有驱动器盘区执行所述主动复制操作还包括:
设置与位于所述数据存储驱动器内并且还由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区中的每个驱动器盘区相对应的寿命终止标志;
通过后台进程检测与位于所述数据存储驱动器内并且还由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区相对应的所设置的所述寿命终止标志;以及
响应于通过所述后台进程检测到与位于所述数据存储驱动器内并且还由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区相对应的所设置的所述寿命终止标志,通过所述后台进程将存储在位于所述数据存储驱动器内并且还由所述RAID映射表中的RAID盘区条目指示的驱动器盘区上的所有所述主机数据复制到所述新分配的驱动器盘区,并且通过所述后台进程修改所述RAID映射表中存储位于所述数据存储驱动器内的所述驱动器盘区中的一个驱动器盘区的指示的所述RAID盘区条目中的每个RAID盘区条目以代替地存储所述新分配的驱动器盘区中的一个新分配的驱动器盘区的指示。
7.根据权利要求3所述的方法,其中所述目标驱动器盘区所位于的所述数据存储驱动器包括被用于替换故障磁盘扇区的保留磁盘扇区集合;以及
其中指示在对所述目标驱动器盘区执行所述I/O操作的同时在所述数据存储驱动器内发生了软介质错误的针对所述I/O操作的所接收的所述完成状态指示响应于所述目标驱动器盘区内所述I/O操作被定向到的原始磁盘扇区的故障,所述保留磁盘扇区集合中的一个保留磁盘扇区被用于替换所述原始磁盘扇区。
8.根据权利要求7所述的方法,其中从所述数据存储驱动器接收的所述寿命终止指示指示响应于I/O操作被定向到的原始磁盘扇区的故障,阈值最大数目的所述保留磁盘扇区已经被用于替换所述原始磁盘扇区。
9.根据权利要求8所述的方法,其中所述保留磁盘扇区的所述阈值最大数目包括所述数据存储驱动器中的所述保留磁盘扇区的总数。
10.一种为存储对象提供RAID(独立磁盘冗余阵列)数据保护的数据存储系统,包括:
至少一个存储处理器,包括处理电路和存储器;
数据存储驱动器阵列,被可通信地耦合到所述存储处理器;以及
其中所述存储器具有存储在其上的程序代码,其中所述程序代码在由所述处理电路执行时引起所述处理电路:
生成RAID映射表,其中所述RAID映射表包含多个RAID盘区条目,其中所述RAID映射表中包含的每个RAID盘区条目指示各自持久地存储主机数据的预定总数的驱动器盘区,所述主机数据被写入逻辑地址空间内的多个RAID盘区中的相对应的RAID盘区,所述逻辑地址空间被映射到所述存储对象,其中每个驱动器盘区包括位于所述数据存储驱动器中的一个数据存储驱动器上的非易失性数据存储的唯一的连续区域,并且其中所述数据存储驱动器中的每个数据存储驱动器具有位于所述数据存储驱动器上的多个驱动器盘区;
对于被定向到所述存储对象的每个I/O操作,由所述存储处理器至少部分通过引起所述处理电路进行以下操作来执行监测操作:
i)递增与所述I/O操作被定向到的目标驱动器盘区相对应的总的I/O操作计数器,其中与所述目标驱动器盘区相对应的所述总的I/O操作计数器存储已经被定向到所述目标驱动器盘区的I/O操作的总数,
ii)从所述目标驱动器盘区所位于的数据存储驱动器接收针对所述I/O操作的完成状态,以及
iii)响应于检测到针对所述I/O操作的所接收的所述完成状态指示在对所述目标驱动器盘区执行所述I/O操作的同时在所述数据存储驱动器内发生了软介质错误:
a)递增与所述目标驱动器盘区相对应的软介质错误计数器,其中与所述目标驱动器盘区相对应的所述软介质错误计数器存储在对所述目标驱动器盘区执行I/O操作的同时已经发生的软介质错误的总数,
b)计算针对所述目标驱动器盘区的错误比率,其中针对所述目标驱动器盘区的所述错误比率包括与所述目标驱动器盘区相对应的所述软介质错误计数器的当前值和与所述目标驱动器盘区相对应的所述总的I/O操作计数器的当前值的比率,以及
c)响应于检测到针对所述目标驱动器盘区的所述错误比率超过阈值错误比率,对所述目标驱动器盘区执行主动复制操作,所述主动复制操作将存储在所述目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,其中对所述目标驱动器盘区执行所述主动复制操作还修改所述RAID映射表中存储所述目标驱动器盘区的指示的RAID盘区条目以存储所述新分配的驱动器盘区的指示,从而从所述目标驱动器盘区被复制到所述新分配的驱动器盘区的所述主机数据通过对所述新分配的驱动器盘区的随后接收的I/O操作而被访问。
11.根据权利要求10所述的数据存储系统,其中所述程序代码在由所述处理电路执行时还引起所述处理电路:
至少部分通过还设置与所述目标驱动器盘区相对应的死标志来对所述目标驱动器盘区执行所述主动复制操作;以及
响应于与所述目标驱动器盘区相对应的所述死标志被设置,防止所述目标驱动器盘区随后被分配给所述RAID映射表中的任何RAID映射表条目。
12.根据权利要求11所述的数据存储系统,其中所述程序代码在由所述处理电路执行时还引起所述处理电路:
从所述数据存储驱动器接收寿命终止指示;以及
响应于从所述数据存储驱动器接收到所述寿命终止指示,对位于所述数据存储驱动器内的驱动器盘区执行主动复制操作,其中所述主动复制操作仅将存储在位于所述数据存储驱动器中的由所述RAID映射表中的RAID盘区条目指示的那些驱动器盘区上的主机数据复制到新分配的驱动器盘区,并且其中所述主动复制操作还修改所述RAID映射表中存储位于所述数据存储驱动器内的驱动器盘区的指示的所述RAID盘区条目以存储所述新分配的驱动器盘区的指示,从而从位于所述数据存储驱动器内的由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区被复制到所述新分配的驱动器盘区的所述主机数据通过对所述新分配的驱动器盘区的随后接收的I/O操作而被随后访问。
13.根据权利要求12所述的数据存储系统,其中所述程序代码在由所述处理电路执行时还引起所述处理电路:
至少部分通过还设置与位于所述数据存储驱动器内的所述驱动器盘区中的每个驱动器盘区相对应的死标志来对位于所述数据存储驱动器内的所有驱动器盘区执行主动复制操作,并且其中所述方法还包括:
响应于与位于所述数据存储驱动器内的所述驱动器盘区中的每个驱动器盘区相对应的所述死标志被设置,防止位于所述数据存储驱动器内的所述驱动器盘区随后被分配给所述RAID映射表中的任何RAID映射表条目。
14.根据权利要求11所述的数据存储系统,其中所述程序代码在由所述处理电路执行时至少部分通过还引起所述处理电路进行以下操作来还引起所述处理电路对所述目标驱动器盘区执行所述主动复制操作:
设置与所述目标驱动器盘区相对应的寿命终止标志;
通过后台进程检测与所述目标驱动器盘区相对应的所设置的所述寿命终止标志;以及
响应于检测到与所述目标驱动器盘区相对应的所设置的所述寿命终止标志,通过所述后台进程将存储在所述目标驱动器盘区上的所有所述主机数据复制到所述新分配的驱动器盘区,并且通过所述后台进程修改所述RAID映射表中存储所述目标驱动器盘区的指示的所述RAID盘区条目以存储所述新分配的驱动器盘区的指示。
15.根据权利要求13所述的数据存储系统,其中所述程序代码在由所述处理电路执行时通过还引起所述处理电路进行以下操作来还引起所述处理电路对位于所述数据存储驱动器内的所有驱动器盘区执行所述主动复制操作:
设置与位于所述数据存储驱动器内并且还由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区中的每个驱动器盘区相对应的寿命终止标志;
通过后台进程检测与位于所述数据存储驱动器内并且还由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区相对应的所设置的所述寿命终止标志;以及
响应于通过所述后台进程检测到与位于所述数据存储驱动器内并且还由所述RAID映射表中的RAID盘区条目指示的所述驱动器盘区相对应的所设置的所述寿命终止标志,通过所述后台进程将存储在位于所述数据存储驱动器内并且还由所述RAID映射表中的所述RAID盘区条目指示的驱动器盘区上的所有所述主机数据复制到所述新分配的驱动器盘区,并且通过所述后台进程修改所述RAID映射表中存储位于所述数据存储驱动器内的所述驱动器盘区中的一个驱动器盘区的指示的所述RAID盘区条目中的每个RAID盘区条目以代替地存储所述新分配的驱动器盘区中的一个新分配的驱动器盘区的指示。
16.根据权利要求12所述的数据存储系统,其中所述目标驱动器盘区所位于的所述数据存储驱动器包括被用于替换故障磁盘扇区的保留磁盘扇区集合;以及
其中指示在对所述目标驱动器盘区执行所述I/O操作的同时在所述数据存储驱动器内发生了软介质错误的针对所述I/O操作的所接收的所述完成状态指示响应于所述目标驱动器盘区内所述I/O操作被定向到的原始磁盘扇区的故障,所述保留磁盘扇区集合中的一个保留磁盘扇区被用于替换所述原始磁盘扇区。
17.根据权利要求16所述的数据存储系统,其中从所述数据存储驱动器接收的所述寿命终止指示指示响应于I/O操作被定向到的原始磁盘扇区的故障,阈值最大数目的所述保留磁盘扇区已经被用于替换所述原始磁盘扇区。
18.根据权利要求17所述的数据存储系统,其中所述保留磁盘扇区的所述阈值最大数目包括所述数据存储驱动器中的所述保留磁盘扇区的总数。
19.一种为数据存储系统中的存储对象提供RAID(独立磁盘冗余阵列)数据保护的非暂态计算机可读介质,其中所述数据存储系统包括存储处理器和被可通信地耦合到所述存储处理器的数据存储驱动器阵列,所述非暂态计算机可读介质包括存储在所述非暂态计算机可读介质上的指令,所述指令当在所述存储处理器中的处理电路上被执行时执行以下步骤:
生成RAID映射表,其中所述RAID映射表包含多个RAID盘区条目,其中所述RAID映射表中包含的每个RAID盘区条目指示各自持久地存储主机数据的预定总数的驱动器盘区,所述主机数据被写入逻辑地址空间内的多个RAID盘区中的相对应的RAID盘区,所述逻辑地址空间被映射到所述存储对象,其中每个驱动器盘区包括位于所述数据存储驱动器中的一个数据存储驱动器上的非易失性数据存储的唯一的连续区域,并且其中所述数据存储驱动器中的每个数据存储驱动器具有位于所述数据存储驱动器上的多个驱动器盘区;
对于被定向到所述存储对象的每个I/O操作,由所述存储处理器执行监测操作,其中所述监测操作包括:
i)递增与所述I/O操作被定向到的目标驱动器盘区相对应的总的I/O操作计数器,其中与所述目标驱动器盘区相对应的所述总的I/O操作计数器存储已经被定向到所述目标驱动器盘区的I/O操作的总数,
ii)从所述目标驱动器盘区所位于的数据存储驱动器接收针对所述I/O操作的完成状态,以及
iii)响应于检测到针对所述I/O操作的所接收的所述完成状态指示在对所述目标驱动器盘区执行所述I/O操作的同时在所述数据存储驱动器内发生了软介质错误:
a)递增与所述目标驱动器盘区相对应的软介质错误计数器,其中与所述目标驱动器盘区相对应的所述软介质错误计数器存储在对所述目标驱动器盘区执行I/O操作的同时已经发生的软介质错误的总数,
b)计算针对所述目标驱动器盘区的错误比率,其中针对所述目标驱动器盘区的错误比率包括与所述目标驱动器盘区相对应的所述软介质错误计数器的当前值和与所述目标驱动器盘区相对应的所述总的I/O操作计数器的当前值的比率,以及
c)响应于检测到针对所述目标驱动器盘区的所述错误比率超过阈值错误比率,对所述目标驱动器盘区执行主动复制操作,所述主动复制操作将存储在所述目标驱动器盘区上的所有主机数据复制到新分配的驱动器盘区,其中对所述目标驱动器盘区执行所述主动复制操作还修改所述RAID映射表中存储所述目标驱动器盘区的指示的RAID盘区条目以存储所述新分配的驱动器盘区的指示,从而从所述目标驱动器盘区被复制到所述新分配的驱动器盘区的所述主机数据通过对所述新分配的驱动器盘区的随后接收的I/O操作而被访问。
CN201711050623.XA 2017-10-31 2017-10-31 提供raid数据保护的方法、数据存储系统和计算机可读介质 Active CN109726033B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711050623.XA CN109726033B (zh) 2017-10-31 2017-10-31 提供raid数据保护的方法、数据存储系统和计算机可读介质
US15/808,119 US10459814B2 (en) 2017-10-31 2017-11-09 Drive extent based end of life detection and proactive copying in a mapped RAID (redundant array of independent disks) data storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711050623.XA CN109726033B (zh) 2017-10-31 2017-10-31 提供raid数据保护的方法、数据存储系统和计算机可读介质

Publications (2)

Publication Number Publication Date
CN109726033A true CN109726033A (zh) 2019-05-07
CN109726033B CN109726033B (zh) 2022-05-06

Family

ID=66244833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711050623.XA Active CN109726033B (zh) 2017-10-31 2017-10-31 提供raid数据保护的方法、数据存储系统和计算机可读介质

Country Status (2)

Country Link
US (1) US10459814B2 (zh)
CN (1) CN109726033B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10852982B2 (en) 2017-10-27 2020-12-01 EMC IP Holding Company LLC Method, system, and computer program product for managing storage system

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228396B (zh) * 2016-12-21 2021-03-23 伊姆西Ip控股有限责任公司 用于处理驱动器的错误的方法和设备
CN109213428B (zh) 2017-06-30 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10592111B1 (en) * 2017-07-28 2020-03-17 EMC IP Holding Company LLC Assignment of newly added data storage drives to an original data storage drive partnership group and a new data storage drive partnership group in a mapped RAID (redundant array of independent disks) system
CN109725826B (zh) 2017-10-27 2022-05-24 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机可读介质
CN109725824A (zh) 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于向存储系统中的盘阵列写入数据的方法和设备
CN110058961B (zh) 2018-01-18 2023-05-05 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
CN110096219B (zh) * 2018-01-31 2022-08-02 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
CN110389858B (zh) 2018-04-20 2023-06-09 伊姆西Ip控股有限责任公司 存储设备的故障恢复方法和设备
CN110413205B (zh) 2018-04-28 2023-07-07 伊姆西Ip控股有限责任公司 用于向磁盘阵列进行写入的方法、设备和计算机可读存储介质
CN110413203B (zh) 2018-04-28 2023-07-18 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
US11869586B2 (en) * 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
CN110737398B (zh) 2018-07-20 2023-09-01 伊姆西Ip控股有限责任公司 协调访问操作的方法、设备和计算机程序产品
CN111104047B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
US10983885B2 (en) * 2018-11-29 2021-04-20 International Business Machines Corporation Recovering storage devices in a storage array having errors
TWI704451B (zh) * 2019-01-02 2020-09-11 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的動態復原管理之方法與裝置以及依據該方法來運作之儲存系統
US11163459B2 (en) 2019-10-28 2021-11-02 EMC IP Holding Company LLC Rekeying information on storage devices using a proactive copy service
US11194664B2 (en) * 2020-04-20 2021-12-07 EMC IP Holding Company LLC Storage system configured to guarantee sufficient capacity for a distributed raid rebuild process
CN113608676A (zh) * 2021-06-25 2021-11-05 苏州浪潮智能科技有限公司 一种基于磁盘阵列的回拷方法、系统及计算机存储介质
US20230019878A1 (en) * 2021-07-13 2023-01-19 Samsung Electronics Co., Ltd. Systems, methods, and devices for page relocation for garbage collection
US11822804B2 (en) * 2021-10-04 2023-11-21 Vmware, Inc. Managing extent sharing between snapshots using mapping addresses
US11940950B2 (en) * 2021-10-22 2024-03-26 EMC IP Holding Company, LLC System and method for reducing CPU load and latency for scheduled snapshots using pre-allocated extents

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207883A (zh) * 2012-01-12 2013-07-17 Lsi公司 用于元数据持久存储的方法
CN103699457A (zh) * 2013-09-26 2014-04-02 深圳市泽云科技有限公司 基于条带化的磁盘阵列修复方法及装置
CN107122269A (zh) * 2016-02-25 2017-09-01 伊姆西公司 用于保证映射独立磁盘冗余阵列的可靠性的方法和装置
US20170300393A1 (en) * 2016-04-13 2017-10-19 Dell Products L.P. Raid rebuild algorithm with low i/o impact

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7434097B2 (en) 2003-06-05 2008-10-07 Copan System, Inc. Method and apparatus for efficient fault-tolerant disk drive replacement in raid storage systems
US7434090B2 (en) 2004-09-30 2008-10-07 Copan System, Inc. Method and apparatus for just in time RAID spare drive pool management
US20080183963A1 (en) 2007-01-31 2008-07-31 International Business Machines Corporation System, Method, And Service For Providing A Generic RAID Engine And Optimizer
US10157002B2 (en) * 2010-08-26 2018-12-18 International Business Machines Corporation Migrating an encoded data slice based on an end-of-life memory level of a memory device
US8463992B2 (en) 2010-12-18 2013-06-11 Lsi Corporation System and method for handling IO to drives in a raid system based on strip size
US9519577B2 (en) * 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US10013321B1 (en) * 2016-06-22 2018-07-03 EMC IP Holding Company LLC Early raid rebuild to improve reliability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207883A (zh) * 2012-01-12 2013-07-17 Lsi公司 用于元数据持久存储的方法
CN103699457A (zh) * 2013-09-26 2014-04-02 深圳市泽云科技有限公司 基于条带化的磁盘阵列修复方法及装置
CN107122269A (zh) * 2016-02-25 2017-09-01 伊姆西公司 用于保证映射独立磁盘冗余阵列的可靠性的方法和装置
US20170300393A1 (en) * 2016-04-13 2017-10-19 Dell Products L.P. Raid rebuild algorithm with low i/o impact

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10852982B2 (en) 2017-10-27 2020-12-01 EMC IP Holding Company LLC Method, system, and computer program product for managing storage system

Also Published As

Publication number Publication date
US20190129815A1 (en) 2019-05-02
CN109726033B (zh) 2022-05-06
US10459814B2 (en) 2019-10-29

Similar Documents

Publication Publication Date Title
CN109726033A (zh) 映射的raid数据存储系统中的基于驱动器盘区的寿命终止检测和主动复制
US10140041B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object
US10126988B1 (en) Assigning RAID extents and changing drive extent allocations within RAID extents when splitting a group of storage drives into partnership groups in a data storage system
US10528274B2 (en) Storage system and data management method
US10210045B1 (en) Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system
US10089026B1 (en) Virtual drive based RAID groups
US11829617B2 (en) Virtual storage system
US10146447B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives
US10372537B2 (en) Elastic metadata and multiple tray allocation
CN110096217B (zh) 用于重新定位数据的方法、数据存储系统和介质
US20200042388A1 (en) RAID Storage System with Logical Data Group Rebuild
US10825477B2 (en) RAID storage system with logical data group priority
US20190129614A1 (en) Load Balancing of I/O by Moving Logical Unit (LUN) Slices Between Non-Volatile Storage Represented by Different Rotation Groups of RAID (Redundant Array of Independent Disks) Extent Entries in a RAID Extent Table of a Mapped RAID Data Storage System
CN111158587B (zh) 基于存储池虚拟化管理的分布式存储系统及数据读写方法
US10229022B1 (en) Providing Raid-10 with a configurable Raid width using a mapped raid group
US9274723B2 (en) Storage apparatus and its control method
EP2929435B1 (en) Raid surveyor
CN103761190B (zh) 数据处理方法及装置
US9342405B2 (en) Hierarchical data compression testing
US10552078B2 (en) Determining an effective capacity of a drive extent pool generated from one or more drive groups in an array of storage drives of a data storage system that uses mapped RAID (redundant array of independent disks) technology
US10678643B1 (en) Splitting a group of physical data storage drives into partnership groups to limit the risk of data loss during drive rebuilds in a mapped RAID (redundant array of independent disks) data storage system
CN110096218B (zh) 用于为存储对象提供raid数据保护的方法、系统和介质
US8838889B2 (en) Method of allocating raid group members in a mass storage system
US10977130B2 (en) Method, apparatus and computer program product for managing raid storage in data storage systems
US11093464B1 (en) Global deduplication on distributed storage using segment usage tables

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