CN114721585A - 存储管理方法、设备和计算机程序产品 - Google Patents

存储管理方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN114721585A
CN114721585A CN202110013590.1A CN202110013590A CN114721585A CN 114721585 A CN114721585 A CN 114721585A CN 202110013590 A CN202110013590 A CN 202110013590A CN 114721585 A CN114721585 A CN 114721585A
Authority
CN
China
Prior art keywords
slice
disk
spare
storage
raid
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.)
Pending
Application number
CN202110013590.1A
Other languages
English (en)
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 CN202110013590.1A priority Critical patent/CN114721585A/zh
Priority to US17/314,416 priority patent/US11507458B2/en
Publication of CN114721585A publication Critical patent/CN114721585A/zh
Pending legal-status Critical Current

Links

Images

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/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/1088Reconstruction on already foreseen single or plurality of spare disks
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例提供了一种存储管理方法、电子设备和计算机程序产品。该方法包括从存储系统的多个盘选择第一盘作为锚点盘;从多个盘向与第一盘相关联的独立盘冗余阵列(RAID)分配第一备用切片,第一RAID至少包括从第一盘分配的切片;及如果检测到多个盘存在不可访问盘,基于对第一RAID的第一备用切片的分配来确定针对不可访问盘的切片的备用切片,以用于针对不可访问盘的数据重建。这可以确保总是能够成功为不可访问盘的切片确定备用切片,并且不会引入额外的时间复杂度。

Description

