存储系统的空间分配方法和设备的利记博彩app
【专利摘要】本发明实施例提供一种存储系统的空间分配方法和设备,该方法包括:在M个等级中确定N个等级,所述M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,所述M和N均为正整数且N≤M;在所述N个等级的存储设备中选择至少一个第一存储设备;在选择的所述至少一个第一存储设备上为所述待存储数据分配空间。由于M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,因此,通过在划分的M个等级中确定N个等级,在N个等级的存储设备中选择至少一个第一存储设备上为待存储的数据分配存储空间,提高空间分配的灵活性。
【专利说明】存储系统的空间分配方法和设备
【技术领域】
[0001]本发明实施例涉及通信【技术领域】,并且更具体地,涉及存储系统的空间分配方法和设备。
【背景技术】
[0002]大规模分布式存储系统具有大量的存储设备,如存储设备可以是硬盘资源池(pool)或廉价磁碟冗余阵列(Redundant Arrays of In expensive Disks, RAID)组、LUN(Logical Unit Number,逻辑单元号)/卷(Volume)等。为了有效地利用资源,空间分配算法公平对待存储系统中的所有存储设备,即均匀地分布数据和工作负载。
[0003]但是,由于不同的存储设备的某些指标(如性能或可靠性)可能不相同,公平地对待各个存储设备,将会影响系统性能。例如,当资源池中有多块硬盘出现故障时,针对所有存储设备均匀地分布数据和工作负载,会使得系统性能大大降低。
【发明内容】
[0004]本发明实施例提供一种存储系统的空间分配方法和设备,能够提高空间分配的效率,有效地提升系统性能。
[0005]第一方面,提供了一种存储系统的空间分配方法,该方法包括:在M个等级中确定N个等级,所述M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,所述M和N均为正整数且N < M ;在所述N个等级的存储设备中选择至少一个第一存储设备;在选择的所述至少一个第一存储设备上为所述待存储数据分配空间。
[0006]结合第一方面,在另一种可能的实现方式中,在所述在M个等级中确定N个等级之前,所述方法还包括:根据所述存储设备的性能指标、所述性能指标的权重、所述存储设备的可靠性指标和所述可靠性指标的权重将存储系统中的存储设备划分成所述M个等级。
[0007]结合第一方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述根据所述存储设备的性能指标、所述性能指标的权重、所述存储设备的可靠性指标和所述可靠性指标的权重将存储系统中的存储设备划分成所述M个等级,包括:确定所述存储系统中各个存储设备的综合分数,其中所述综合分数S=Sp*Wl+Sr*W2,所述Sp表示性能分数且是由所述性能指标确定的,所述Sr表示可靠性分数且是由所述可靠性指标确定的,所述Wl表示所述性能指标的权重,所述W2表示所述可靠性指标的权重;根据所述存储系统中各个存储设备的综合分数将存储系统中的存储设备划分成所M等级,其中所述N个等级的存储设备包括综合分数在预设范围的存储设备。
[0008]结合第一方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述性能指标包括至少下列参数之一:平均响应时间AR、最大响应时间MR、平均队列深度AQ和平均占空比AD。
[0009]结合第一方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述可靠性指标包括至少下列参数之一:坏道的数量或增量、增长缺陷列表GLIST的数量或增量、已恢复错误的数量或增量、区块隔离的数量、以及是否为即将失效或失效PFF的存储设备。
[0010]结合第一方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述在M个等级中确定N个等级,包括:根据区块组CKG的冗余度在所述M个等级中确定所述N个等级;其中,所述CKG中的区块属于所述N个等级的存储设备且所述CKG的冗余度表示所述CKG可容忍的最大故障区块数量。
[0011]结合第一方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述在M个等级中确定N个等级,包括:根据所述待存储数据的属性在所述M个等级中确定所述N个等级;其中,所述待存储数据的属性包括至少下列参数之一:所述待存储数据的大小、所述待存储数据的类型、所述待存储数据的重要等级、所述待存储数据是否为热点数据。
[0012]结合第一方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,当所述N个等级的各个存储设备均已分配了空间或者所述N个等级的存储设备的空间不足时,所述方法还包括:在所述M个等级中确定除所述N个等级之外的S个等级,S为正整数且S+N < M ;在所述S个等级中选择至少一个第二存储设备,在选择的所述至少一个第二存储设备上为所述待存储数据分配空间;其中,所述第一存储设备的性能优于所述第二存储设备的性能,和/或所述第一存储设备的可靠性优于所述第二存储设备的可靠性。
[0013]第二方面,提供了一种存储系统的空间分配设备,该设备包括:确定单元,用于在M个等级中确定N个等级,所述M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,所述M和N均为正整数且NSM ;选择单元,用于在所述确定单元确定的所述N个等级的存储设备中选择至少一个第一存储设备;分配单元,在所述选择单元选择的所述至少一个第一存储设备上为所述待存储数据分配空间。
[0014]结合第二方面,在另一种可能的实现方式中,所述设备还包括划分单元,
[0015]所述划分单元,用于根据所述存储设备的性能指标、所述性能指标的权重、所述存储设备的可靠性指标和所述可靠性指标的权重将存储系统中的存储设备划分成所述M个等级。
[0016]结合第二方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述划分单元具体用于:确定所述存储系统中各个存储设备的综合分数,其中所述综合分数S=Sp*Wl+Sr*W2,所述Sp表示性能分数且是由所述性能指标确定的,所述Sr表示可靠性分数且是由所述可靠性指标确定的,所述Wl表示所述性能指标的权重,所述W2表示所述可靠性指标的权重;根据所述存储系统中各个存储设备的综合分数将存储系统中的存储设备划分成所M等级,其中所述N个等级的存储设备包括综合分数在预设范围的存储设备。
[0017]结合第二方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述确定单元具体用于:根据区块组CKG的冗余度在所述M个等级中确定所述N个等级;其中,所述CKG中的区块属于所述N个等级的存储设备且所述CKG的冗余度表示所述CKG可容忍的最大故障区块数量。
[0018]结合第二方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述确定单元具体用于:根据所述待存储数据的属性在所述M个等级中确定所述N个等级;其中,所述待存储数据的属性包括至少下列参数之一:所述待存储数据的大小、所述待存储数据的类型、所述待存储数据的重要等级、所述待存储数据是否为热点数据。
[0019]结合第二方面及其上述实现方式中的任一种实现方式,在另一种实现方式中,所述确定单元还用于:当所述N个等级的各个存储设备均已分配了空间或者所述N个等级的存储设备的空间不足时,在所述M个等级中确定除所述N个等级之外的S个等级,S为正整数且S+N ( M ;所述选择单元还用于;在所述确定单元确定的所述S个等级中选择至少一个第二存储设备;所述分配单元还用于:在所述选择单元选择的所述至少一个第二存储设备上为所述待存储数据分配空间;其中,所述第一存储设备的性能优于所述第二存储设备的性能,和/或所述第一存储设备的可靠性优于所述第二存储设备的可靠性。
[0020]本发明实施例在M个等级中确定N个等级,从N个等级的存储设备中选择至少一个第一存储设备,并在选择的至少一个第一存储设备上为待存储的数据分配存储空间。由于M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,因此,通过在划分的M个等级中确定N个等级,在N个等级的存储设备中选择至少一个第一存储设备上为待存储的数据分配存储空间,提高空间分配的灵活性。
【专利附图】
【附图说明】
[0021]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是本发明一个实施例存储系统的空间分配方法的流程图。
[0023]图2是本发明一个实施例的存储系统的空间分配方法的过程的示意性流程图。
[0024]图3是本发明一个实施例的存储系统的空间分配设备的结构框图。
[0025]图4是本发明另一个实施例的存储系统的空间分配设备的结构框图。
【具体实施方式】
[0026]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]图1是本发明一个实施例的存储系统的空间分配方法的流程图。
[0028]101,在M个等级中确定N个等级,M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,M和N均为正整数且N < M。
[0029]换句话说,可以根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备划分成M个等级的存储设备,并且在存储数据之前为待存储的数据从M个等级中确定N个等级,选择N个等级中的至少一个第一存储设备。本发明的实施例对划分M个等级的时机不作限制,例如,可以预先划分M个等级,也可以周期性地、不定期或者在每次存储数据前划分M个等级。
[0030]102,在N个等级的存储设备中选择至少一个第一存储设备。[0031]103,在选择的至少一个第一存储设备上为待存储数据分配空间。
[0032]本发明实施例在M个等级中确定N个等级,从N个等级的存储设备中选择至少一个第一存储设备,并在选择的至少一个第一存储设备上为待存储的数据分配存储空间。由于M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,因此,通过在划分的M个等级中确定N个等级,在N个等级的存储设备中选择至少一个第一存储设备上为待存储的数据分配存储空间,提高空间分配的灵活性。
[0033]在本发明实施例中,存储设备可以是硬盘资源池(pool)、RAID组或LUN/V0LUME等。具体地,可以是SSD (Solid State Drive,固态硬盘)盘资源池、SAS (Serial AttachedSCSI (Small Computer System Interface,小型计算机系统接口),串行连接SCSI)盘资源池、NLSAS (Nearline SAS,近线 SAS)盘资源池或 SATA (Serial Advanced TechnologyAttachment,串行高级技术附件)盘资源池等,应理解,本发明实施例对存储设备的类型不作限定,存储设备可以是物理设备,也可以是逻辑的存储空间。
[0034]需要说明的是,本发明实施例的性能指标可以包括至少下列参数之一:AR(Average Responsetime,平均响应时间)、MR (Maximum Responsetime,最大响应时间)、平均队列深度AQ和平均占空比AD。等等。应理解,本发明实施例并不限于此。其中,平均响应时间或最大响应时间越小,表示存储设备处理10( Input/Output,输入输出)的速度越快,即性能越好;平均队列深度越小,表示等待处理的时间越短,性能越好;平均占空比越小,表示存储设备可以承受更大的业务压力,性能越好。反之,平均响应时间或最大响应时间越大,表示存储设备处理10的速度越慢,即性能越差;平均队列深度越大,表示等待处理的时间越长,性能越差;平均占空比越大,表示存储设备可以承受的业务压力越小,性能越差。
[0035]还需要说明的是,本发明实施例的性能指标可以包括至少下列参数之一:坏道的数量或增量、GLIST (Grown Defect List,增长缺陷列表)的数量或增量、已恢复错误(recovered error)的数量或增量、Cl (Chunk Isolation,区块隔离)的数量、以及是否为PFF (Predictive Failure and Failure,即将失效或失效)的存储设备。等等。应理解,本发明实施例并不限于此。其中,坏道、GLIST或已恢复错误的数量或增量越多,表示存储设备的可靠性越低;区块隔离数量越多,表示存储设备的可靠性越低;当存储设备为PFF的设备时,表示存储设备的可靠性低。反之,坏道、GLIST或已恢复错误的数量或增量越少,表示存储设备的可靠性越高;区块隔离数量越少,表示存储设备的可靠性越高;当存储设备不为PFF的设备时,表示存储设备的可靠性高。
[0036]可选地,作为一个实施例,N取值为I。在该I个等级的存储设备上为待存储的数据分配存储空间。由于上述M个等级是根据存储设备的性能指标和/或可靠性指标来划分的,因此,针对同一等级的存储设备为待存储数据分配空间能够提高空间分配的效率,有效地提升系统性能。
[0037]可选地,作为另一个实施例,在步骤101之前,可以根据存储设备的性能指标和/或可靠性指标将存储系统中的存储设备划分成M个等级。可选地,可以以静态的方式预先划分M个等级,也可以以动态的方式(如周期性地)划分M个等级。应理解,本发明实施例对此不作限定。
[0038]具体地,可以根据存储设备的性能指标、性能指标的权重、存储设备的可靠性指标和可靠性指标的权重将存储系统中的存储设备划分成M个等级。可选地,可以根据应用场景确定采用的指标和指标的权重来为存储系统的存储设备划分等级。例如,在存取数据频繁的场景下,可以考虑性能指标中的平均响应时间或最大响应时间,并设置性能指标的权重大些;为了防止因存储设备的损坏导致重要数据丢失的场景下,可以考虑可靠性指标,并设置可靠性指标的权重大些。等等。
[0039]为了便于理解,下面采用综合分数的描述方式举例说明。确定存储系统中各个存储设备的综合分数,根据存储系统中各个存储设备的综合分数将存储系统中的存储设备划分成M个等级。综合分数S=Sp*Wl+Sr*W2,其中Sp表示性能分数且是由性能指标确定的,Sr表示可靠性分数且是由可靠性指标确定的,Wl表示性能指标的权重,W2表示可靠性指标的权重。其中N个等级中的存储设备包括综合分数在预设范围的存储设备。本发明实施例性能指标中不同的参数对应的权重可以相同或不同,相应地,可靠性指标中不同的参数对应
的权重也可以相同或不同。综合分数S还可以为S=sl*wl+s2*w2+......+sn*wn,其中η为正
整数,si (i为小于等于η的正整数)表示性能指标和可靠性指标中的某个参数,wi表示该参数的权重。应理解,本发明实施例对综合分数的确定方式不作限制。
[0040]可选地,可以预先约定分数所在的范围与等级的对应关系,根据存储设备的综合分数确定该存储设备所属的等级,如综合分数在预设范围的存储设备确定为上述M个等级中的第一等级,即第一等级的存储设备包括综合分数在预设范围的存储设备。
[0041]可选地,作为另一个实施例,在步骤101中,可以根据CKG (Chunk Group,区块组)的冗余度在M个等级中确定N个等级。其中,CKG中的区块属于N个等级的存储设备且CKG的冗余度表示CKG可容忍的最大故障区块数量。例如,一个10区块组成的RAID6区块组,可以容忍2个故障区块,可以9个区块在M个等级中的第一等级,I个区块在M个的等级中的第二等级。或者,一个4区块组成的RAIDl区块组,可以容忍3个故障区块,可以2个区块在第三等级,2个区块在第四等级。当需要选择CKG冗余度较多的存储设备为待存储数据分配空间时,可以从M个等级中确定第三等级和第四等级。因此,从M个等级中确定具有足够CKG冗余(如区块组可容忍的最大故障区块数量为num,num为正整数)的N个等级。这样,当区块组中有小于或等于num个故障区块时,可以采用区块组中其它正常区块来恢复故障区块的数据,避免数据丢失或损坏,从而达到满足客户数据可用性和可靠性的要求。
[0042]应理解,同一 CKG的区块可以属于同一等级,也可以属于不同的等级,本发明实施例对此并不限定。优选地,同一 CKG中的区块位于不同等级,当同一 CKG的区块数为L (L为大于或等于2的整数),可容忍的最大故障区块数量为num(num为正整数,且num小于L)时,L个区块中的L-num+1个区块位于性能和/或可靠性较优的等级,num-1个区块位于性能和/或可靠性较次的等级。这样,还能够最大化利用存储空间。
[0043]可选地,作为另一个实施例,在步骤101中,可以根据待存储数据的属性在M个等级中确定N个等级。待存储数据的属性可以包括至少下列参数之一:待存储数据的大小、待存储数据的类型、待存储数据的重要等级(例如,待存储数据是否重要)、待存储数据是否为热点数据。等等。例如,不重要的数据或非热点数据可以存到可靠性较低和/或性能较低的等级的存储设备中。
[0044]通过上述方案,可以满足不同应用场景下对存储设备的性能和/或可靠性的要求,提高空间分配的灵活性。例如,在性能和/或可靠性指标在同一等级的存储设备上为待存储数据分配空间,有效地提高空间分配的效率,并提升系统性能。或者,根据需要(如待存储数据的属性或同一 CKG的冗余度等)从M个等级中确定N个等级,在N个等级中选择至少一个第一存储设备为待存储数据分配空间,以满足客户定制化的性能和/或可靠性。
[0045]可选地,作为另一个实施例,当N个等级的各个存储设备均已分配了空间或者N个等级的存储设备的空间不足时,可以再从M个等级中确定除该N个等级之外的S个等级,S为正整数且S+N < M,在S个等级中为待存储数据选择至少一个第二存储设备,在选择的至少一个第二存储设备上为待存储数据分配空间。其中,第一存储设备的性能优于第二存储设备的性能,和/或第一存储设备的可靠性优于第二存储设备的可靠性。这样,能够选择合适的存储设备进行空间分配,优先选择性能和/或可靠性较高的存储设备上为待存储数据分配空间,通过减少在性能和/或可靠性较低的存储设备上进行空间分配来提升系统性倉泛。
[0046]下面结合图2的例子更加详细地描述本发明实施例。存储设备将以硬盘,N的取值等于I为例,采用上述的综合分数进行描述,应理解,本发明实施例对此并不限定。
[0047]步骤201,根据硬盘的性能和/或可靠性指标确定存储系统中各个硬盘的综合分数。
[0048]具体地,可以根据硬盘的性能指标、性能指标的权重、硬盘的可靠性指标和可靠性指标的权重确定存储系统中各个硬盘的综合分数。
[0049]具体地,综合分数S可以为Sp*Wl+Sr*W2,其中Sp表示性能分数且是由性能指标确定的,Sr表示可靠性分数且是由可靠性指标确定的,Wl表示性能指标的权重,W2表示可靠
性指标的权重。综合分数S还可以为S=sl*wl+s2*w2+......+sn*wn,其中η为正整数,si (i
为小于等于η的正整数)表示性能指标和可靠性指标中的某个参数,wi表示该参数的权重。应理解,本发明实施例对综合分数的确定方式不作限制。
[0050]下面分数以百分制为例进行说明,综合分数S取值范围为[0,100],性能分数Sp取值范围为[0,100],可靠性分数Sr取值范围为[0,100],性能指标的权重Wl取值范围为[O, I],可靠性指标的权重W2取值范围为[0,I]。
[0051]例如,性能指标以平均响应时间为例,性能指标的权重为0.6,可靠性指标以区块的隔离数量为例,可靠性指标的权重W2为0.4,将平均响应时间小于第一时间阈值的硬盘的性能分数Sp设置为100,将平均响应时间大于或等于第一时间阈值且小于第二时间阈值的硬盘的性能分数Sp设置为50,将平均响应时间大于或等于第二时间阈值的硬盘的性能分数Sp设置为0,将区块的隔离数量小于第一数量阈值的硬盘的可靠性分数Sr设置为100,将区块的隔离数量小于第二数量阈值且大于或等于第一数量阈值的硬盘的可靠性分数Sr设置为50,将区块的隔离数量大于或等于第二数量阈值的硬盘的可靠性分数Sr设置为O。又例如,如果在可靠性指标中,硬盘为PFF的设备时,那么将该硬盘的综合分数S设置为O。再例如,分数与指标可以具有函数关系(如线性关系)的方式。等等。
[0052]应理解,本发明实施例的性能指标或可靠性指标可以是I种或多种参数,当只考虑可靠性指标时,可以将性能指标的权重设置为0,当只考虑性能指标时,可以将可靠性指标的权重设置为O。还应注意,这些例子仅仅是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明的范围。
[0053]步骤202,根据硬盘的综合分数将存储系统中的硬盘划分成至少一个等级。
[0054]具体地,可以根据硬盘的性能指标、性能指标的权重、硬盘的可靠性指标和可靠性指标的权重将存储系统中的硬盘划分成至少一个(即上述M个)等级。
[0055]可选地,可以根据应用场景确定采用的指标和指标的权重来为存储系统的硬盘划分等级。例如,在存取数据频繁的场景下,可以考虑性能指标中的平均响应时间或最大响应时间,并设置性能指标的权重大些;为了防止因硬盘的损坏导致重要数据丢失的场景下,可以考虑可靠性指标,并设置可靠性指标的权重大些。等等。
[0056]具体而言,可以预先约定分数所在的范围与等级的对应关系,根据硬盘的综合分数确定该硬盘所属的等级。例如,将综合分数在[0,30)确定为第三等级,综合分数在[30, 70)确定为第二等级,综合分数在[70,100]确定为第一等级。又例如,可以将综合分数在[50,80]确定为第一等级,综合分数小于50且大于O的确定为第二等级。也可以将综合分数在前60%的硬盘划分为第一等级,或者,将综合分数由高到低排列的前NI (NI为正整数)个硬盘划分为第一等级。等等。当然,还可以将性能分数最高的前N2 (N2为正整数)个硬盘(如设置性能指标的权重为1,可靠性指标的权重为O)划分为第一等级,或者,将可靠性分数最高的前N2个硬盘(如设置性能指标的权重Wl为0,可靠性指标的权重W2为I)划分为第一等级。应理解,上述例子仅仅是示例性地,而非要限制本发明的范围。还应注意的是,本发明实施例所描述的第一等级的硬盘为某个等级的硬盘,并不限制为等级最高的硬盘。
[0057]步骤203,在至少一个等级中确定第一等级。
[0058]可选地,可以根据CKG的冗余度和/或待存储数据的属性在至少一个等级中确定第一等级。可选地,该CKG的各区块属于同一等级,其中待存储数据的属性可以包括至少下列参数之一:待存储数据的大小、待存储数据的类型、待存储数据的重要等级、待存储数据是否为热点数据。等等。这样,能够满足客户定制化的性能和/或可靠性。
[0059]例如,待存储数据为热点数据时,确定性能最优的第一等级的硬盘为待存储数据分配空间。又例如待存储数据为重要数据时,确定可靠性和性能最优的第一等级的硬盘为待存储数据分配空间。应理解,这些例子仅仅是示例性的,而非要限制本发明的范围。
[0060]通过上述方案,可以满足不同应用场景下对存储设备的性能和/或可靠性的要求,在性能和/或可靠性指标在同一等级的存储设备上为待存储数据分配空间,有效地提高空间分配的效率,并提升系统性能。
[0061]步骤204,判断在第一等级的硬盘中是否选择到合适的硬盘。
[0062]可选地,优先选择性能和/或可靠性较优的第一等级的硬盘来为待存储数据分配空间,当第一等级的硬盘的空间足够,可以从第一等级的硬盘列表中选择至少一个硬盘为待存储数据分配空间(执行步骤207),如果第一等级的硬盘均已分配了空间或者空间不足时,可以执行步骤205,在性能和/或可靠性比第一等级较次的第二等级的硬盘。
[0063]步骤205,在第二等级的硬盘列表中选择至少一个硬盘。
[0064]步骤206,判断第二等级的硬盘是否合适。
[0065]判断硬盘是否合适的例子可以参考步骤204,此处不再赘述。如果合适,则在第二等级的硬盘列表中选择的至少一个硬盘上位待存储数据分配空间(执行步骤207);如果不合适,则依次类推,可以选择性能和/或可靠性比第二等级较次的第三等级的硬盘。
[0066]步骤207,在合适的硬盘上为待存储数据分配空间。
[0067]这样,能够选择合适的存储设备进行空间分配,优先选择性能和/或可靠性较高的硬盘上为待存储数据分配空间,通过减少在性能和/或可靠性较低的存储设备上进行空间分配来提升系统性能。
[0068]图3是本发明一个实施例的存储系统的空间分配设备的结构框图。图3的存储系统的空间分配设备300包括确定单元301,选择单元302和分配单元303。
[0069]确定单元301,用于在M个等级中确定N个等级,M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,M和N均为正整数且N < M。
[0070]选择单元302,用于在确定单元301确定的N个等级的存储设备中选择至少一个第
一存储设备。
[0071]分配单元303,用于在选择单元302选择的至少一个第一存储设备上为待存储数据分配空间。
[0072]本发明实施例在M个等级中确定N个等级,从N个等级的存储设备中选择至少一个第一存储设备,并在选择的至少一个第一存储设备上为待存储的数据分配存储空间。由于M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,因此,通过在划分的M个等级中确定N个等级,在N个等级的存储设备中选择至少一个第一存储设备上为待存储的数据分配存储空间,提高空间分配的灵活性。
[0073]在本发明实施例中,存储设备可以是硬盘资源池(pool)、RAID组或LUN/V0LUME等。具体地,可以是SSD盘资源池、SAS盘资源池、NLSAS盘资源池或SATA资源池等,应理解,本发明实施例对存储设备的类型不作限定,存储设备可以是物理设备,也可以是逻辑的存储空间。
[0074]需要说明的是,本发明实施例的性能指标可以包括至少下列参数之一:平均响应时间、最大响应时间、平均队列深度和平均占空比。等等。应理解,本发明实施例并不限于此。其中,平均响应时间或最大响应时间越小,表示存储设备处理IO的速度越快,即性能越好;平均队列深度越小,表示等待处理的时间越短,性能越好;平均占空比越小,表示存储设备可以承受更大的业务压力,性能越好。反之,平均响应时间或最大响应时间越大,表示存储设备处理IO的速度越慢,即性能越差;平均队列深度越大,表示等待处理的时间越长,性能越差;平均占空比越大,表示存储设备可以承受的业务压力越小,性能越差。
[0075]还需要说明的是,本发明实施例的性能指标可以包括至少下列参数之一:坏道的数量或增量、GLIST的数量或增量、已恢复错误的数量或增量、Cl的数量、以及是否为PFF的存储设备。等等。应理解,本发明实施例并不限于此。其中,坏道、GLIST或已恢复错误的数量或增量越多,表示存储设备的可靠性越低;区块隔离数量越多,表示存储设备的可靠性越低;当存储设备为PFF的设备时,表示存储设备的可靠性低。反之,坏道、GLIST或已恢复错误的数量或增量越少,表示存储设备的可靠性越高;区块隔离数量越少,表示存储设备的可靠性越高;当存储设备不为PFF的设备时,表示存储设备的可靠性高。
[0076]存储系统的空间分配设备300可实现图1或图2的实施例,因此为避免重复,不再详细描述。
[0077]可选地,作为另一个实施例,存储系统的空间分配设备300还可以包括划分单元304,划分单元304用于根据存储设备的性能指标和/或可靠性指标将存储系统中的存储设备划分成M个等级。可选地,划分单元304可以用于以静态的方式预先划分M个等级,也可以以动态的方式(如周期性地)划分M个等级。应理解,本发明实施例对此不作限定。
[0078]划分单元304可以具体用于:根据存储设备的性能指标、性能指标的权重、存储设备的可靠性指标和可靠性指标的权重将存储系统中的存储设备划分成M个等级。
[0079]具体地,划分单元304可以用于确定存储系统中各个存储设备的综合分数,根据存储系统中各个存储设备的综合分数将存储系统中的存储设备划分成M个等级。其中综合分数Sp*Wl+Sr*W2,Sp表示性能分数且是由性能指标确定的,Sr表示可靠性分数且是由可靠性指标确定的,Wl表示性能指标的权重,W2表示可靠性指标的权重。或者,综合分数S还
可以为S=sl*wl+s2*w2+......+sn*wn,其中η为正整数,si (i为小于等于η的正整数)表示
性能指标和可靠性指标中的某个参数,wi表示该参数的权重。应理解,本发明实施例对综合分数的确定方式不作限制。可选地,可以预先约定分数所在的范围与等级的对应关系,如划分单元304可以用于将综合分数在预设范围的存储设备确定为上述N个等级,即上述N个等级的存储设备包括综合分数在预设范围的存储设备。
[0080]可选地,作为另一个实施例,确定单元301还可以用于:根据CKG的冗余度在M个等级中确定N个等级。其中,CKG中的区块属于N个等级的存储设备且CKG的冗余度表示CKG可容忍的最大故障区块数量。和/或,根据待存储数据的属性在M个等级中确定N个等级。待存储数据的属性可以包括至少下列参数之一:待存储数据的大小、待存储数据的类型、待存储数据的重要等级(例如,待存储数据是否重要)、待存储数据是否为热点数据。等等。具体的实施例可以参考上述图1和图2的例子,此处不再赘述。
[0081]通过上述方案,可以满足不同应用场景下对存储设备的性能和/或可靠性的要求,提高空间分配的灵活性。例如,在性能和/或可靠性指标在同一等级的存储设备上为待存储数据分配空间,有效地提高空间分配的效率,并提升系统性能。或者,根据需要(如待存储数据的属性或同一 CKG的冗余度等)从M个等级中确定N个等级,在N个等级中选择至少一个第一存储设备为待存储数据分配空间,以满足客户定制化的性能和/或可靠性。
[0082]可选地,作为另一个实施例,确定单元301还可以用于:当N个等级的各个存储设备均已分配了空间或者N个等级的存储设备的空间不足时,可以再从M个等级中确定除该N个等级之外的S个等级,S为正整数且S+N ( M0选择单元302还可以用于在S个等级中为待存储数据选择至少一个第二存储设备。分配单元303还用于:在选择的至少一个第二存储设备上为待存储数据分配空间。其中,第一存储设备的性能优于第二存储设备的性能,和/或第一存储设备的可靠性优于第二存储设备的可靠性。这样,能够选择合适的存储设备进行空间分配,优先选择性能和/或可靠性较高的存储设备上为待存储数据分配空间,通过减少在性能和/或可靠性较低的存储设备上进行空间分配来提升系统性能。
[0083]图4是本发明另一个实施例的存储系统的空间分配设备的结构框图。在该实施例中,设备400包括处理器401和存储器402。处理器401控制存储系统的空间分配设备400的操作,处理器401还可以称为CPU。存储器402可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器402的一部分还可以包括非易失性随机存取存储器(NVRAM)。处理器401和存储器402通过总线系统410耦合在一起,其中总线系统410除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统410。
[0084]上述本发明实施例揭示的方法可以应用上述的存储系统的空间分配设备400。其中,处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。
[0085]在本发明实施例中,存储芯片根据处理器401通过调用存储器402存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
[0086]在M个等级中确定N个等级,M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,M和N均为正整数且N < M。在N个等级的存储设备中选择至少一个第一存储设备。在选择的至少一个第一存储设备上为待存储数据分配空间。
[0087]本发明实施例在M个等级中确定N个等级,从N个等级的存储设备中选择至少一个第一存储设备,并在选择的至少一个第一存储设备上为待存储的数据分配存储空间。由于M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,因此,通过在划分的M个等级中确定N个等级,在N个等级的存储设备中选择至少一个第一存储设备上为待存储的数据分配存储空间,提高空间分配的灵活性。
[0088]在本发明实施例中,存储设备可以是硬盘资源池(pool)、RAID组或LUN/V0LUME等。具体地,可以是SSD盘资源池、SAS盘资源池、NLSAS盘资源池或SATA资源池等,应理解,本发明实施例对存储设备的类型不作限定,存储设备可以是物理设备,也可以是逻辑的存储空间。
[0089]需要说明的是,本发明实施例的性能指标可以包括至少下列参数之一:平均响应时间、最大响应时间、平均队列深度和平均占空比。等等。应理解,本发明实施例并不限于此。其中,平均响应时间或最大响应时间越小,表示存储设备处理IO的速度越快,即性能越好;平均队列深度越小,表示等待处理的时间越短,性能越好;平均占空比越小,表示存储设备可以承受更大的业务压力,性能越好。反之,平均响应时间或最大响应时间越大,表示存储设备处理IO的速度越慢,即性能越差;平均队列深度越大,表示等待处理的时间越长,性能越差;平均占空比越大,表示存储设备可以承受的业务压力越小,性能越差。
[0090]还需要说明的是,本发明实施例的性能指标可以包括至少下列参数之一:坏道的数量或增量、GLIST的数量或增量、已恢复错误的数量或增量、Cl的数量、以及是否为PFF的存储设备。等等。应理解,本发明实施例并不限于此。其中,坏道、GLIST或已恢复错误的数量或增量越多,表示存储设备的可靠性越低;区块隔离数量越多,表示存储设备的可靠性越低;当存储设备为PFF的设备时,表示存储设备的可靠性低。反之,坏道、GLIST或已恢复错误的数量或增量越少,表示存储设备的可靠性越高;区块隔离数量越少,表示存储设备的可靠性越高;当存储设备不为PFF的设备时,表示存储设备的可靠性高。
[0091]存储系统的空间分配设备400可实现图1或图2的实施例,因此为避免重复,不再详细描述。
[0092]可选地,作为另一个实施例,处理器401可以具体用于:根据存储设备的性能指标和/或可靠性指标将存储系统中的存储设备划分成M个等级。可选地,可以以静态的方式预先划分至少一个等级,也可以以动态的方式(如周期性地)划分至少一个等级。应理解,本发明实施例对此不作限定。
[0093]具体地,处理器401可以具体用于:根据存储设备的性能指标、性能指标的权重、存储设备的可靠性指标和可靠性指标的权重将存储系统中的存储设备划分成M个等级。[0094]具体地,处理器401可以用于确定存储系统中各个存储设备的综合分数,根据存储系统中各个存储设备的综合分数将存储系统中的存储设备划分成至少一个等级。其中综合分数Sp*Wl+Sr*W2,Sp表示性能分数且是由性能指标确定的,Sr表示可靠性分数且是由可靠性指标确定的,Wl表示性能指标的权重,W2表示可靠性指标的权重。或者,综合分数S
还可以为S=sl*wl+s2*w2+......+sn*wn,其中η为正整数,si (i为小于等于η的正整数)表
示性能指标和可靠性指标中的某个参数,wi表示该参数的权重。应理解,本发明实施例对综合分数的确定方式不作限制。可选地,可以预先约定分数所在的范围与等级的对应关系,如处理器401可以用于将综合分数在预设范围的存储设备确定为上述N个等级,即上述N个等级的存储设备包括综合分数在预设范围的存储设备。
[0095]可选地,作为另一个实施例,处理器401还可以用于:根据CKG的冗余度在M个等级中确定N个等级。其中,CKG中的区块属于N个等级的存储设备且CKG的冗余度表示CKG可容忍的最大故障区块数量。和/或,根据待存储数据的属性在M个等级中确定N个等级。待存储数据的属性可以包括至少下列参数之一:待存储数据的大小、待存储数据的类型、待存储数据的重要等级(例如,待存储数据是否重要)、待存储数据是否为热点数据。等等。具体的实施例可以参考上述图1和图2的例子,此处不再赘述。
[0096]通过上述方案,可以满足不同应用场景下对存储设备的性能和/或可靠性的要求,提高空间分配的灵活性。例如,在性能和/或可靠性指标在同一等级的存储设备上为待存储数据分配空间,有效地提高空间分配的效率,并提升系统性能。或者,根据需要(如待存储数据的属性或同一 CKG的冗余度等)从M个等级中确定N个等级,在N个等级中选择至少一个第一存储设备为待存储数据分配空间,以满足客户定制化的性能和/或可靠性。
[0097]可选地,作为另一个实施例,至少一个等级为多个等级且包括第一等级和第二等级,处理器401还可以用于当N个等级的各个存储设备均已分配了空间或者N个等级的存储设备的空间不足时,可以再从M个等级中确定除该N个等级之外的S个等级,S为正整数且S+NSM。在S个等级中为待存储数据选择至少一个第二存储设备。在选择的至少一个第二存储设备上为待存储数据分配空间。其中,第一存储设备的性能优于第二存储设备的性能,和/或第一存储设备的可靠性优于第二存储设备的可靠性。这样,能够选择合适的存储设备进行空间分配,优先选择性能和/或可靠性较高的存储设备上为待存储数据分配空间,通过减少在性能和/或可靠性较低的存储设备上进行空间分配来提升系统性能。
[0098]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0099]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0100]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0101]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0102]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0103]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,存储阵列或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
【权利要求】
1.一种存储系统的空间分配方法,其特征在于,包括: 在M个等级中确定N个等级,所述M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,所述M和N均为正整数且N < M ; 在所述N个等级的存储设备中选择至少一个第一存储设备; 在选择的所述至少一个第一存储设备上为所述待存储数据分配空间。
2.根据权利要求1所述的方法,其特征在于,在所述在M个等级中确定N个等级之前,所述方法还包括: 根据所述存储设备的性能指标、所述性能指标的权重、所述存储设备的可靠性指标和所述可靠性指标的权重将存储系统中的存储设备划分成所述M个等级。
3.根据权利要求2所述的方法,其特征在于,所述根据所述存储设备的性能指标、所述性能指标的权重、所述存储设备的可靠性指标和所述可靠性指标的权重将存储系统中的存储设备划分成所述M个等级,包括: 确定所述存储系统中各个存储设备的综合分数,其中所述综合分数S=Sp*Wl+Sr*W2,所述Sp表示性能分数且是由所述性能指标确定的,所述Sr表示可靠性分数且是由所述可靠性指标确定的,所述Wl表示所述性能 指标的权重,所述W2表示所述可靠性指标的权重; 根据所述存储系统中各个存储设备的综合分数将存储系统中的存储设备划分成所M等级,其中所述N个等级的存储设备包括综合分数在预设范围的存储设备。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述性能指标包括至少下列参数之一:平均响应时间AR、最大响应时间MR、平均队列深度AQ和平均占空比AD。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述可靠性指标包括至少下列参数之一:坏道的数量或增量、增长缺陷列表GLIST的数量或增量、已恢复错误的数量或增量、区块隔离的数量、以及是否为即将失效或失效PFF的存储设备。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述在M个等级中确定N个等级,包括: 根据区块组CKG的冗余度在所述M个等级中确定所述N个等级; 其中,所述CKG中的区块属于所述N个等级的存储设备且所述CKG的冗余度表示所述CKG可容忍的最大故障区块数量。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述在M个等级中确定N个等级,包括: 根据所述待存储数据的属性在所述M 个等级中确定所述N个等级; 其中,所述待存储数据的属性包括至少下列参数之一:所述待存储数据的大小、所述待存储数据的类型、所述待存储数据的重要等级、所述待存储数据是否为热点数据。
8.根据权利要求1-7任一项所述的方法,其特征在于,当所述N个等级的各个存储设备均已分配了空间或者所述N个等级的存储设备的空间不足时,所述方法还包括: 在所述M个等级中确定除所述N个等级之外的S个等级,S为正整数且S+N≤M ; 在所述S个等级中选择至少一个第二存储设备,在选择的所述至少一个第二存储设备上为所述待存储数据分配空间; 其中,所述第一存储设备的性能优于所述第二存储设备的性能,和/或所述第一存储设备的可靠性优于所述第二存储设备的可靠性。
9.一种存储系统的空间分配设备,其特征在于,包括: 确定单元,用于在M个等级中确定N个等级,所述M个等级是根据存储设备的性能指标和/或可靠性指标对存储系统中的存储设备进行划分得到的,所述M和N均为正整数且N^M; 选择单元,用于在所述确定单元确定的所述N个等级的存储设备中选择至少一个第一存储设备; 分配单元,用于在所述选择单元选择的所述至少一个第一存储设备上为所述待存储数据分配空间。
10.根据权利要求9所述的设备,其特征在于,所述设备还包括划分单元, 所述划分单元,用于根据所述存储设备的性能指标、所述性能指标的权重、所述存储设备的可靠性指标和所述可靠性指标的权重将存储系统中的存储设备划分成所述M个等级。
11.根据权利要求10所述的设备,其特征在于, 所述划分单元具体用于:确定所述存储系统中各个存储设备的综合分数,其中所述综合分数S=Sp*Wl+Sr*W2,所述Sp表示性能分数且是由所述性能指标确定的,所述Sr表示可靠性分数且是由所述可靠性指标确定的,所述Wl表示所述性能指标的权重,所述W2表示所述可靠性指标的权重;根据所述存储系统中各个存储设备的综合分数将存储系统中的存储设备划分成所M等级,其中所述N个等级的存储设备包括综合分数在预设范围的存储设备。
12.根据权利要求9-11任一项所述的设备,其特征在于, 所述确定单元具体用于:根据区块组CKG的冗余度在所述M个等级中确定所述N个等级; 其中,所述CKG中的区块属于所述N个等级的存储设备且所述CKG的冗余度表示所述CKG可容忍的最大故障区块数量。
13.根据权利要求9-12任一项所述的设备,其特征在于, 所述确定单元具体用于:根据所述待存储数据的属性在所述M个等级中确定所述N个等级; 其中,所述待存储数据的属性包括至少下列参数之一:所述待存储数据的大小、所述待存储数据的类型、所述待存储数据的重要等级、所述待存储数据是否为热点数据。
14.根据权利要求9-13任一项所述的设备,其特征在于, 所述确定单元还用于:当所述N个等级的各个存储设备均已分配了空间或者所述N个等级的存储设备的空间不足时,在所述M个等级中确定除所述N个等级之外的S个等级,S为正整数且S+N≤M; 所述选择单元还用于;在所述确定单元确定的所述S个等级中选择至少一个第二存储设备; 所述分配单元还用于:在所述选择单元选择的所述至少一个第二存储设备上为所述待存储数据分配空间; 其中,所述第一存储设备的性能优于所述第二存储设备的性能,和/或所述第一存储设备的可靠性优于所述第二存储设备的可靠性。
【文档编号】G06F12/02GK103577337SQ201310541644
【公开日】2014年2月12日 申请日期:2013年11月5日 优先权日:2013年11月5日
【发明者】刘国霞, 曹红强, 熊睿之 申请人:华为技术有限公司