CN111124263B - 用于管理多个盘的方法、电子设备以及计算机程序产品 - Google Patents
用于管理多个盘的方法、电子设备以及计算机程序产品 Download PDFInfo
- Publication number
- CN111124263B CN111124263B CN201811289047.9A CN201811289047A CN111124263B CN 111124263 B CN111124263 B CN 111124263B CN 201811289047 A CN201811289047 A CN 201811289047A CN 111124263 B CN111124263 B CN 111124263B
- Authority
- CN
- China
- Prior art keywords
- disks
- stripe
- stripes
- free
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 title claims abstract description 12
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000010586 diagram Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了用于管理多个盘的方法、电子设备以及计算机程序产品。根据一个实施例,该方法包括:检测存储系统的第一组盘是否存在不可访问的盘,第一组盘中的多个盘的相应区段形成第一组条带;响应于检测到第一组盘存在不可访问的盘,确定第一组条带中的失效条带,失效条带包括不可访问的盘的第一数目的区段;以及响应于第一数目超过第一组盘的空闲区段的第二数目,将第一组条带中的至少一个条带的数据移动到存储系统的第二组盘的空闲区段,以释放至少一个条带的区段,第二组盘中的多个盘的相应区段形成第二组条带,第一组条带和第二组条带中的每个条带具有相同数目的区段。本公开的实施例可以减少存储系统的备用空间,有效提高存储空间的利用率。
Description
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及用于管理多个盘的方法、电子设备以及计算机程序产品。
背景技术
独立磁盘冗余阵列(RAID)技术是一种数据存储虚拟化技术,其通常用于提供数据冗余、性能提升等多种特性。RAID以条带为单位进行数据写入和读取。一些传统RAID在盘级别上均匀写入数据。
随着RAID技术的发展,RAID在盘的区段级别上而不是在盘的级别上执行数据读取和写入。具体而言,多个盘中的每个盘被分为多个区段。RAID将不同盘的区段组合成RAID条带,并使用RAID算法向其读取或写入数据。通常,RAID会在多个盘中预留一些区段作为备用空间以应对故障的发生。这样,当一个盘发生故障时,可以将故障盘的数据重建到备用空间,从而避免用户数据的丢失。
目前,备用空间的预留管理存在低效率的问题,这导致了盘存储资源的浪费,因此,仍然需要更加优化的备用空间预留管理方案。
发明内容
基于上述问题,根据本公开内容的示例实施方式,提供了一种用于管理多个盘的方案。
在本公开内容的第一方面中,提供了一种管理多个盘的方法。具体地,该方法包括:检测存储系统的第一组盘是否存在不可访问的盘,第一组盘中的多个盘的相应区段形成第一组条带;响应于检测到第一组盘存在不可访问的盘,确定第一组条带中的失效条带,失效条带包括不可访问的盘的第一数目的区段;以及响应于第一数目超过第一组盘的空闲区段的第二数目,将第一组条带中的至少一个条带的数据移动到存储系统的第二组盘的空闲区段,以释放至少一个条带的区段,第二组盘中的多个盘的相应区段形成第二组条带,第一组条带和第二组条带中的每个条带具有相同数目的区段。
在本公开内容的第二方面中,提供了一种电子设备。该电子设备包括:处理器;以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使电子设备执行动作,动作包括:检测存储系统的第一组盘是否存在不可访问的盘,第一组盘中的多个盘的相应区段形成第一组条带;响应于检测到第一组盘存在不可访问的盘,确定第一组条带中的失效条带,失效条带包括不可访问的盘的第一数目的区段;以及响应于第一数目超过第一组盘的空闲区段的第二数目,将第一组条带中的至少一个条带的数据移动到存储系统的第二组盘的空闲区段,以释放至少一个条带的区段,第二组盘中的多个盘的相应区段形成第二组条带,第一组条带和第二组条带中的每个条带具有相同数目的区段。
在本公开内容的第三方面中,提供了计算机程序产品。计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,计算机可执行指令在被执行时使设备执行根据本公开内容的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开内容的实施方式的关键或重要特征,亦非用于限制本公开内容的范围。本公开内容的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开内容的各实施方式的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开的实施例可以在其中被实现的存储系统的示意图。
图2示出了根据本公开实施例的管理多个盘的方法的框图。
图3示出了根据本公开的某些实施例的移动数据之后第一组盘进行数据重建的方法的框图。
图4A示出了数据从第一组盘的条带移动到第二组盘的条带的示意性简图。
图4B示出了利用释放的空闲区段在第一组盘中进行数据重建的示意性简图。
图4C示出了将第一组盘的失效条带的数据移动到第二组盘的示意性简图。
图5示出了在第一组盘和第二组盘上预留空闲区段的示意性简图。
图6示出了可以用来实施本公开的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开内容的实施方式。虽然附图中显示了本公开内容的某些实施方式,然而应当理解的是,本公开内容可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施方式,相反提供这些实施方式是为了更加透彻和完整地理解本公开内容。应当理解的是,本公开内容的附图及实施方式仅用于示例性作用,并非用于限制本公开内容的保护范围。
在本公开内容的实施方式的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例/实施方式”或“该实施例/实施方式”应当理解为“至少一个实施例/实施方式”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了本公开的实施例可以在其中被实现的存储系统100的示意图。该系统100包括多个物理盘122-1、122-2、……、122-13,用于提供物理存储空间。这些盘可以被统称为或单独称为盘122。盘122可以是各种持久性盘,例如,盘122可以包括但不限于数字通用盘(DVD)、蓝光盘(BD)、光盘(CD)、软盘、硬盘、磁带驱动、光学驱动、固态存储器设备(SSD)等等。盘122中的每个盘可以被划分为多个区段或者多个切片(slice)121。每个区段或者每个切片121具有固定的存储容量。RAID可以将不同盘上的区段或切片121组合成RAID条带114,RAID条带114可以包括条带114-1、114-2、……、114-6。例如,RAID可以在盘122-1、122-2、122-3、122-4和122-5的相应区段121上形成RAID5的条带114-3。
RAID能够使用存储系统中的所有盘122形成RAID条带的队列,并将存储导出到存储系统的映射层(图中未示出)。相应地,映射层会将逻辑存储映射到RAID分配的物理存储。具体而言,映射层定义了物理块,物理块是RAID条带114的最小分配单元,并且具有固定的大小。当空闲的物理块不足时,映射层将要求RAID分配新的RAID条带114。随后,映射层会从新的RAID条带114分配物理块。作为示例,当区段或切片的大小为4GB时,一个等级为RAID5的RAID条带114的大小为16GB;如果物理块的大小为8MB,则可以从一个RAID条带114分配2048个物理块。然而,以上仅仅是示例,存储系统100中的区段、物理块也可以是其它的大小,而存储系统100中的RAID条带可以是任意等级的RAID条带。
此外,存储系统的映射层可以执行条带重分配操作。具体地,映射层可以将已有的RAID条带114上的数据复制到新的RAID条带,并且在复制完成后,映射层取消映射并释放已有的RAID条带。映射层还可以执行条带重建操作。具体地,当存储系统中的一个盘发生故障时,映射层可以利用RAID条带上的剩余数据在新的区段或切片上修复或重建故障盘的区段上的数据。
为了确保RAID的可靠性,一般需要在限定数目的盘中为RAID条带分配区段或切片。这些限定数目的盘形成了一组盘。如果系统中的盘的数目超过限定的数目,可以再划分出一组盘。也就是说,存储系统100会根据盘的数目而将多个盘划分成一个组或多个组,并且同一个RAID条带114中的区段都来自于同一组盘。由此,这样的一组盘中的盘数目应当能够满足建立RAID条带的所需要的最低盘数目。此外,这样的一组盘中的盘数目也不能过高,这会导致出现故障盘的概率变大,从而降低了可靠性。如图1所示,系统100中的多个物理盘122-1、122-2、……、122-13被分为了第一组盘120-1和第二组盘120-2。RAID用第一组盘120-1中的区段形成了第一组条带110-1,以及用第二组盘120-2中的区段形成了第二组条带110-2。第一组条带110-1包括条带114-1、114-2、……、114-3,以及第二组条带110-2包括条带114-4、114-5、……、114-6。
在一些情况下,当一组盘中的盘发生故障(例如盘122-6发生故障)时,可以执行条带重建操作以在空闲区段中重建用户数据。为了确保有足够的空闲区段用于重建用户数据,通常每组盘中的需要预留一些空闲区段作为备用空间。一旦一组盘中的盘发生故障,则可以执行条带重建操作以在作为备用空间的区段中重建用户数据。因此,一组盘中的备用空间应当足以为整个故障盘重建数据。然而,这意味着几乎需要在每组盘中预留一整个盘的区段数目作为备用空间。这些作为备用空间的区段不能在正常操作时被RAID分配用于建立RAID条带以存储用户数据,而是只能用于重建数据。要注意的是,本文中提到的空闲区段可以包括用作备用空间的预留的区段,也可以包括未形成RAID条带的未被使用的区段。
然而,在一些情况下,这种常规的预留备用空间的方法存在明显的问题。例如,假设每组盘中最大的盘数目被限定为25,最小的盘数目被限定为6,当存储系统中共有26个盘时,26个盘将被分为两组盘,并且两组盘均具有13个盘;或者,当存储系统中已有24个盘并且用户将插入3个新盘时,需要从已有的一组盘中分出部分的盘,以将这些分出的盘与插入的新盘组成新的一组盘,由此,已有的一组盘和新的一组盘分别具有21个盘和6个盘。在这两种情况下,按照常规的方法,两组盘总共需要预留两个盘的区段作为备用空间,这过于浪费存储空间,并且用户花费资金插入的新盘并没有增加预期的存储空间。
根据本公开的实施例,提出了一种改进的管理多个盘的方案。本公开的方案提供了在两组盘之间共享空闲区段或者备用空间以用于故障时的数据重建。当一组盘中出现故障盘时,利用在两组盘之间执行条带重分配操作,从而为出现故障盘的一组盘释放更多的空闲区段,所释放的空闲区段可以参与重建数据。由此,两组盘之间的空闲区段或者备用空间实现了共享,这减少了用于备用空间的存储资源,提高了存储空间的利用率。
以下参考附图来详细描述本公开的实施例。图2示出了根据本公开实施例的管理多个盘的方法200的框图。方法200可以在图1中的存储系统100中被实现,并且由处理器来执行。为了便于讨论,将参考图1来描述方法200。
在框201,检测存储系统100的第一组盘120-1是否存在不可访问的盘,第一组盘120-1中的多个盘122-1、122-2、……、122-7的相应区段形成第一组条带110-1。
如图1所示,第一组盘120-1包括多个盘122-1、122-2、……、122-7,多个盘122-1、122-2、……、122-7中的不同的盘的相应区段可以形成第一组条带110-1中的条带114-1、114-2、……、114-3,这些条带可以被提供以存储用户数据。当存储系统100中的盘发生故障或者被取出时,将会造成故障盘上的数据无法被用户访问而成为不可访问的盘。由于形成第一组条带110-1的区段可能包括故障盘上的区段,这造成第一组条带110-1中的部分条带的数据可能发生丢失。因此,需要检测出存储系统100中是否存在不可访问的故障盘,以便及时地对丢失数据进行重建。具体地,当存储系统100的一组盘中的某个盘(例如第一组盘120-1中的盘)发生故障或者被取出,这将会被检测到。一旦检测到第一组盘120-1存在不可访问的盘(例如盘122-6发生了故障),则方法200进行到框202。
在框202,确定第一组条带110-1中的失效条带,失效条带包括不可访问的盘的第一数目的区段。
具体地,如上所述,第一组盘120-1的多个盘122-1、122-2、……、122-6、122-7的相应区段可以形成第一组条带110-1。第一组条带110-1中的部分条带可能包括不可访问盘122-6的区段。这部分条带成为失效条带。但是,失效条带上的数据并没有完全丢失。通过失效条带上的属于正常盘的其它区段的数据可以计算出丢失或者损坏的数据,并在第一组盘120-1中的空闲区段中重建数据。由此,需要确定哪些是失效条带。并且,还需要确定失效条带的数目以便确定失效条带中包括的不可访问盘122-6的区段的数目。
在本公开的某些实施例中,确定第一组条带110-1中的失效条带包括确定与不可访问的盘相关联的一组条带,以及将一组条带中存储有用户数据的条带确定为失效条带。
具体而言,如前面所述,当空闲的物理块不足时,映射层将要求RAID分配新的条带114。在映射层从新的条带114分配物理块之前,新的条带上没有用户数据。通过读取物理块的元数据,映射层可以确定哪些条带上具有用户数据,以及哪些条带上没有用户数据。对于没有用户数据的条带,不需要考虑其是否发生数据的丢失或损坏。因此,如果与不可访问的盘相关联的条带没有存储用户数据,可以不将其确定为失效条带,而可以仅将与不可访问的盘相关联的、存储有用户数据的条带确定为失效条带。通过这种方式,可以有效避免系统进行不必要的操作而浪费处理器资源。
一旦确定第一组条带110-1中的失效条带以及确定失效条带中包括的不可访问的盘122-6的区段的数目为第一数目,则方法200进行到框203。
在框203,确定第一数目是否超过第一组盘120-1的空闲区段的第二数目。
具体地,由于需要用第一组盘120-1中的空闲区段来重建不可访问的盘中丢失或损坏的数据,因此要确定当前的空闲区段的数目是否能够满足重建数据。第一组盘120-1中的空闲区段可以包括预留的空闲区段以及没有形成条带的区段。预留的空闲区段将在后面再详细描述。
如果第一盘组120-1中的空闲区段的数目为第二数目,并且第一数目未超过第二数目,则表明当前的第一盘组120-1中的空闲区段已经足以用于重建故障盘122-6中丢失或损坏的数据。随后,将直接在第一组盘120-1的空闲区段中重建失效条带的数据。具体地,可以利用失效条带中的属于正常盘的区段的数据计算出属于故障盘122-6的区段的数据。然后,将数据存储到第一组盘120-1的空闲区段以完成数据的重建或修复。如果第一数目超过第二数目,这表明当前的第一盘组120-1中的空闲区段的数目少于重建数据所需要的区段,这导致无法完成重建操作。此时,方法200将进行到框204。
在框204,将第一组条带110-1中的至少一个条带的数据移动到存储系统100的第二组盘110-2的空闲区段,以释放第一组条带110-1中的至少一个条带的区段。第二组盘110-2中的多个盘122-8、122-9、……、122-13的相应区段形成第二组条带110-2,第一组条带110-1和第二组条带110-2中的每个条带具有相同数目的区段。
以下将结合图4A来对框204进行说明,图4A示出了数据从第一组盘110-1移动到第二组盘110-2的示意性简图。
仅仅作为示例,如图4A所示,第一组盘120-1的盘122-1、122-2、122-3、122-4和122-5的相应区段形成条带114-3,以及第一组盘120-1的盘122-2、122-3、122-4、122-5和122-6的相应区段形成条带114-2。为了清楚的目的,图4A以及后面提及的图4B和图4C未示出第一组条带110-1中的所有的条带,而仅示例性地示出了条带114-2和114-3。仅仅作为示例,存储器系统100中的条带的RAID等级均为RAID5。
在图4A中,检测到第一组盘120-1中的盘122-6为不可访问的盘。随后,确定与盘122-6相关联的条带114-2为失效条带。为了便于清楚的描述,图4A以及后面提及的图4B和图4C未示出所有的失效条带,而仅示出条带114-2作为示例。进一步,可以确定这些失效条带所包括的盘122-6的区段的数目。如果所确定的数目大于第一组盘120-1中的空闲区段的数目,则意味着第一组盘120-1中的空闲区段的数目没有达到数据重建所需要的区段的数目。随后,可以跨第一组盘120-1和第二组盘120-2进行条带重分配操作。具体而言,可以在第二组盘120-2中形成新条带114-6。仅仅作为示例,如图4A所示,新条带114-6由第二组盘120-2的盘122-8、122-9、122-10、122-11和122-12中的相应区段形成。然后,将第一组盘120-1的条带114-3的数据移动到第二组盘120-2中的新条带114-6。随后,条带114-3的区段将被释放为空闲区段。图4A示例性地示出了移动条带114-3上的数据并且释放条带114-3。可以理解的是,也可以将多个条带的数据移动到第二组盘120-2,相应地释放的条带也可以是多个条带以获得更多的空闲区段。
在本公开的某些实施例中,在第一组盘120-1中的至少一个条带被释放之后,方法200可以继续进行到圈A所指示的方法300中。参考图3,图3示出了移动数据之后第一组盘120-1进行数据重建的方法300。为了便于讨论,还将参考图4B来描述方法300。图4B示出了利用释放的空闲区段在第一组盘110-1中进行数据重建的示意性简图。
首先,方法300进行到框301。在框301,确定在移动数据之后第一组盘120-1的空闲区段的第三数目。
具体地,第一组盘120-1的条带114-3的数据被完全移动到第二组盘120-2的条带114-6。由此,条带114-3释放出多个空闲区段428。仅仅作为示例,图4B示出了释放出5个空闲区段428(RAID等级为RAID5)。但是,存储系统100也可以采用任何等级的RAID,由此将会释放出相应数目的空闲区段。图4B示例性地示出了释放了一个条带的空闲区段。但是,也可以将多个条带的数据移动到第二组盘120-2,相应地释放的条带也可以是多个条带以获得更多的空闲区段。这些空闲区段428以及第一组盘120-1中原有的空闲区段可以用于重建丢失的用户数据。由此,可以再次确定当前的空闲区段的数目,并将该数目作为第三数目。然后,方法300进行到框302。
在框302,确定第一数目是否超过第三数目。具体地,可以确定移动数据后的空闲区段是否足够进行数据重建。如果空闲区段的数目仍然不够,则可以继续在第一组盘120-1和第二组盘120-2之间进行条带重分配操作,以在第一组盘120-1中释放更多的空闲区段。如果空闲区段的数目已经足够,则方法300进行到框303。
在框303,在第一组盘120-1的空闲区段中重建失效条带的数据。具体地,失效条带的数据可以在原有的空闲区段以及被释放的新的空闲区段中重建。仅仅作为示例,如图4B所示,失效条带114-2在盘122-6上的数据可以被重建在盘122-1的所释放的相应区段上。换言之,重建后的条带114-2可以由第一组盘120-1的盘122-1、122-2、122-3、122-4和122-5的相应区段形成。图4B仅仅示例性的描述了失效条带114-2的重建。可以理解的是,图4B中未示出的其它失效条带也可以按照失效条带114-2类似的方式进行重建,并且失效条带的重建也可以在原有的空闲区段上进行,而不仅在所释放的区段上进行。在重建数据之后,可以用新的盘来替换故障盘,并且可以在第一组盘120-1内使用条带重分配操作来平衡第一组盘120-1的存储空间分配,从而可以立即将数据存储到新盘上。
返回到图2,在方法200的框204,在本公开的某些实施例中,将第一组条带110-1中的至少一个条带的数据移动到存储系统100的第二组盘110-2的空闲区段包括:对失效条带114-2的数据进行重建;以及将重建后的数据存储到第二组盘110-2的空闲区段。图4C示出了将第一组盘120-1的失效条带114-3的数据移动到第二组盘120-2的示意性简图。以下将参考图4C来进行说明。
在图4C中,第一组盘120-1中的盘122-6被检测到是不可访问的盘,并且第一组盘120-1的空闲区段的数目不足以进行数据重建,这与图4A相同。此时,需要将第一组盘120-1中的部分条带的数据移动到第二组盘120-2。与图4A的不同之处在于,图4C优选选择移动失效条带114-2上的数据。由于失效条带114-2在盘122-6上的数据已经丢失,因此需要先重建失效条带114-2中的丢失的数据,然后再将重建后的失效条带114-2的数据移动到第二组盘120-2的新条带114-6中。随后,失效条带114-2的区段被释放,第一组盘120-1获得了4个新的空闲区段。所释放的空闲区段可以用于第一组盘120-1中的其它失效条带(图4C未示出)的数据重建。数据重建的过程类似于图4B,因此不再赘述。通过将失效条带的数据移动到另一组盘,并释放失效条带的空间,可以为后续的重建提供空闲区段,同时还减少了后续的在第一组盘120-1中进行数据重建的工作量。
在本公开的某些实施例中,方法200还包括在第一组盘120-1中预留第一组的空闲区段426和在第二组盘120-2中预留第二组的空闲区段426,所预留的空闲区段426专用于数据重建。图5示出了在第一组盘120-1和第二组盘120-2上预留空闲区段426的示意性简图。
具体地,第一组盘120-1和第二组盘120-2中可以预留一些区段作为备用空间。所预留的空闲区段426是专用于数据重建的备用区段,它们不会在正常操作时用于存储用户数据。通过这种方式,当出现不可访问的盘时,可以确保有足够的空闲区段用于重建用户数据。
在本公开的某些实施例中,在第一组空闲区段426和第二组空闲区段426中的区段总数少于第一组盘120-1和第二组盘120-2中的两个盘的区段的总数。
如上面所讨论的,由于在两组盘120-1和120-2之间进行条带重分配操作(即,将第一组盘120-1中的至少一个条带的数据移动到第二组盘120-2,并在移动数据后释放了至少一个条带的区段),并且利用条带重分配操作释放的空闲区段进行数据的重建或修复,因此,第一组盘120-1中预留的第一组空闲区段426与第二组盘120-2中预留的第二组空闲区段426实际上实现了共享。作为结果,不再需要如常规方法中在两组盘中分别预留一个盘的区段作为备用空间,而是可以在第一组盘120-1和第二组盘120-2中预留少于两个盘的区段作为备用空间。第一组盘120-1和第二组盘120-2作为备用空间的预留区段的总数目只要大于一个盘的区段数目即可满足需要。但是,当存储系统100中仅有一组盘时,不存在其它组盘能够与这组盘共享备用空间,这组盘仍然需要保留一个盘的区段数目作为备用空间。
在本公开的某些实施例中,基于第一组盘120-1的盘数目来确定要在第一组盘120-1中预留的第一组空闲区段426的数目;以及基于第二组盘120-2的盘数目来确定要在第二组盘120-2中预留的第二组空闲区段426的数目。具体而言,在为第一组盘120-1和第二组盘120-2预留备用空间时,可以根据第一组盘120-1和第二组盘120-2中的盘的数目来预留区段。例如,第一组盘120-1和第二组盘120-2分别具有24个盘和6个盘,可以为第一组盘120-1保留24/25个盘,为第二组盘120-2保留6/25个盘。这样,两组盘的总备用空间为(24+6)/25=1.2个盘。与常规方法预留两个盘作为备用空间相比,本公开的方案在该示例中能够节约0.8个盘的空间。
本公开的实施例的方案通过在跨两组盘进行条带重分配操作以及后续的条带重建操作,实现了在两组盘之间共享备用空间或空闲区段。这种方案有助于避免存储空间的浪费,并且提高了存储空间的利用率。此外,本公开的实施例还有助于减少数据移动,从而在重建数据期间获得更高的效率。
图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。设备600可以被实现为包括存储系统100。设备600可以用于实现图2或图3的方法200或300。
如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元601执行上文所描述的方法200或300。例如,在一些实施例中,方法200或300可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,诸如非瞬态计算机可读介质,诸如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法200或方法300的一个或多个步骤。备选地,在其他实施例中,CPU 601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200或300。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
1.一种管理多个盘的方法,包括:
检测存储系统的第一组盘是否存在不可访问的盘,所述第一组盘中的多个盘的相应区段形成第一组条带;
响应于检测到所述第一组盘存在不可访问的盘,确定所述第一组条带中的失效条带,所述失效条带包括所述不可访问的盘的第一数目的区段;以及
响应于所述第一数目超过所述第一组盘的空闲区段的第二数目,将所述第一组条带中的至少一个条带的数据移动到所述存储系统的第二组盘的空闲区段,以释放所述至少一个条带的区段,所述第二组盘中的多个盘的相应区段形成第二组条带,所述第一组条带和所述第二组条带中的每个条带具有相同数目的区段。
2.根据权利要求1所述的方法,其中将所述至少一个条带的数据移动到所述第二组盘的空闲区段包括:
对所述失效条带的数据进行重建;以及
将重建后的数据存储到所述第二组盘的空闲区段。
3.根据权利要求1所述的方法,还包括:
确定在移动所述数据之后所述第一组盘的空闲区段的第三数目;以及
响应于所述第一数目未超过所述第三数目,在所述第一组盘的空闲区段中重建所述失效条带的数据。
4.根据权利要求1所述的方法,还包括:
在所述第一组盘中预留第一组空闲区段和在所述第二组盘中预留第二组空闲区段,所预留的空闲区段专用于数据重建。
5.根据权利要求4所述的方法,其中在所述第一组空闲区段和所述第二组空闲区段中的区段总数少于所述第一组盘和所述第二组盘中的两个盘的区段的总数。
6.根据权利要求4或5所述的方法,还包括:
基于所述第一组盘的盘数目来确定要在所述第一组盘中预留的所述第一组空闲区段的数目;以及
基于所述第二组盘的盘数目来确定要在所述第二组盘中预留的所述第二组空闲区段的数目。
7.根据权利要求1所述的方法,其中确定所述第一组条带中的失效条带包括:
在所述第一组条带中确定与所述不可访问的盘相关联的一组条带;以及
将一组条带中存储有用户数据的条带确定为所述失效条带。
8.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行动作,所述动作包括:
检测存储系统的第一组盘是否存在不可访问的盘,所述第一组盘中的多个盘的相应区段形成第一组条带;
响应于检测到所述第一组盘存在不可访问的盘,确定所述第一组条带中的失效条带,所述失效条带包括所述不可访问的盘的第一数目的区段;以及
响应于所述第一数目超过所述第一组盘的空闲区段的第二数目,将所述第一组条带中的至少一个条带的数据移动到所述存储系统的第二组盘的空闲区段,以释放所述至少一个条带的区段,所述第二组盘中的多个盘的相应区段形成第二组条带,所述第一组条带和所述第二组条带中的每个条带具有相同数目的区段。
9.根据权利要求8所述的电子设备,其中将所述至少一个条带的数据移动到所述第二组盘的空闲区段包括:
对所述失效条带的数据进行重建;以及
将重建后的数据存储到所述第二组盘的空闲区段。
10.根据权利要求8所述的电子设备,其中所述动作进一步包括:
确定在移动所述数据之后所述第一组盘的空闲区段的第三数目;以及
响应于所述第一数目未超过所述第三数目,在所述第一组盘的空闲区段中重建所述失效条带的数据。
11.根据权利要求8所述的电子设备,其中所述动作进一步包括:
所述第一组盘中预留第一组空闲区段和在所述第二组盘中预留第二组空闲区段,所预留的空闲区段专用于数据重建。
12.根据权利要求11所述的电子设备,其中在所述第一组空闲区段和所述第二组空闲区段中的区段总数少于所述第一组盘和所述第二组盘中的两个盘的区段的总数。
13.根据权利要求11或12所述的电子设备,其中所述动作进一步包括:
基于所述第一组盘的盘数目来确定要在所述第一组盘中预留的所述第一组空闲区段的数目;以及
基于所述第二组盘的盘数目来确定要在所述第二组盘中预留的所述第二组空闲区段的数目。
14.根据权利要求8所述的电子设备,其中确定所述第一组条带中的失效条带包括:
在所述第一组条带中确定与所述不可访问的盘相关联的一组条带;以及
将一组条带中存储有用户数据的条带确定为所述失效条带。
15.一种计算机可读介质,包括被有形地存储在其上的计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被执行时使设备执行根据权利要求1至7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289047.9A CN111124263B (zh) | 2018-10-31 | 2018-10-31 | 用于管理多个盘的方法、电子设备以及计算机程序产品 |
US16/591,890 US11474919B2 (en) | 2018-10-31 | 2019-10-03 | Method for managing multiple disks, electronic device and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289047.9A CN111124263B (zh) | 2018-10-31 | 2018-10-31 | 用于管理多个盘的方法、电子设备以及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124263A CN111124263A (zh) | 2020-05-08 |
CN111124263B true CN111124263B (zh) | 2023-10-27 |
Family
ID=70326780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811289047.9A Active CN111124263B (zh) | 2018-10-31 | 2018-10-31 | 用于管理多个盘的方法、电子设备以及计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11474919B2 (zh) |
CN (1) | CN111124263B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732167B (zh) | 2019-10-28 | 2024-04-16 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备 |
CN112925471A (zh) * | 2019-12-06 | 2021-06-08 | 伊姆西Ip控股有限责任公司 | 在存储系统中选择重建目的地的方法、设备和程序产品 |
US11341010B2 (en) | 2020-01-15 | 2022-05-24 | EMC IP Holding Company LLC | Dynamic reclamation of storage stripes |
CN113535073B (zh) * | 2020-04-22 | 2024-04-16 | 伊姆西Ip控股有限责任公司 | 管理存储单元的方法、电子设备和计算机可读存储介质 |
CN113552998B (zh) * | 2020-04-24 | 2023-09-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统中的条带的方法、设备和程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011086214A (ja) * | 2009-10-19 | 2011-04-28 | Fujitsu Ltd | ディスクアレイ装置 |
CN103049400A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 一种磁盘重构方法及其装置 |
CN105630417A (zh) * | 2015-12-24 | 2016-06-01 | 创新科软件技术(深圳)有限公司 | 一种raid5系统及在raid5系统失效后继续写数据的方法 |
WO2018154697A1 (ja) * | 2017-02-24 | 2018-08-30 | 株式会社日立製作所 | ストレージシステム及び復旧制御方法 |
US10073621B1 (en) * | 2016-03-31 | 2018-09-11 | EMC IP Holding Company LLC | Managing storage device mappings in storage systems |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984258B2 (en) * | 2005-06-03 | 2011-07-19 | Seagate Technology Llc | Distributed storage system with global sparing |
US7418623B2 (en) | 2005-11-16 | 2008-08-26 | International Business Machines Corporation | Apparatus and method to reconfigure a storage array |
US8060772B2 (en) * | 2008-01-04 | 2011-11-15 | International Business Machines Corporation | Storage redundant array of independent drives |
JP5056747B2 (ja) * | 2008-12-25 | 2012-10-24 | 富士通株式会社 | 記憶領域管理装置、記憶領域管理方法 |
CN103970481B (zh) * | 2013-01-29 | 2017-03-01 | 国际商业机器公司 | 重建存储器阵列的方法和装置 |
US9921912B1 (en) * | 2015-09-30 | 2018-03-20 | EMC IP Holding Company LLC | Using spare disk drives to overprovision raid groups |
US10007432B2 (en) | 2015-10-13 | 2018-06-26 | Dell Products, L.P. | System and method for replacing storage devices |
US9910748B2 (en) | 2015-12-31 | 2018-03-06 | Futurewei Technologies, Inc. | Rebuilding process for storage array |
US10579540B2 (en) * | 2016-01-29 | 2020-03-03 | Netapp, Inc. | Raid data migration through stripe swapping |
US10082965B1 (en) * | 2016-06-30 | 2018-09-25 | EMC IP Holding Company LLC | Intelligent sparing of flash drives in data storage systems |
CN109213618B (zh) * | 2017-06-30 | 2022-04-12 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN111104051B (zh) * | 2018-10-26 | 2023-08-22 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US10891066B2 (en) | 2018-12-28 | 2021-01-12 | Intelliflash By Ddn, Inc. | Data redundancy reconfiguration using logical subunits |
CN113552998B (zh) * | 2020-04-24 | 2023-09-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统中的条带的方法、设备和程序产品 |
-
2018
- 2018-10-31 CN CN201811289047.9A patent/CN111124263B/zh active Active
-
2019
- 2019-10-03 US US16/591,890 patent/US11474919B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011086214A (ja) * | 2009-10-19 | 2011-04-28 | Fujitsu Ltd | ディスクアレイ装置 |
CN103049400A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 一种磁盘重构方法及其装置 |
CN105630417A (zh) * | 2015-12-24 | 2016-06-01 | 创新科软件技术(深圳)有限公司 | 一种raid5系统及在raid5系统失效后继续写数据的方法 |
US10073621B1 (en) * | 2016-03-31 | 2018-09-11 | EMC IP Holding Company LLC | Managing storage device mappings in storage systems |
WO2018154697A1 (ja) * | 2017-02-24 | 2018-08-30 | 株式会社日立製作所 | ストレージシステム及び復旧制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200133810A1 (en) | 2020-04-30 |
US11474919B2 (en) | 2022-10-18 |
CN111124263A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124263B (zh) | 用于管理多个盘的方法、电子设备以及计算机程序产品 | |
CN107807794B (zh) | 一种数据存储方法和装置 | |
US10095429B2 (en) | Method, apparatus, and controller for managing storage array | |
US9378093B2 (en) | Controlling data storage in an array of storage devices | |
CN109726033B (zh) | 提供raid数据保护的方法、数据存储系统和计算机可读介质 | |
EP2180407B1 (en) | Fast data recovery from HDD failure | |
CN111124264B (zh) | 用于重建数据的方法、设备和计算机程序产品 | |
CN109725831B (zh) | 管理存储系统的方法、系统和计算机可读介质 | |
US20150286531A1 (en) | Raid storage processing | |
CN110058960B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
JP2001290746A (ja) | I/o要求に優先順位を与える方法 | |
US20130275802A1 (en) | Storage subsystem and data management method of storage subsystem | |
CN107515726B (zh) | 用于管理存储设备的方法和系统 | |
CN109725838B (zh) | 用于管理多个盘的方法、装置以及计算机可读介质 | |
US20200341874A1 (en) | Handling of offline storage disk | |
US9459973B2 (en) | Storage subsystem, and method for verifying storage area | |
US9400723B2 (en) | Storage system and data management method | |
US11150991B2 (en) | Dynamically adjusting redundancy levels of storage stripes | |
CN116185311B (zh) | 独立磁盘冗余阵列的升级迁移方法、降级迁移方法及装置 | |
CN111007988B (zh) | 一种raid内部磨损均衡方法、系统、终端及存储介质 | |
CN116204137B (zh) | 基于dpu的分布式存储系统、控制方法、装置及设备 | |
CN112748865B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
CN111857536B (zh) | 管理存储设备的方法、电子设备以及计算机可读介质 | |
CN111124251B (zh) | 用于i/o控制的方法、装置以及计算机可读介质 | |
CN113811862A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |