CN113535065A - 在存储系统中管理条带的方法、设备和计算机程序产品 - Google Patents
在存储系统中管理条带的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN113535065A CN113535065A CN202010289151.9A CN202010289151A CN113535065A CN 113535065 A CN113535065 A CN 113535065A CN 202010289151 A CN202010289151 A CN 202010289151A CN 113535065 A CN113535065 A CN 113535065A
- Authority
- CN
- China
- Prior art keywords
- storage
- storage device
- stripe
- relevance
- storage devices
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 590
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004590 computer program Methods 0.000 title claims abstract description 18
- 238000009826 distribution Methods 0.000 claims abstract description 12
- 238000010586 diagram Methods 0.000 description 35
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
-
- 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/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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及在存储系统中管理条带的方法、设备和计算机程序产品。在一种方法中,在包括多个存储设备的存储系统中,根据在存储系统中创建条带的请求,确定多个存储设备中的存储设备的设备相关度,设备相关度表示存储系统中已经被创建的一组条带在存储设备以及存储设备以外的其他存储设备之间的分布。基于确定的设备相关度,从多个存储设备中选择一个存储设备。将选择的存储设备中的一个区块添加至条带。根据本公开的其他示例性实现方式,提供了相应设备和计算机程序产品。可以以使得条带中的各个区块尽可能均匀地分布在存储系统的多个存储设备之中,进而确保存储系统的负载平衡并且以更为有效的方式管理存储系统中的条带。
Description
技术领域
本公开的各实现方式涉及存储管理,更具体地,涉及用于管理存储系统中的条带的方法、设备和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提供了越来越高的需求。目前,已经开发出了基于独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来重建故障磁盘中的数据。
目前已经开发出了映射独立磁盘冗余阵列(Mapped RAID)。在该映射RAID中,磁盘是一个逻辑概念并且可以包括多个区块(extent)。一个逻辑磁盘中包括的多个区块可以分布在资源池中的不同物理存储设备上。对于映射RAID的一个条带中的多个区块而言,该多个区块应当分布在不同的物理存储设备上。这使得当该多个区块中的一个区块所在的物理存储设备出现故障时,可以执行重建操作以便从其他区块所在的物理存储设备中恢复数据。此时如何从多个存储系统中选择区块以用于创建条带,成为一个技术难题。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来管理存储系统中的条带的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为有效的方式管理存储系统中的条带。
根据本公开的第一方面,提供了一种用于在存储系统中管理条带的方法,存储系统包括多个存储设备。在该方法中,根据在存储系统中创建条带的请求,确定多个存储设备中的存储设备的设备相关度(device correlation),设备相关度表示存储系统中已经被创建的一组条带在存储设备以及存储设备以外的其他存储设备之间的分布。基于确定的设备相关度,从多个存储设备中选择一个存储设备。将选择的存储设备中的一个区块添加至条带。
根据本公开的第二方面,提供了提一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行用于在存储系统中管理条带的动作,存储系统包括多个存储设备。该动作包括:根据在存储系统中创建条带的请求,确定多个存储设备中的存储设备的设备相关度,设备相关度表示存储系统中已经被创建的一组条带在存储设备以及存储设备以外的其他存储设备之间的分布;基于确定的设备相关度,从多个存储设备中选择一个存储设备;以及将选择的存储设备中的一个区块添加至条带。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1A和1B分别示意性示出了其中可以实现本公开的实现方式的存储系统的框图;
图2示意性示出了其中可以实现本公开的实现方式的示例性环境的框图;
图3示意性示出了图2中的存储资源池的图示;
图4示意性示出了根据本公开的一个实现方式的用于在存储系统中管理条带的过程的框图;
图5示意性示出了根据本公开的一个实现方式的用于在存储系统中管理条带的方法的框图;
图6示意性示出了根据本公开的一个实现方式的确定两个存储设备之间的相关度的过程的框图;
图7A示意性示出了根据本公开的一个实现方式的选择用于创建条带的第一个区块的过程的框图;
图7B至7E分别示意性示出了根据本公开的一个实现方式的选择用于创建条带的其他区块的过程的框图;
图8示意性示出了根据本公开的一个实现方式所创建的一个条带的框图;
图9示意性示出了根据本公开的一个实现方式所创建的多个条带的框图;以及
图10示意性示出了根据本公开的示例性实现的用于在存储系统中管理条带的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在本公开的上下文中,存储系统可以是基于RAID的存储系统。基于RAID的存储系统可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。RAID可以提供优于单一的存储设备的各种优势,例如,增强数据整合度,增强容错功能,增加吞吐量或容量,等等。RAID存在多个标准,例如RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-10,RAID-50等等。
图1A示意性示出了其中可以实现本公开的方法的存储系统100A的示意图。在图1A所示的存储系统中,以包括五个独立存储设备(110、112、114、116以及118)的RAID-5(4D+1P,其中4D表示存储系统中包括四个存储设备来用于存储数据,1P表示存储系统中包括一个存储设备来用于存储P校验)阵列为示例,来说明RAID的工作原理。应当注意,尽管图1A中示意性示出了五个存储设备,在其他的实现方式中,根据RAID的等级不同,还可以包括更多或者更少的存储设备。尽管图1A中示出了条带120、122、124、…、126,在其他的示例中,RAID系统还可以包括不同数量的条带。
在RAID中,条带可以跨越多个物理存储设备(例如,条带120跨越存储设备110、112、114、116以及118)。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带120中存储的数据包括多个部分:存储在存储设备110上的数据块D00、存储在存储设备112上的数据块D01、存储在存储设备114上的数据块D02、存储在存储设备116上的数据块D03、以及存储在存储设备118上的数据块P0。在此示例中,数据块D00、D01、D02、以及D03是被存储的数据,而数据块P0是被存储数据的P校验。
在其他条带122和124中存储数据的方式也类似于条带120,不同之处在于,有关其他数据块的校验可以存储在不同于存储设备118的存储设备上。以此方式,当多个存储设备110、112、114、116以及118中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。
图1B示意性示出了存储系统110A的重建过程的示意图100B。如图1B所示,当一个存储设备(例如,以阴影示出的存储设备116)出现故障时,可以从其余的正常操作的多个存储设备110、112、114、118中恢复数据。此时,可以向RAID中加入新的后备存储设备118B来替代存储设备118,以此方式,可以将恢复的数据写入118B并实现系统的重建。
应当注意,尽管在上文中参见图1A和图1B描述了包括5个存储设备(其中4个存储设备用于存储数据,1个存储设备用于存储校验)的RAID-5的存储系统,根据其他RAID等级的定义,还可以存在包括其他数量的存储设备的存储系统。例如,基于RAID-6的定义,可以利用两个存储设备来分别存储校验P和Q。又例如,基于三重校验RAID的定义,可以利用三个存储设备来分别存储校验P、Q和R。
随着分布式存储技术的发展,图1A和1B所示的存储系统中的各个存储设备110、112、114、116以及118可以不再局限于物理存储设备,而是可以是虚拟存储设备。例如,存储设备110上的各个区块可以分别来自于资源池中的不同的物理存储设备(在下文中将简称为存储设备)。图2示意性示出了其中可以实现本公开的方法的示例性环境的框图。如图2所示,存储资源池270可以包括多个物理存储设备210、211、212、213、214、215、216、以及217。此时,该多个存储设备中的存储空间可以被分配给多个用户的存储系统290、…、292。此时,用户的存储系统290、…、292可以经由网络280来访问存储资源池270中的各个存储设备中的存储空间。将会理解,尽管图2仅示意性示出了存储资源池270包括8个存储设备的情况,根据本公开的示例性实现方式,存储资源池270还可以包括更多或者更少的存储设备。
图3示意性示出了如图2所示的存储资源池270的更多信息的图示。资源池270可以包括多个存储设备210至217。每个存储设备可以包括多个区块,其中图例320表示空闲的区块,图例322表示用于RAID条带1的区块,图例324所示表示用于RAID条带2的区块。此时,用于RAID条带1的区块D11、D22、D33、D44分别用于存储该条带的数据块,而区块D75用于存储数据的校验。用于RAID条带2的区块D01、D12、D23、D34分别用于存储该条带的数据块,而区块D45用于存储数据的校验。
如图3中所示,地址映射330示出了条带与条带中的区块所在地址之间的关联关系。例如,RAID条带1可以包括5个区块:D11、D22、D33、D44和D75,这5个区块分别位于存储设备211、212、213、214和217。具体地如图3所示,区块D11是存储设备211中的第一个区块,区块D22是存储设备212中的第二个区块。如图3所示,在各个存储设备中还可以存在预留的空闲部分310,以便用于在资源池中的一个存储设备出现故障时,可以选择各个存储设备中的空闲部分310中的区块,来重建故障存储设备中的各个区块。
应当注意,图3仅以4D+1P的RAID-5存储系统为示例示出了各个条带中的区块如何分布在资源池的多个存储系统中。当采用基于其他RAID等级时,本领域技术人员可以基于上文的原理来实现具体细节。例如,在6D+1P+1Q的RAID-6存储系统中,每个条带中的8个区块可以分布在多个存储设备上。
目前已经提出了轮询方法和/或随机方法来选择存储设备,并且基于所选择存储设备中的空闲区块来创建条带的技术方案。然而,这些技术方案并不能保证条带中的区块在多个存储设备之间均匀分布。不均匀的分布可能会导致某些存储设备的使用率和读写量远高于其他存储设备并且造成访问瓶颈。进一步,还可能导致这些存储设备的重建时间过长并且可能面临数据丢失的更高风险。
为了解决上述缺陷,本公开的实现方式提供了一种用于管理存储系统中的条带的方法、设备和计算机程序产品。根据本公开的示例性实现方式,提出了存储设备的设备相关度的概念。在此设备相关度表示存储系统中已经被创建的一组条带在存储设备以及存储设备以外的其他存储设备之间的分布。为了方便描述起见,在下文中将仅以4D+1P的RAID条带作为条带的示例,描述本公开的示例性实现的更多细节。
4D+1P的RAID条带包括5个区块,并且5个区块中的数据通常被相关联地访问。这导致分别包括5个区块的5个存储设备的访问量有所提高。概括地讲,对于任意两个存储设备而言,这两个存储设备所共同服务的条带数量越多,则这两个存储设备被同时访问的可能性越大,并且这两个存储设备的工作负载越高。因而,应当尽量避免两个存储设备同时服务于过多的条带。
图4示意性示出了根据本公开的一个实现方式的用于在存储系统中管理条带的过程的框图400。如图4所示,存储系统的资源池270可以包括多个存储设备210至217。当接收到在存储系统中创建条带的请求410时,可以确定多个存储设备中的存储设备的设备相关度。将会理解,设备相关度和存储设备可以具有一一对应的关系。例如,可以基于已经被创建的一组条带在存储设备210与其他存储设备之间的分布,确定存储设备210的设备相关度420。类似地,可以确定存储设备217的设备相关度427,进一步可以确定每个存储设备的设备相关度。
在已经确定每个存储设备的设备相关度的情况下,可以比较各个设备相关度,以便从多个存储设备210至217中选择存储设备430。继而,可以从存储设备430中选择一个空闲区块440,以便用于创建条带450。可以将区块440作为第一个区块,并且加入条带450。在下文中,将参见图5描述根据本公开的示例性实现方式的更多细节。
图5示意性示出了根据本公开的一个实现方式的用于在存储系统中管理条带的方法的框图500。在框510处,根据在存储系统中创建条带的请求410,确定多个存储设备中的存储设备的设备相关度。在本公开的上下文中,利用M表示存储系统中的存储设备的数量,并且利用N表示条带的宽度。假设存储系统包括8个存储设备210至217,则此时M=8。当采用4D+1P的RAID时,N=4+1=5。
在下文中,首先介绍两个存储设备之间的相关度的概念。对于多个存储设备中的第i个存储设备和第j个存储设备(i≠j),这两个存储设备之间的相关度可以表示为γDisk i,Disk j。根据本公开的示例性实现方式,可以将存储设备自身的相关度设置为0,也即,γDisk i,Disk i=0。
将会理解,在存储系统运行的初始阶段,存储系统中并不包括任何条带,则此时可以选择任意的5个存储设备中的5个区块来创建条带。当存储系统运行一段之间之后,存储系统可以包括已经被创建的一组条带。此时可以确定一组条带中的同时涉及两个特定存储设备的条带的数量,并且基于确定的数量设置这两个特定存储设备之间的相关度。具体地,将参见图6描述如何确定第i个存储设备和第j个存储设备之间的相关度γDisk i,Disk j。
图6示意性示出了根据本公开的一个实现方式的确定两个存储设备之间的相关度的过程的框图600。如图6所示,存储系统中已经创建了3个条带610、620和630,可以基于共同涉及第i个存储设备和第j个存储设备的条带的数量,确定相关度γDisK i,Disk j。如果期望确定存储设备210和存储设备211之间的相关度(即,i=0,j=1),可以发现仅有条带610同时使用了存储设备210和存储设备211中的区块,因而γDisk 0,Disk 1=1。
又例如,如果期望确定存储设备211和存储设备212之间的相关度(即,i=1,j=2),可以发现条带610同时使用了存储设备210和存储设备211中的区块,并且条带620也同时使用了存储设备210和存储设备211中的区块,因而γDisk 1,Disk 2=2。类似地,可以确定多个存储设备中的任意两个存储设备之间的相关度。将会理解,从存储系统的地址映射330中可以方便地获取条带与条带中的区块之间的映射关系。因而,利用本公开的示例性实现方式可以以简单并且有效的方式确定任意两个存储设备之间的相关度。
根据本公开的示例性实现方式,可以基于两个存储设备之间的相关度,来确定多个存储设备中的特定存储设备的设备相关度。具体地,可以分别确定该特定存储设备与该特定存储设备以外的每个其他存储设备之间的相关度。进一步,可以基于确定的相关度,确定特定存储设备的设备相关度。
根据本公开的示例性实现方式,可以将设备相关度设置为正比于存储设备与每个其他存储设备之间的相关度。例如,可以获取多个相关度的和,并且基于求和操作来确定设备相关度。利用本公开的示例性实现方式,可以基于简单的数学运算,来基于特定存储设备与其他存储设备之间的相关度,确定该特定存储设备的设备相关度。
假设期望确定第i个存储设备的设备相关度,可以基于上文参见图6描述的方法来确定第i个存储设备与其他的第j个存储设备(0≤j≤M-1,并且i≠j)之间的相关度。根据本公开的示例性实现方式,可以基于如下公式1来确定第i个存储设备的设备相关度γDisk i:
其中γDisk i,表示第i个存储设备的设备相关度,γDisk i,Disk j表示第i个存储设备和第j个存储设备之间的相关度,M表示资源池中的存储设备的数量。
利用本公开的示例性实现方式,对于第i个存储设备而言,该设备的设备相关度γDisk i表示第i个存储设备与其他M-1个存储设备之间的相关度的总和。此时,设备相关度可以准确地衡量第i个存储设备与其他存储设备之间的相关程度,并且可以反映该存储设备的工作负载。基于设备相关度来选择用于创建条带的存储设备,可以准确地基于各个存储设备的工作负载,来选择有助于实现负载均衡的适合的存储设备。
将会理解,上文公式1仅仅示意性示出了用于确定设备相关度的一个具体示例。根据本公开的示例性实现方式,还可以采用其他公式来确定设备相关度。例如,可以基于多个相关度的乘积来确定设备相关度。
上文已经描述了如何确定第i个存储设备的设备相关度γDisk i,,在已经确定每个存储设备的设备相关度之后,可以基于设备相关度从多个存储设备中选择一个存储设备。返回图5,在框520处,基于确定的设备相关度,从多个存储设备中选择一个存储设备。根据本公开的示例性实现方式,可以从多个存储设备中选择具有较低设备相关度的存储设备。假设多个存储设备中的第i个存储设备的设备相关度γDisk i,小于多个存储设备中的第j个存储设备的设备相关度γDisk j,则可以选择第i个存储设备。
利用本公开的示例性实现方式,可以基于设备相关度来优先地选择工作负载最低的存储设备,进而使得所创建的条带可以尽量利用资源池中的工作状态较好的存储设备。根据本公开的示例性实现方式,可以比较每个存储设备的设备相关度,并且选择具有最小设备相关度的存储设备中的区块来作为条带中的第一个区块。以此方式,可以尽可能利用具有最低工作负载的存储设备中的区块来创建条带。
继续参见图5,在框530处,将选择的存储设备中的一个区块添加至条带。假设第i个存储设备具有最小的设备相关度,可以从该第i个存储设备中选择一个空闲区块,并且将该区块添加至条带中。继续上文示例,假设第0个存储设备的设备相关度最小,可以选择将第0个存储设备中的空闲区块加入条带。此时,已经选择了条带中的第一个区块。利用本公开的示例性实现方式,通过选择具有最小设备相关度的存储设备中的区块来创建条带,可以确保条带中的第一个区块位于当前性能较好的存储设备中,进而确保整个条带的访问性能。
将会理解,相对于已有的基于轮询和/或随机方式选择第一个区块的技术方案而言,本公开的方法可以确保以简单并且有效的方式来选择了条带中的第一个区块。即使后续使用其他技术方案来选择条带中的其余区块,也可以确保第一个区块位于性能较好的存储设备中,并且后续可以提供较好的访问速度。
上文中已经描述了如何选择条带中的第一个区块。在下文中,将描述如何选择条带中的其他区块。根据本公开的示例性实现方式,提出了条带相关度(stripecorrelation)的概念。在此条带相关度描述一个存储设备与一个条带所在的多个存储设备之间的相关度。条带相关度越高则表示该存储设备与条带之间的关系越密切。例如,可以基于如下公式2来确定第i个存储设备与第k个条带之间的条带相关度γDisk i,RE k。
其中γDisk i,RE k表示第i个存储设备与第k个条带之间的条带相关度,γDisk i,Disk j表示第i个存储设备和第j个存储设备之间的相关度,M表示资源池中的存储设备的数量,以及第j个存储设备表示包括在第k个条带中的区块的各个存储设备。
利用本公开的示例性实现方式,存储设备与条带中的每个区块所在的存储设备之间的相关度可以反映存储设备与条带所涉及的各个存储设备之间的密切程度。通过将多个相关度求和,可以以简单并且有效的方式确定设备与条带之间的密切程度。
将会理解,由于条带中的多个区块需要位于不同的存储设备,因而需要从条带不涉及的其他存储设备中选择区块来创建条带。此时,可以确定条带所涉及的一组存储设备以及条带并不涉及的一组存储设备。在创建条带的初始阶段,条带仅包括一个存储设备中的区块。可以逐步确定后续的第二、第三、第四和第五个区块。
具体地,在多个存储设备中,可以确定不包括条带中的任何区块的第一组存储设备,并且可以确定包括条带中的区块的第二组存储设备。对于第一组存储设备中的一个给定存储设备,可以分别确定该给定存储设备与第二组存储设备中的每个存储设备之间的设备相关度,进而确定给定存储设备与条带的条带相关度。
继续上文的示例,条带最初仅包括第0个存储设备中的区块,此时可以从第1至7个存储设备中选择其他的4个存储设备。可以基于上文描述的公式2,分别确定第i个存储设备(1≤i≤7)与条带(仅包括第0个存储设备中的区块)的条带相关度。
基于确定的条带相关度,可以选择第一组存储设备中的一个存储设备。根据本公开的示例性实现方式,期望创建的条带中的区块所在的各个存储设备之间的整体相关度尽量小,因而可以优先地选择具有较小条带相关度的存储设备中的区块。进一步,可以将选择的存储设备中的一个空闲区块加入条带。利用本公开的示例性实现方式,在每次选择条带中的下一区块时,可以利用条带相关度来以简单并且有效的方式来选择相关度较小的存储设备中的区块。
具体地,可以从多个存储设备中选择具有较低条带相关度的存储设备。假设多个存储设备中的第一存储设备的第一条带相关度低于多个存储设备中的第二存储设备的第二条带相关度,则可以选择第一存储设备。利用本公开的示例性实现方式,可以基于条带相关度来选择与当前条带中的区块所在的设备具有较低相关度的存储设备,进而使得所创建的条带中的各个区块所在的各个存储设备的紧密程度较低。
根据本公开的示例性实现方式,可以比较每个存储设备的条带相关度并且选择具有最小条带相关度的存储设备中的区块,来作为条带中的后续区块。以此方式,可以尽量利用与当前条带所涉及的一个或多个存储设备之间关系较为疏远的存储设备,这使得条带可以以较高的性能运行。
为了方便描述起见,可以利用符号γDisk i,RE current表示第i个存储设备与当前条带之间的条带相关度。其中RE current表示当前条带中的区块所在的存储设备。为了确定条带中的第二个区块,可以选择具有最小条带相关度的存储设备。假设第1个存储设备与条带具有最小条带相关度,则可以选择第1个存储设备中的空闲区块,并且将其加入条带。此时,条带可以包括两个区块:位于第0个存储设备中的区块以及位于第1个存储设备中的区块。
将会理解,由于条带中区块的数量是由条带的宽度N确定的,当条带中的区块的数量低于N时,则可以不断重复上述步骤。根据本公开的示例性实现方式,可以首先确定条带的宽度,并且基于当前条带中的区块数量与宽度的比较,来确定是否执行选择步骤。具体地,如果区块的数量小于条带的宽度,则选择下一区块;否则停止选择操作。为了选择后续的一个或多个区块,可以不断地基于上文公式2来确定每个可选择存储设备与当前条带之间的条带相关度,进而选择具有最小条带相关度的存储设备中的空闲区块。
利用本公开的示例性实现方式,仅需要通过简单的数学计算,即可逐一确定条带中的每个区块。以此方式,可以确保每次从多个存储设备中选择最为有助于实现负载平衡的存储设备中的区块来创建条带。
上文已经描述了基于条带相关度来选择后续的一个或多个区块。根据本公开的示例性实现方式,还可以基于存储设备的条带相关度和设备相关度两者,来选择存储设备。将会理解,条带中的多个区块将被相关联地访问,基于条带相关度来选择存储设备可以考虑所创建的条带中的各个存储设备之间的相互影响。在后续操作过程中,存储设备的性能还会受到该存储设备与其他存储设备之间的相关度(即,设备相关度)的影响。因而,可以基于条带相关度和设备相关度两者来选择存储设备。利用本公开的示例性实现方式,可以充分考虑以上两方面因素,进而提高存储系统的整体性能。
根据本公开的示例性实现方式,可以基于公式3来确定第i个存储设备与当前条带之间的组合相关度γ′Disk i,RE current。
γ′Disk i,RE current=γDisk i,RE current+γDisk i
公式3其中γ′Disk i,RE current表示第i个存储设备与当前条带之间的组合相关度,γDisk i,RE current表示第i个存储设备与当前条带之间的条带相关度,以及γDisk i表示第i个存储设备的设备相关度。将会理解,公式3仅仅是用于计算组合相关度的一个具体示例,根据本公开的示例性实现方式,可以采用其他公式来确定组合相关度。例如,可以基于条带相关度和设备相关度的乘积来确定组合相关度。
上文中已经描述了基于设备相关度来选择条带中的第一个区块,以及基于条带相关度和/或组合相关度来选择条带中的其他区块的方法。在下文中,将参见图7A至图7E逐步描述如何确定条带中的第1至5个区块。在上文的存储系统中,假设已经存在一组条带,并且如下矩阵M示出了8个存储设备中的各个存储设备之间的相关度。例如,第i行第j列的交叉点处示出了第i个存储设备和第j个存储设备之间的相关度。
为了确定条带中的第一个区块,可以首先确定8个存储设备中的每个存储设备的设备相关度。图7A示意性示出了根据本公开的一个实现方式的选择用于创建条带的第一个区块的过程的框图700A。如图7A所示,第0至7个存储设备的设备相关度可以表示为矩阵:[31 27 41 28 38 38 26 37]。如椭圆710A所示,第6个存储设备(即存储设备216)具有最小设备相关度,因而可以选择第6个存储设备中的空闲区块,并将其加入条带。
图7B示意性示出了根据本公开的一个实现方式的选择用于创建条带的第二个区块的过程的框图700B。此时,条带包括第6个存储设备中的区块,基于RAID的工作原理,选择后续区块时将排除第6个存储设备。可以基于公式3来确定每个设备的组合相关度:[37 2942 30 43 42 \ 43]。由于第6个存储设备已经被排除,此时无需计算第6个存储设备的组合相关度,并且可以将第6个存储设备的组合相关度利用“\”表示。如椭圆710B所示,第1个存储设备(即存储设备211)具有最小组合相关度,因而可以选择第1个存储设备中的空闲区块,并将其加入条带。
图7C示意性示出了根据本公开的一个实现方式的选择用于创建条带的第三个区块的过程的框图700C。此时,条带包括第6个以及第1个存储设备中的区块,因而选择后续区块时将排除第6个以及第1个存储设备。可以基于公式3来确定每个设备的组合相关度:[38\ 48 36 51 43 \ 46]。由于第6个以及第1个存储设备已经被排除,此时无需计算第6个以及第1个存储设备的组合相关度。如椭圆710C所示,第3个存储设备(即存储设备213)具有最小组合相关度,因而可以选择第3个存储设备中的空闲区块,并将其加入条带。
图7D示意性示出了根据本公开的一个实现方式的选择用于创建条带的第四个区块的过程的框图700D。可以基于公式3来确定每个设备的组合相关度:[42 \ 56 \ 55 46 \47]。如椭圆710D所示,第0个存储设备(即存储设备210)具有最小组合相关度,因而可以选择第0个存储设备中的空闲区块,并将其加入条带。
图7E示意性示出了根据本公开的一个实现方式的选择用于创建条带的第五个区块的过程的框图700E。可以基于公式3来确定每个设备的组合相关度:[\ \ 65 \ 56 49 \54]。如椭圆710E所示,第5个存储设备(即存储设备215)具有最小组合相关度,因而可以选择第5个存储设备中的空闲区块,并将其加入条带。
通过使用按照图7A至图7E描述的方法,可以逐步确定条带中的5个区块。图8示意性示出了根据本公开的一个实现方式所创建的一个条带的框图800。图例810表示新创建的RAID条带1,此时选择的区块分别位于第0、1、3、5和6个存储设备中。在RAID条带1已经被创建之后,存储系统中的各个存储设备之间的相关度可以更新为如下所示的矩阵M’。
利用本公开的示例性实现方式,可以确保新创建的条带中的区块可以均匀地分布在多个存储设备中,并且使得多个存储设备的工作负载和性能尽可能均衡。
根据本公开的示例性实现方式,还可以使用类似的方法来创建其他一个或多个条带。图9示意性示出了根据本公开的一个实现方式所创建的多个条带的框图900。如图9示出了按照上文描述的方法创建的4个条带:图例810示出了RAID条带1中区块,图例910示出了RAID条带2中区块,图例912示出了RAID条带3中区块,以及图例914示出了RAID条带4中区块。
可以基于概率分布方法来确定按照方法500创建4个条带之后的相关度的分布。具体地,可以确定存储系统的相关度。该相关度例如可以基于存储系统中的全部存储设备之间的相关度的和来确定。根据本公开的示例性实现方式,可以基于如下公式4来确定存储系统的相关度γStorageSystem。
其中γstorageSystem表示存储系统的相关度,γDisk i表示第i个存储设备的设备相关度,γDisk i,Disk j表示第i个存储设备和第j个存储设备之间的相关度,M表示存储系统中的存储设备的数量。
根据本公开的示例性实现方式,可以基于如下公式5来确定存储系统中的每个存储设备的平均设备相关度γDisk average。公式5中符号的含义与公式4中相同。
根据本公开的示例性实现方式,可以基于如下公式6来确定存储系统中的每个存储设备的设备相关度的标准差σ。公式6中符号的含义与公式4中相同。
当基于方法500创建4个条带时,4个条带中的每个条带可以均衡地分布在多个存储设备中。基于上文的公式6,可以确定方法500产生的相关度的标准差示出为公式7:
当基于已有的轮询方法创建4个条带时,4个条带中的每个条带中的区块连续分布在多个存储设备中。此时,创建4个条带后的存储系统的相关度矩阵M1表示如下:
基于上文的公式6,可以确定轮询方法导致的相关度的标准差示出为公式8:
当基于已有的随机方法创建4个条带时,4个条带中的每个条带中的区块随机地分布在多个存储设备中。此时,成功创建4个条带后的存储系统的相关度矩阵M2表示如下:
基于上文的公式6,可以确定随机方法导致的相关度的标准差示出为公式9:
通过比较公式7至9可知,利用方法500产生的相关度的标准差为1.669,而基于轮询方法和随机方法产生的相关度的标准差分别为8.311和6.182。方法500所产生的相关度的标准差远低于其他方法。可见,利用本公开的示例性实现方式,所创建的条带可以使得多个存储设备的相关度保持在较低水平,因而确保多个存储设备的工作负载和性能尽可能地均衡。
在上文中已经参见图2至图9详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种用于在存储系统中管理条带的装置,存储系统包括多个存储设备。该装置包括:确定模块,配置用于根据在存储系统中创建条带的请求,确定多个存储设备中的存储设备的设备相关度,设备相关度表示存储系统中已经被创建的一组条带在存储设备以及存储设备以外的其他存储设备之间的分布;选择模块,配置用于基于确定的设备相关度,从多个存储设备中选择一个存储设备;以及添加模块,配置用于将选择的存储设备中的一个区块添加至条带。根据本公开的示例性实现方式,该装置进一步包括执行上文描述的方法500的模块。
图10示意性示出了根据本公开的示例性实现的用于管理存储系统中的条带的设备1000的框图。如图所示,设备1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序指令或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法500,可由处理单元1001执行。例如,在一些实现中,方法500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实现中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序被加载到RAM 1003并由CPU 1001执行时,可以执行上文描述的方法500的一个或多个步骤。备选地,在其他实现中,CPU 1001也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现方式,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行用于在存储系统中管理条带的动作,存储系统包括多个存储设备。该动作包括:根据在存储系统中创建条带的请求,确定多个存储设备中的存储设备的设备相关度,设备相关度表示存储系统中已经被创建的一组条带在存储设备以及存储设备以外的其他存储设备之间的分布;基于确定的设备相关度,从多个存储设备中选择一个存储设备;以及将选择的存储设备中的一个区块添加至条带。
根据本公开的示例性实现方式,确定多个存储设备中的存储设备的设备相关度包括:分别确定存储设备与存储设备以外的每个其他存储设备之间的相关度;以及基于确定的相关度,确定存储设备的设备相关度。
根据本公开的示例性实现方式,分别确定存储设备与每个其他存储设备之间的相关度包括:针对一个其他存储设备,确定一组条带中的同时涉及存储设备和其他存储设备的条带的数量;以及基于确定的数量,设置存储设备和其他存储设备之间的相关度。
根据本公开的示例性实现方式,确定存储设备的设备相关度包括:将设备相关度设置为正比于存储设备与每个其他存储设备之间的相关度。
根据本公开的示例性实现方式,从多个存储设备中选择存储设备包括:根据确定多个存储设备中的第一存储设备的第一设备相关度低于多个存储设备中的第二存储设备的第二设备相关度,选择第一存储设备。
根据本公开的示例性实现方式,该动作进一步包括:针对多个存储设备中的不包括条带中的任何区块的第一组存储设备,确定第一组存储设备中的给定存储设备与条带之间的条带相关度;基于确定的条带相关度,选择第一组存储设备中的一个存储设备;以及将选择的存储设备中的一个区块加入条带。
根据本公开的示例性实现方式,确定给定存储设备与条带之间的条带相关度包括:在多个存储设备中,确定分别包括条带中的各个区块的第二组存储设备;以及基于给定存储设备与第二组存储设备中的每个存储设备的相关度,确定给定存储设备与条带的条带相关度。
根据本公开的示例性实现方式,基于确定的条带相关度,选择第一组存储设备中的存储设备包括:根据确定第一组存储设备中的第一存储设备的第一条带相关度低于第一组存储设备中的第二存储设备的第二条带相关度,选择第一存储设备。
根据本公开的示例性实现方式,基于确定的条带相关度,选择第一组存储设备中的存储设备包括:基于条带相关度和存储设备的设备相关度,选择存储设备。
根据本公开的示例性实现方式,确定第一组存储设备中的给定存储设备与条带之间的条带相关度进一步包括:根据确定条带中的区块的数量不满足条带的宽度,确定第一组存储设备中的给定存储设备与条带之间的条带相关度。
根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (20)
1.一种用于在存储系统中管理条带的方法,所述存储系统包括多个存储设备,所述方法包括:
根据在所述存储系统中创建条带的请求,确定所述多个存储设备中的存储设备的设备相关度,所述设备相关度表示所述存储系统中已经被创建的一组条带在所述存储设备以及所述存储设备以外的其他存储设备之间的分布;
基于确定的所述设备相关度,从所述多个存储设备中选择一个存储设备;以及
将选择的所述存储设备中的一个区块添加至所述条带。
2.根据权利要求1所述的方法,其中确定所述多个存储设备中的所述存储设备的所述设备相关度包括:
分别确定所述存储设备与所述存储设备以外的每个其他存储设备之间的相关度;以及
基于确定的所述相关度,确定所述存储设备的所述设备相关度。
3.根据权利要求2所述的方法,其中分别确定所述存储设备与每个其他存储设备之间的所述相关度包括:针对一个其他存储设备,
确定所述一组条带中的同时涉及所述存储设备和所述其他存储设备的条带的数量;以及
基于确定的所述数量,设置所述存储设备和所述其他存储设备之间的相关度。
4.根据权利要求2所述的方法,其中确定所述存储设备的所述设备相关度包括:将所述设备相关度设置为正比于所述存储设备与每个其他存储设备之间的相关度。
5.根据权利要求1所述的方法,其中从所述多个存储设备中选择所述存储设备包括:
根据确定所述多个存储设备中的第一存储设备的第一设备相关度低于所述多个存储设备中的第二存储设备的第二设备相关度,选择所述第一存储设备。
6.根据权利要求1所述的方法,进一步包括:
针对所述多个存储设备中的不包括所述条带中的任何区块的第一组存储设备,确定所述第一组存储设备中的给定存储设备与所述条带之间的条带相关度;
基于确定的所述条带相关度,选择所述第一组存储设备中的一个存储设备;以及
将选择的所述存储设备中的一个区块加入所述条带。
7.根据权利要求6所述的方法,其中确定所述给定存储设备与所述条带之间的条带相关度包括:
在所述多个存储设备中,确定分别包括所述条带中的各个区块的第二组存储设备;以及
基于所述给定存储设备与所述第二组存储设备中的每个存储设备的相关度,确定所述给定存储设备与所述条带的所述条带相关度。
8.根据权利要求6所述的方法,其中基于确定的所述条带相关度,选择所述第一组存储设备中的所述存储设备包括:
根据确定所述第一组存储设备中的第一存储设备的第一条带相关度低于所述第一组存储设备中的第二存储设备的第二条带相关度,选择所述第一存储设备。
9.根据权利要求6所述的方法,其中基于确定的所述条带相关度,选择所述第一组存储设备中的所述存储设备包括:
基于所述条带相关度和所述存储设备的设备相关度,选择所述存储设备。
10.根据权利要求6所述的方法,其中确定所述第一组存储设备中的给定存储设备与所述条带之间的条带相关度进一步包括:
根据确定所述条带中的区块的数量不满足所述条带的宽度,确定所述第一组存储设备中的给定存储设备与所述条带之间的条带相关度。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行用于在存储系统中管理条带的动作,所述存储系统包括多个存储设备,所述动作包括:
根据在所述存储系统中创建条带的请求,确定所述多个存储设备中的存储设备的设备相关度,所述设备相关度表示所述存储系统中已经被创建的一组条带在所述存储设备以及所述存储设备以外的其他存储设备之间的分布;
基于确定的所述设备相关度,从所述多个存储设备中选择一个存储设备;以及
将选择的所述存储设备中的一个区块添加至所述条带。
12.根据权利要求11所述的设备,其中确定所述多个存储设备中的所述存储设备的所述设备相关度包括:
分别确定所述存储设备与所述存储设备以外的每个其他存储设备之间的相关度;以及
基于确定的所述相关度,确定所述存储设备的所述设备相关度。
13.根据权利要求12所述的设备,其中分别确定所述存储设备与每个其他存储设备之间的所述相关度包括:针对一个其他存储设备,
确定所述一组条带中的同时涉及所述存储设备和所述其他存储设备的条带的数量;以及
基于确定的所述数量,设置所述存储设备和所述其他存储设备之间的相关度。
14.根据权利要求12所述的设备,其中确定所述存储设备的所述设备相关度包括:将所述设备相关度设置为正比于所述存储设备与每个其他存储设备之间的相关度。
15.根据权利要求11所述的设备,其中从所述多个存储设备中选择所述存储设备包括:
根据确定所述多个存储设备中的第一存储设备的第一设备相关度低于所述多个存储设备中的第二存储设备的第二设备相关度,选择所述第一存储设备。
16.根据权利要求11所述的设备,其中所述动作进一步包括:
针对所述多个存储设备中的不包括所述条带中的任何区块的第一组存储设备,确定所述第一组存储设备中的给定存储设备与所述条带之间的条带相关度;
基于确定的所述条带相关度,选择所述第一组存储设备中的一个存储设备;以及
将选择的所述存储设备中的一个区块加入所述条带。
17.根据权利要求16所述的设备,其中确定所述给定存储设备与所述条带之间的条带相关度包括:
在所述多个存储设备中,确定分别包括所述条带中的各个区块的第二组存储设备;以及
基于所述给定存储设备与所述第二组存储设备中的每个存储设备的相关度,确定所述给定存储设备与所述条带的所述条带相关度。
18.根据权利要求16所述的设备,其中基于确定的所述条带相关度,选择所述第一组存储设备中的所述存储设备包括:
根据确定所述第一组存储设备中的第一存储设备的第一条带相关度低于所述第一组存储设备中的第二存储设备的第二条带相关度,选择所述第一存储设备。
19.根据权利要求16所述的设备,其中基于确定的所述条带相关度,选择所述第一组存储设备中的所述存储设备包括:
基于所述条带相关度和所述存储设备的设备相关度,选择所述存储设备。
20.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行根据权利要求1-10中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010289151.9A CN113535065B (zh) | 2020-04-14 | 2020-04-14 | 在存储系统中管理条带的方法、设备和计算机程序产品 |
US16/989,029 US11442639B2 (en) | 2020-04-14 | 2020-08-10 | Method, apparatus, and storage medium for managing stripe in storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010289151.9A CN113535065B (zh) | 2020-04-14 | 2020-04-14 | 在存储系统中管理条带的方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535065A true CN113535065A (zh) | 2021-10-22 |
CN113535065B CN113535065B (zh) | 2024-07-12 |
Family
ID=78006558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010289151.9A Active CN113535065B (zh) | 2020-04-14 | 2020-04-14 | 在存储系统中管理条带的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11442639B2 (zh) |
CN (1) | CN113535065B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115639945A (zh) | 2021-07-19 | 2023-01-24 | 伊姆西Ip控股有限责任公司 | 用于扩展存储系统的方法、设备和程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150277802A1 (en) * | 2014-03-31 | 2015-10-01 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
CN107870730A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和系统 |
CN109213428A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN110737391A (zh) * | 2018-07-20 | 2020-01-31 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US20200057563A1 (en) * | 2016-04-05 | 2020-02-20 | Hitachi, Ltd. | Computer system,control method for physical storage device,and recording medium |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203450B (zh) | 2016-03-16 | 2020-06-02 | 伊姆西Ip控股有限责任公司 | 故障的分类方法和设备 |
WO2019083390A1 (en) | 2017-10-26 | 2019-05-02 | EMC IP Holding Company LLC | USE OF RECURRENT WRITE QUOTAS TO OPTIMIZE THE USE OF STATIC SEMICONDUCTOR DISK |
US10976942B2 (en) | 2018-10-24 | 2021-04-13 | EMC IP Holding Company LLC | Versioning a configuration of data storage equipment |
US11023169B2 (en) | 2019-04-22 | 2021-06-01 | EMC IP Holding Company LLC | Identifying performance impact events in data storage equipment based on queue depth metrics |
US11005970B2 (en) | 2019-07-24 | 2021-05-11 | EMC IP Holding Company LLC | Data storage system with processor scheduling using distributed peek-poller threads |
CN113535066A (zh) | 2020-04-14 | 2021-10-22 | 伊姆西Ip控股有限责任公司 | 在存储系统中管理条带的方法、设备和计算机程序产品 |
-
2020
- 2020-04-14 CN CN202010289151.9A patent/CN113535065B/zh active Active
- 2020-08-10 US US16/989,029 patent/US11442639B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150277802A1 (en) * | 2014-03-31 | 2015-10-01 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
US20200057563A1 (en) * | 2016-04-05 | 2020-02-20 | Hitachi, Ltd. | Computer system,control method for physical storage device,and recording medium |
CN107870730A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和系统 |
CN109213428A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和设备 |
CN110737391A (zh) * | 2018-07-20 | 2020-01-31 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US11442639B2 (en) | 2022-09-13 |
US20210318802A1 (en) | 2021-10-14 |
CN113535065B (zh) | 2024-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737391B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110413208B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN112764661B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110737393A (zh) | 数据读取方法、设备和计算机程序产品 | |
CN111857541B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US11262930B2 (en) | Method, apparatus, and storage medium for managing stripe in storage system | |
CN110413198B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN109213428B (zh) | 用于管理存储系统的方法和设备 | |
CN112732168B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US20210334183A1 (en) | Method, device, and storage medium for managing stripe in storage system | |
CN113535065B (zh) | 在存储系统中管理条带的方法、设备和计算机程序产品 | |
CN111857549B (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
CN112925471A (zh) | 在存储系统中选择重建目的地的方法、设备和程序产品 | |
US11656776B2 (en) | Method, device, and program product for creating extent array in storage system | |
CN111857535A (zh) | 用于存储管理的方法、电子设备和计算机可读存储介质 | |
CN112732167B (zh) | 用于管理存储系统的方法、设备 | |
CN114168064A (zh) | 用于重建存储系统的方法、设备和计算机程序产品 | |
US11513711B2 (en) | Method, device, and program product for creating stripe based on dynamic window | |
US11474716B2 (en) | Method, device, and computer program product for creating stripe in storage system | |
US11593011B2 (en) | Method, device, and program product for managing spare block based on dynamic window | |
US20230132242A1 (en) | Method, device and computer program product for managing extent in storage system | |
CN113391758B (zh) | 在存储系统中管理条带的方法、设备和计算机程序产品 | |
CN114518836A (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 |