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

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

Info

Publication number
CN112764665A
CN112764665A CN201911002309.3A CN201911002309A CN112764665A CN 112764665 A CN112764665 A CN 112764665A CN 201911002309 A CN201911002309 A CN 201911002309A CN 112764665 A CN112764665 A CN 112764665A
Authority
CN
China
Prior art keywords
storage
disks
storage disks
disk
raid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911002309.3A
Other languages
English (en)
Other versions
CN112764665B (zh
Inventor
张晓波
徐鑫磊
龚绍钦
卓保特
倪书爱
高健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201911002309.3A priority Critical patent/CN112764665B/zh
Priority claimed from CN201911002309.3A external-priority patent/CN112764665B/zh
Priority to US16/751,652 priority patent/US11726658B2/en
Publication of CN112764665A publication Critical patent/CN112764665A/zh
Application granted granted Critical
Publication of CN112764665B publication Critical patent/CN112764665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms

Abstract

本公开的实施例涉及存储管理的方法、设备和计算机程序产品。该方法包括:从多个存储盘中确定第一组存储盘,第一组存储盘中的每个存储盘的使用率高于第一阈值,第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块;从多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,第二组存储块与第一组存储块大小相同,第二组存储盘中的每个存储盘的使用率小于第二阈值;将第一组存储块中的数据移动到第二组存储块;以及从第一组存储盘释放第一组存储块。由此,可以使得多个存储盘的使用率更加均衡。

Description

存储管理的方法、设备和计算机程序产品
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及存储管理的方法、设备和计算机程序产品。
背景技术
在基于独立盘冗余阵列(RAID)的存储系统中,如果一个存储盘发生故障,存储系统可以利用其它存储盘中的数据来对故障盘中的数据进行恢复。然而,在构成RAID的存储盘组发生变化(例如,添加或者减少盘)时,每个存储盘的使用率可能差异较大,从而使得各个存储盘的IO情况、磨损情况都可能不同,并且限制能够向用户提供的存储空间。
发明内容
本公开的实施例提供一种用于存储管理的方案。
根据本公开的第一方面,提出了一种存储管理的方法。该方法包括:从多个存储盘中确定第一组存储盘,第一组存储盘中的每个存储盘的使用率高于第一阈值,第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块;从多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,第二组存储块与第一组存储块大小相同,第二组存储盘中的每个存储盘的使用率小于第二阈值;将第一组存储块中的数据移动到第二组存储块;以及从第一组存储盘释放第一组存储块。
根据本公开的第二方面,提出了一种用于存储管理的设备。该设备包括:至少一个处理单元;至少一个存储器,该至少一个存储器被耦合到该至少一个处理单元并且存储用于由该至少一个处理单元执行的指令,该指令当由该至少一个处理单元执行时,使得该设备执行动作,该动作包括:从多个存储盘中确定第一组存储盘,第一组存储盘中的每个存储盘的使用率高于第一阈值,第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块;从多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,第二组存储块与第一组存储块大小相同,第二组存储盘中的每个存储盘的使用率小于第二阈值;将第一组存储块中的数据移动到第二组存储块;以及从第一组存储盘释放第一组存储块。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,该机器可执行指令在设备中运行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例可以在其中被实现的示例性存储系统的示意图;
图2示出了根据本公开的实施例的来自多个存储盘的多个存储块组成RAID的示意图;
图3图示了根据本公开实施例的示例存储池的示意图;
图4图示了根据本公开实施例的存储管理的方法的流程图;
图5图示了根据本公开实施例的确定第一组存储盘的示例方法的流程图;
图6图示了根据本公开实施例的调整多个存储盘的过程示意图;
图7图示了根据本公开实施例的重新条带化的示例过程的流程图;
图8图示了根据本公开实施例的重新条带化的示例过程的示意图;以及
图9图示了可以用来实施本公开内容的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在基于RAID的存储系统中,一个RAID可以包括来自多个存储盘的存储块,多个存储盘也可以构成多个独立的RAID。在基于RAID的数据恢复过程中,可以利用同一RAID中的其他存储块来恢复目标存储块的数据。为了能够尽可能降低存储盘故障所带来的风险,基于RAID的存储系统总是希望多个RAID中的存储块可以平均地分布到各个存储盘中,使得一个存储盘的故障的影响被尽可能地降低。然而,在存储系统进行了垃圾回收操作或者当存储系统中添加了新的存储盘时,存储系统中多个RAID的存储块的分布可能不均衡。为了更好地理解根据本公开实施例的存储管理的过程,以下将首先介绍在基于RAID的存储系统的基本架构。
图1示出了本公开的实施例可以在其中被实现的示例性存储系统100的示意图。如图1所示,存储系统100包括硬件存储池140,其包括多个存储盘142-1、142-2、142-3、……、142-N(N是大于等于1的整数)等等,以用于提供存储系统100的物理存储空间。为便于讨论,这些存储盘有时被统称为或分别称为存储盘142。存储盘142可以包括各种类型的具有存储功能的设备,包括但不限于,硬盘(HDD)、固态盘(SSD)、可移除盘、紧致盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘、串行附接小型计算机系统接口(SCSI)存储盘(SAS)、串行高级技术附接(SATA)存储盘、任何其他磁性存储设备和任何其他光学存储设备、或它们的任何组合。
存储系统100中的RAID系统130建立在多个存储盘142之上,以利用RAID算法组织存储盘142的物理存储空间。RAID系统130向存储空间100的映射器120提供扁平物理地址空间。映射器120被配置为管理存储系统100的物理地址与逻辑地址之间的映射。映射器120向命名空间模块110提供扁平线性逻辑地址空间。命名空间模块110利用映射器提供的逻辑地址空间,并且可以调用映射器120的应用程序接口(API)来获得逻辑到物理地址的映射。在对存储系统100执行I/O操作时,来自用户的I/O请求由命名空间模块110接收,并被发送给映射器120。映射器120查找I/O请求所针对的数据的物理(数据被写入的地址或读取数据的地址),并向RAID系统130发起I/O,以由RAID系统130向后端的存储盘进行实际I/O操作。
应当理解,图1仅示意性地示出了存储系统100中的与本公开的实施例相关的单元、模块或组件。图1中示出的各个组件仅是一种示例存储系统管理架构,在其他基于RAID的存储系统中,可能存在其他架构划分方式,用于其他功能的其他单元、模块或组件,等等。因此,本公开的实施例不限于图1所描绘的具体设备、单元、模块或组件,而是一般性地适用于任何基于RAID技术的存储系统。
在基于RAID的存储系统中,可以利用各种RAID算法来组织物理存储盘142,包括传统RAID算法以及当前被称为RAID 2.0的架构。为了更好地理解基于RAID的存储系统,图2示出了RAID系统130的示例结构。如图2所示,存储盘142被划分为多个存储块202,也被称为多个盘区(disk extent)或多个盘切片(disk slice)202。这样的划分可以是逻辑上的划分。存储块202的大小取决于存储盘大小和划分方式。在一些示例中,存储块202的大小可以是千兆字节(gigabyte)级别。当然,根据实际部署需要,其他存储块大小也是可能的。
RAID系统130以存储块202为单位构建。在一些动态分配的存储系统中,当RAID系统130初始被创建时,所有存储块是空闲的。随着数据写入,当发现RAID的容量不足时,RAID系统130将以一定算法从不同存储盘142中选择多个存储块202,并将这些存储块202组成RAID系统130的RAID块210。这样的RAID块210可以被认为是一个小型的RAID,因为RAID块210的I/O访问和管理类似于常规的RAID。
可以以任何适当算法,诸如轮询分发(Round-Robin)算法、加权轮询分发算法等,从多个存储盘142选择存储块202。每个RAID 210所包括的存储块的数目取决于RAID的类型,以提供不同级别的数据冗余和恢复能力。RAID的类型包括RAID 2、RAID 3、RAID 4、RAID5、RAID 6、RAID 7、RAID 10等。在图2以及下文中,出于解释说明的目的,以RAID 5类型来讨论本公开的示例实施例。然而,应当理解,本公开的示例实施例可以类似地应用于任何其他类型的RAID。
在图2中,根据RAID 5类型,每个RAID块210包括来自不同的存储盘142的五个存储块。如以上提及的,根据数据写入的需要可以不断分配分配新的RAID块210,使得RAID系统130的容量实现动态增长。图2中示出了已分配的五个RAID块210(即,RAID块0至RAID块5)。在图2中在每个存储块202中以“RAID块0”、“RAID块1”、“RAID块2”、“RAID块3”、“RAID块4”或“RAID块5”来标记该存储块被分配到的相应RAID块。各个存储盘142中未被选择用作RAID块的存储块202被认为是空闲存储块202,被标记为“空闲”。
在一些实施例中,每个存储盘142中还可以被预留一个或多个存储块202(被标记为“预留”),以用于在发生盘故障时数据重建。例如,如果一个存储盘142发生故障,该存储盘142的存储块202均被标注为故障,这意味着基于这些存储块202建立的RAID块210也受到影响。存储系统100可以启动重建过程,将选择预留的存储块202用于替换RAID块210中被标记为故障的存储块,并将被标记为故障的存储块中的数据/信息重建到所预留的存储块202。根据重建算法,重建过程可能是在盘故障后一段时间内被启动。本公开的实施例在此方面不受限制。
图3示出了根据本公开实施例的一个示例存储池140,如图3所示,示例存储池140包括多个存储盘142-1至142-18,其中阴影部分标识每个存储盘已用被使用的存储空间。能够看到,多个存储盘142-1至142-18的使用率的分布差异较大。应当理解,图3中所示的存储盘的数目以及具体使用率仅是示意性的,不旨在构成对本公开的限制。在本公开中,“使用率”表示该存储盘中已有空间的占比。如上文所讨论的,使用率的不均衡将使得各个存储盘的IO情况、磨损情况都可能不同,并且限制能够向用户提供的存储空间。
根据本公开的实施例,提供了一种存储管理的方案。在该方案中,首先从多个存储盘中确定第一组存储盘,其中第一组存储盘中的每个存储盘的使用率高于第一阈值,并且第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块。随后,可以从多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,其中第二组存储块与第一组存储块大小相同,并且第二组存储盘中的每个存储盘的使用率小于第二阈值。随后,将第一组存储块中的数据移动到第二组存储块并且从第一组存储盘释放第一组存储块。通过这样的方式,本公开的实施例还能够对多个存储盘进行调整以使多个存储盘的使用率更为均匀,进而提高了存储系统的稳定性。
下文将参考图4至图8来描述根据本公开实施例的存储管理的过程。图4示出了根据本公开的一些实施例的存储管理的方法400的流程图。以下将参考图1至图3来描述方法400的过程,方法400例如可以由图1中存储系统100来实施。
如图4所示,在框402,存储系统100从多个存储盘中确定第一组存储盘,第一组存储盘中的每个存储盘的使用率高于第一阈值,第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块。
以图3的示例多个存储盘142作为示例,存储系统100可以首先从多个存储盘142中确定使用率高于第一阈值的第一组存储盘。在一些实施例中,第一阈值例如可以被确定为多个存储盘142的使用率的平均值。因此,存储系统100可以从多个存储盘142中确定第一组存储盘包括存储盘142-1至存储盘142-9,它们的使用率高于多个存储盘142的平均使用率。
在一些实施例中,存储系统100还可以在确定多个存储盘之间使用率的差异足够大时才确定第一组存储盘。以下将结合图5来描述框402的详细过程,图5示出了根据本公开实施例的确定第一组存储盘的示例方法的流程图。
如图5所示,在框502,存储系统100可以从多个存储盘中确定第三组存储盘,其中第三组存储盘的存储盘数目同与第一RAID对应的参考存储盘数目相同,并且第三组存储盘的使用率高于第三阈值。例如,在多个存储盘142中部署的RAID为RAID 5,该RAID的宽度为5,即需要利用5个存储盘中的存储块来构成该RAID。在该示例中,参考存储盘数目即被确定为5。
在一些实施例中,存储系统100首先可以根据多个存储盘142的使用率来对多个存储盘142进行排序,并选择使用率最高的5个存储盘作为第三组存储盘。对于图3的示例,存储系统100例如可以将存储盘142-1至142-5确定为第三组存储盘。
在框504,存储系统100还可以从多个存储盘中确定第四组存储盘,第四组存储盘的存储盘数目与参考存储盘数目相同,并且第四组存储盘的使用率低于第四阈值。类似地,存储系统100例如可以从经排序的多个存储盘142中选择使用率最低的5个存储盘142-14至142-18作为第四组存储盘。
在框506,存储系统100可以确定第三组存储盘的平均使用率与第四组存储盘的平均使用率的差异是否大于差异阈值。响应于在框406确定该差异大于差异阈值时,方法进行到框408,即存储系统100可以从多个存储盘中确定第一组存储盘。对于图3的示例,例如第三组存储盘142-1至142-5的平均使用率为80%,而第四组存储盘142-14至142-18的平均使用率为2%。由此,存储系统100可以确定多个存储盘142的使用率不均衡,因此可以根据先前描述的方法确定第一组存储盘142-1至142-9。基于这样的方法,计算设备120可以在确定多个存储盘的使用率足够不均衡后才启动调整存储盘的过程,进而避免不必要的调整开销。
进一步的,存储系统100可以从第一组存储盘中确定第一组存储块,它们均位于第一组存储盘中并构成RAID(为了方便描述,称为第一RAID)。图6示出了根据本公开实施例的调整多个存储盘的示意图600。如图6所示,存储系统100可以将存储块602、存储块604、存储块606、存储块608和存储块610(图中以左斜线示出)确定为第一组存储块,它们位于第一组存储盘142-1至142-9中,且构成类型为RAID 5的第一RAID。
相反,当在框506确定第三组存储盘的平均使用率与第四组存储盘的平均使用率的差异小于或等于差异阈值时,存储系统100例如可以不再进行方法200(图中未示出),而按照下文参考图7描述的方法来执行按存储块的调整。此外,应当理解,以上示例中的具体的RAID类型和具体的使用率均是示意性的。
继续参考图4,在框404,存储系统100从多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,其中第二组存储块与第一组存储块大小相同,并且第二组存储盘中的每个存储盘的使用率小于第二阈值。在一些实施例中,第二阈值可以被设置为与第一阈值相同。备选地,第二阈值也可以被设置为小于第一阈值。如图6所示,以第二阈值被设置为多个存储盘142的平均使用率作为示例,存储系统100例如可以将存储盘142-10至142-18确定为第二组存储盘。
随后,存储系统100可以从所确定的第二组存储盘中分配第二组存储块。具体地,存储系统100例如可以通过在第二组存储盘中创建新的RAID(为了方便描述,称为第二RAID)来申请第二组存储块。以图6作为示例,存储系统例如可以分配存储块612、存储块614、存储块616、存储块618和存储块620(图中以右斜线示出)以作为第二组存储块,它们将构成新的第二RAID。从图中可以看到,第二组存储块分别位于不同的存储盘142-14至142-18中。在一些实施例中,存储系统100例如可以从第二组存储盘中优先选择使用率更低的存储盘来分配第二组存储块。
继续参考图4,在框406,存储系统100将第一组存储块中的数据移动到第二组存储块。具体地,以图6作为示例,存储系统100例如可以将存储块602中的数据移动到存储块612,将存储块604中的数据移动到存储块614,将存储块606中的数据移动到存储块616,将存储块608中的数据移动到存储块618,并将存储块610中的数据移动到存储块622。通过这样的方式,存储系统100可以将第一RAID中的数据复制到第二RAID中。
在框408,存储系统100从第一组存储盘释放第一组存储块。在完成数据的复制后,存储系统100可以释放第一组存储块以释放第一RAID。通过将使用率较高的第一组存储盘中的数据移动到使用率较低的第二组存储盘,本公开的实施例可以降低第一组存储盘中的存储盘的使用率,并提高第二组存储盘中的存储盘的使用率,从而使得多个存储盘的使用率更加均衡。
在一些实施例中,存储系统100可以迭代地执行方法400的过程以通过整体移动RAID的方式来实现多个存储盘的使用率的均衡。通过优先以RAID为基础进行调整,本公开的实施例相对于传统的按存储块调整的方法提高了调整效率。例如,对于RAID 5类型,原理通过以存储块为基础进行调整需要进行5次单独的计算和移动,而本公开的实施例只需要1次计算就可以整体移动整个RAID所包括的5个存储块。
在一些实施例中,存储系统100还可以继续通过重新条带化的方法来对多个存储盘进行调整。以下将参考图7来描述根据本公开实施例的重新条带化的过程。图7示出了根据本公开实施例的重新条带化的方法700的流程图。
如图7所示,在框702,存储系统100可以从多个存储盘中确定第一存储盘,第一存储盘的使用率高于预定的目标使用率。以图8作为示例,经调整后的多个存储盘142具有更新的使用率。在一些实施例中,目标使用率例如可以被设置多个存储盘的使用率的平均值。因此,存储系统例如可以从多个存储盘中确定存储盘142-1,其适用于高于预定的目标使用率。
在一些实施例中,存储系统100可以在确定无法基于整个RAID的移动来优化多个存储盘时,存储系统100才确定第一存储盘。具体地,存储系统100可以从执行完按一次或多次按RAID调整的多个存储盘中确定第五组存储盘,其中第五组存储盘中的每个存储盘的使用率高于第一阈值。例如,以图6作为示例,存储系统100可以将存储盘142-1至142-9确定为第五组存储盘。
随后,存储系统100可以确定是否存在与第五组存储盘关联的第三RAID,其中与第三RAID中对应的一组存储块中的每一个存储块位于第五组存储盘中。并在确定不存在与第五组存储盘关联的第三RAID时,存储系统100才从多个存储盘中确定第一存储盘。例如,当存储系统100确定第五组存储盘中的存储块没有构成一个完成的第三RAID时,存储系统100可以确定无法在基于整个RAID移动来调整多个存储盘142,因此存储系统100可以启动基于存储块的调整方法,并确定第一存储盘为大于平均使用率的存储盘142-1。
继续参考图7,在框704,存储系统100可以在多个存储盘中的第二存储盘分配备用存储块,其中第二存储盘的使用率低于目标使用率。以图8作为示例,存储系统100可以确定低于目标使用率(例如,平均使用率)的第二存储盘142-18,并从中分配备用存储块804(图中以右斜线示出)。
在框706,存储系统100可以将第一存储盘中的待调整存储块的数据移动到备用存储块。以图8作为示例,存储系统100可以从存储系统100确定待调整存储块802(图中以左斜线示出),并将待调整存储块802的数据复制到备用存储块804。在一些实施例中,待调整存储块802例如与第四RAID相关联,在完成复制后,存储系统100还可以将备用存储块802与第四RAID相关联,并解除待调整存储块802与第四RAID的关联。
在框708,存储系统100可以从第一存储盘中释放待调整存储块。通过这样的方式,存储系统100可以以存储块为单位而将使用率例如高于平均使用率的存储盘中的数据移动到使用率低于平均使用率的存储盘中,进而使得多个存储盘的使用率更为均衡。
应当理解,存储系统还可以迭代地执行方法700,以使得多个存储块的使用率尽可能的均衡。在一些实施例中,存储系统100可以在确定多个存储盘中没有存储盘的使用率与平均使用率的差异达到预定的阈值时终止调整多个存储盘的使用率。
在一些实施例中,存储系统100还可以确定将多个存储盘调整至使用率基本均衡所需要调整的存储块的总数。例如,存储系统100可以确定多个存储盘的平均已用存储块数目,并且确定多个存储盘中各存储盘超出平均已用存储块数目的数目来确定需要调整的总数。例如,假设平均已用存储块数目为5,多个存储盘中存在三个已用存储块大于5的存储盘(例如,分别为10、9和8),在该示例中,存储系统100可以确定待调整的存储块的数目为(10-5)+(9-5)+(8-5)=12。
进一步地,存储系统100还可以在每进行一次调整后,更新还需要调整的总存储块数,并基于已经调整的存储块数目来确定调整已经完成的进度,并将该进度提供给用户,以使得用户能够更加直观地了解调整多个存储盘的进展情况。例如,假设在经过若干次调整后还剩余7个存储块需要被调整,此时存储系统100例如可以确定完成进度为(12-7)/12=41.67%。在一些示例中,存储系统100例如可以通过进度条的形式向用户呈现当前的完成进度。
图9示出了可以用来实施本公开内容的实施例的示例设备900的示意性框图。例如,根据本公开实施例的存储系统100可以由设备900来实施。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400和/或方法700,可由处理单元901执行。例如,在一些实施例中,方法400和/或方法700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法400和/或方法700的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (15)

1.一种存储管理的方法,包括:
从多个存储盘中确定第一组存储盘,所述第一组存储盘中的每个存储盘的使用率高于第一阈值,所述第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块;
从所述多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,所述第二组存储块与所述第一组存储块大小相同,所述第二组存储盘中的每个存储盘的使用率小于第二阈值;
将所述第一组存储块中的数据移动到所述第二组存储块;以及
从所述第一组存储盘释放所述第一组存储块。
2.根据权利要求1所述的方法,其中确定所述第一组存储盘包括:
从所述多个存储盘中确定第三组存储盘,所述第三组存储盘的存储盘数目同与所述第一RAID对应的参考存储盘数目相同,所述第三组存储盘的使用率高于第三阈值;
从所述多个存储盘中确定第四组存储盘,所述第四组存储盘的存储盘数目与所述参考存储盘数目相同,所述第四组存储盘的使用率低于第四阈值;以及
响应于所述第三组存储盘的平均使用率与所述第四组存储盘的平均使用率的差异大于差异阈值,从所述多个存储盘中确定所述第一组存储盘。
3.根据权利要求1所述的方法,还包括:
从所述多个存储盘中确定第一存储盘,所述第一存储盘的使用率高于预定的目标使用率;
在所述多个存储盘中的第二存储盘分配备用存储块,所述第二存储盘的使用率低于所述目标使用率;
将所述第一存储盘中的待调整存储块的数据移动到所述备用存储块;以及
从所述第一存储盘中释放所述待调整存储块。
4.根据权利要求3所述的方法,其中确定所述第一存储盘包括:
从所述多个存储盘中确定第五组存储盘,所述第五组存储盘中的每个存储盘的使用率高于所述第一阈值;
响应于确定不存在与所述第五组存储盘关联的第三RAID,从所述多个存储盘中确定所述第一存储盘,其中与所述第三RAID中对应的一组存储块中的每一个存储块位于所述第五组存储盘中;以及
从所述多个存储盘中确定所述第一存储盘。
5.根据权利要求3所述的方法,其中所述待调整存储块与第四RAID相关联,其中将所述待调整存储块的数据移动到所述备用存储块包括:
将所述待调整存储块中的所述数据复制到所述备用存储块;以及
将所述备用存储块与所述第四RAID关联。
6.一种用于存储管理的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
从多个存储盘中确定第一组存储盘,所述第一组存储盘中的每个存储盘的使用率高于第一阈值,所述第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块;
从所述多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,所述第二组存储块与所述第一组存储块大小相同,所述第二组存储盘中的每个存储盘的使用率小于第二阈值;
将所述第一组存储块中的数据移动到所述第二组存储块;以及
从所述第一组存储盘释放所述第一组存储块。
7.根据权利要求6所述的设备,其中确定所述第一组存储盘包括:
从所述多个存储盘中确定第三组存储盘,所述第三组存储盘的存储盘数目同与所述第一RAID对应的参考存储盘数目相同,所述第三组存储盘的使用率高于第三阈值;
从所述多个存储盘中确定第四组存储盘,所述第四组存储盘的存储盘数目与所述参考存储盘数目相同,所述第四组存储盘的使用率低于第四阈值;以及
响应于所述第三组存储盘的平均使用率与所述第四组存储盘的平均使用率的差异大于差异阈值,从所述多个存储盘中确定所述第一组存储盘。
8.根据权利要求6所述的设备,所述动作还包括:
从所述多个存储盘中确定第一存储盘,所述第一存储盘的使用率高于预定的目标使用率;
在所述多个存储盘中的第二存储盘分配备用存储块,所述第二存储盘的使用率低于所述目标使用率;
将所述第一存储盘中的待调整存储块的数据移动到所述备用存储块;以及
从所述第一存储盘中释放所述待调整存储块。
9.根据权利要求8所述的设备,其中确定所述第一存储盘包括:
从所述多个存储盘中确定第五组存储盘,所述第五组存储盘中的每个存储盘的使用率高于所述第一阈值;
响应于确定不存在与所述第五组存储盘关联的第三RAID,从所述多个存储盘中确定所述第一存储盘,其中与所述第三RAID中对应的一组存储块中的每一个存储块位于所述第五组存储盘中;以及
从所述多个存储盘中确定所述第一存储盘。
10.根据权利要求8所述的设备,其中所述待调整存储块与第四RAID相关联,其中将所述待调整存储块的数据移动到所述备用存储块包括:
将所述待调整存储块中的所述数据复制到所述备用存储块;以及
将所述备用存储块与所述第四RAID关联。
11.一种计算机程序产品,所述计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在设备中运行时使所述设备执行动作,所述动作包括:
从多个存储盘中确定第一组存储盘,所述第一组存储盘中的每个存储盘的使用率高于第一阈值,所述第一组存储盘包括与第一独立存储盘冗余阵列RAID对应的第一组存储块;
从所述多个存储盘中的第二组存储盘分配与第二RAID对应的第二组存储块,所述第二组存储块与所述第一组存储块大小相同,所述第二组存储盘中的每个存储盘的使用率小于第二阈值;
将所述第一组存储块中的数据移动到所述第二组存储块;以及
从所述第一组存储盘释放所述第一组存储块。
12.根据权利要求11所述的计算机程序产品,其中确定所述第一组存储盘包括:
从所述多个存储盘中确定第三组存储盘,所述第三组存储盘的存储盘数目同与所述第一RAID对应的参考存储盘数目相同,所述第三组存储盘的使用率高于第三阈值;
从所述多个存储盘中确定第四组存储盘,所述第四组存储盘的存储盘数目与所述参考存储盘数目相同,所述第四组存储盘的使用率低于第四阈值;以及
响应于所述第三组存储盘的平均使用率与所述第四组存储盘的平均使用率的差异大于差异阈值,从所述多个存储盘中确定所述第一组存储盘。
13.根据权利要求11所述的计算机程序产品,所述动作还包括:
从所述多个存储盘中确定第一存储盘,所述第一存储盘的使用率高于预定的目标使用率;
在所述多个存储盘中的第二存储盘分配备用存储块,所述第二存储盘的使用率低于所述目标使用率;
将所述第一存储盘中的待调整存储块的数据移动到所述备用存储块;以及
从所述第一存储盘中释放所述待调整存储块。
14.根据权利要求13所述的计算机程序产品,其中确定所述第一存储盘包括:
从所述多个存储盘中确定第五组存储盘,所述第五组存储盘中的每个存储盘的使用率高于所述第一阈值;
响应于确定不存在与所述第五组存储盘关联的第三RAID,从所述多个存储盘中确定所述第一存储盘,其中与所述第三RAID中对应的一组存储块中的每一个存储块位于所述第五组存储盘中;以及
从所述多个存储盘中确定所述第一存储盘。
15.根据权利要求13所述的计算机程序产品,其中所述待调整存储块与第四RAID相关联,其中将所述待调整存储块的数据移动到所述备用存储块包括:
将所述待调整存储块中的所述数据复制到所述备用存储块;以及
将所述备用存储块与所述第四RAID关联。
CN201911002309.3A 2019-10-21 2019-10-21 存储管理的方法、设备和计算机程序产品 Active CN112764665B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911002309.3A CN112764665B (zh) 2019-10-21 存储管理的方法、设备和计算机程序产品
US16/751,652 US11726658B2 (en) 2019-10-21 2020-01-24 Method, device, and computer program product for storage management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911002309.3A CN112764665B (zh) 2019-10-21 存储管理的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN112764665A true CN112764665A (zh) 2021-05-07
CN112764665B CN112764665B (zh) 2024-05-10

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233931A1 (en) * 2006-03-29 2007-10-04 Hitachi, Ltd. Storage system using flash memories, wear-leveling method for the same system and wear-leveling program for the same system
US20100332749A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US20180300212A1 (en) * 2017-04-17 2018-10-18 EMC IP Holding Company LLC Method, device and computer readable storage media for rebuilding redundant array of independent disks
CN108733518A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
CN109426584A (zh) * 2017-08-29 2019-03-05 三星电子株式会社 基于逻辑块地址的独立磁盘冗余阵列的系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233931A1 (en) * 2006-03-29 2007-10-04 Hitachi, Ltd. Storage system using flash memories, wear-leveling method for the same system and wear-leveling program for the same system
US20100332749A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US20180300212A1 (en) * 2017-04-17 2018-10-18 EMC IP Holding Company LLC Method, device and computer readable storage media for rebuilding redundant array of independent disks
CN108733518A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
CN109426584A (zh) * 2017-08-29 2019-03-05 三星电子株式会社 基于逻辑块地址的独立磁盘冗余阵列的系统和方法

Also Published As

Publication number Publication date
US20210117088A1 (en) 2021-04-22
US11726658B2 (en) 2023-08-15

Similar Documents

Publication Publication Date Title
US11803492B2 (en) System resource management using time-independent scheduling
US20180081591A1 (en) Storage system with read cache-on-write buffer
US9329792B2 (en) Storage thin provisioning and space reclamation
US9495262B2 (en) Migrating high activity volumes in a mirror copy relationship to lower activity volume groups
US10248318B2 (en) Adjustment of volume synchronization
CN105740165A (zh) 用于管理统一存储系统的文件系统的方法和装置
US11320988B2 (en) Method, apparatus and computer program product for managing disk array
CN111095189A (zh) 使用基于云的模组的精简配置
US20150331759A1 (en) Apparatus, system and method for temporary copy policy
CN111124250A (zh) 用于管理存储空间的方法、设备和计算机程序产品
CN113590019B (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN111858188A (zh) 存储管理的方法、设备和计算机程序产品
US10133509B2 (en) Consistency group abstraction
US10452614B2 (en) Storage data reduction analysis and forecast
CN108733307B (zh) 存储管理方法、设备以及计算机可读介质
US10963378B2 (en) Dynamic capacity allocation of stripes in cluster based storage systems
US11726658B2 (en) Method, device, and computer program product for storage management
CN112748848A (zh) 用于存储管理的方法、设备和计算机程序产品
CN112764665B (zh) 存储管理的方法、设备和计算机程序产品
CN113590378A (zh) 存储管理的方法、设备和计算机程序产品
CN112748860B (zh) 用于存储管理的方法、电子设备和计算机程序产品
US10223000B2 (en) Data compression for grid-oriented storage systems
CN113126891A (zh) 存储管理的方法、设备和计算机程序产品
CN114816221A (zh) 存储管理方法、设备和计算机程序产品
Shan et al. Explore Data Placement Algorithm for Balanced Recovery Load Distribution

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