CN116414295A - 用于存储管理的方法、设备和计算机程序产品 - Google Patents
用于存储管理的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN116414295A CN116414295A CN202111668200.0A CN202111668200A CN116414295A CN 116414295 A CN116414295 A CN 116414295A CN 202111668200 A CN202111668200 A CN 202111668200A CN 116414295 A CN116414295 A CN 116414295A
- Authority
- CN
- China
- Prior art keywords
- storage units
- disks
- distributed
- discs
- candidate
- 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
Links
Images
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/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
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- 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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
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 5中,可以使用5个盘上的5个切片来形成一个条带。
当RAID中的某个盘发生故障时,可以利用其他盘上的数据来重建受影响的逻辑存储单元。重建这些逻辑存储单元的效率受到多种因素的影响。技术人员已经通过优化逻辑单元的切片数目和大小等方式来提高重建效率。然而,这些考虑并不全面。
发明内容
在本公开的第一方面,提供了一种存储管理方法,该方法包括:确定一组盘上要被重建的多个存储单元,该多个存储单元分布在一组盘中的不同盘上;基于多个存储单元在一组盘上的分布,从该多个存储单元中选择一组存储单元,使得该一组存储单元中的不同存储单元分布于不同的盘;以及对一组存储单元执行并发重建。
在本公开的第二方面,提供了一种电子设备,包括处理器以及与该处理器耦合的存储器,存储器具有存储于其中的指令,该指令在被处理器执行时使设备执行动作,该动作包括:确定一组盘上要被重建的多个存储单元,该多个存储单元分布在一组盘中的不同盘上;基于多个存储单元在一组盘上的分布,从该多个存储单元中选择一组存储单元,使得该一组存储单元中的不同存储单元分布于不同的盘;以及对一组存储单元执行并发重建。
在本公开的第三方面中,提供了一种计算机程序产品,该计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行根据本公开的第一方面的方法。
请注意,提供本发明内容是为了以简化的形式来介绍对概念的选择,这些概念在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开内容的关键特征或主要特征,也无意限制本公开内容的范围。
附图说明
通过结合附图对本公开的示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中:
图1示出了物理盘特性影响存储单元重建的一个简化示例;
图2示出了本公开的实施例能够在其中实现的示例环境的示意图;
图3示出了根据本公开的一些实施例的存储管理方法的流程图;
图4示出了根据本公开的一些实施例的从要被重建的多个存储单元中选择一组存储单元的示例方法的流程图;
图5示出了根据本公开的一些实施例的一组盘的示例以及基于该一组盘生成的示例相关矩阵,该一组盘上分布有要被重建的存储单元,该相关矩阵示出了该一组盘中的每对盘的要被重建的共有存储单元数目;
图6示出了根据本公开的一些实施例的从要被重建的多个存储单元中选择一组存储单元的示例方法的流程图,其中该多个存储单元具有不同的优先级;以及
图7示出了根据本公开的一些实施例的一个简化示例,在该示例中中图6的方法被用来从要被重建的多个存储单元中选择一组存储单元。
图8示出了可以用来实现本公开的实施例的设备的示意性框图。
在所有附图中,相同或相似的附图标记表示相同或相似的元素。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应理解,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,而是提供这些实施例是为了更加透彻和完整地理解本公开。应理解,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本文中使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
与固态驱动器(SSD)不同,硬盘驱动器(HDD)的性能随I/O(输入/输出)模式而变化。磁头寻道时间是HDD I/O时延中不可忽视的因素。由于硬盘的物理特性,减少平均寻道时间和优化硬盘性能的一个基本规则是避免两个逻辑区块地址(LBA)范围之间的随机I/O或磁头摆动。
然而,常规的存储重建机制(例如,RAID中条带的重建)没有考虑HDD特性与存储单元的并发重建之间的相关性。常规的存储重建机制通常根据LBA顺序来选择存储单元来修复,因此可能选择部分位于同一盘上的多个存储单元以执行并发重建。例如,被选择以供并发重建的两个RAID条带可能各自有一个切片位于同一个盘上。在这种情况下,在重建期间该盘上有两个切片需要同时读/写。这使得硬盘的磁头在切片之间摆动,引起I/O时延增加,进而导致重建性能下降。
图1示出了物理盘的特性影响存储单元的重建的一个简化示例100。示例100中图示了分布在一组盘105-1、105-2和105-3上的需要被重建的存储单元110和存储单元120,其中,存储单元110具有部分110-1和部分110-2,并且存储单元120具有部分120-1和部分120-2。存储单元110的部分110-2和存储单元120的部分120-1都位于盘105-2上(例如,各自位于盘105-2的一个切片上)。当重建存储单元110时,需要从部分110-2的位置读取数据并写入部分110-1的位置。当重建存储单元120时,需要从部分120-1的位置读取数据并写入部分120-2的位置。因此,当选择同时重建存储单元110和存储单元120时,盘105-2的磁头会在部分110-2的位置和部分120-1的位置之间来回摆动。这导致了盘120的I/O性能可能与仅从其中一个位置读取数据相同甚至更差,从而降低了重建效率。
图1中的简化示例所示出的问题也存在于更复杂的场景中。例如,在一个示例重建性能测试中,当使用常规方法为具有15个盘的存储系统重建一个盘上的数据时,在单个盘上执行一个重建作业的性能与在两个盘上执行8个重建作业的性能相当。这意味着存储重建性能的瓶颈是物理硬盘,而不是CPU、内存或其他参数。
为至少部分地解决上述问题以及其它潜在问题,本公开的实施例提出了一种用于存储管理的方案,该方案在每次重建迭代中选择需要修复的存储单元的子集,以使得该子集中的不同存储单元所分布的盘彼此没有重叠,并且对所选择的存储单元执行并发重建。一方面,该方案可以在同一时间利用尽可能多的物理盘并发地重建存储单元,从而提高重建效率。另一方面,该方案可以避免一个盘同时参与两个存储单元(诸如RAID中的条带)的重建作业,从而避免了硬盘磁头的来回摆动,因此进一步提高了重建效率。以下将在RAID的条带化存储的上下文中描述本方案,但是应理解,本方案也适用于分布在多个物理盘上的其他逻辑存储单元的组织形式。
图2示出了本公开的实施例能够在其中实现的示例环境200的示意图。如图2所示,环境200中存在一组盘205。在该一组盘205上分布有要被重建的多个存储单元210,其中每个存储单元分布在该一组盘205中的多个不同的盘上。
作为示例,图2中示出了多个存储单元210中的存储单元210-1、210-2、210-3和210-4的一些部分,这些部分分布在一组盘205中的盘上的不同存储位置(例如,不同切片)。应理解,图2中所示的盘的数目、存储单元的数目以及存储单元的分布等仅作为示例。省略号225-1、225-2、225-3和225-4表示这些盘还可以具有未示出的更多的存储位置,并且可以分布有存储单元210-1至210-4的其他部分、多个存储单元210中的其他存储单元、以及无需重建的存储单元。省略号235表示环境225中还可以存在未示出的更多盘,这些未示出的盘上也可以分布有存储单元210-1至210-4的其他部分、多个存储单元210中的其他存储单元、以及无需重建的存储单元。此外,存储单元也可以以与图2所示的方式不同的方式分布于一组盘205上。
图2中还示出了计算设备201,其可以从多个存储单元210中选择一组存储单元以同时重建(即,并发地重建)该一组存储单元。如以下将详细描述的,计算设备201可以使用根据本公开的实施例的方法来选择该一组存储单元以执行并发重建。
应理解,仅出于说明目的描述环境200,而不暗示对于本公开的范围的任何限制。环境200还可以包括图2中未示出的设备、组件和其他实体。并且,本公开的实施例还可以被应用在与环境100不同的环境中。
图3示出了根据本公开的一些实施例的示例存储管理方法300的流程图。方法300可以例如由计算设备201(更具体地,计算设备201的处理器)执行。以下参考图2来详细描述方法300。
在框310处,计算设备201确定一组盘上要被重建的多个存储单元,该多个存储单元分布在一组盘中的不同盘上。例如,当环境200中与一组盘201一起用于存储数据的盘(未示出)出现故障时,多个存储单元210的先前位于该故障盘上的各部分可以被重新分布在该一组盘205上(各自分布到不同盘的不同切片上),并且该多个存储单元210需要被重建以恢复数据。计算设备201可以以任何方式来确定多个存储单元,包括响应于接收到关于多个存储单元的信息而确定,本公开的范围不限于此。
在框320处,计算设备201基于多个存储单元在一组盘上的分布,从多个存储单元中选择一组存储单元,使得该一组存储单元中的不同存储单元分布于不同的盘。即,所选择的该一组存储单元中的任何两个存储单元所分布的盘之间都没有重叠。
在一些实施例中,例如为了避免消耗太多系统资源,计算设备201可以将被并发重建的存储单元数目限制在某个阈值内,即所选择的一组存储单元不超过该阈值。例如,在选择一组存储单元期间,计算设备201可以对所选择的存储单元数目进行计数,并且当计数达到阈值时认为选择已经完成。
在一些实施例中,在使得不同存储单元分布于不同的盘的情况下,计算设备201可以以使得所选择的存储单元分布在尽可能多的盘上的方式来选择该一组存储单元。由此,计算设备201可以在后续的并发重建中利用尽可能多的盘资源,从而提高重建效率。稍后将参照图4更详细地介绍这种选择方式。
在一些实施例中,多个存储单元210中的存储单元可以具有各自的优先级。例如,在RAID中,作为存储单元的条带可以基于存储类型被划分在不同的层(诸如作为高性能存储层的第0层、具有RAID 1类型的第1层以及具有RAID 5类型的第2层),这些层具有不同的重建优先级。在这样的实施例中,计算设备201可以按存储单元的优先级来选择一组存储单元中的存储单元。
在一些实施例中,计算设备201可以从具有相同优先级的存储单元中,选择一个或多个存储单元作为一组存储单元中的存储单元,使得该一组存储单元中的不同存储单元分布于不同的盘。在一些实施例中,按优先级自高到低的顺序,计算设备201可以分别从具有不同的优先级的存储单元中选择一个或多个存储单元作为一组存储单元的一部分,使得该一组存储单元中的不同存储单元分布于不同的盘。在一些实施例中,计算设备201可以针对一定数目的优先级(例如,两个优先级)来选择存储单元。
在存储单元具有不同优先级的一些实施例中,计算设备201也可以以使得所选择的存储单元分布在尽可能多的盘上的方式来选择该一组存储单元。稍后将参照图6更详细地介绍这种选择方式。
在框330处,计算设备201对一组存储单元执行并发重建。例如,在RAID中,计算设备可以通过从其中条带(即,存储单元)的一个切片(即,存储单元的部分)读取数据以写入该条带的另一切片来恢复数据。本公开的范围不受具体重建操作的限制。
在一些实施例中,在对所选择的一组存储单元执行了并发重建之后,计算设备201可以继续使用方法200确定其余的要被重建的多个存储单元,并且从其中选择另一组存储单元以执行并发重建。在以这样的方式执行若干次并发重建之后,如果一组盘上任意两个需要修复的存储单元分布于的盘都有重叠,则计算设备201可以依次重建剩余的存储单元。
图4示出了根据本公开的一些实施例的从要被重建的多个存储单元选择中一组存储单元的示例方法400的流程图。方法400可以视为方法300中的框320的示例实现。方法400可以例如由计算设备201执行(更具体地,计算设备201的处理器)。下文参考图2来描述方法400。
在框410处,计算设备201可以将一组盘205作为候选盘来开始操作。在框420处,计算设备201可以从候选盘中确定分布有最大数目的要被重建的共有存储单元的一对盘。应理解,在一对盘上还可能分布有无需被重建的其他共有存储单元。为简洁起见,除非另有明确说明,否则下文在提及某一对盘的“共有存储单元”时,指的是该一对盘共有的要被重建的存储单元。
在一些实施例中,计算设备201可以通过生成关于候选盘的相关矩阵来确定分布有最大数目的共有存储单元的一对盘。图5示出了这样的相关矩阵的一个简化示例500。示例500图示了示例性的一组盘505以及基于该一组盘505生成的相关矩阵550。一组盘505可以是图2中的一组盘205的示例,并且相关矩阵550可以例如由计算设备201生成。以下将参考图2来描述相关矩阵550的生成。
在示例500中,计算设备201确定在一组盘505上存在需要被重建的多个存储单元510-1、510-2、510-3、510-4、510-5和510-6,其中每个存储单元分布在多个不同的盘上(例如,如附图标记510-4所示)。要被重建的多个存储单元在图5中被图示为连续地分布,这仅是出于便于图示的目的。应理解,要被重建的多个存储单元也可以彼此不连续地分布,并且一组盘505上还可以分布有无需被重建的其他存储单元。计算设备201然后将该一组盘505作为候选盘开始操作。为了确定该一组盘505上分布有最大数目的共有存储单元的一对盘,计算设备201可以基于一组盘505上要被重建的存储单元的分布来生成相关矩阵550。相关矩阵550的每个行与一组盘550中的一个盘对应,如由行头551指示。相关矩阵550的每个列也与一组盘550中的一个盘对应,如由列头552指示。在相关矩阵550中,行和列相交处的元素指示该行对应的盘与该列对应的盘的共有存储单元的数目。图5仅示出了相关矩阵550右上半部分的元素。由于相关矩阵550的对称性,这些元素足以指示一组盘505中每一对盘的共有存储单元数目。此外,如图5所示,与同一盘对应的行和列的相交处的元素在该示例中被标记为0。应理解,在其他一些示例中,这些元素也可以被标记为不影响一对盘的确定的其他任何合适的值(例如负数值)。
在示例500中,计算设备201可以从相关矩阵505确定:在一组盘505中,盘D2 505-2和盘D5 505-5具有最大数目的共有存储单元。计算设备201可以以同样的方式来生成针对另一组盘的相关矩阵,以确定相应的一对盘。
继续参考图4。在框430处,计算设备201可以从在框420处所确定的一对盘的共有存储单元中选择一个存储单元,作为一组存储单元中的存储单元。以图5的一组盘505为例,计算设备201可以在盘D2 505-2和盘D5 505-5的共有存储单元510-5和510-6中选择一个存储单元作为一组存储单元中的存储单元。例如,计算设备201可以随机地选择存储单元510-5或存储单元510-6,或者基于存储单元的其他性质来选择一个存储单元,本公开的方案不限于此。
回到图4。在框440处,计算设备201可以将候选盘中除所选择的一个存储单元所分布于的盘之外的盘作为下一轮迭代的候选盘。再次以图5的一组盘505为例,假设计算设备201已经选择了存储单元510-5,则计算设备201将存储单元510-5分布于的盘D2 505-2、盘D4 505-4以及盘D5 505-5从本轮迭代的候选盘中排除,并且将剩余的盘D1 505-1和盘D3505-3作为下一轮迭代的候选盘。
继续参考图4。在框450处,计算设备201可以确定预定条件是否被满足。在一些实施例中,预定条件可以是候选盘中不再存在分布有共有存储单元的一对盘。在一些实施例中,预定条件可以是如上文所述的一组存储单元中的存储单元达到阈值。
如果预定条件被满足,则方法400进行到框450,在此,计算设备201完成选择。如果预定条件未被满足,则方法400返回到框420处开始下一轮迭代,以继续向一组存储单元添加存储单元。
图6示出了根据本公开的一些实施例的从要被重建的多个存储单元中选择一组存储单元的示例方法600的流程图,其中该多个存储单元具有各自的优先级。方法600可以视为方法300中的框320的示例实现。方法600可以例如由计算设备201执行(更具体地,计算设备201的处理器)。下文参考图2来描述方法600。
在框610处,计算设备201可以基于分布有具有相同优先级的存储单元的盘和已被选择为一组存储单元的存储单元所分布的盘,来确定候选盘。在一些实施例中,计算设备201可能已经从具有其他优先级(例如,高于该相同优先级的另一优先级)的存储单元中选择了一个或多个存储单元作为该一组存储单元的一部分。在这种情况下,在确定候选盘时,计算设备201可以从分布有具有该相同优先级的存储单元的盘中除去已选择的该一个或多个存储单元所分布的盘,并且将其余的盘作为候选盘。
在框620处,计算设备201可以从候选盘中确定如下一对盘:该一对盘分布有具有该相同优先级的至少一个共有存储单元,并且在候选盘中分布有具有该相同优先级的至少一个共有存储单元的一对或多对盘中,该一对盘分布有最大数目的共有存储单元。
在一些实施例中,以与结合图5所描述的方式类似的方式,计算设备201可以通过生成相关矩阵来确定该一对盘。例如,在生成了与候选盘对应的相关矩阵之后,计算设备201可以按矩阵中元素从大到小的顺序,来确定与元素对应的一对盘是否分布有具有该相同优先级的共有存储单元,并且将所确定的第一对盘作为该一对盘。
在框630处,计算设备201可以从在框630处所确定的一对盘的共有存储单元中(例如,随机地或基于附加条件)选择一个具有相同优先级的存储单元,作为该一组存储单元中的存储单元。
在框640处,计算设备201将候选盘中除所选择的一个存储单元所分布于的盘之外的盘作为下一轮迭代的候选盘。
在框650处,计算设备201可以确定预定条件是否被满足。在一些实施例中,预定条件可以是:候选盘中不再存在一对盘分布有具有该相同优先级的共有存储单元。在一些实施例中,预定条件可以是如上文所述的一组存储单元中的存储单元达到阈值。
如果预定条件未被满足,则方法600返回到框620处开始下一轮迭代,以继续向一组存储单元添加存储单元。如果预定条件被满足,计算设备201结束针对该相同优先级的存储单元的选择。
在一些实施例中,在完成针对某个优先级的选择之后,计算设备201可以使用方法600针对另一优先级(例如,较低的优先级)来选择存储单元,以继续向一组存储单元添加存储单元。
图7示出了根据本公开的一些实施例的简化示例700,其中图6所示的方法600被用来从要被重建的多个存储单元中选择一组存储单元。示例700中可以例如由计算设备201执行(更具体地,计算设备201的处理器)。下文参考图2来描述示例700。
在示例700中,计算设备201已经确定在一组盘705上存在要被重建的多个存储单元,其中存储单元710-1、710-2、710-3和710-4具有较高的第一优先级,并且存储单元720-1和720-2具有较低的第二优先级。该一组盘705可以是图2中的一组盘202的示例。
在示例700中,计算设备201针对第一优先级开始操作,并且借助结合图5所述的相关矩阵来执行选择。如图7所示,具有第一优先级的存储单元710-1、710-2、710-3和710-4分布在盘705-1至705-5上。由于尚未选择任何存储单元作为一组存储单元中的存储单元,因此计算设备201将盘705-1至705-5作为候选盘,并且生成针对候选盘的相关矩阵750-1。计算设备201可以从相关矩阵750-1确定盘D2 705-2和D5 705-5具有最大数目的共有存储单元。在这些共有存储单元中,存储单元710-3和710-4具有第一优先级。因此,计算设备201可以从存储单元710-3和710-4中选择一个存储单元(作为示例,存储单元710-3被选择)作为一组存储单元中的存储单元。
然后,计算设备201将所选择的存储单元710-4所分布于的盘D2 705-2和D5 705-5从先前的候选盘中移除,并且将其余的盘(即,盘D1 705-1、D3 705-2和D4 705-3)作为候选盘来生成相关矩阵750-2。计算设备201从相关矩阵750-2可以确定盘D1 705-1和盘D3 705-3具有最大数目的共有存储单元。在这些共有存储单元中,存储单元710-2具有第一优先级。因此,计算设备201选择存储单元710-2作为一组存储单元中的存储单元。
接下来,计算设备201将所选择的存储单元710-2所分布于的盘D1 705-1和D3705-3从先前的候选盘中移除。在该轮迭代后,仅有一个盘D4 705-4可以继续作为候选盘。因此,计算设备201结束选择,并且所选择的一组存储单元由存储单元710-2和710-3组成。计算设备201然后可以对所选择的一组存储单元执行并发重建。在完成该并发重建之后,计算设备201还可以继续例如使用方法600从其余要被重建的存储单元中选择另一组存储单元来执行并发重建。
图8示出了可以用来实施本公开内容的实施例的示例设备800的示意性框图。如图8所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元805加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口808也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200和/或400,可由处理单元801执行。例如,在一些实施例中,方法200和/或400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法300、400和/或600的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (13)
1.一种存储管理方法,包括:
确定一组盘上要被重建的多个存储单元,所述多个存储单元分布在所述一组盘中的不同盘上;
基于所述多个存储单元在所述一组盘上的所述分布,从所述多个存储单元中选择一组存储单元,使得所述一组存储单元中的不同存储单元分布于不同的盘;以及
对所述一组存储单元执行并发重建。
2.根据权利要求1所述的方法,其中从所述多个存储单元中选择所述一组存储单元包括以所述一组盘作为候选盘执行以下操作,直到预定条件被满足:
从所述候选盘中确定分布有最大数目的要被重建的共有存储单元的一对盘;
从所述最大数目的要被重建的共有存储单元中选择一个存储单元,作为所述一组存储单元中的存储单元;以及
将所述候选盘中除所选择的所述一个存储单元所分布于的盘之外的盘作为下一轮迭代的候选盘。
3.根据权利要求2所述的方法,其中所述预定条件包括:所述候选盘中不存在分布有要被重建的共有存储单元的一对盘。
4.根据权利要求1所述的方法,其中所述多个存储单元中的存储单元具有各自的优先级,其中选择所述一组存储单元包括:
从具有相同优先级的存储单元中选择一个或多个存储单元作为所述一组存储单元中的存储单元,使得所述一组存储单元中的不同存储单元分布于不同的盘。
5.根据权利要求4所述的方法,其中从所述具有相同优先级的存储单元中选择所述一个或多个存储单元包括:
基于分布有具有所述相同优先级的存储单元的盘和已被选择为所述一组存储单元的存储单元所分布的盘,确定候选盘;
针对所述候选盘执行以下操作,直到所述候选盘中不存在一对盘分布有要被重建并且具有所述相同优先级的共有存储单元:
从所述候选盘中确定一对盘,所述一对盘分布有如下至少一个共有单元,并且在所述候选盘中分布有所述至少一个共有存储单元的一对或多对盘之中,所述一对盘分布有最大数目的要被重建的共有存储单元:
所述至少一个共有存储单元要被重建并且具有所述相同优先级;
从所述一对盘的要被重建的共有存储单元中选择一个具有所述相同优先级的存储单元,作为所述一组存储单元中的存储单元;以及
将所述候选盘中除所选择的所述一个存储单元所分布于的盘之外的盘作为下一轮迭代的候选盘。
6.根据权利要求1所述的方法,其中所述一组存储单元不超过阈值。
7.一种电子设备,包括:
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:
确定一组盘上要被重建的多个存储单元,所述多个存储单元分布在所述一组盘中的不同盘上;
基于所述多个存储单元在所述一组盘上的所述分布,从所述多个存储单元中选择一组存储单元,使得所述一组存储单元中的不同存储单元分布于不同的盘;以及
对所述一组存储单元执行并发重建。
8.根据权利要求7所述的设备,其中从所述多个存储单元中选择所述一组存储单元包括以所述一组盘作为候选盘执行以下操作,直到预定条件被满足:
从所述候选盘中确定分布有最大数目的要被重建的共有存储单元的一对盘;
从所述最大数目的要被重建的共有存储单元中选择一个存储单元,作为所述一组存储单元中的存储单元;以及
将所述候选盘中除所选择的所述一个存储单元所分布于的盘之外的盘作为下一轮迭代的候选盘。
9.根据权利要求8所述的设备,其中所述预定条件包括:所述候选盘中不存在分布有要被重建的共有存储单元的一对盘。
10.根据权利要求7所述的设备,其中所述多个存储单元中的存储单元具有各自的优先级,其中选择所述一组存储单元包括:
从具有相同优先级的存储单元中选择一个或多个存储单元作为所述一组存储单元中的存储单元,使得所述一组存储单元中的不同存储单元分布于不同的盘。
11.根据权利要求10所述的设备,其中从所述具有相同优先级的存储单元中选择所述一个或多个存储单元包括:
基于分布有具有所述相同优先级的存储单元的盘和已被选择为所述一组存储单元的存储单元所分布的盘,确定候选盘;
针对所述候选盘执行以下操作,直到所述候选盘中不存在一对盘分布有要被重建并且具有所述相同优先级的共有存储单元:
从所述候选盘中确定一对盘,所述一对盘分布有如下至少一个共有单元,并且在所述候选盘中分布有所述至少一个共有存储单元的一对或多对盘之中,所述一对盘分布有最大数目的要被重建的共有存储单元:
所述至少一个共有存储单元要被重建并且具有所述相同优先级;
从所述一对盘的要被重建的共有存储单元中选择一个具有所述相同优先级的存储单元,作为所述一组存储单元中的存储单元;以及
将所述候选盘中除所选择的所述一个存储单元所分布于的盘之外的盘作为下一轮迭代的候选盘。
12.根据权利要求7所述的设备,其中所述一组存储单元不超过阈值。
13.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至6中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111668200.0A CN116414295A (zh) | 2021-12-31 | 2021-12-31 | 用于存储管理的方法、设备和计算机程序产品 |
US17/887,785 US11953991B2 (en) | 2021-12-31 | 2022-08-15 | Method, device and computer program product for storage management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111668200.0A CN116414295A (zh) | 2021-12-31 | 2021-12-31 | 用于存储管理的方法、设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116414295A true CN116414295A (zh) | 2023-07-11 |
Family
ID=86991683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111668200.0A Pending CN116414295A (zh) | 2021-12-31 | 2021-12-31 | 用于存储管理的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11953991B2 (zh) |
CN (1) | CN116414295A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240303162A1 (en) * | 2023-03-10 | 2024-09-12 | Cohesity, Inc. | Performing a backup of an object based on an identifier associated with the object |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590801B1 (en) * | 2004-02-12 | 2009-09-15 | Netapp, Inc. | Identifying suspect disks |
US8949695B2 (en) * | 2009-08-27 | 2015-02-03 | Cleversafe, Inc. | Method and apparatus for nested dispersed storage |
US8990585B2 (en) * | 2009-12-29 | 2015-03-24 | Cleversafe, Inc. | Time based dispersed storage access |
US9201732B2 (en) * | 2010-01-28 | 2015-12-01 | Cleversafe, Inc. | Selective activation of memory to retrieve data in a dispersed storage network |
US9146810B2 (en) * | 2012-01-31 | 2015-09-29 | Cleversafe, Inc. | Identifying a potentially compromised encoded data slice |
US20190250823A1 (en) * | 2013-01-04 | 2019-08-15 | International Business Machines Corporation | Efficient computation of only the required slices |
US9501360B2 (en) * | 2013-07-01 | 2016-11-22 | International Business Machines Corporation | Rebuilding data while reading data in a dispersed storage network |
US10484474B2 (en) * | 2013-08-29 | 2019-11-19 | Pure Storage, Inc. | Rotating offline DS units |
US10503592B2 (en) * | 2014-12-02 | 2019-12-10 | Pure Storage, Inc. | Overcoming bottlenecks in partial and traditional rebuild operations |
US10120739B2 (en) * | 2014-12-02 | 2018-11-06 | International Business Machines Corporation | Prioritized data rebuilding in a dispersed storage network |
US10558527B2 (en) * | 2014-12-02 | 2020-02-11 | Pure Storage, Inc. | Rebuilding strategy in memory managed multi-site duplication |
US10528425B2 (en) * | 2015-02-27 | 2020-01-07 | Pure Storage, Inc. | Transitioning to an optimized data storage approach in a dispersed storage network |
US10466914B2 (en) * | 2015-08-31 | 2019-11-05 | Pure Storage, Inc. | Verifying authorized access in a dispersed storage network |
US10289507B1 (en) | 2015-10-27 | 2019-05-14 | Pavilion Data Systems, Inc. | Distributed rebuild of failed storage device |
US10459795B2 (en) * | 2017-01-19 | 2019-10-29 | International Business Machines Corporation | RAID systems and methods for improved data recovery performance |
US10210045B1 (en) | 2017-04-27 | 2019-02-19 | EMC IP Holding Company LLC | Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system |
CN109725826B (zh) | 2017-10-27 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机可读介质 |
CN113126887B (zh) | 2020-01-15 | 2024-09-06 | 伊姆西Ip控股有限责任公司 | 用于重建盘阵列的方法、电子设备和计算机程序产品 |
-
2021
- 2021-12-31 CN CN202111668200.0A patent/CN116414295A/zh active Pending
-
2022
- 2022-08-15 US US17/887,785 patent/US11953991B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230214300A1 (en) | 2023-07-06 |
US11953991B2 (en) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11099955B2 (en) | Method and device for rebuilding raid | |
US10936419B2 (en) | Method, device and computer readable medium for managing a storage system | |
US9304860B2 (en) | Arranging data handling in a computer-implemented system in accordance with reliability ratings based on reverse predictive failure analysis in response to changes | |
US9582363B2 (en) | Failure domain based storage system data stripe layout | |
US11347589B2 (en) | Evaluation for rebuilding performance of redundant arrays of independent disks | |
US20190129817A1 (en) | Method, device and computer program product for managing a storage system | |
US10949314B2 (en) | Method and apparatus for failure recovery of storage device | |
US9582433B2 (en) | Disk array flushing method and disk array flushing apparatus | |
US10031808B2 (en) | Raid 10 reads optimized for solid state drives | |
US20200394112A1 (en) | Reducing incidents of data loss in raid arrays of differing raid levels | |
US11074146B2 (en) | Method, device and computer program product for managing redundant arrays of independent drives | |
US10977129B2 (en) | Method and device for managing a hybrid storage disk array | |
CN109725830B (zh) | 管理独立磁盘冗余阵列的方法、设备和存储介质 | |
CN110413208B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN116414295A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN108733307B (zh) | 存储管理方法、设备以及计算机可读介质 | |
US11269521B2 (en) | Method, device and computer program product for processing disk unavailability states | |
US20210286676A1 (en) | Method, device and computer program products for storage management | |
US11442826B2 (en) | Reducing incidents of data loss in raid arrays having the same raid level | |
CN113535065B (zh) | 在存储系统中管理条带的方法、设备和计算机程序产品 | |
CN112732167B (zh) | 用于管理存储系统的方法、设备 | |
CN114168064A (zh) | 用于重建存储系统的方法、设备和计算机程序产品 | |
US11675497B2 (en) | Method, device, and computer program product for managing storage system | |
CN114442903B (zh) | 管理存储系统的方法、电子设备和计算机程序产品 | |
CN111124746A (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 |