映射的RAID数据存储系统中的基于驱动器盘区的寿命终止检测和主动复制技术方案

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

Lifetime Termination Detection and Active Replication Based on Drive Area in Mapped RAID Data Storage System

【技术实现步骤摘要】
映射的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+1PRAID-5磁盘组中,至少五个存储磁盘用于存储数据和奇偶校验信息,使得可以将每个条带的四个数据块和奇偶校验信息中的每个存储在不同的磁盘上。还可以保持备用磁盘可用以处理磁盘故障。在磁盘中的一个磁盘故障的情况下,可以通过在每条带的基础上对剩余数据块和奇偶校验信息执行XOR操作来将存储在故障磁盘上的数据重建到备用磁盘上。4D+1PRAID-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+2PRAID-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+1PRAI本文档来自技高网
...

【技术保护点】
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操作而被访问。...

【技术特征摘要】
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)递增与所述目标驱动器盘区相对应的软介质错误计数器,其中...

【专利技术属性】
技术研发人员:高宏坡康剑斌高健龚绍钦孙蕾
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1