CN109725830B - 管理独立磁盘冗余阵列的方法、设备和存储介质 - Google Patents
管理独立磁盘冗余阵列的方法、设备和存储介质 Download PDFInfo
- Publication number
- CN109725830B CN109725830B CN201711027427.0A CN201711027427A CN109725830B CN 109725830 B CN109725830 B CN 109725830B CN 201711027427 A CN201711027427 A CN 201711027427A CN 109725830 B CN109725830 B CN 109725830B
- Authority
- CN
- China
- Prior art keywords
- disk
- disks
- raid
- determining
- zone
- 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
Images
Classifications
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/061—Improving I/O performance
-
- 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/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1004—Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及用于管理独立冗余磁盘阵列(RAID)的方法、设备和存储介质。一种方法包括响应于RAID所占用的多个盘的数目超过第一阈值,确定多个盘中要被解除关联的第一数目的磁盘对,该第一数目的磁盘对至少包括彼此关联的第一盘和第二盘,并且第一盘中的第一区段和第二盘中的第二区段被包括在RAID的同一RAID条带中。该方法还包括确定多个盘中用于迁移第一区段和第二区段中的至少一个区段的第三盘。此外,该方法还包括将至少一个区段迁移至第三盘以解除第一盘和第二盘之间的关联,使得多个盘中彼此关联的磁盘对的第二数目不超过第二阈值。
Description
技术领域
本公开的实施例总体涉及数据存储领域,具体涉及用于管理独立磁盘冗余阵列(RAID)的方法、设备和存储介质。
背景技术
存储***通常具有多个存储盘,并且多个存储盘可以被组织在盘阵列中。例如,独立磁盘冗余阵列(RAID)是一种数据存储虚拟化技术,其出于数据冗余备份和/或性能改进的目的将多个存储盘组织成单个逻辑单元。以RAID5为例,一个RAID组(RAID group,RG)可以包括5个物理存储盘,其可以被划分为具有分布式校验信息的块级别条带。当RG中的单个盘发生故障时,后续的读取可以通过分布式校验信息来计算,使得用户数据不被丢失。此外,针对该RG的备用盘可以被选择以用于重建故障盘。然而,在故障盘的重建完成之前,如果RG中的另一盘也发生故障,则会导致用户数据丢失。
随着存储技术的发展,RG可以被分布到多于5个存储盘上。随着RG中的盘的数目越来越多,使得RG中两个盘同时发生故障的概率显著增加,从而导致用户数据丢失的概率也相应增加。
发明内容
本公开的实施例提供了用于管理RAID的方法、设备和存储介质。
在本公开的第一方面,提供了一种用于管理RAID的方法。该方法包括响应于RAID所占用的多个盘的数目超过第一阈值,确定多个盘中要被解除关联的第一数目的磁盘对,该第一数目的磁盘对至少包括彼此关联的第一盘和第二盘,并且第一盘中的第一区段和第二盘中的第二区段被包括在RAID的同一RAID条带中。该方法还包括确定多个盘中用于迁移第一区段和第二区段中的至少一个区段的第三盘。此外,该方法还包括将至少一个区段迁移至第三盘以解除第一盘和第二盘之间的关联,使得多个盘中彼此关联的磁盘对的第二数目不超过第二阈值。
在本公开的第二方面,提供了一种电子设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:响应于RAID所占用的多个盘的数目超过第一阈值,确定多个盘中要被解除关联的第一数目的磁盘对,该第一数目的磁盘对至少包括彼此关联的第一盘和第二盘,并且第一盘中的第一区段和第二盘中的第二区段被包括在RAID的同一RAID条带中;确定多个盘中用于迁移第一区段和第二区段中的至少一个区段的第三盘;以及将至少一个区段迁移至第三盘以解除第一盘和第二盘之间的关联,使得多个盘中彼此关联的磁盘对的第二数目不超过第二阈值。
在本公开的第三方面,提供了一种计算机可读存储介质,包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的存储***的架构图;
图2示出了根据本公开的实施例的盘阵列组的示例性布局的示意图;
图3示出了根据本公开的实施例的用于管理RAID的方法的流程图;
图4示出了根据本公开的实施例的磁盘对被解除关联的示意图;
图5示出了根据本公开的实施例的用于管理RAID的方法的流程图;以及
图6示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了根据本公开的实施例的存储***100的架构图。如图1所示,存储***100可以包括存储处理器110以及存储资源池120。应当理解,如图1所示的存储***100的结构和功能仅用于示例的目的,而不暗示对于本公开的范围的任何限制。本公开的实施例可以被体现在不同的结构和/或功能中。
如图1所示,存储资源池120可以包括多个存储盘121-1、121-2……121-N(统称为“存储盘121”,其中N为正整数)。在此所述的“存储盘”可以指代任何目前已知或者将来开发的非易失性存储介质,例如磁盘、光盘或固态盘(SSD)等等。在本文的描述中,将以磁盘作为存储盘的示例。然而,应当理解,这仅仅是出于便于描述的目的,而不暗示对本公开的范围的任何限制。
每个存储盘121可以被划分为多个区段。例如,存储处理器110可以将多个区段中的至少部分区段组织成盘阵列130。盘阵列130例如可以是独立磁盘冗余阵列(RAID),其通常出于数据冗余备份和/或性能改进的目的而将多个物理存储单元组合成逻辑存储单元。根据所要求的冗余度和性能的级别,其可以具有不同的类型,诸如RAID 0、RAID 1……RAID5等。
盘阵列130可以包括一个或多个盘阵列组(也即,RG),每个盘阵列组可以由多个RAID条带(RAID extent,简称RE)组成。RE可以包括用于存储用户数据的数据区段和用于存储校验信息的校验区段。以具有4D+1P布局的RAID5为例,其中每个RE可以包括4个数据区段(即“4D”)和1个校验区段(即“1P”)。在以下的描述中,将以4D+1P的RAID 5作为盘阵列130的示例。然而,应当理解,这仅仅是出于说明的目的,而不暗示对本公开的范围的任何限制。本公开的实施例可以被应用于具有其他布局的其他类型的RAID。
在传统RAID5的实现中,一个RG可以包括5个物理存储盘。例如,一个RG将消耗所占用的5个物理存储盘的所有空间以存储数据和校验信息。此外,在传统RAID 5的实现中,通常针对RG预留一个完整物理存储盘作为备用盘,以服务于RG中的故障盘的重建。
与传统RAID的实现不同,在一些实施例中,如图1所示的盘阵列130可以基于物理存储盘121中的区段而构建(在本文中也被称为“映射RAID”)。也即,在如图1所示的盘阵列130中,RE可以被映射到物理存储盘的区段上。
图2图示了根据本公开的实施例的盘阵列130中的盘阵列组210的示例性布局的示意图。
如图2所示,RG 210可以使用N个盘(例如,N>5),也即如图1所示的盘121-1、121-2……121-N。每个盘121被划分为多个区段。如图2所示,RG 210例如可以包括2个RE 220-1和220-2(统称为RE 220)。这些RE被均匀地分布在所有盘121中,其中每个RE可以包括4个数据区段和1个校验区段,并且这些数据区段和校验区段被分布在5个不同的盘中。在图2中,例如RE 220-1可以被分布在盘121-2、121-3、121-4、121-5和121-6上,而RE 220-2可以被分布在盘121-5、121-6、121-7、121-8和121-9上。
此外,映射RAID可以利用每个盘上的空闲区段作为备用区段,而不是像传统RAID5那样预留整个物理存储盘作为备用盘。当盘121中的一个盘发生故障时,针对故障盘上被使用的每个区段,可以随机选择其他盘上的一个空闲区段作为替代。与传统RAID相比,由于更多的盘被涉及到重建过程中,使得针对多个区段的重建和写入能够并行执行,由此降低RAID的重建时间。
然而,通过增加RG中的盘数来将传统RAID扩展为映射RAID可能影响RAID的可靠性。例如,在传统RAID5中,当RG所包括的5个盘中的2个盘同时发生故障时、或者在发生故障的一个盘的重建完成以前另一盘发生故障时,将导致用户数据丢失。因此,在传统RAID5中,一个RG构成一个“故障域”。在映射RAID中,为了将尽可能多的盘涉及到重建过程中以尽可能降低重建时间,RE通常被尽可能均匀地分布在整个存储资源池上,使得整个存储资源池构成一个故障域。例如,当存储资源池中2个盘同时发生故障时、或者在发生故障的一个盘的重建完成以前另一盘发生故障时,会导致用户数据丢失。由于映射RAID的故障域中的盘数明显多于传统RAID中一个RG所包括的盘数,因此用户数据丢失的概率将相应地增加。
发明人认识到,尽管由于映射RAID中的盘数增加使得数据丢失的概率相应增加,但是在另一方面映射RAID的重建速率明显高于传统RAID,由此能够降低发生故障的第一个盘的重建时间,使得2个盘同时处于故障状态的概率降低。也即,较高的重建速率将有助于降低用户数据丢失的概率。为了保证映射RAID的可靠性不低于传统RAID的可靠性,可以利用以下公式(1)和(2)来描述重建时间、盘数以及可靠性之间的关系:
其中,T表示传统RAID中单个盘的重建时间,T’表示映射RAID中单个盘的重建时间,N表示映射RAID所占用的存储资源池中的盘数,并且W表示RG的宽度(也即,一个RE所包括的区段的数目)。例如,公式(1)针对具有4D+1P布局的RAID 5,其中W=5;而公式(2)针对具有4D+2P的RAID6,其中W=6。由上述公式(1)和(2)能够看出,可以通过降低T’来保证映射RAID的可靠性。
在实践中,重建速率通常受到***存储器、中央处理单元(CPU)功率、盘带宽等各种因素的限制,导致T’不可能无限制降低。因此,为了保证映射RAID的可靠性,需要限制存储资源池(也即,一个故障域)中的盘数N。基于以上公式(1)或者公式(2),能够确定映射RAID的故障域所能够容纳的最高磁盘数目(以下也被称为“第一阈值”)。
当映射RAID的故障域中的盘数超过第一阈值时,一些传统方案通过划分故障域的方式来保证映射RAID的可靠性。也即,将超过第一阈值的数目的盘划分到两个故障域中,以保证每个故障域中的盘数不超过第一阈值。然而,这种方案将导致大量的数据迁移。此外,如以上所描述的,每个故障域需要预留单独的备用区段。当划分故障域时,所预留的备用区段的数目也要相应增加。
本公开的实施例提出了一种用于管理RAID的方案。该方案能够保证映射RAID的可靠性。当映射RAID的故障域中的盘数超过第一阈值时,该方案能够尽量减少数据迁移的发生,同时不需要额外增加预留的备用空间。
图3示出了根据本公开的实施例的用于管理RAID的方法300的流程图。以下结合如图1所示的存储***100来描述方法300中所涉及的动作。例如,在一些实施例中,方法300可以由存储处理器110来执行。此外,以下以盘阵列130作为对象来描述方法300,其中盘阵列130例如包括如图2所示的RG 210。应当理解,方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,并且本公开的范围在此方面不受限制。
在框310,存储处理器110响应于RG 210所占用的多个盘的数目N超过第一阈值,确定多个盘中要被解除关联的磁盘对的数目(以下也称为“第一数目”)。
在一些实施例中,第一数目的磁盘对之一例如可以包括彼此关联的一对盘(例如,被称为“第一盘”和“第二盘”)。在此所述的“彼此关联”指代第一盘中的区段和第二盘中的区段被同时包括在RG 210的同一RE中。在一些实施例中,同时涉及第一盘和第二盘的RE的数目可能大于1。在本文中,利用磁盘对的“关联度”来指示RG 210中与该磁盘对相关联的RE的数目。例如,如图2所示,RG 210中的RE 220-1同时涉及盘121-5和盘121-6,此外RE 220-2也同时涉及盘121-5和盘121-6。因此,盘121-5和盘121-6之间的关联度为2。相应地,在此所述的“解除关联”指代使得RG 210的任一RE不同时涉及第一盘中的区段和第二盘中的区段,也即,使得第一盘和第二盘的关联度变为0。
如上所述,在RG 210所占用的N个盘中,如果任意2个盘发生故障,则将导致用户数据丢失。也即,针对均匀分布在N个盘上的RG 210而言,一共可以存在种组合方式(也即,个磁盘对)。假设在任何时刻一个盘发生故障的概率是P、故障盘的重建时间为T并且在重建时间T期间另一个盘发生故障的概率是P(T),则数据丢失概率Pdatalost可以利用如下的公式(3)来表示:
此外,假设为了保证映射RAID的可靠性,映射RAID的故障域所能够容纳的最高磁盘数目(上面提到的“第一阈值”)为M,其对应的数据丢失概率为(例如,Pmax通常对应于传统RAID的可靠性)。这通常意味着,如果RG 210所占用的盘数超过M,则RG 210的相应数据丢失概率Pdatalost将超过Pmax。然而,根据公式(3)可以看出,如果RG210中彼此关联的磁盘对的数目(以下以称为“第二数目”)不超过(以下也称为“第二阈值”),则相应地数据丢失概率Pdatalost也将不超过Pmax。
因此,在一些实施例中,当RG 210所占用的多个盘的数目N超过第一阈值M时,存储处理器110可以使一些原本彼此关联的磁盘对被解除关联,并且保证RG 210中彼此关联的磁盘对的第二数目不超过第二阈值由此保证RG 210的可靠性。
在一些实施例中,存储处理器110可以基于RG 210所占用的多个盘的数目N和第二阈值来确定要被解除关联的磁盘对的第一数目。第一数目可以是例如,假设M=64,并且N=65,则待解除关联的磁盘对的第一数目为也即64。又如,假设M=64,并且N=66,则待解除关联的磁盘对的第一数目为也即129。为了简化描述,以下以M=64,并且N=65为例来进一步说明本公开的实施例。
存储处理器110可以从N个盘中任意选择待解除关联的第一数目的磁盘对。在一些实施例中,存储处理器110可以以尽可能均匀的方式来选择第一数目的磁盘对。例如,存储处理器110可以以循环赛方式来选择的第一数目的磁盘对。以M=64并且N=65为例,所选择的第一数目的磁盘对例如可以包括(120-1,120-2)、(120-2,120-3)、(120-3,120-4)……(120-64,120-1)。备选地,在另一些实施例中,存储处理器110也可以从N个盘中选择原本关联度较低的磁盘对,由此降低在后续解除关联的具体操作中的数据迁移的次数。
在一些实施例中,占用N个盘的RG 210中的磁盘对的关联度可以利用N×N的关系矩阵来指示。在关系矩阵中,第i行第j列的元素NW(i,j)的值可以指示磁盘对(120-i,120-j)的关联度,也即盘120-i中的区段与盘120-j中的区段被同时包括在RG 210中的同一RE中的次数。关系矩阵可以是对称矩阵,也即NW(i,j)=NW(j,i)。此外,关系矩阵可以指示映射RAID的条带在多个盘之间分布的均匀性。例如,当关系矩阵中的元素的值彼此接近时,这可以指示映射RAID的条带在多个盘之间分布地较均匀。
以如图2所示的RG 210为例,RE 220-1涉及盘121-2、121-3、121-4、121-5和121-6。当RE 220-1被创建时,关系矩阵中的元素NW(2,3)、NW(2,4)、NW(2,5)、NW(2,6)、NW(3,4)、NW(3,5)、NW(3,6)、NW(4,5)、NW(4,6)、NW(5,6)及其对称元素的值被相应地加1。RE 220-2涉及盘121-5、121-6、121-7、121-8和121-9。当RE 220-2被创建时,关系矩阵中的元素NW(5,6)、NW(5,7)、NW(5,8)、NW(5,9)、NW(6,7)、NW(6,8)、NW(6,9)、NW(7,8)、NW(7,9)、NW(8,9)及其对称元素的值被相应地加1。
在一些实施例中,存储处理器110可以从与RG 210相关联的关系矩阵中选择与具有较小值的元素相对应的第一数目的磁盘对,以解除关联。
以下针对RG 210中的磁盘对121-5和121-6来进一步详细说明解除磁盘对之间的关联的操作。在下文中,盘121-5也被称为“第一盘”,而盘121-6也被称为“第二盘”。如图2所示,RE 220-1占用了盘121-5上的区段221并且占用了盘121-6上的区段222。在下文中,区段221也被称为“第一区段”,并且区段222也被称为“第二区段”。
在框320,存储处理器110确定多个盘中用于迁移第一区段221和第二区段222中的至少一个区段的盘(以下也称为“第三盘”)。
在一些实施例中,存储处理器110可以从第一区段221和第二区段222中选择待迁移的至少一个区段,并且确定用于迁移该至少一个区段的第三盘。
例如,存储处理器110可以以如下方式来确定待迁移的至少一个区段和第三盘,该方式避免至少一个区段向第三盘的迁移导致在框320处确定的第一数目的磁盘对中的任何磁盘对的关联度增加。以此方式,能够避免第一数目的磁盘对始终无法解除关联的情况。
为了便于描述,在此将待迁移的至少一个区段所在的盘称为“源盘”,并且将用于迁移至少一个区段的第三盘称为“目标盘”。例如,源盘可以是第一盘(即,盘121-5)或者第二盘(即,盘121-6),而第三盘可以是多个盘121中除RE 220-1占用的盘(121-2、121-3、121-4、121-5和121-6)之外的任一盘。也即,可以存在源盘和目标盘的多个不同的候选组合。
在一些实施例中,为了从多个候选组合中选择优选迁移方案,存储处理器110可以针对每种候选组合进行评分。每种候选组合的相应得分可以指示从相应源盘向相应目标盘迁移至少一个区段对于RG210中的RAID条带在多个盘之间分布的影响。RAID条带在多个盘之间的分布例如可以由之前描述的关系矩阵来指示。存储处理器110可以基于多个候选组合的相应得分来从多个候选组合中选择优选迁移方案。
在一些实施例中,每种候选组合的相应得分可以基于关系矩阵从迁移之前到迁移之后的变化来被确定。
当将RE 220-1中的区段从源盘迁移到目标盘时,与RE 220-1相关联的盘之间的关联度将被改变。例如,与RG 210相关联的关系矩阵中的8个元素将被更新。因为RE 220-1中的4个盘与源盘的关联度将降低,而这4个盘与目标盘的关联度将增加。也即,关系矩阵中的4个元素的值将被降低,而另外4个元素的值将相应增加。
在一些实施例中,假设源盘被表示为121-s,而目标盘被表示为121-d,则与候选组合(121-s->121-d)相关联的得分SCORE可以被表示为:
SCORE=Σ(NW(i,s))–Σ(NW(i,d)),其中121-i∈RE 220-1 公式(4)
如果该得分大于零,则其可以指示该候选迁移方案将使得关系矩阵更平坦,也即使得RG 210在多个盘中的分布更均匀。相反,如果该得分为小于零,则其可以指示该候选迁移方案将使得关系矩阵更不平坦,也即使得RG 210在多个盘中的分布更不均匀。
在一些实施例中,存储处理器110可以基于上述公式(4)来针对多个候选组合中的每个候选组合进行评分,并且从中选择具有最高得分的候选组合。也即,优选迁移方案能够使得映射RAID在多个盘之间的分布更加均匀,由此提高映射RAID的性能。以此方式,存储处理器110能够确定第一区段221和第二区段222中的哪个区段要被迁移,并且确定该区段将被迁移至哪个盘。
在框330,存储处理器110将至少一个区段迁移至第三盘,以解除第一盘和第二盘之间的关联,使得多个盘中彼此关联的磁盘对数目(也称为“第二数目”)不超过第二阈值。
在一些实施例中,存储处理器110可以通过将所确定的待迁移区段中存储的数据拷贝到第三盘的空闲区段中,来将该区段迁移至第三盘。此外,在一些实施例中,当第一盘和第二盘的关联度大于1(例如,如图2所示,盘121-5和121-6的关联度为2)时,存储处理器110可以针对与第一盘和第二盘相关联的每个RE迭代地执行框320和框330,直到第一盘和第二盘的关联度为0。
例如,图4示出了根据本公开的实施例的如图2所示的磁盘对121-5和121-6被解除关联的示意图。如图4所示,通过执行上述方法300,RE 220-1中的区段221被迁移至盘121-1,并且RE 220-2中的区段223被迁移至盘121-11,使得盘121-5和盘121-6被解除关联。
图5示出了根据本公开的实施例的用于管理RAID的方法500的流程图。方法500可以作为方法300的一种更具体的示例性实现方式。例如,方法500可以由如图1所示的存储处理器110来执行。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作,并且本公开的范围在此方面不受限制。
存储处理器110响应于RAID所占用的多个盘的数目超过第一阈值,生成(501)要被解除关联的磁盘对的第一列表。
存储处理器110可以检查(502)第一列表中的所有磁盘对是否已被处理。如果是,则方法500结束;如果否,则存储处理器110可以从第一列表中获取(503)要处理的磁盘对。
存储处理器110可以生成(504)与所获取的磁盘对相关联的RE的第二列表。
存储处理器110可以检查(505)第二列表中的RE是否已被处理。如果是,则方法500返回至框520;如果否,则存储处理器110可以从第二列表中获取(506)要处理的RE。
存储处理器110可以将要处理的磁盘对中的两个盘加入(507)到源盘列表中,并且将存储资源池中未被所获取的RE占用的其他盘加入(508)到目标盘列表中。
存储处理器110可以检查(509)源盘列表中的所有盘是否已被处理。如果否,则存储处理器110可以从源盘列表中获取(510)要处理的源盘。
存储处理器110可以进一步检查(511)目标盘列表中的所有盘是否已被处理。如果是,则方法500进行至框509;如果否,则存储处理器110可以从目标盘列表中获取(512)待处理的目标盘。
存储处理器110可以确定(513)从所获取的源盘到所获取的目标盘的迁移是否会导致第一列表中的磁盘对的关联度增加。如果是,则方法500进行至框511;如果否,则存储处理器110可以进一步确定(514)与从源盘到目标盘的迁移相关联的得分,并且基于该得分来更新(515)候选源盘和候选目标盘,使得与从候选源盘到候选目标盘的迁移相关联的得分最高。然后,方法500进行至框511。
如果在框509处,存储处理器110确定源盘列表中的所有盘已被处理,则存储处理器110可以将相应盘区段从候选源盘迁移(516)至候选目标盘。然后,方法500进行至框505。
通过以上描述能够看出,根据本公开的实施例的用于管理RAID的方案能够保证映射RAID的可靠性。当映射RAID的故障域中的盘数超过该故障域所能容纳的最高盘数时,该方案能够在保证映射RAID的可靠性的同时尽量减少数据迁移的发生,同时不需要额外增加预留的备用空间。
图6示出了可以用来实施本公开内容的实施例的示例设备600的示意性框图。例如,如图1所示的存储处理器110可以由设备600实施。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300和/或500,可由处理单元601执行。例如,在一些实施例中,方法300和/或500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM603并由CPU 601执行时,可以执行上文描述的方法300和/或500的一个或多个动作。
本公开可以是方法、装置、***和/或计算机可读存储介质。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (15)
1.一种用于管理独立磁盘冗余阵列RAID的方法,所述方法包括:
响应于所述RAID所占用的多个盘的数目超过第一阈值,确定所述多个盘中要被解除关联的第一数目的磁盘对,所述第一数目的磁盘对至少包括彼此关联的第一盘和第二盘,并且所述第一盘中的第一区段和所述第二盘中的第二区段被包括在所述RAID的同一RAID条带中;
确定所述多个盘中用于迁移所述第一区段和所述第二区段中的至少一个区段的第三盘;以及
将所述至少一个区段迁移至所述第三盘以解除所述第一盘和所述第二盘之间的关联,使得所述多个盘中彼此关联的磁盘对的第二数目不超过第二阈值。
2.根据权利要求1所述的方法,其中确定所述第一数目的磁盘对包括:
基于所述第二阈值和所述多个盘的所述数目,确定所述第一数目。
3.根据权利要求1所述的方法,其中确定所述第三盘包括:
以如下方式确定所述至少一个区段和所述第三盘:避免所述至少一个区段向所述第三盘的迁移导致所述第一数目的磁盘对中的磁盘对的关联度增加,所述关联度指示所述RAID中与所述磁盘对相关联的RAID条带的数目。
4.根据权利要求3所述的方法,其中确定所述第三盘包括:
确定用于迁移所述至少一个区段的多个候选盘;
确定所述多个候选盘各自的得分,所述多个候选盘中的一个候选盘的得分指示所述至少一个区段向所述候选盘的迁移对于所述RAID中的RAID条带在所述多个盘之间分布的影响;以及
基于所述得分,从所述多个候选盘中选择所述第三盘。
5.根据权利要求4所述的方法,其中确定所述多个候选盘中的一个候选盘的得分包括:
确定第一关系矩阵,所述第一关系矩阵指示在所述至少一个区段向所述候选盘的迁移之前所述RAID中的RAID条带在所述多个盘之间的第一分布;
确定第二关系矩阵,所述第二关系矩阵指示在所述迁移之后所述RAID中的RAID条带在所述多个盘之间的第二分布;以及
基于所述第一关系矩阵和所述第二关系矩阵,确定所述得分。
6.根据权利要求5所述的方法,其中所述第一关系矩阵中的第一元素指示所述RAID中与第一磁盘对相关联的RAID条带的第三数目,并且所述第二关系矩阵中与所述第一元素相对应的第二元素指示所述RAID中与所述第一磁盘对相关联的RAID条带的第四数目。
7.根据权利要求1所述的方法,其中将所述至少一个区段迁移至所述第三盘包括:
将所述至少一个区段中存储的数据拷贝到所述第三盘中的至少一个空闲区段中。
8.一种电子设备,所述设备包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于RAID所占用的多个盘的数目超过第一阈值,确定所述多个盘中要被解除关联的第一数目的磁盘对,所述第一数目的磁盘对至少包括彼此关联的第一盘和第二盘,并且所述第一盘中的第一区段和所述第二盘中的第二区段被包括在所述RAID的同一RAID条带中;
确定所述多个盘中用于迁移所述第一区段和所述第二区段中的至少一个区段的第三盘;以及
将所述至少一个区段迁移至所述第三盘以解除所述第一盘和所述第二盘之间的关联,使得所述多个盘中彼此关联的磁盘对的第二数目不超过第二阈值。
9.根据权利要求8所述的设备,其中确定所述第一数目的磁盘对包括:
基于所述第二阈值和所述多个盘的所述数目,确定所述第一数目。
10.根据权利要求8所述的设备,其中确定所述第三盘包括:
以如下方式确定所述至少一个区段和所述第三盘:避免所述至少一个区段向所述第三盘的迁移导致所述第一数目的磁盘对中的磁盘对的关联度增加,所述关联度指示所述RAID中与所述磁盘对相关联的RAID条带的数目。
11.根据权利要求8所述的设备,其中确定所述第三盘包括:
确定用于迁移所述至少一个区段的多个候选盘;
确定所述多个候选盘各自的得分,所述多个候选盘中的一个候选盘的得分指示所述至少一个区段向所述候选盘的迁移对于所述RAID中的RAID条带在所述多个盘之间分布的影响;以及
基于所述得分,从所述多个候选盘中选择所述第三盘。
12.根据权利要求11所述的设备,其中确定所述多个候选盘中的一个候选盘的得分包括:
确定第一关系矩阵,所述第一关系矩阵指示在所述至少一个区段向所述候选盘的迁移之前所述RAID中的RAID条带在所述多个盘之间的第一分布;
确定第二关系矩阵,所述第二关系矩阵指示在所述迁移之后所述RAID中的RAID条带在所述多个盘之间的第二分布;以及
基于所述第一关系矩阵和所述第二关系矩阵,确定所述得分。
13.根据权利要求12所述的设备,其中所述第一关系矩阵中的第一元素指示所述RAID中与第一磁盘对相关联的RAID条带的第三数目,并且所述第二关系矩阵中与所述第一元素相对应的第二元素指示所述RAID中与所述第一磁盘对相关联的RAID条带的第四数目。
14.根据权利要求8所述的设备,其中将所述至少一个区段迁移至所述第三盘包括:
将所述至少一个区段中存储的数据拷贝到所述第三盘中的至少一个空闲区段中。
15.一种计算机可读存储介质,包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-7中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711027427.0A CN109725830B (zh) | 2017-10-27 | 2017-10-27 | 管理独立磁盘冗余阵列的方法、设备和存储介质 |
US16/166,476 US11003374B2 (en) | 2017-10-27 | 2018-10-22 | Methods, devices and computer program products for managing a redundant array of independent disks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711027427.0A CN109725830B (zh) | 2017-10-27 | 2017-10-27 | 管理独立磁盘冗余阵列的方法、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109725830A CN109725830A (zh) | 2019-05-07 |
CN109725830B true CN109725830B (zh) | 2022-02-08 |
Family
ID=66291932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711027427.0A Active CN109725830B (zh) | 2017-10-27 | 2017-10-27 | 管理独立磁盘冗余阵列的方法、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11003374B2 (zh) |
CN (1) | CN109725830B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857541B (zh) | 2019-04-25 | 2024-07-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储***的方法、设备和计算机程序产品 |
CN111858188A (zh) * | 2019-04-29 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
CN112748853B (zh) * | 2019-10-30 | 2024-04-16 | 伊姆西Ip控股有限责任公司 | 用于管理盘的方法、设备和计算机可读介质 |
CN112748862A (zh) * | 2019-10-31 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于管理盘的方法、电子设备和计算机程序产品 |
CN113126891B (zh) * | 2020-01-15 | 2024-05-24 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
CN113590019B (zh) * | 2020-04-30 | 2023-11-07 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备和计算机程序产品 |
CN114253460A (zh) * | 2020-09-23 | 2022-03-29 | 伊姆西Ip控股有限责任公司 | 管理存储池的方法、设备和计算机程序产品 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111147B1 (en) * | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Location-independent RAID group virtual block management |
US7395369B2 (en) * | 2004-05-18 | 2008-07-01 | Oracle International Corporation | Distributing data across multiple storage devices |
US7404036B2 (en) * | 2005-11-23 | 2008-07-22 | International Business Machines Corporation | Rebalancing of striped disk data |
CN102081559B (zh) * | 2011-01-11 | 2013-06-05 | 华为数字技术(成都)有限公司 | 一种独立磁盘冗余阵列的数据恢复方法和装置 |
CN103970481B (zh) * | 2013-01-29 | 2017-03-01 | 国际商业机器公司 | 重建存储器阵列的方法和装置 |
US20150095555A1 (en) * | 2013-09-27 | 2015-04-02 | Avalanche Technology, Inc. | Method of thin provisioning in a solid state disk array |
US9542126B2 (en) * | 2013-04-22 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Redundant array of independent disks systems that utilize spans with different storage device counts for a logical volume |
WO2016051512A1 (ja) * | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
US10528272B2 (en) * | 2015-02-20 | 2020-01-07 | International Business Machines Corporation | RAID array systems and operations using mapping information |
JP6459644B2 (ja) * | 2015-03-05 | 2019-01-30 | 富士通株式会社 | ストレージ制御装置、制御システム及び制御プログラム |
-
2017
- 2017-10-27 CN CN201711027427.0A patent/CN109725830B/zh active Active
-
2018
- 2018-10-22 US US16/166,476 patent/US11003374B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN109725830A (zh) | 2019-05-07 |
US11003374B2 (en) | 2021-05-11 |
US20190155535A1 (en) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725830B (zh) | 管理独立磁盘冗余阵列的方法、设备和存储介质 | |
CN109213618B (zh) | 用于管理存储***的方法、设备和计算机程序产品 | |
US11099955B2 (en) | Method and device for rebuilding raid | |
CN109213619B (zh) | 用于管理存储***的方法、设备和计算机程序产品 | |
US10705931B2 (en) | Methods, devices and computer readable mediums for managing storage system | |
US11341049B2 (en) | Method, apparatus, and computer program product for managing storage system | |
CN110413208B (zh) | 用于管理存储***的方法、设备和计算机程序产品 | |
CN107203442B (zh) | 独立磁盘冗余阵列的重建性能的评估方法和设备 | |
US11232005B2 (en) | Method, device, and computer program product for managing storage system | |
CN109725823B (zh) | 用于管理混合存储盘阵列的方法和设备 | |
US20200133809A1 (en) | Method, device and program product for managing data of storage device | |
CN111857553A (zh) | 管理盘阵列的方法、装置和计算机程序产品 | |
US11422909B2 (en) | Method, device, and storage medium for managing stripe in storage system | |
CN113590019B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US11340819B2 (en) | Method, device and computer program product for locking at least two address references pointing to storage block in raid type conversion | |
CN108733307B (zh) | 存储管理方法、设备以及计算机可读介质 | |
US11561859B2 (en) | Method, device and computer program product for managing data | |
CN111857560B (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
US20200133514A1 (en) | Proactive copy in a storage environment | |
CN113391945A (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
CN112748848A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN111124249A (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
US11620080B2 (en) | Data storage method, device and computer program product | |
US20180101436A1 (en) | Bundled writes in a distributed storage system | |
US20210117088A1 (en) | Method, device, and computer program product for storage management |
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 |