CN112506420B - 在存储系统中管理擦洗操作的方法、设备和产品 - Google Patents
在存储系统中管理擦洗操作的方法、设备和产品 Download PDFInfo
- Publication number
- CN112506420B CN112506420B CN201910871009.2A CN201910871009A CN112506420B CN 112506420 B CN112506420 B CN 112506420B CN 201910871009 A CN201910871009 A CN 201910871009A CN 112506420 B CN112506420 B CN 112506420B
- Authority
- CN
- China
- Prior art keywords
- blocks
- scrubbing
- block
- storage system
- interval
- 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 OR CALCULATING; 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1048—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 using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
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)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种用于在存储系统中管理擦洗操作的方法、设备和产品。在一种用于在存储系统中管理擦洗操作的方法中,针对存储系统包括的多个区块,获取多个区块的各自的使用状态。基于多个区块的各自的使用状态,从多个区块中检测其中将要出现潜在故障的一组目标区块。根据检测到一组目标区块,调整将要针对存储系统执行擦洗操作的擦洗间隔。根据调整的擦洗间隔,针对存储系统中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块。通过监视存储系统中的多个区块的使用状态,可以调整针对存储系统执行擦洗操作的时间间隔。可以尽早发现潜在风险,并降低过度执行擦洗操作导致的额外开销。提供了相应的设备和计算机程序产品。
Description
技术领域
本公开的各实现方式涉及存储管理,更具体地,涉及用于在存储系统中管理擦洗(scrubbing)操作的方法、设备和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。目前已经提出了存储设备池的概念,在存储设备池中可以包括多个存储设备,并且多个存储设备中的每个存储设备可以包括多个区块(extent)。此时,可以向用户存储系统分配区块,以使得用户存储系统可以使用来自存储设备池中的各个存储设备的存储空间。
将会理解,由于存储设备池中的各个存储设备投入使用的时间以及使用状态等存在差异,各个存储设备出现故障的可能性是不同的。进一步,在一个存储设备中的各个部分的使用状态也可以有所不同,并且可能会出现存储设备中的一部分出现故障并且不能使用的情况。因而,如何预测存储设备中的潜在故障,进而避免存储系统中的数据丢失,成为一个技术难题。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来管理存储系统的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为有效的方式管理存储系统。
根据本公开的第一方面,提供了一种用于在存储系统中管理擦洗操作的方法。在该方法中,针对存储系统包括的多个区块,获取多个区块的各自的使用状态。基于多个区块的各自的使用状态,从多个区块中检测其中将要出现潜在故障的一组目标区块。根据检测到一组目标区块,调整将要针对存储系统执行擦洗操作的擦洗间隔。根据调整的擦洗间隔,针对存储系统中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块。
根据本公开的第二方面,提供了一种用于在存储系统中管理擦洗操作的设备,设备包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:针对存储系统包括的多个区块,获取多个区块的各自的使用状态;基于多个区块的各自的使用状态,从多个区块中检测其中将要出现潜在故障的一组目标区块;根据检测到一组目标区块,调整将要针对存储系统执行擦洗操作的擦洗间隔;以及根据调整的擦洗间隔,针对存储系统中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1示意性示出了其中可以实现本公开的方法的存储系统的示意图;
图2示意性示出了根据本公开的一个实现方式的用于在存储系统中管理擦洗操作的框图;
图3示意性示出了根据本公开的一个实现方式的用于在存储系统中管理擦洗操作的方法的流程图;
图4示意性示出了根据本公开的一个实现方式的用于在存储系统中检测其中将要出现潜在故障的一组目标区块的框图;
图5示意性示出了根据本公开的一个实现方式的针对存储设备执行后台介质扫描的扫描结果的框图;
图6示意性示出了根据本公开的一个实现方式的区块的特征的框图;
图7示意性示出了根据本公开的一个实现方式的基于历史数据训练获取区块的特征和故障之间的关联关系的框图;
图8示意性示出了根据本公开的一个实现方式的在存储设备中出现故障的故障率的框图;
图9示意性示出了根据本公开的一个实现方式的用于针对故障区块执行后续处理的方法的流程图;以及
图10示意性示出了根据本公开的示例性实现方式的用于在存储系统中管理擦洗操作的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
为方便描述,首先介绍本公开的应用环境。图1示意性示出了其中可以实现本公开的方法的存储系统100的示意图。如图1所示,存储系统100可以为一个或多个用户存储系统提供存储空间。例如,可以存在用户存储系统110、……、以及用户存储系统112等。将会理解,在此的存储系统100可以是集中式存储系统,也可以是分布式存储系统。在下文中,将仅以分布式存储系统为示例进行描述。
如图1所示,用户存储系统110可以经由网络120来访问存储区块池130中的区块132、134等。在此的存储区块池130可以包括多个区块,并且可以将这些区块分配给一个或多个存储系统。例如,区块132、134等可以被分配至用户存储系统110,而其他区块可以被分配至用户存储系统112。可以设置存储设备池140,该存储设备池140可以包括多个存储设备如存储设备142、存储设备144、……、以及存储设备146等。存储区块池130中的多个区块可以分别来自于相同或者不同的存储设备。此时,多个存储设备一起为存储系统100提供存储空间。
将会理解,存储设备142、144、……、以及146并不是可以无限期地使用,而是存在一定的使用寿命。当存储设备的磨损水平(wear level)达到一定程度时,可能会面临寿命终止(End of Life)。目前已经提出了用于监视存储设备池140中各个存储设备的磨损水平,进而管理存储设备池140并且进行设备更新的技术方案。
例如,目前已经提出了针对存储设备执行擦洗操作,以用于预先检测和纠正存储设备中的潜在扇区错误(Latent Sector Error,LSE)。对于大多数存储系统而言,可以周期性针对存储系统中的一个或多个存储设备执行擦洗操作。例如,可以每月针对全部存储设备执行一次擦洗操作。然而,擦洗操作将会导致额外的开销。擦洗操作不足将导致不能及时检测到存储系统中的故障,而过渡的擦洗操作将会由于擦洗操作的扫描访问而严重降低存储系统的性能。因此,如何以更为有效的方式执行擦洗操作成为一个亟待解决的问题。
为了解决上述缺陷,本公开的实现方式提供了一种用于在存储系统100中管理擦洗操作的方法、设备和计算机程序产品。采用本公开的实现方式,不再使用固定的擦洗间隔,而是根据存储系统100中的多个区块的使用状态,动态地调整擦洗间隔并执行擦洗操作,以便检测存储系统100中的故障区块。在此,擦洗间隔是指连续两次擦洗操作之间的时间间隔。在下文中,首先参见图2概要描述根据本公开的示例性实现方式。
图2示意性示出了根据本公开的一个实现方式的用于在存储系统100中管理擦洗操作的框图200。如图2所示,针对存储区块池130中的多个区块132、134,可以获取多个区块的各自的使用状态210。继而,可以基于多个区块的各自的使用状态210,从多个区块中检测其中将要出现潜在故障的一组目标区块220。
可以根据检测到一组目标区块220,来调整将要针对存储系统100执行擦洗操作的擦洗间隔。具体而言,如果检测到将要出现潜在故障的一组目标区块,则表示存储系统100中的一组目标区块所在的存储设备中可能会出现故障。此时,可以将擦洗间隔230设置为较小的数值,并且可以针对一组目标区块220所在的一个或多个存储设备执行局部擦洗操作240。如果并未检测到将要出现潜在故障的任何目标区块,则表示存储系统100整体处于正常状态。此时,可以选择适当的擦洗间隔230并且针对存储系统100执行全局擦洗操作242。根据本公开的示例性实现方式,局部擦洗操作240和全局擦洗操作242都可以检测到故障区块250。
利用本公开的示例性实现方式,局部擦洗操作240可以及时处理有问题的地址范围(即,检测到的一组目标区块220所在的地址范围)。另一方面,可以根据存储系统100的当前使用状态210来确定执行擦洗操作的擦洗间隔230。以此方式可以尽量避免擦洗不足以及过度擦洗的情况,并且可以采用更灵活的方式执行擦洗操作。在下文中,将参见图3详细描述根据本公开的示例性实现方式的更多细节。
图3示意性示出了根据本公开的一个实现方式的用于在存储系统100中管理擦洗操作的方法300的流程图。如图3所示,在框310处,可以针对存储系统100包括的多个区块,获取多个区块的各自的使用状态。将会理解,存储系统100中的区块可以来自于存储设备池140中的多个存储设备142、144、……、以及146等。在存储设备池140中的各个存储设备142、144、……、以及146的运行期间,各个存储设备142、144、……、以及146可以涉及多方面的状态,例如驱动器温度、加电小时数(power on hours)、分配的扇区计数(allocated sectorscounter)等。
进一步,存储设备142、144、……、以及146中的每个存储设备可以包括多个区块。将会理解,每个区块可以具有相对应的使用状态。在此的使用状态可以包括区块所在的存储设备的上述状态。此外,使用状态还可以包括区块本身的状态,例如,区块的地址,区块中是否存在故障等。将会理解,上文仅示意性示出了使用状态可能包括的方面,根据本公开的示例性实现方式,使用状态可以包括更多或者更少的方面。
在框320处,可以基于多个区块的各自的使用状态210,从多个区块中检测其中将要出现潜在故障的一组目标区块220。在下文中,将参见图4描述有关确定一组目标区块220的更多细节。图4示意性示出了根据本公开的一个实现方式的用于在存储系统100中检测其中将要出现潜在故障的一组目标区块220的框图400。如图4所示,可以基于多个区块的各自的使用状态210,确定多个区块中的各个区块的各自的特征410。将会理解,在此的特征410是指用于描述区块的当前使用状态的指示。根据本公开的示例性实现方式,特征可以包括多个维度,并且每个维度可以表示使用状态中的一个方面的数据。在一个简单的示例中,可以采用三维矢量(地址,温度,是否存在故障)来表示区块的特征410。根据本公开的示例性实现方式,还可以采用更为复杂的数据结构来表示特征。
如图4所示,可以获取存储设备池140中的存储设备中的区块中的故障与区块的特征之间的关联关系430。将会理解,在此的关联关系430可以是基于特定型号的存储设备中的区块以及该区块中是否出现故障的历史经验来确定的。在此实现方式中,可以利用机器学习模块420来调用关联关系430。进一步,机器学习模块420可以基于多个区块的各自的特征420和关联关系430,从多个区块中标识将要出现故障的目标区块。
利用图4所示的实现方式,可以基于关联关系430来预测在存储设备池140中的多个存储设备142、144、……、以及146中的哪个/哪些区块可能出现故障。根据本公开的示例性实现方式,可以通过扫描各个区块来获取各个区块的故障标识符。假设采用三维矢量(地址,故障标识符,是否存在故障)来表示区块的特征420,并且关联关系430定义当故障标识符的取值为特定数值时,则区块面临故障风险。此时,可以将故障标识符为特定数值的区块标识为目标区块。此时,可以向机器学习模块420分别输入每个区块的特征,机器学习模块420可以基于关联关系430来标识可能出现故障的目标区块。
根据本公开的示例性实现方式,可以基于一组样本存储设备中包括的多个样本区块的样本特征以及多个样本区块中的故障,训练关联关系。机器学习技术已经成为目前处理各种复杂问题的一种成熟技术方案,在此可以基于机器学习技术,利用历史操作中所获取的导致故障区块的样本特征和未导致故障区块的样本特征,来训练上述关联关系430。利用上述示例性实现方式,可以为后续的标识故障区块的操作提供更加可靠的依据。
将会理解,在本公开的上下文中并不限定关联关系430的具体类型,而是可以采用目前已知的或者将在未来开发的多种机器学习技术来定义关联关系430。根据本公开的一个示例性实现方式,可以基于神经网络模型来获得关联关系430。利用上述示例性实现方式,所获得的关联关系430可以描述具有何种特征的区块更易于出现故障,因而该关联关系430可以用于预测在其他存储设备中的哪些区块中可能出现故障。以此方式,可以基于历史经验来以更加准确的方式确定存储设备中的可能出现故障的区块。
根据本公开的示例性实现方式,使用状态210可以包括多个区块中的各个区块对于访问请求的响应时间。将会理解,由于存储设备中的某些区域可能出现故障并导致针对该区域的访问请求被延迟。因而,响应时间可以是表示存储设备是否出现故障的一个重要指标。基于各个区块的响应时间,可以更为准确地判断在各个区块中是否存在故障。
根据本公开的示例性实现方式,使用状态进一步包括多个区块中的各个区块的故障标识符以及故障信息。通常而言,通过扫描存储设备的各个区块,可以获取各个区块的故障标识符。在此的故障标识符可以概括地指示该区域是否存在故障、故障是否可恢复等。进一步,对于不同的设备提供者而言,还可以定义专用字段来表示与某个型号的存储设备相关联的、用于描述故障的更多细节的故障信息。利用上述示例性实现方式,可以以更为精细的粒度描述故障的多方面的信息,进而以更为准确的方式确定故障的类型。
根据本公开的示例性实现方式,可以针对存储设备执行后台介质扫描(Background Media Scan,BMS)以获得使用状态。后台介质扫描是一种用于对存储设备进行扫描从而获取存储设备中的各个地址段的使用状态的方式。通过对存储设备执行扫描,可以获取如图5所示的用于指示存储设备的使用状态的扫描结果。
图5示意性示出了根据本公开的一个实现方式的针对存储设备执行后台介质扫描的扫描结果500的框图。在图5所示的扫描结果500中,列表示数据结构中的各个字节的编号,而行表示在一个字节中的各个比特的编号。如图5所示,扫描结果500的第16至23字节(如附图标记530所示)示出了存储设备中的逻辑块地址,该地址可以标识区块的位置。扫描结果500的第8至10个字节(如附图标记510所示)示出了逻辑块地址530处的区块的故障标识符510。具体地,故障标识符510还可以包括:再分配状态、感测键、附加感测代码、附加感测代码限定符(additional sense code qualifier)等细化的信息。扫描结果的第11至15字节(如附图标记520所示)示出了提供者特定字段(vendor specific field),该字段由存储设备的提供者自定义以用于描述有关故障的更多信息。本领域技术人员可以查阅有关BMS扫描结果的定义来获取有关上述维度的具体定义,在本公开的上下文中将不再赘述。
根据本公开的示例性实现方式,针对多个区块中的给定区块,如果区块的响应时间高于预定阈值,确定多个区块中的各个区块的各自的特征。由于响应时间是指示区块是否存在潜在故障的关键指标,因而可以仅在响应时间较高时才触发后续的确定特征的操作。以此方式,可以更有效地检测故障区块。
根据本公开的示例性实现方式,可以针对多个区块中的每个区块来逐一确定每个区块的特征。具体地,针对给定区块,可以基于给定区块的故障标识符以及故障信息,确定给定区块的给定特征。由于故障标识符和故障信息是指示故障的关键指标,利用上述示例性实现方式,可以更加有效并且准确地确定故障区块。在下文中,将参见图6描述有关特征的更多细节。
图6示意性示出了根据本公开的一个实现方式的区块的特征的数据结构600的框图。如图6所示,特征可以采用矢量方式表示,并且矢量中的每个维度可以描述使用状态中的一个方面。根据本公开的示例性实现方式,特征可以包括五个维度:再分配状态610、感测键620、附加感测代码630、限定码640、提供者特定字段650。将会理解,图6仅示意性示出了用于表示特征的一个示例数据结构600。根据本公开的示例性实现方式,还可以采用其他数据结构。在一个示例中,用于描述特征的矢量可以包括更多或者更少的维度。例如,矢量还可以包括有关区块所在的存储设备的信息。
根据本公开的示例性实现方式,可以基于多个存储设备中包括的多个区块的特征以及多个设备中包括的多个区块中的故障,训练关联关系430。图7示意性示出了根据本公开的一个实现方式的基于历史数据训练获取区块的特征和故障之间的关联关系的框图700。如图7所示,可以获取存储系统100中的多个区块的历史使用状态710,并且基于历史使用状态710来确定多个区块的历史特征720。基于历史信息可以确定历史故障730,在此历史故障730表示多个区块在所采集历史状态的时间段内是否出现故障。因而,基于历史特征720和历史故障730作为训练数据,可以训练关联关系430。在此,训练后的关联关系430可以表示特征与故障之间的关联关系。
返回图3中的框330,可以根据检测到一组目标区块220,调整将要针对存储系统100执行擦洗操作的擦洗间隔230。根据本公开的示例性实现方式,如果确定一组目标区块220满足预定条件,将擦洗间隔230设置为“立即执行”。例如,预定条件可以包括其中将要出现潜在故障的区块的阈值数量。例如果发现一组目标区块220中的区块数量达到阈值数量,则认为在存储系统100中存在较高风险,因而需要立即执行擦洗操作。根据本公开的示例性实现方式,预定条件还可以包括其中将要出现潜在故障的区块的容量。如果发现一组目标区块220所涉及的存储空间达到阈值容量,则需要立即执行擦洗操作。
在框340处,可以根据调整后的擦洗间隔,针对存储系统100中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块250。在此,针对一组目标区块220,可以立即执行局部擦洗操作240以标识故障区块。
在上文中已经参见图2至图7详细描述了针对存储系统100执行局部擦洗操作的具体示例。在下文中,将描述有关全局擦洗操作242的更多细节。返回图3,如果在框320处没有检测到其中将要出现潜在故障的目标区块,则表示存储系统100中的多个存储设备中的多个区块均处于正常状态。此时,并不需要针对存储系统100执行局部擦洗操作240,而是可以按照常规的擦洗操作的间隔来针对存储系统100执行全局擦洗。将会理解,由于存储设备的磨损水平将会影响存储设备出错的情况,因而还可以基于磨损水平来调整执行全局擦洗操作242的擦洗间隔。
图8示意性示出了根据本公开的一个实现方式的在存储设备100中出现故障的故障率的框图800。如图8所示,横轴示意性示出了在存储设备的整个生命周期的时间线,左侧表示生命周期的早期,而右侧示出了生命周期的晚期。图8中的纵轴示意性示出了存储设备中出现故障的概率。如曲线810所示,在存储设备投入使用的较早时间可能存在较高的故障率。随着存储设备不断被使用,在生命周期的中间时段则故障率较低。进一步,当存储设备的使用进入生命周期的晚期时,由于设备磨损等原因,故障率将再次升高。
目前已经提出了基于监视存储设备的使用状态来预测故障率中的变化点的技术方案。例如,可以基于最近一段时间内的读/写数据的错误率以及先前时间段内的读/写数据的错误率的比较,来确定曲线810中的两个变化点820和变化点830。基于两个变化点820和变化点830,可以将存储设备的生命周期划分为早期、中期和晚期三个时间段。根据本公开的示例性实现方式,可以确定多个区块的磨损水平,并基于磨损水平来确定存储设备正处于哪个时间段。
根据本公开的示例性实现方式,可以根据存储设备的IO工作负载来确定存储设备的磨损水平。将会理解,在此的IO工作负载是指已经针对存储设备执行了多少读/写操作。存储设备的生命周期与已经针对存储设备执行的总读/写数据的总量密切相关。对于一种特定类型的存储设备,针对读/写操作而言,分别存在相应的阈值总量。因而,可以基于有关读/写数据总量的统计,来确定与上文参见图8描述的两个变化点820和830所对应的读/写数据阈值。在存储系统100的运行期间,可以监视每个存储设备的读/写数据总量,并且将监视到的读/写数据总量与读/写数据阈值进行比较,以确定每个存储设备当前正处于早期、中期和晚期中的哪个时间段。
根据本公开的示例性实现方式,还可以基于存储设备的上电时间(power ontime)来确定存储设备的磨损水平。具体地,可以通过监视存储设备的自监测分析和报告(Self-Monitoring Analysis and Reporting Technology,SMART)属性来确定存储系统的上电时间。对于一种特定类型的存储设备而言,可以基于有关上电时间的统计来确定与上文参见图8描述的两个变化点820和830所对应的上电时间阈值。在存储系统100的运行期间,可以监视每个存储设备的上电时间,并且将监视到的上电时间与上电时间阈值进行比较,以确定每个存储设备当前正处于早期、中期和晚期中的哪个时间段。
根据本公开的示例性实现方式,如果磨损水平指示存储设备当前正处于生命周期的早期或者晚期,则可以降低擦洗间隔230。将会理解,如果存储设备正处于生命周期的早期或者晚期,则该存储设备出现故障的概率较高,因而降低擦洗间隔可以以更频繁的频率来执行擦洗操作。例如,如果常规的擦洗间隔为30天,在生命周期的早期和晚期期间,可以将擦洗间隔230设置为低于常规擦洗间隔,例如可以将其设置为20天。以此方式,可以以更高的频率扫描存储设备,进而提高发现故障的可能性。
根据本公开的示例性实现方式,如果确定磨损水平处于生命周期的中期,则可以提高擦洗间隔。随着存储设备的使用时间的提高,存储设备将从生命周期的早期进入中期,此时可以提高擦洗间隔230。例如,可以将擦洗间隔恢复至30天。又例如,如果存储设备长期处于稳定状态,还可以进一步提高擦洗间隔230。利用本公开的示例性实现方式,在存储系统110稳定运行的时间段内,通过提高擦洗间隔,可以降低执行擦洗操作的频率进而降低擦洗操作对于存储系统100的正常运行造成的额外开销。
在上文中已经参见图2至图8详细描述了如何确定存储系统100中的故障区块250。在已经确定故障区块250之后,还可以针对故障区块250进行进一步的处理,进而避免存储系统100中的数据丢失。根据本公开的示例性实现方式,可以从多个存储设备中选择不包括故障区块或者仅包括较少故障区块的空闲存储设备。进一步,可以将所述故障区块中的数据重建至所述空闲存储设备中的空闲区块。利用上述示例性实现方式,可以提高存储设备的可靠性并且避免存储系统中丢失数据。
图9示意性示出了根据本公开的一个实现方式的用于针对故障区块执行后续处理的方法900的流程图。如图9所示,在框910处,可以确定包括故障区块的故障设备,在此的故障设备是指故障区块所在的存储设备。在框920处,可以从存储系统100的故障设备以外的其他存储设备中选择空闲区块。将会理解,由于可能检测到多个故障区块,并且多个故障区块可能会分布在不同的存储设备中,因而可以优先地从不包括任何故障区块(或者仅包括较少故障区块)的存储设备中选择空闲区块。继而,在框930处,可以将故障区块中的数据重建至选择的空闲区块。
将会理解,故障区块250中的故障可以被进一步细分为不同的故障等级。例如,可以基于响应时间和/或故障标识符610中的其他参数来划分故障等级。根据本公开的示例性实现方式,当以响应时间作为划分故障的等级的依据时,如果响应时间变长但是仍然可以在可接受的时间范围内完成读写操作,则可以认为该故障属于较轻故障,并且可以以较低优先级来进行处理。如果响应时间变长并且已经到达“无响应”的程度,则可以认为该故障属于严重故障,并且需要优先处理。
根据本公开的示例性实现方式,对于较轻故障的情况,可以将故障区块250中的数据拷贝至空闲区块。此时,尽管故障区块250的响应时间变长,但是仍然能够执行读写操作,因而可以直接将故障区块250中的数据拷贝至正常区块处。
根据本公开的示例性实现方式,存储系统100可以是不包括冗余数据的存储系统,还可以是包括冗余数据的存储系统。在下文中,将分别描述相关的重建过程。当存储系统100是不包括冗余数据的存储系统时,可以基于拷贝方法来执行重建操作。如果故障区块已经被损坏并且出现“无响应”的情况,则此时拷贝操作将会失败并且故障区块250中的数据可能会面临丢失的风险。当存储系统100是包括冗余数据的存储系统时,还可以基于存储系统100中的与故障区块相关联的其他区块中的数据,将故障区块250中的数据恢复至空闲区块。例如,假设存储系统100是基于独立磁盘冗余阵列的存储系统,则此时可以基于其他正常存储设备中的数据来恢复故障区块250中的数据。
根据本公开的示例性实现方式,当存储设备中的故障区块的数量达到预定阈值时,还可以利用后备存储设备来替换该存储设备。以此方式,可以降低进一步存储系统100中出现数据损失的风险。
在上文中已经参见图2至图9详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现方式,提供了一种用于在存储系统中管理擦洗操作的装置。该装置包括:获取模块,配置用于针对存储系统包括的多个区块,获取多个区块的各自的使用状态;检测模块,配置用于基于多个区块的各自的使用状态,从多个区块中检测其中将要出现潜在故障的一组目标区块;调整模块,配置用于根据检测到一组目标区块,调整将要针对存储系统执行擦洗操作的擦洗间隔;以及执行模块,配置用于根据调整的擦洗间隔,针对存储系统中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块。
根据本公开的示例性实现方式,调整模块包括:设置模块,配置用于根据确定一组目标区块满足预定条件,将擦洗间隔设置为“立即执行”;以及执行模块包括:局部执行模块,配置用于针对一组目标区块立即执行局部擦洗操作以标识故障区块。
根据本公开的示例性实现方式,检测模块包括:特征确定模块,配置用于基于多个区块的各自的使用状态,确定多个区块中的各个区块的各自的特征;关联关系获取模块,配置用于获取多个区块中的故障与多个区块的各自的特征之间的关联关系;标识模块,配置用于以及基于多个区块的各自的特征和关联关系,从多个区块中标识其中将要出现潜在故障的一组目标区块。
根据本公开的示例性实现方式,使用状态包括多个区块中的各个区块对于访问请求的响应时间,其中特征获取模块包括:时间特征确定模块,配置用于针对多个区块中的给定区块,响应于区块的响应时间高于预定阈值,确定多个区块中的各个区块的各自的特征。
根据本公开的示例性实现方式,使用状态进一步包括多个区块中的各个区块的故障标识符以及故障信息;以及特征获取模块包括:故障特征确定模块,配置用于针对给定区块,基于给定区块的故障标识符以及故障信息,确定给定区块的给定特征。
根据本公开的示例性实现方式,关联关系获取模块包括:训练关联关系获取模块基于存储系统的多个存储设备中包括的多个区块的特征以及多个存储设备中包括的多个区块中的故障,训练关联关系。
根据本公开的示例性实现方式,调整模块包括:磨损确定模块,配置用于根据确定未检测到其中将要出现潜在故障的目标区块,确定多个区块的磨损水平;以及间隔调整模块,配置用于根据确定的磨损水平,调整擦洗间隔。
根据本公开的示例性实现方式,间隔调整模块包括:降低模块,配置用于根据确定磨损水平处于存储系统中的存储设备的生命周期的早期和晚期中的任一项,降低擦洗间隔;以及提高模块,配置用于根据确定磨损水平处于生命周期的中期,提高擦洗间隔。
根据本公开的示例性实现方式,执行模块包括:全局执行模块,配置用于根据调整的时间周期,针对多个区块执行全局擦洗操作,以标识故障区块。
根据本公开的示例性实现方式,进一步包括:选择模块,配置用于从存储系统中的多个存储设备中的包括故障区块的存储设备以外的其他存储设备中选择空闲存储设备;以及重建选择将故障区块中的数据重建至空闲存储设备中的空闲区块。
图10示意性示出了根据本公开的示例性实现方式的用于管理存储系统的设备1000的框图。如图所示,设备1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序指令或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300和900,可由处理单元1001执行。例如,在一些实现中,方法300和900可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实现中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序被加载到RAM 1003并由CPU 1001执行时,可以执行上文描述的方法300和900的一个或多个步骤。备选地,在其他实现中,CPU 1001也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现方式,提供了一种用于在存储系统中管理擦洗操作的设备,设备包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:针对存储系统包括的多个区块,获取多个区块的各自的使用状态;基于多个区块的各自的使用状态,从多个区块中检测其中将要出现潜在故障的一组目标区块;根据检测到一组目标区块,调整将要针对存储系统执行擦洗操作的擦洗间隔;以及根据调整的擦洗间隔,针对存储系统中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块。
根据本公开的示例性实现方式,根据检测到一组目标区块,调整将要针对存储系统执行擦洗操作的擦洗间隔包括:根据确定一组目标区块满足预定条件,将擦洗间隔设置为“立即执行”;以及根据调整的擦洗间隔,针对存储系统中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块包括:针对一组目标区块立即执行局部擦洗操作以标识故障区块。
根据本公开的示例性实现方式,基于多个区块的各自的使用状态,从多个区块中检测其中将要出现潜在故障的一组目标区块包括:基于多个区块的各自的使用状态,确定多个区块中的各个区块的各自的特征;获取多个区块中的故障与多个区块的各自的特征之间的关联关系;以及基于多个区块的各自的特征和关联关系,从多个区块中标识其中将要出现潜在故障的一组目标区块。
根据本公开的示例性实现方式,使用状态包括多个区块中的各个区块对于访问请求的响应时间,其中确定多个区块中的各个区块的各自的特征包括:针对多个区块中的给定区块,响应于区块的响应时间高于预定阈值,确定多个区块中的各个区块的各自的特征。
根据本公开的示例性实现方式,使用状态进一步包括多个区块中的各个区块的故障标识符以及故障信息;以及其中确定多个区块中的各个区块的各自的特征包括:针对给定区块,基于给定区块的故障标识符以及故障信息,确定给定区块的给定特征。
根据本公开的示例性实现方式,获取关联关系包括:基于存储系统的多个存储设备中包括的多个区块的特征以及多个存储设备中包括的多个区块中的故障,训练关联关系。
根据本公开的示例性实现方式,根据检测到一组目标区块,调整将要针对存储系统执行擦洗操作的擦洗间隔包括:根据确定未检测到其中将要出现潜在故障的目标区块,确定多个区块的磨损水平;以及根据确定的磨损水平,调整擦洗间隔。
根据本公开的示例性实现方式,根据确定的磨损水平,调整擦洗间隔包括以下中的任一项:根据确定磨损水平处于存储系统中的存储设备的生命周期的早期和晚期中的任一项,降低擦洗间隔;以及根据确定磨损水平处于生命周期的中期,提高擦洗间隔。
根据本公开的示例性实现方式,根据调整的擦洗间隔,针对存储系统中的多个区块中的至少一部分区块执行擦洗操作,以标识故障区块包括:根据调整的时间周期,针对多个区块执行全局擦洗操作,以标识故障区块。
根据本公开的示例性实现方式,该动作进一步包括:从存储系统中的多个存储设备中的包括故障区块的存储设备以外的其他存储设备中选择空闲存储设备;以及将故障区块中的数据重建至空闲存储设备中的空闲区块。
根据本公开的示例性实现方式,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现方式,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (16)
1.一种用于在存储系统中管理擦洗操作的方法,所述方法包括:
获取所述存储系统中的多个区块各自的使用状态,
其中所述多个区块分别来自于相同或不同的存储设备,
其中区块的使用状态包括所述区块的第一多个状态和所述区块所属的存储设备的第二多个状态;
从所述多个区块各自的使用状态确定所述多个区块各自的特征;
基于所述多个区块的历史使用状态确定所述多个区块的历史特征,基于所述多个区块的所述历史特征和表示所述多个区块在所采集所述历史使用状态的时间段内是否出现故障的历史故障,训练所述多个区块中的故障与所述多个区块的各自的特征之间的关联关系;
基于所述多个区块的各自的特征和所述关联关系,从所述多个区块中检测其中将要出现潜在故障的一组目标区块,
其中所述区块的特征包括反映与所述第一多个状态和所述第二多个状态的组合的至少一个子集相对应的值的多维数据结构,所述值对应于所述区块;
根据检测到的所述一组目标区块,调整将要针对所述存储系统执行擦洗操作的擦洗间隔;以及
根据调整的所述擦洗间隔,针对所述存储系统中的所述多个区块中的至少一部分区块执行所述擦洗操作;以及
基于所述擦洗操作,标识所述多个区块中的故障区块。
2.根据权利要求1所述的方法,其中根据检测到所述一组目标区块,调整将要针对所述存储系统执行擦洗操作的擦洗间隔包括:根据确定所述一组目标区块满足预定条件,将所述擦洗间隔设置为“立即执行”;以及
其中根据调整的所述擦洗间隔,针对所述存储系统中的多个区块中的至少一部分区块执行所述擦洗操作包括:针对所述一组目标区块立即执行局部擦洗操作。
3.根据权利要求1所述的方法,其中所述多个区块的所述使用状态包括所述多个区块中的各个区块对于访问请求的响应时间,
其中确定所述多个区块中的各个区块的特征包括:
针对所述多个区块中的给定区块,响应于所述给定区块的响应时间高于预定阈值,确定所述给定区块的特征。
4.根据权利要求3所述的方法,其中所述多个区块的所述使用状态包括所述多个区块中的各个区块的故障标识符以及故障信息;以及
确定所述多个区块中的区块的所述特征还包括:
针对所述给定区块,基于所述给定区块的故障标识符以及故障信息,确定所述给定区块的所述特征。
5.根据权利要求1所述的方法,其中根据检测到所述一组目标区块,调整将要针对所述存储系统执行擦洗操作的擦洗间隔包括:
根据确定未检测到其中将要出现潜在故障的目标区块,确定所述多个区块的磨损水平;以及
根据确定的所述磨损水平,调整所述擦洗间隔。
6.根据权利要求5所述的方法,其中根据确定的所述磨损水平,调整所述擦洗间隔包括以下中的任一项:
根据确定所述存储系统中的存储设备的生命周期的早期和晚期中的任一项中的所述磨损水平,降低所述擦洗间隔;以及
根据确定所述存储系统中的所述存储设备的所述生命周期的中期中的所述磨损水平,提高所述擦洗间隔。
7.根据权利要求5所述的方法,其中根据调整的所述擦洗间隔,针对所述存储系统中的多个区块中的至少一部分区块执行所述擦洗操作包括:
根据调整的所述擦洗间隔,针对所述多个区块执行全局擦洗操作。
8.根据权利要求1所述的方法,进一步包括:
从所述存储系统中的多个存储设备中的包括所述故障区块的存储设备以外的其他存储设备中选择空闲存储设备;以及
将所述故障区块中的数据重建至所述空闲存储设备中的空闲区块。
9.一种用于在存储系统中管理擦洗操作的设备,所述设备包括:
至少一个处理器;
易失性存储器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行动作,所述动作包括:
获取所述存储系统中的多个区块各自的使用状态,
其中所述多个区块分别来自于相同或不同的存储设备,
其中区块的使用状态包括所述区块的第一多个状态和所述区块所属的存储设备的第二多个状态;
从多个区块各自的使用状态确定所述多个区块的各自的特征;
基于所述多个区块的历史使用状态确定所述多个区块的历史特征,基于所述多个区块的所述历史特征和表示所述多个区块在所采集所述历史使用状态的时间段内是否出现故障的历史故障,训练所述多个区块中的故障与所述多个区块的各自的特征之间的关联关系,
基于所述多个区块的各自的特征和所述关联关系,从所述多个区块中检测其中将要出现潜在故障的一组目标区块,
其中所述区块的特征包括反映与所述第一多个状态和所述第二多个状态的组合的至少一个子集相对应的值的多维数据结构,所述值对应于所述区块;
根据检测到所述一组目标区块,调整将要针对所述存储系统执行擦洗操作的擦洗间隔;以及
根据调整的所述擦洗间隔,针对所述存储系统中的多个区块中的至少一部分区块执行所述擦洗操作;以及
基于所述擦洗操作,标识所述多个区块中的故障区块。
10.根据权利要求9所述的设备,其中根据检测到所述一组目标区块,调整将要针对所述存储系统执行擦洗操作的擦洗间隔包括:
根据确定所述一组目标区块满足预定条件,将所述擦洗间隔设置为“立即执行”;以及
其中根据调整的所述擦洗间隔,针对所述存储系统中的多个区块中的至少一部分区块执行所述擦洗操作包括:
针对所述一组目标区块立即执行局部擦洗操作。
11.根据权利要求9所述的设备,其中所述多个区块的所述使用状态包括所述多个区块中的各个区块对于访问请求的响应时间,其中确定所述多个区块中的各个区块的特征包括:
针对所述多个区块中的给定区块,响应于所述给定区块的响应时间高于预定阈值,确定所述给定区块的特征。
12.根据权利要求11所述的设备,其中所述多个区块的所述使用状态包括多个区块中的各个区块的故障标识符以及故障信息;以及
确定所述多个区块中的区块的所述特征包括:
针对所述给定区块,基于所述给定区块的故障标识符以及故障信息,确定所述给定区块的所述特征。
13.根据权利要求9所述的设备,其中根据检测到所述一组目标区块,调整将要针对所述存储系统执行擦洗操作的擦洗间隔包括:
根据确定未检测到其中将要出现潜在故障的目标区块,确定所述多个区块的磨损水平;以及
根据确定的所述磨损水平,调整所述擦洗间隔。
14.根据权利要求13所述的设备,其中根据确定的所述磨损水平,调整所述擦洗间隔包括以下中的任一项:
根据确定所述存储系统中的存储设备的生命周期的早期和晚期中的任一项中的所述磨损水平,降低所述擦洗间隔;以及
根据确定所述存储系统中的所述存储设备的所述生命周期的中期中的所述磨损水平,提高所述擦洗间隔。
15.根据权利要求13所述的设备,其中根据调整的所述擦洗间隔,针对所述存储系统中的多个区块中的至少一部分区块执行所述擦洗操作包括:
根据调整的所述擦洗间隔,针对所述多个区块执行全局擦洗操作。
16.一种计算机程序产品,包括计算机程序,所述计算机程序被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行根据权利要求1-8中的任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910871009.2A CN112506420B (zh) | 2019-09-16 | 2019-09-16 | 在存储系统中管理擦洗操作的方法、设备和产品 |
| US16/836,715 US11669262B2 (en) | 2019-09-16 | 2020-03-31 | Method, device, and product for managing scrubbing operation in storage system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910871009.2A CN112506420B (zh) | 2019-09-16 | 2019-09-16 | 在存储系统中管理擦洗操作的方法、设备和产品 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112506420A CN112506420A (zh) | 2021-03-16 |
| CN112506420B true CN112506420B (zh) | 2025-03-25 |
Family
ID=74868241
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910871009.2A Active CN112506420B (zh) | 2019-09-16 | 2019-09-16 | 在存储系统中管理擦洗操作的方法、设备和产品 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11669262B2 (zh) |
| CN (1) | CN112506420B (zh) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010160816A (ja) * | 2010-03-29 | 2010-07-22 | Toshiba Corp | 半導体記憶装置の制御方法 |
| JP2013137792A (ja) * | 2013-02-28 | 2013-07-11 | Toshiba Corp | 電子機器及びその制御方法 |
| CN109960598A (zh) * | 2019-03-18 | 2019-07-02 | 华中科技大学 | 一种磁盘扇区故障检测方法、装置及设备 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
| US7580956B1 (en) * | 2006-05-04 | 2009-08-25 | Symantec Operating Corporation | System and method for rating reliability of storage devices |
| US8248831B2 (en) * | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
| US7954021B2 (en) * | 2009-10-23 | 2011-05-31 | International Business Machines Corporation | Solid state drive with flash sparing |
| US9129699B2 (en) * | 2011-04-28 | 2015-09-08 | Hitachi, Ltd. | Semiconductor storage apparatus and method including executing refresh in a flash memory based on a reliability period using degree of deterioration and read frequency |
| US9104604B2 (en) * | 2013-02-26 | 2015-08-11 | International Business Machines Corporation | Preventing unrecoverable errors during a disk regeneration in a disk array |
| US8953265B1 (en) * | 2014-07-24 | 2015-02-10 | Emc Corporation | Method and system for monitoring disk reliability with global disk scrubbing |
| US10353598B2 (en) * | 2014-10-06 | 2019-07-16 | Sandisk Technologies Llc | System and method for refreshing data in a memory device |
| US10599504B1 (en) * | 2015-06-22 | 2020-03-24 | Amazon Technologies, Inc. | Dynamic adjustment of refresh rate |
| US10310770B2 (en) * | 2015-11-05 | 2019-06-04 | Hitachi, Ltd. | Nonvolatile memory device, and storage apparatus having nonvolatile memory device |
| TW201730764A (zh) * | 2016-02-18 | 2017-09-01 | 群暉科技股份有限公司 | 用來於一儲存系統中進行資料擦洗管理之方法與裝置 |
| EP3507695A4 (en) * | 2016-09-05 | 2020-05-06 | Telefonaktiebolaget LM Ericsson (publ) | DETERMINING THE DEFECTIVE STATE OF A STORAGE DEVICE |
| US10803972B2 (en) * | 2017-03-06 | 2020-10-13 | Hitachi, Ltd. | Flash memory module, storage system, and method of controlling flash memory |
| US10649843B2 (en) * | 2018-08-03 | 2020-05-12 | Western Digital Technologies, Inc. | Storage systems with peer data scrub |
| US11450348B2 (en) * | 2019-01-31 | 2022-09-20 | Marvell Asia Pte, Ltd. | Health management for magnetic storage media |
| KR102743344B1 (ko) * | 2019-07-09 | 2024-12-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
-
2019
- 2019-09-16 CN CN201910871009.2A patent/CN112506420B/zh active Active
-
2020
- 2020-03-31 US US16/836,715 patent/US11669262B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010160816A (ja) * | 2010-03-29 | 2010-07-22 | Toshiba Corp | 半導体記憶装置の制御方法 |
| JP2013137792A (ja) * | 2013-02-28 | 2013-07-11 | Toshiba Corp | 電子機器及びその制御方法 |
| CN109960598A (zh) * | 2019-03-18 | 2019-07-02 | 华中科技大学 | 一种磁盘扇区故障检测方法、装置及设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20210081130A1 (en) | 2021-03-18 |
| US11669262B2 (en) | 2023-06-06 |
| CN112506420A (zh) | 2021-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11030038B2 (en) | Fault prediction and detection using time-based distributed data | |
| US10147048B2 (en) | Storage device lifetime monitoring system and storage device lifetime monitoring method thereof | |
| US20200004435A1 (en) | Determining when to replace a storage device by training a machine learning module | |
| CN108536548B (zh) | 一种磁盘坏道的处理方法、装置及计算机存储介质 | |
| US10223224B1 (en) | Method and system for automatic disk failure isolation, diagnosis, and remediation | |
| CN111104051B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
| US20150015981A1 (en) | System and method for disk sector failure prediction | |
| CN111104293A (zh) | 用于支持盘故障预测的方法、设备和计算机程序产品 | |
| US10114716B2 (en) | Virtual failure domains for storage systems | |
| US9239746B2 (en) | Method of, and apparatus for, detection of degradation on a storage resource | |
| CN109726036B (zh) | 一种存储系统中的数据重构方法和装置 | |
| US20220100389A1 (en) | Method, electronic device, and computer program product for managing disk | |
| US20210182164A1 (en) | Systems and methods for providing data recovery recommendations using a.i. | |
| CN112148204A (zh) | 用于管理独立冗余盘阵列的方法、设备和计算机程序产品 | |
| JP2018092333A (ja) | 故障情報管理プログラム、起動試験方法及び並列処理装置 | |
| Huang et al. | Characterizing disk health degradation and proactively protecting against disk failures for reliable storage systems | |
| US10847245B2 (en) | Failure indicator predictor (FIP) | |
| US8984333B2 (en) | Automatic computer storage medium diagnostics | |
| US11947406B2 (en) | Method, electronic device, and computer program product for memory fault prediction | |
| US10776240B2 (en) | Non-intrusive performance monitor and service engine | |
| CN112506420B (zh) | 在存储系统中管理擦洗操作的方法、设备和产品 | |
| US12387135B2 (en) | Model training method, failure determining method, electronic device, and program product | |
| CN114647524A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
| US11892920B2 (en) | Method, electronic device, and program product for failure handling | |
| CN119166584B (zh) | 基于fpga的串行总线通信在线重构方法 |
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 |