存储管理方法、设备和计算机程序产品
技术领域
本公开的实施例一般地涉及存储系统,并且更特别地,涉及一种存储管理方法、电子设备和计算机程序产品。
背景技术
独立磁盘冗余阵列(RAID)技术是一种数据存储虚拟化技术,其通常用于提供数据冗余、性能提升等多种特性。随着RAID技术的发展,RAID在盘的切片级别上而不是在盘的级别上执行数据读取和写入。具体而言,存储系统的多个盘中的每个盘被分为多个切片(slice)。基于不同盘的多个切片来创建RAID,以通过使用RAID算法向其读取或写入数据。通常,存储系统中会预留一些切片作为备用空间以应对故障的发生。这样,当某个盘发生故障时,可以从备用空间分配切片用于故障盘的数据,从而避免用户数据的丢失。
目前,在利用备用空间时存在复杂度高,难以实现最优备用等问题。因此,仍然需要更加优化的备用空间管理方案。
发明内容
本公开的实施例涉及一种存储管理方案。
在本公开的第一方面,提供了一种存储管理方法。该方法包括:从存储系统的多个盘选择第一盘作为锚点盘;从多个盘向与第一盘相关联的独立盘冗余阵列(RAID)分配第一备用切片,第一RAID至少包括从第一盘分配的切片;及如果检测到多个盘存在不可访问盘,基于对第一RAID的第一备用切片的分配来确定针对不可访问盘的切片的备用切片,以用于针对不可访问盘的数据重建
在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器以及存储有计算机程序指令的至少一个存储器。至少一个存储器和所述计算机程序指令被配置为,与所述至少一个处理器一起,使得所述电子设备执行动作。动作包括从存储系统的多个盘选择第一盘作为锚点盘;从多个盘向与第一盘相关联的独立盘冗余阵列(RAID)分配第一备用切片,第一RAID至少包括从第一盘分配的切片;及如果检测到多个盘存在不可访问盘,基于对第一RAID的第一备用切片的分配来确定针对不可访问盘的切片的备用切片,以用于针对不可访问盘的数据重建
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在计算机可读存储介质上并且包括计算机可执行指令,计算机可执行指令在由设备的处理器执行时使设备执行第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了本公开的实施例可以在其中被实现的示例存储环境的框图;
图2示出了在存储系统中为不可访问盘分配备用切片的示例;
图3示出了根据本公开的一些实施例的存储管理方法的流程图;
图4示出了根据本公开的一些实施例的锚点盘的备用切片的分配的示例;
图5示出了根据本公开的一些实施例的为锚点盘执行备用切片确定的示例;
图6A示出了根据本公开的一些实施例的为普通盘执行备用切片确定的示例;
图6B示出了根据本公开的一些实施例的为普通盘执行备用切片确定的另一示例;
图7A示出了根据本公开的一些实施例的在添加新盘时对切片分配的调整的示例;
图7B示出了根据本公开的一些实施例的在添加新盘时对切片分配的调整的另一示例;
图8A示出了根据本公开的一些实施例的在数据重建后添加新盘时对备用切片的调整的示例;
图8B示出了根据本公开的一些实施例的在数据重建后添加新盘时对备用切片的调整的另一示例;以及
图9示出了可以被用来实施本公开的实施例的设备的示意性框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
图1示出了本公开的实施例可以在其中被实现的示例性存储环境100的示意图。如图1所示,存储环境100包括存储管理系统110和存储系统120。
存储系统120包括多个盘122-1、122-2、122-3、……、122-N(N是大于等于1的整数)等等,以用于提供存储环境100的物理存储空间。为便于讨论,这些盘有时被统称为或分别称为盘122。盘122可以包括各种类型的具有存储功能的设备,包括但不限于,硬盘(HDD)、固态盘(SSD)、可移除盘、紧致盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘、串行附接小型计算机系统接口(SCSI)盘(SAS)、串行高级技术附接(SATA)盘、任何其他磁性存储设备和任何其他光学存储设备、或它们的任何组合。存储管理系统110被配置为控制和管理存储系统120,包括对存储系统120的存储空间分配,数据访问,数据重建,数据备份,等等。
在基于独立磁盘冗余阵列(RAID)的存储系统中,可以利用各种RAID算法来组织多个盘122。在一些实施例中,为了获得更高的可靠性,可以限制是数据重建过程中涉及的盘的数目。因此,可以存储系统120中有限数目的多个盘确定为一个RAID弹性集(RAIDResiliency Set,简称为RRS)。可以在RRS上创建多个RAID。例如,每个RRS可以被设置为包括25个盘。如果存储系统120包括的盘122的数目超过25个,可以再创建多个RRS。不同RRS之间的盘122的数据重建是分离的。
通常,每个盘122被划分为多个切片(slice)或多个盘区(extent)124。这样的划分可以是逻辑上的划分。切片124的大小取决于盘122的容量和划分方式。例如,一个盘切片124可以是4GB。当然,根据实际部署需要,其他盘区大小也是可能的。
可以在切片124级别上被构建RAID。在切片级别上构建的RAID有时也称为RAID块或者Uber,其也可以按常规RAID技术进行数据存储和访问。每个RAID被分配来自不同盘122的多个切片124用于存储信息,包括用户数据以及可能还存储校验信息。在基于RRS的示例实施例中,为每个RAID分配的切片可以来自同一RRS中的不同盘122。
取决于RAID的类型,每个RAID所包括的切片的数目取决于RAID的类型,以提供不同级别的数据冗余和恢复能力。RAID的类型包括RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10等。在图2以及下文中,出于解释说明的目的,以4+1RAID 5类型来讨论本公开的示例实施例。RAID 5包括用于存储用户数据和校验信息的5个切片124。如果切片124为4GB,RAID 5的大小为16GB。然而,应当理解,本公开的示例实施例可以类似地应用于任何其他类型的RAID。
如果存储系统120的一个盘122由于故障或者被拔出而变为离线,该盘122成为不可访问盘。如果不可访问盘中的一个或多个盘被分配给一个或多个RAID用于存储,那么这些RAID可以被标记为降级RAID。取决于RAID的类型,降级RAID可能还可以继续被用于数据存储。例如,RAID 5支持在它的一个切片位于不可访问盘的情况下仍然继续工作。
通常,存储系统120中还预留一定量的备用空间,这部分备用空间是空闲的,不被分配给RAID用于存储。在存储系统120存在不可访问盘时,为了确保数据不丢失,存储管理系统110会启动备用任务,从备用空间中为不可访问盘122中的切片确定备用切片以用于数据重建。要确定备用切片的切片是不可访问盘122中被分配给RAID用于存储信息的那些切片。在一些实现中,在某个盘122变为离线时,存储管理系统110会启动备用计时器。在备用计时器的一个防反跳时间到期后,存储管理系统110启动备用任务。
应当理解,图1仅示意性地示出了存储环境100中的与本公开的实施例相关的单元、模块或组件。图1中示出的各个组件仅是一种示例存储系统管理架构,在其他基于RAID的存储系统中,可能存在其他架构划分方式,用于其他功能的其他单元、模块或组件,等等。因此,本公开的实施例不限于图1所描绘的具体设备、单元、模块或组件,而是一般性地适用于任何基于RAID技术的存储系统。图1中示出的各个组件(除盘122之外)可以被实现在单个或多个计算设备中。
根据常规方案,在执行备用任务时,以循环(round-robin)方式,从备用空间中为不可访问盘中的切片逐个确定备用切片。示例的备用切片确定过程如下。
对于不可访问盘中被分配给RAID用于存储信息的一个切片,从备用空间中选择一个空闲切片作为备用切片。该备用切片需要来自与这个RAID的其他切片不同的目的盘,从而确保在数据重建后该RAID的多个切片仍然分布在不同的盘中。随着备用切片的分配,对于不可访问盘中的某个切片(例如,DSj),可能无法找到一个目的盘,该目的盘存在空闲切片并且没有切片被分配给包括DSj的RAID(假设被表示为RAIDj)。在这种情况下,需要重新回溯循环过程,以便找到一个备用切片DSi及其相关联的RAIDi。所要找到的DSi和RAIDi要满足两个条件。首先,DSi可以被分配作为DSj的备用切片。也就是说,DSi所在的盘中没有其他切片被分配给RAIDj。其次,可以从其他盘中确定一个备用切片用于替换DSj,作为RAIDi中的切片的备用切片。
例如,假设存储系统有10个盘,分别表示为D0、D1、D2、…、D9,在其中创建的RAID类型为RAID 5。如果盘D5离线,降级RAIDi包括从盘D1、D2、D3、D4和D5分配的切片。为RAIDi中从D5分配的那块切片分配来自盘D0的备用切片。另一个降级RAIDj包括从盘D5、D6、D7、D8和D9分配的切片。在为RAIDj中从D5分配的那个切片选择备用切片时,只有盘D7上存在空闲切片。因为RAIDj已经包括从D7分配的切片,D7上的空闲切片不能被选择作为备用切片。通过回溯备用历史,发现RAIDi的切片可以被备用至D7,并且RAIDj可以使用先前为RAIDi分配的来自盘D0的备用切片。因此,重新从盘D7上为RAIDi分配备用切片,并且将盘D0上的空闲切片分配给RAIDj。
根据常规的基于循环的备用算法,可能会导致无法为一些降级RAID确定备用切片,即使当前存储系统仍然有足够的空闲切片。虽然可以通过向前回退备用步骤的方法来进行补救,但仍然无法解决所有情况。
以图2为例进行说明。在图2所示的存储系统200中,假设存储10个盘,分别表示为D0、D1、D2、…、D9。每个盘被划分为10个切片S0、S1、S2、……、S9。为了方便描述,以盘号和切片号DS(X,Y)来指示盘X中的切片Y。例如,DS(0,0)指的是盘D0中的切片S0,DS(2,3)指的是盘D2中的切片S3,以此类推。在切片上标注的Ux指示该切片是分配给RAIDx用于存储信息的切片。
在图2中,假设盘D5由于故障不可访问。通过备用过程,为RAIDi中位于盘D5上的切片Ui分配了盘D6中的备用切片DS(6,8),并且为RAIDj中位于盘D5上的切片Uj分配了盘D1中的备用切片DS(1,9)。在为RAIDk中位于盘D5上的切片Uk确定备用切片时,只有盘D7上的切片DS(7,9)是空闲的。但切片DS(7,9)不能被选择,因为盘D7上的切片DS(7,7)已经被分配给了RAIDk用于信息存储。在这种情况下,如果只回退一步,去分析RAIDj和切片DS(1,9),仍然无法为RAIDk找到备用切片,因为盘D7上的空闲切片也不能被分配给RAIDk。
此时,在图2的示例中,只能将备用过程回退两个步骤,才可以发现可以将盘D7上的空闲切片DS(7,9)分配给RAIDi,将盘D6中的空闲切片DS(6,8)分配给RAIDj,这样最后才可以将盘D1上的切片DS(1,9)分配给RAIDk。
根据常规的循环方法,在一些特殊情况下,可能还需要回退3个甚至更多个步骤才可以确定出最优的备用切片分配方案。假设存储系统(或受限用于数据重建的RRS)中的存储盘的数目为N,每个RAID要使用的切片的数目为S,要回退的步骤的数目是M(M的范围是[1,S-1])。查看备用历史的时间复杂度将是O(SM)。总的时间复杂度是O(SM)+O(S*N)。因此,如果要回退一个以上的步骤,时间复杂度和计算复杂度往往是无法接受的。
本申请的发明人尝试在一些常规存储系统中模拟所有可能的循环备用步骤的组合。在RRS的最大盘数目为25个并且存储系统的总盘数目例如为428、856、1712、3424、6848等不同情况中,发明人发现,存在一定数目循环备用组合无法通过仅回退一个步骤就能够找到最优备用切片分配,从而导致备用切片分配失败。
因此,本公开提出了一种改进的存储管理方案。根据该方案,在存储系统的多个盘中确定锚点盘。与锚点盘相关联的RAID被提前分配备用切片。对锚点盘的备用切片的直接分配,可以应对在为不可访问盘确定备用切片时的极端情况,从而确保总是能够成功为不可访问盘的切片确定备用切片,并且不会引入额外的时间复杂度。此外,这样的备用切片的分配也不要求比常规存储系统所需要的更多备用空间,不会引入额外的空间复杂度。
图3示出了根据本公开的实施例的存储管理方法300的流程图。在一些实施例中,方法300可以被实现在存储管理系统110处。为便于描述,在下文中将参考图1的存储环境100。
在框310,存储管理系统110从存储系统120的多个盘122中选择第一盘作为在锚点盘。在一些实施例中,对于具有盘数目限制的RRS,可以从RRS的多个盘122中选择针对RRS的锚点盘。
在一些实施例中,锚点盘可以被选择为具有较高的存储容量的盘122。存储管理系统110可以基于多个盘122的相应存储容量来选择第一盘作为锚点盘,使所选择的第一批的存储容量大于至少一个其他盘的存储容量。在一个示例中,具有最大存储容量的盘122可以被选择作为锚点盘。在其他示例中,存储容量排序较靠前的盘,例如存储容量第二大、第三大的盘122也可以被选择作为锚点盘。在一些情况下,可以从存储容量大于预定阈值的盘122中选择锚点盘。较高的存储容量有利于从在锚点盘上预留更多的空闲切片用于在出现不可访问盘的情况下的备用切片确定过程。
在框320,存储管理系统110从多个盘122向与被选择作为锚点盘的第一盘相关联的RAID分配备用切片(有时称为“第一备用切片”)。与作为锚点盘的第一盘相关联的RAID指的是至少包括从第一盘分配的切片的RAID。由于第一盘相关联的RAID被分配有备用切片,因此也可以称为直接可备用RAID。
备用切片的分配可以是在存储系统120中创建RAID时执行。在为RAID分配原本用于信息存储所需要的存储切片外,如果该RAID与锚点盘相关联,还为该RAID分配备用切片。在一些实施例中,为与第一盘相关联的RAID分配的备用切片可以与为RAID盘分配用于存储信息的多个切片位于不同的盘122。在一些实施例中,与第一盘相关联的RAID可以包括从第一盘分配用于存储信息的存储切片。例如,对于RAID 5,其包括5个存储切片用于存储信息(包括用户数据和校验信息),其中的一个切片可以来自第一盘。对于这样的RAID 5,可以从多个盘中的其他盘为该RAID 5分配备用切片,该备用切片与RAID 5的5个存储切片均位于不同盘122。在一些实施例中,与第一盘相关联的RAID可以包括从第一盘分配的备用切片。为该RAID分配用于存储信息的存储切片可以来自除第一盘之外的其他盘。
图4示出了根据本公开的一些实施例的在存储系统120中针对锚点盘的备用切片的分配的示例。假设存储系统120包括8个盘,分别被表示为D0、D1、D2、……D7。每个盘被划分为切片,分别被表示为S0、S1、S2、……等等。每个盘划分的切片的数目取决于切片的单位大小和盘本身的存储容量。与图2类似,在描述图4以及后续类似附图时,为了方便,以盘号和切片号DS(X,Y)来指示盘X中的切片Y。例如,DS(0,0)指的是盘D0中的切片S0,DS(2,3)指的是盘D2中的切片S3,以此类推。在切片上标注的Ux指示该切片是分配给RAIDx的切片,其可以是用于存储信息的存储切片或是备用切片。在图4的示例中,以4+1RAID 5为例。
在图4中,假设盘D0被选择为锚点盘。除锚点盘之外的其他盘,例如盘D1至D7可以被称为普通盘。针对由“U1”标注的RAID1,为其分配锚点盘D0中的切片D(0,0)作为备用切片。因此,RAID1与锚点盘D0相关联,是直接可备用RAID。RAID1还被分配盘D1、D2、D3、D4和D5中的切片用于存储信息。
针对由“U2”、“U3”、“U5”和“U7”标注的RAID2、RAID3、RAID5和RAID7,由于从第一盘分别为这些RAID分配用于存储信息的存储切片DS(0,1)、DS(0,2)、DS(0,3)和DS(0,4),因此还分别为这些RAID分配备用切片DS(1,1)、DS(2,3)、DS(3,4)和DS(4,1)。
在一些实施例中,如果存在与锚点盘相关联的多个RAID,在多个盘122中为多个RAID分配备用切片时,使多个备用切片被基本上均匀分布在多个盘122中。在未用于数据重建时,备用切片是空闲的。如果将过多空闲的备用切片集中在单个或少数个盘中,可能导致这个或者这些盘被访问的频率降低,因为这个或这些盘没有存储有更多数据。因此,备用切片的均匀分布有助于使访问操作被尽可能均匀分布在多个盘122中。
在一些实施例中,在分配备用切片后,存储管理系统110还可以生成和存储针对与锚点盘相关联的RAID的元数据。元数据将与锚点盘相关联的RAID标记为直接可备用。元数据还可以标记分配给直接可备用RAID的备用切片。这样,在后续过程中,特别是在出现不可访问盘时需要确定备用切片时,存储管理系统110可以基于元数据来执行备用切片确定过程。
在框330,存储管理系统110检测多个盘122是否存在不可访问盘。可以由于故障或被拔走等原因,盘122可能变为离线。这样的盘是不可访问的。
如果没有不可访问盘,存储系统120可以继续正常运行。如果检测到所述多个盘存在不可访问盘,在框340,存储管理系统110基于对与锚点盘相关联RAID的第一备用切片的分配来确定针对不可访问盘的切片的备用切片,以用于针对不可访问盘的数据重建。
由于针对RAID的备用切片的先前分配,在需要针对不可访问盘执行数据重建时,备用切片的确定将变得简单。取决于不可访问盘是否是锚点盘,以及多个盘122中可用于备用的空闲切片的情况下,可以有不同的确定备用切片的方式。
在一些实施例中,如果存储系统120中出现不可访问盘,存储管理系统110确定受到不可访问盘的故障或离线影响的一个或多个降级(degraded)RAID。降级RAID指的是包括从不可访问盘分配用于存储信息的存储切片的RAID。由于从不可访问盘中的存储切片不再能够支持数据访问,降低RAID的数据访问可能会受到影响。需要针对降级RAID分配备用切片,以将原来存储在不可访问盘中的存储切片中的信息重建到备用切片。
下文结合图5、图6A和图6B来分别说明备用切片的确定的示例。
在一些实施例中,如果降级RAID是直接可备用RAID,即先前已经为降级RAID分配备用切片,存储管理系统110可以将先前分配给该RAID的备用切片直接确定为降级RAID在不可访问盘中所包括的存储切片的备用切片。存储管理系统110可以利用所创建的相关联的元数据来确定降级RAID是否是直接可备用RAID。作为直接可备用RAID,降级RAID可以包括从锚点盘分配用于信息存储的存储切片或可以包括从锚点盘分配的备用切片。
图5示出了根据本公开的一些实施例的为锚点盘执行备用切片确定的示例。该示例延续图4的备用切片分配。在图5的示例中,假设锚点盘D0不可访问。受到锚点盘D0不可访问的影响,RAID2、RAID3、RAID5和RAID7成为降级RAID。由于这些RAID都与锚点盘相关联,因此先前均已经为这些RAID分配备份切片。存储管理系统110直接将先前分配的备用切片DS(1,1)、DS(2,3)、DS(3,4)和DS(4,1)分别确定为这些RAID在不可访问的锚点盘中所包括的存储切片DS(0,1)、DS(0,2)、DS(0,3)和DS(0,4)的备用切片。
对于锚点盘D0中的切片DS(0,0),由于其是RAID1的备用切片,锚点D0的不可访问不会使RAID1降级。因此,不需要为RAID1确定备用切片。
图6A示出了根据本公开的一些实施例的为普通盘执行备用切片确定的示例。在图6A的示例中,假设普通盘D6是不可访问盘。RAID2、RAID3、RAID4、RAID6和RAID7分别包括从D6分配用于存储信息的存储切片DS(6,0)、DS(6,1)、DS(6,2)、DS(6,3)和DS(6,4)。因此,RAID2、RAID3、RAID4、RAID6和RAID7被标记为降级RAID。
由于RAID2、RAID3和RAID7是直接可备用RAID,它们先前被分配了备用切片DS(1,1)、DS(4,1)和DS(3,4)。因此,数据管理系统直接将已分配的备用切片确定为这些RAID在不可访问盘D6中所包括的存储切片DS(6,0)、DS(6,1)和DS(6,4)各自的备用切片。
在一些实施例中,如果降级RAID不是与锚点盘相关联的直接可备用RAID,存储管理系统110可以从存储系统120的备用空间中为降级RAID在不可访问盘上的存储切片确定备用切片。所确定的备用切片所处的盘与降级RAID中所包括的存储切片所处的盘要不相同。这样,使为降级RAID分配的切片分布在不同盘上。例如,在图6A的示例中,针对不是直接可备用的降级RAID6,存储管理系统110确定锚点盘D0的空闲切片DS(0,5),作为RAID6的存储切片DS(6,2)的备用切片。在
在一些实施例中,如果存储系统120的多个盘122中没有未分配的空闲切片可分配作为降级RAID中受影响的存储切片的备用切片,如果锚点盘不是不可访问盘,存储管理系统110还可以基于先前分配给与锚点盘相关联的RAID的备用切片来为降级RAID确定备用切片。多个盘122中没有未分配的空闲切片可分配给降级RAID,这可能是因为没有空闲切片,也可能是因为存在空闲切片的盘由于切片的分配重复而不允许为降级RAID分配切片。在这种情况中,由于降级RAID没有直接可用的备用切片,这意味着降级RAID没有包括从锚点盘分配的切片,因此从锚点盘为该降级RAID分配备用切片总是允许的。
在一个实施例中,如果先前分配给与锚点盘相关联的RAID的备用切片来自锚点盘,存储管理系统110可以将锚点盘中已分配的备用切片确定为降级RAID中受影响的存储切片的备用切片,虽然该备用切片先前被分配给降级RAID之外的其他RAID。例如,在图6A中,可以为RAID4中位于不可访问盘D6上的切片DS(6,2)分配锚点盘中的DS(0,0)作为备用切片,虽然DS(0,0)先前被分配作为RAID1的备用切片。
在一些示例中,在多个盘122中没有未分配的空闲切片可分配作为可分配作为降级RAID中受影响的存储切片的备用切片的情况下,如果先前分配给与锚点盘相关联的RAID的备用切片来自锚点盘以外的盘122,存储管理系统110可以通过信息迁移(例如,通过复制操作)来使得能够从锚点盘为降级RAID分配备用切片。在这种情况下,具有备用切片的盘122可能是由于切片的分配重复,例如已经有一个切片被分配给降级RAID用于存储信息,因此不能再向降级RAID分配备用切片。与锚点盘相关联的RAID在锚点盘中包括用于存储信息的存储切片,因此存储管理系统110可以将该存储切片中的信息迁移到与该与锚点盘相关联的RAID的备用切片。这样,存储管理系统110可以将锚点盘中的这个切片分配给降级RAID作为备用切片。
图6B示出了这样的特殊示例。在图6B中,假设盘D0至D7都没有空闲且未被分配的切片。存储管理系统110确定盘D2中的切片DS(2,3)是RAID5的备用切片,并且该备用切片在本次出现不可访问盘时未被使用。然而,未被分配备用切片的降级RAID6不能直接使用盘D2中的这个切片DS(2,3),因为盘D2的切片DS(2,4)已经被分配给RAID6。存储管理系统110可以将RAID5在锚点盘D0中的切片DS(0,3)中存储的信息迁移至DS(2,3)。这样,DS(0,3)可以被分配给RAID6,作为DS(6,3)的备用切片。
在这样的备用切片确定中,虽然引入了额外的信息迁移操作,但由于这种极端情况出现的概率较低,因此与备用切片分配过程的复杂度降低相比,信息迁移操作所引入的总体开销较小。
在一些实施例中,如果存储系统120中增加的一个盘(有时称为“第二盘”或“新盘”),可能需要重新确定锚点盘。如果新盘被确定为锚点盘,与锚点盘相关联的RAID的备用切片可能需要更新。新盘是否被确定为锚点盘可以取决于新盘与当前作为锚点盘的盘的存储容量的比较。如果新盘比当前锚点盘的存储容量大,或者新盘的存储容量超过当前锚点盘的存储容量一个预定阈值量,存储管理系统110可以将新盘选择作为锚点盘。否则,可以保持当前的锚点盘。
通常,在存储系统120中增加一个盘后,存储管理系统110还会在存储系统120中针对新盘执行重新条带化操作,以将原先多个盘中已分配的切片重新分布到已有的多个盘和新盘,达到这些盘的均匀分配。取决于针对新盘的重新条带化的结果,以及锚点盘是否要被改变为新盘,存储管理系统110还需要执行相应的切片分配调整。
在一些实施例中,如果新盘被选择为锚点盘,存储管理系统110基于在存储系统120中针对新盘的重新条带化的结果,确定与新盘相关联的RAID。与新盘相关联的RAID包括已有的多个盘中的切片被重新条带化到新盘中的切片。如果已有的多个盘中重新条带化的切片原先是锚点盘中用于存储信息的存储切片,存储管理系统110将该切片中的信息迁移到新盘中的切片。
图7A示出了根据本公开的一些实施例的在添加新盘时对切片分配的调整的示例。在图7中,盘D8被增加到存储系统120,并且盘D8由于具有更大存储容量而被选择为新的锚点盘。假设原先锚点盘D0中的切片DS(0,1)被重新条带化到新锚点盘D8的切片DS(8,0)。由于切片DS(0,1)是RAID2用于存储信息的存储切片并且RAID2是原本就是直接可备用RAID并且已经被分配备用切片,存储管理系统110只需要将切片DS(0,1)中的信息迁移到切片DS(8,0)。
在一些实施例中,如果已有的多个盘中重新条带化的切片来自锚点盘之外的其他盘,存储管理系统110将该切片中存储的信息迁移到新盘中的对应切片并且将该切片确定为与新盘相关联的RAID的备用切片。在图7A的示例中,如果切片DS(4,2)被重新条带化到DS(8,1),由于切片DS(4,2)用于是RAID4用于存储信息的存储切片,但RAID4在D0是锚点盘时不是直接可备用RAID,存储管理系统110还可以为RAID4确定备用切片。简单地,存储管理系统110可以将信息已经被迁移的切片DS(4,2)确定为RAID4的备用切片。存储管理系统110还可以通过修改元数据来标注RAID4为直接可备用,并且还标注RAID4的备用切片。
在一些实施例中,如果从已有的多个盘中重新条带化的切片是与新盘相关联的RAID的备用切片,存储管理系统110可以直接将新盘中的切片确定为备用切片。在图7A的示例中,如果切片DS(3,4)被重新条带化到盘D8中的切片DS(8,2),由于切片DS(3,4)是RAID7的备用切片,存储管理系统110可以直接将重新条带化后的切片DS(8,2)确定为RAID7的备用切片。例如,存储管理系统110可以通过修改元数据来标注RAID7的备用切片。
在一些实施例中,如果在新增加盘后原先存储系统120中的锚点盘维持不变,取决于重新条带化的结果,存储管理系统110也可能需要再确定切片的分配。图7B示出了根据本公开的一些实施例的在添加新盘时对切片分配的调整的另一示例。在该示例中,新增加到存储系统120中的盘D8由于具有较小的存储容量,盘D0维持为锚点盘。
在一些实施例中,如果与锚点盘相关联的RAID包括从锚点盘分配的存储切片,存储管理系统110确定在锚点盘维持不变的情况下该存储切片是否被重条带化到新盘。如果该存储切片被重条带化到新盘中的一个切片,该RAID不再是直接可备用。存储管理系统110可以释放针对该RAID分配的备用切片。
在图7B中,如果锚点盘D0中的切片DS(0,1)被重新条带化到新盘D8的切片D(8,0),由于切片DS(0,1)是直接可备用RAID2的切片,但在重新条带化后,RAID2不再包括锚点盘D0中的切片(无论是备用切片还是存储切片)。因此,可以将原先分配给RAID2的备用切片释放。
在一些实施例中,如果锚点盘维持不变,与锚点盘相关联的RAID的备用切片被重新条带化到新盘的切片,存储管理系统110可以将新盘中被重新条带化到的切片确定为备用切片,并且释放原来的备用切片的分配。在图7B的示例中,如果盘D2中的切片DS(2,3)被重新条带化到新盘D8中的切片DS(8,2),由于切片DS(2,3)是直接可备用RAID5的备用切片,可以将重新条带化到的切片DS(8,2)确定为直接可备用RAID5的备用切片,并且释放切片DS(2,3)。存储管理系统110可以相应更新与RAID5相关联的元数据。
在一些实施例中,如果普通盘中的用于存储信息的存储切片被重新条带化到到新盘的切片,存储管理系统110可以存储信息中的信息迁移到新盘的切片。普通盘中的切片变为空闲切片。在图7B中,如果盘D3中分配给RAID4用于存储信息的存储切片DS(3,2)被重新条带化到盘D8的切片DS(8,1),切片DS(3,2)中存储的信息被迁移到切片DS(8,1)。切片DS(3,2)变为空闲切片。
在一些实施例中,在出现不可访问盘后,通过分配备用切片,不可访问盘中存储的信息被重建。由于备用切片的分配,存储系统120中的空闲存储空间被消耗。在一些情况下,可以在数据重建完成后向存储系统120增加新的盘(有时称为“第三盘”)。这样的盘可以称为补充盘。由于数据重建的消耗,与锚点盘相关联的直接可备用RAID的备用切片可能被消耗,因此需要重新补充备用切片。
在一些实施例中,在新的盘被增加到存储系统120后,要选择新的锚点盘。此外,如上文提及的,在存储系统120中增加一个盘后,存储管理系统110还会在存储系统120中针对新盘执行重新条带化操作,以将原先多个盘中已分配的切片重新分布到已有的多个盘和新盘,达到这些盘的均匀分配。取决于新的锚点盘的选择和重新条带化的结果,存储管理系统110还需要执行相应的切片分配调整。
在一些实施例中,如果不可访问盘是锚点盘,需要从新盘和已有的可访问盘中确定新的锚点盘。如果已有的盘被确定为锚点盘,可以通过重新条条带化过程来为新的锚点盘相关联的RAID分配备用切片。具体地,存储管理系统110可以从新盘为与新的锚点盘相关联的多个RAID分别分配多个备用切片,这些RAID中用于存储信息的存储切片位于新的锚点盘。在存储系统120中针对新盘执行重新条带化时,以新盘中分配的多个备用切片均匀重新条带化到存储系统120的当前可访问盘,包括新盘。
图8A示出了根据本公开的一些实施例的在数据重建后添加新盘时对备用切片的调整的示例。假设在锚点盘D0故障并且执行数据重建后,盘D8被增加到存储系统120。由于具有较高存储容量,盘D1被选择为新的锚点盘。存储管理系统110可以将盘D8中的多个切片分配作为与锚点盘D1相关联的RAID1、RAID2、RAID3、RAID6和RAID7各自的备用切片。在重新条带化过程中,存储管理系统110将盘D8中的各个备用切片重新条带化到其他盘,以实现备用切片的均匀分布。例如,备用切片DS(8,0)被重新条带化到切片DS(1,0)。这样,切片DS(1,0)称为直接可备用RAID1的备用切片;备用切片DS(8,1)被重新条带化到切片DS(2,1)。这样,切片DS(2,1)称为直接可备用RAID2的备用切片;以此类推,对于备用切片DS(8,2)、DS(8,3)和DS(8,4)分别执行类似操作,以分配RAID3、RAID6和RAID7的备用切片。
在一些实施例中,如果新盘被选择为锚点盘,存储管理系统110也可以确定切片的重新条带化,以确保与新盘相关联的RAID被分配有备用切片。具体地,存储管理系统110可以将存储系统120的可访问盘中被分配用于存储信息的存储切片重新条带化到新盘中的切片。存储管理系统110可以将该存储切片中存储的信息迁移到新增增加的盘中的切片,然后将该存储切片确定为包括该切片的RAID的备用切片。图8B示出了根据本公开的一些实施例的在数据重建后添加新盘时对备用切片的调整的另一示例。
在图8B中,假设在锚点盘D0故障并且执行数据重建后,盘D8被增加到存储系统120。由于具有较高存储容量,盘D8被确定为锚点盘。如果盘D1中分配为RAID1的存储切片DS(1,0)被重新条带化到盘D8的切片DS(8,0),存储管理系统110可以将存储切片DS(1,0)中的信息迁移到切片DS(8,0),并将切片DS(1,0)标记为RAID1的备用切片。类似地,对于盘D2的切片DS(2,1),盘D3的切片DS(3,2),盘D4的切片DS(4,1),盘D5的切片DS(5,4),均可以执行类似的操作。
以上虽然仅讨论在锚点盘不可访问且执行数据重建后的盘补充的实施例,DNA在普通盘不可访问并且执行数据重建后,如果存储系统中增加了新的盘作为补充,也可以以类似的方式来分配切片,以确保当前锚点盘相关联的RAID被分配有备用切片。这样,这些备用切片可以用于应对下一次的盘故障或由于其他原因而导致的离线。
在上文描述的示例中,为与锚点盘分配的RAID分配一个备用切片。在其他实施例中,还可以为与锚点盘分配的RAID分配两个或更多备用切片。备用切片的数目可以与RAID类型有关。例如,如果RAID类型为4+2RAID6,可以分配两个备用切片。两个备用切片的分配方式和使用方式与上文讨论的实施例类似。两个或更多备用切片的分配可以支持在两个或更多盘均不可访问时执行数据重建。
图9示意性示出能够被用来实施本公开的实施例的设备900的框图。如图9中所示出的,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储设备(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储设备(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300可由处理单元901来执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法300的一个或多个步骤。
如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。本文还可能包括其他明确的和隐含的定义。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
虽然已经参考若干具体实施例描述了本公开,但应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。

Claims (27)

1.一种存储管理方法,包括:
从存储系统的多个盘选择第一盘作为锚点盘;
从所述多个盘向与所述第一盘相关联的独立盘冗余阵列(RAID)分配第一备用切片,所述第一RAID至少包括从所述第一盘分配的切片;以及
如果检测到所述多个盘存在不可访问盘,基于对所述第一RAID的所述第一备用切片的所述分配来确定针对所述不可访问盘的切片的备用切片,以用于针对所述不可访问盘的数据重建。
2.根据权利要求1所述的方法,其中选择所述第一盘包括:
基于所述多个盘的相应存储容量来选择所述第一盘,所述第一盘的存储容量大于所述多个盘中的至少一个其他盘的存储容量。
3.根据权利要求1所述的方法,其中所述第一RAID至少包括从所述第一盘分配用于存储信息的存储切片以及从所述多个盘中除所述第一盘之外的其他盘分配的所述第一备用切片,或者
其中所述第一RAID至少包括从所述第一盘分配的所述第一备用切片以及从所述多个盘中除所述第一盘之外的其他盘分配用于存储信息的存储切片。
4.根据权利要求1所述的方法,其中确定针对所述不可访问盘的切片的备用切片包括:
如果检测到所述多个盘存在不可访问盘,确定降级RAID,所述降低RAID包括从所述不可访问盘分配用于存储信息的第一存储切片;以及
如果确定所述降级RAID不包括所述第一RAID并且所述不可访问盘不是所述第一盘,确定所述多个盘中未分配的空闲切片是否可分配作为所述第一存储切片的备用切片;
如果确定所述多个盘中没有未分配的空闲切片可分配作为所述第一存储切片的备用切片,基于分配给所述第一RAID的所述第一备用切片来确定所述第一存储切片的备用切片。
5.根据权利要求4所述的方法,其中基于所述第一备用切片来确定所述第一存储切片的备用切片包括:
如果确定所述第一备用切片是从所述第一盘分配的,将所述第一备用切片分配作为所述第一存储切片的备用切片;
如果确定所述第一备用切片是从所述多个盘中除所述第一盘之外的其他盘分配的并且确定所述第一RAID包括从所述第一盘分配用于存储信息的第二存储切片,将所述第二存储切片中存储的信息迁移到所述第一备用切片;以及
将所述第二存储切片分配作为所述第一存储切片的备用切片。
6.根据权利要求4所述的方法,其中确定针对所述不可访问盘的切片的备用切片还包括:
如果确定所述降级RAID包括所述第一RAID,将分配给所述第一RAID的所述第一备用切片确定为所述第一存储切片的备用切片。
7.根据权利要求1所述的方法,还包括:
存储针对所述第一RAID的元数据,所述元数据将所述第一RAID标记为直接可备用并且标记分配给所述第一RAID的所述第一备用切片,
其中基于所述第一备用切片来确定所述第一存储切片的备用切片包括:利用所述元数据来确定所述第一存储切片的备用切片。
8.根据权利要求1所述的方法,还包括:
如果确定第二盘被增加到所述存储系统,确定所述第二盘是否被选择为所述锚点盘;
如果确定所述第二盘被选择为所述锚点盘,基于在所述存储系统中针对所述第二盘的重新条带化的结果,确定与所述第二盘相关联的第二RAID,所述第二RAID包括从所述多个盘中的第三切片被所述重新条带化到所述第二盘中的第二切片;
如果确定所述第三切片是从所述第一盘分配用于存储信息的存储切片,将所述第三切片中存储的信息迁移到所述第二切片;
如果确定所述第三切片是从所述多个盘中除所述第一盘之外的其他盘分配用于存储信息的存储切片,将所述第三切片中存储的信息迁移到所述第二切片并且将所述第三切片确定为所述第二RAID的备用切片;以及
如果确定所述第三切片是已被分配给所述第二RAID的备用切片,将所述第二切片确定为所述第二RAID的所述第二备用切片。
9.根据权利要求8所述的方法,其中确定所述第二盘是否被选择为所述锚点盘包括:
将所述第二盘的存储容量与所述第一盘的存储容量相比较;以及
如果确定所述第二盘的所述存储容量超过所述第一盘的所述存储容量一个预定阈值容量,确定所述第二盘被选择为所述锚点盘。
10.根据权利要求8所述的方法,其中所述第一RAID至少包括从所述第一盘分配用于存储信息的第二存储切片,所述方法还包括:
如果确定所述第一盘维持为所述锚点盘,确定所述第二存储切片是否被重条带化到所述第二盘中的第三切片;以及
如果确定所述第二存储切片被重条带化到所述第二盘中的所述第三切片,释放对所述第一备用切片的分配。
11.根据权利要求8所述的方法,还包括:
如果确定所述第一盘维持为所述锚点盘,确定为所述第一RAID分配的所述第一备用切片是否被重条带化到所述第二盘中的第三切片;
如果所述第一备用切片被重条带化到所述第二盘中的第三切片,将所述第二盘中的所述第三切片确定为所述第一RAID的备用切片;以及
释放对所述第一备用切片的分配。
12.根据权利要求1所述的方法,其中所述不可访问盘是所述第一盘,所述方法还包括:
如果确定在所述数据重建完成后第三盘被增加到所述存储系统,确定所述第三盘还是所述多个盘中可访问的第四盘是否被选择为所述锚点盘;
如果确定所述第四盘被选择为所述锚点盘,从所述第三盘为与所述第四盘相关联的多个RAID分别分配多个备用切片,所述多个RAID至少包括从所述第四盘分配用于存储信息的存储切片;以及
在所述存储系统中针对所述第三盘执行重新条带化,以将所述多个备用切片均匀重新条带化到所述第三盘和所述多个盘中的可访问盘。
13.根据权利要求12所述的方法,还包括:
如果确定所述第三盘被选择为所述锚点盘,将所述多个盘的可访问盘中被分配用于存储信息的第三存储切片重新条带化到所述第三盘的切片,所述第三存储切片被分配给第三RAID;
将所述第三存储切片中存储的信息迁移到所述第三盘的所述切片;以及
将所述第三存储切片标记为包括所述第三RAID的备用切片。
14.一种电子设备,包括:
至少一个处理器;以及
存储有计算机程序指令的至少一个存储器,所述至少一个存储器和所述计算机程序指令被配置为,与所述至少一个处理器一起,使得所述电子设备执行动作,所述动作包括:
从存储系统的多个盘选择第一盘作为锚点盘;
从所述多个盘向与所述第一盘相关联的独立盘冗余阵列(RAID)分配第一备用切片,所述第一RAID至少包括从所述第一盘分配的切片;以及
如果检测到所述多个盘存在不可访问盘,基于对所述第一RAID的所述第一备用切片的所述分配来确定针对所述不可访问盘的切片的备用切片,以用于针对所述不可访问盘的数据重建。
15.根据权利要求14所述的设备,其中选择所述第一盘包括:
基于所述多个盘的相应存储容量来选择所述第一盘,所述第一盘的存储容量大于所述多个盘中的至少一个其他盘的存储容量。
16.根据权利要求14所述的设备,其中所述第一RAID至少包括从所述第一盘分配用于存储信息的存储切片以及从所述多个盘中除所述第一盘之外的其他盘分配的所述第一备用切片,或者
其中所述第一RAID至少包括从所述第一盘分配的所述第一备用切片以及从所述多个盘中除所述第一盘之外的其他盘分配用于存储信息的存储切片。
17.根据权利要求14所述的设备,其中确定针对所述不可访问盘的切片的备用切片包括:
如果检测到所述多个盘存在不可访问盘,确定降级RAID,所述降低RAID包括从所述不可访问盘分配用于存储信息的第一存储切片;以及
如果确定所述降级RAID不包括所述第一RAID并且所述不可访问盘不是所述第一盘,确定所述多个盘中未分配的空闲切片是否可分配作为所述第一存储切片的备用切片;
如果确定所述多个盘中没有未分配的空闲切片可分配作为所述第一存储切片的备用切片,基于分配给所述第一RAID的所述第一备用切片来确定所述第一存储切片的备用切片。
18.根据权利要求17所述的设备,其中基于所述第一备用切片来确定所述第一存储切片的备用切片包括:
如果确定所述第一备用切片是从所述第一盘分配的,将所述第一备用切片分配作为所述第一存储切片的备用切片;
如果确定所述第一备用切片是从所述多个盘中除所述第一盘之外的其他盘分配的并且确定所述第一RAID包括从所述第一盘分配用于存储信息的第二存储切片,将所述第二存储切片中存储的信息迁移到所述第一备用切片;以及
将所述第二存储切片分配作为所述第一存储切片的备用切片。
19.根据权利要求17所述的设备,其中确定针对所述不可访问盘的切片的备用切片还包括:
如果确定所述降级RAID包括所述第一RAID,将分配给所述第一RAID的所述第一备用切片确定为所述第一存储切片的备用切片。
20.根据权利要求14所述的设备,其中所述动作还包括:
存储针对所述第一RAID的元数据,所述元数据将所述第一RAID标记为直接可备用并且标记分配给所述第一RAID的所述第一备用切片,
其中基于所述第一备用切片来确定所述第一存储切片的备用切片包括:利用所述元数据来确定所述第一存储切片的备用切片。
21.根据权利要求14所述的设备,其中所述动作还包括:
如果确定第二盘被增加到所述存储系统,确定所述第二盘是否被选择为所述锚点盘;
如果确定所述第二盘被选择为所述锚点盘,基于在所述存储系统中针对所述第二盘的重新条带化的结果,确定与所述第二盘相关联的第二RAID,所述第二RAID包括从所述多个盘中的第三切片被所述重新条带化到所述第二盘中的第二切片;
如果确定所述第三切片是从所述第一盘分配用于存储信息的存储切片,将所述第三切片中存储的信息迁移到所述第二切片;
如果确定所述第三切片是从所述多个盘中除所述第一盘之外的其他盘分配用于存储信息的存储切片,将所述第三切片中存储的信息迁移到所述第二切片并且将所述第三切片确定为所述第二RAID的备用切片;以及
如果确定所述第三切片是已被分配给所述第二RAID的备用切片,将所述第二切片确定为所述第二RAID的所述第二备用切片。
22.根据权利要求21所述的设备,其中确定所述第二盘是否被选择为所述锚点盘包括:
将所述第二盘的存储容量与所述第一盘的存储容量相比较;以及
如果确定所述第二盘的所述存储容量超过所述第一盘的所述存储容量一个预定阈值容量,确定所述第二盘被选择为所述锚点盘。
23.根据权利要求21所述的设备,其中所述第一RAID至少包括从所述第一盘分配用于存储信息的第二存储切片,所述方法还包括:
如果确定所述第一盘维持为所述锚点盘,确定所述第二存储切片是否被重条带化到所述第二盘中的第三切片;以及
如果确定所述第二存储切片被重条带化到所述第二盘中的所述第三切片,释放对所述第一备用切片的分配。
24.根据权利要求21所述的设备,其中所述动作还包括:
如果确定所述第一盘维持为所述锚点盘,确定为所述第一RAID分配的所述第一备用切片是否被重条带化到所述第二盘中的第三切片;
如果所述第一备用切片被重条带化到所述第二盘中的第三切片,将所述第二盘中的所述第三切片确定为所述第一RAID的备用切片;以及
释放对所述第一备用切片的分配。
25.根据权利要求14所述的设备,其中所述不可访问盘是所述第一盘,所述动作还包括:
如果确定在所述数据重建完成后第三盘被增加到所述存储系统,确定所述第三盘还是所述多个盘中可访问的第四盘是否被选择为所述锚点盘;
如果确定所述第四盘被选择为所述锚点盘,从所述第三盘为与所述第四盘相关联的多个RAID分别分配多个备用切片,所述多个RAID至少包括从所述第四盘分配用于存储信息的存储切片;以及
在所述存储系统中针对所述第三盘执行重新条带化,以将所述多个备用切片均匀重新条带化到所述第三盘和所述多个盘中的可访问盘。
26.根据权利要求25所述的设备,其中所述动作还包括:
如果确定所述第三盘被选择为所述锚点盘,将所述多个盘的可访问盘中被分配用于存储信息的第三存储切片重新条带化到所述第三盘的切片,所述第三存储切片被分配给第三RAID;
将所述第三存储切片中存储的信息迁移到所述第三盘的所述切片;以及
将所述第三存储切片标记为包括所述第三RAID的备用切片。
27.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读存储介质上并且包括计算机可执行指令,所述计算机可执行指令在由设备的处理器执行时使所述设备执行根据权利要求1至13中任一项所述的方法。
CN202110013590.1A 2021-01-06 2021-01-06 存储管理方法、设备和计算机程序产品 Pending CN114721585A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110013590.1A CN114721585A (zh) 2021-01-06 2021-01-06 存储管理方法、设备和计算机程序产品
US17/314,416 US11507458B2 (en) 2021-01-06 2021-05-07 Storage management method, device, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110013590.1A CN114721585A (zh) 2021-01-06 2021-01-06 存储管理方法、设备和计算机程序产品

Publications (1)

Publication Number Publication Date
CN114721585A true CN114721585A (zh) 2022-07-08

Family

ID=82218644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110013590.1A Pending CN114721585A (zh) 2021-01-06 2021-01-06 存储管理方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11507458B2 (zh)
CN (1) CN114721585A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2912802B2 (ja) * 1993-10-14 1999-06-28 富士通株式会社 ディスクアレイ装置の故障対処方法および装置
US5479653A (en) * 1994-07-14 1995-12-26 Dellusa, L.P. Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US6426928B1 (en) * 1999-03-31 2002-07-30 International Business Machines Corporation Ability to distinguish true disk write errors
US6332204B1 (en) * 1999-03-31 2001-12-18 International Business Machines Corporation Recovering and relocating unreliable disk sectors when encountering disk drive read errors
US7409582B2 (en) * 2004-05-06 2008-08-05 International Business Machines Corporation Low cost raid with seamless disk failure recovery
JP2008250566A (ja) * 2007-03-29 2008-10-16 Nec Corp ディスクアレイ装置、該装置の運用方法、およびプログラム
US9619353B2 (en) * 2010-10-06 2017-04-11 International Business Machines Corporation Redundant array of independent disk (RAID) storage recovery
US8417989B2 (en) * 2010-10-15 2013-04-09 Lsi Corporation Method and system for extra redundancy in a raid system
US10082959B1 (en) * 2011-12-27 2018-09-25 EMC IP Holding Company LLC Managing data placement in storage systems
JP6244974B2 (ja) * 2014-02-24 2017-12-13 富士通株式会社 ストレージ装置、及びストレージ装置の制御方法
US9641615B1 (en) * 2014-03-31 2017-05-02 EMC IP Holding Company LLC Allocating RAID storage volumes across a distributed network of storage elements
WO2016031051A1 (ja) * 2014-08-29 2016-03-03 株式会社日立製作所 ストレージ装置
US9983963B2 (en) * 2015-11-09 2018-05-29 Alibaba Group Holding Limited System and method for exploiting hard disk drive capacity reserve and extending operating life thereof
US10705907B1 (en) * 2016-03-24 2020-07-07 EMC IP Holding Company LLC Data protection in a heterogeneous random access storage array
KR102580123B1 (ko) * 2016-05-03 2023-09-20 삼성전자주식회사 Raid 스토리지 장치 및 그것의 관리 방법
US10013321B1 (en) * 2016-06-22 2018-07-03 EMC IP Holding Company LLC Early raid rebuild to improve reliability
US11402998B2 (en) 2017-04-27 2022-08-02 EMC IP Holding Company LLC Re-placing data within a mapped-RAID environment comprising slices, storage stripes, RAID extents, device extents and storage devices
WO2019084917A1 (zh) * 2017-11-03 2019-05-09 华为技术有限公司 存储系统可用容量计算方法及装置
US10691543B2 (en) * 2017-11-14 2020-06-23 International Business Machines Corporation Machine learning to enhance redundant array of independent disks rebuilds
US10884889B2 (en) * 2018-06-22 2021-01-05 Seagate Technology Llc Allocating part of a raid stripe to repair a second raid stripe
US11436113B2 (en) * 2018-06-28 2022-09-06 Twitter, Inc. Method and system for maintaining storage device failure tolerance in a composable infrastructure
CN110737401B (zh) 2018-07-20 2023-10-20 伊姆西Ip控股有限责任公司 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品
US10496316B1 (en) * 2018-10-31 2019-12-03 EMC IP Holding Company LLC Forming storage containers from extents having different widths within a group of storage devices
US11182258B2 (en) * 2019-01-04 2021-11-23 Western Digital Technologies, Inc. Data rebuild using dynamic peer work allocation
CN111858189B (zh) * 2019-04-29 2024-09-24 伊姆西Ip控股有限责任公司 对存储盘离线的处理
CN112764661B (zh) 2019-10-21 2024-09-20 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN112764665B (zh) * 2019-10-21 2024-05-10 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN112732168B (zh) 2019-10-28 2023-12-22 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN112748849B (zh) 2019-10-29 2024-06-11 伊姆西Ip控股有限责任公司 用于存储数据的方法、设备和计算机程序产品
CN112748856B (zh) * 2019-10-30 2024-08-16 伊姆西Ip控股有限责任公司 管理盘的方法、电子设备和计算机程序产品
CN113590019B (zh) * 2020-04-30 2023-11-07 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品
US11797387B2 (en) * 2020-06-23 2023-10-24 Western Digital Technologies, Inc. RAID stripe allocation based on memory device health
US11467917B2 (en) * 2020-06-25 2022-10-11 Cohesity, Inc. Updating a virtual machine backup
US12052346B2 (en) * 2020-07-02 2024-07-30 International Business Machines Corporation Secure secret recovery
JP7125964B2 (ja) * 2020-08-18 2022-08-25 株式会社日立製作所 計算機システムおよび管理方法
US11321178B1 (en) * 2021-06-29 2022-05-03 Dell Products, L. P. Automated recovery from raid double failure

Also Published As

Publication number Publication date
US20220214942A1 (en) 2022-07-07
US11507458B2 (en) 2022-11-22

Similar Documents

Publication Publication Date Title
CN111149083B (zh) 支持低延时操作的ssd架构
US10459814B2 (en) Drive extent based end of life detection and proactive copying in a mapped RAID (redundant array of independent disks) data storage system
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
US9378093B2 (en) Controlling data storage in an array of storage devices
CN107807794B (zh) 一种数据存储方法和装置
CN110096217B (zh) 用于重新定位数据的方法、数据存储系统和介质
EP0727745B1 (en) Cache memory control apparatus and method
US7058762B2 (en) Method and apparatus for selecting among multiple data reconstruction techniques
CN111124264B (zh) 用于重建数据的方法、设备和计算机程序产品
EP4137924A1 (en) Fragment management method and fragment management apparatus
US20150286531A1 (en) Raid storage processing
US8868864B2 (en) Storage apparatus and storage apparatus control method
CN109725838B (zh) 用于管理多个盘的方法、装置以及计算机可读介质
JP2010102695A (ja) Hdd障害からの高速データ回復
US10296252B1 (en) Reducing drive extent allocation changes while splitting a group of storage drives into partnership groups in response to addition of a storage drive to an array of storage drives in a data storage system that uses mapped RAID (redundant array of independent disks) technology
CN111124263B (zh) 用于管理多个盘的方法、电子设备以及计算机程序产品
CN111858189B (zh) 对存储盘离线的处理
WO2015114643A1 (en) Data storage system rebuild
CN108037894B (zh) 一种磁盘空间管理方法及装置
CN113811862A (zh) 存储驱动器的动态性能等级调整
CN109558068B (zh) 数据迁移方法及迁移系统
US10977130B2 (en) Method, apparatus and computer program product for managing raid storage in data storage systems
US9400723B2 (en) Storage system and data management method
CN114721585A (zh) 存储管理方法、设备和计算机程序产品
CN112748865B (zh) 用于存储管理的方法、电子设备和计算机程序产品

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