一种磁盘分区排布方法及装置与流程

文档序号:13717006阅读:137来源:国知局
技术领域本发明涉及计算机存储领域,尤其涉及一种磁盘分区排布方法及装置。

背景技术:
新兴的大规模分布式存储系统需要将数据分布在成千上万台存储设备中。磁盘作为存储设备的一种,具有一定的使用寿命,频繁读写会加快磁盘损耗,而当有磁盘发生故障时,为了恢复该磁盘中的数据,需要从其它磁盘中读取数据来恢复该磁盘中的数据。在进行数据存储时,可以采用基于磁盘分区(partition,pt)组的存储模式,所谓pt组,是指在恢复pt组内的一个pt的数据的时候,需要读取同组内其它所有或部分pt的数据,也即采用同组内其它pt的数据来恢复该pt的数据。比如,在基于副本的存储系统中,一个主用pt和至少一个备份pt组成一组,在恢复一个磁盘中的每个pt的数据时,需要从其它磁盘中读取该pt对应的一个备份pt中的数据;在基于纠删码(ErasureCoding,EC)校验的存储系统中,在恢复一个磁盘中的数据时,需要读取与该磁盘上的每个pt属于同一组的所有其它pt。基于pt组的存储模式是一种新兴的存储模式,尚没有相关技术说明如何在各个磁盘上排布各pt组内的每个pt,以满足数据恢复的需求。

技术实现要素:
本发明实施例提供一种磁盘分区排布方法,用以对各pt组内的不同pt进行排布,满足数据恢复的需求。第一方面,提供一种磁盘分区排布方法,包括:根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘;其中,所述候选磁盘属于除已排布的pt所在磁盘之外的磁盘;根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘;其中,两个磁盘之间的相关系数用于标识在恢复其中一个磁盘中的数据时,需要读取另一个磁盘中的数据的次数。结合第一方面,在第一种可能的实现方式中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数相加求和,确定综合相关系数;将所述至少一个候选磁盘中,对应的所述综合相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第一方面,在第二种可能的实现方式中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:确定任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中的最大相关系数;将所述至少一个候选磁盘中,所对应的所述最大相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第一方面,在第三种可能的实现方式中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加权求和,确定加权相关系数;其中,该任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中,最大的相关系数所对应的权值最大;将所述至少一个候选磁盘中,对应的所述加权相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第一方面,在第一方面的第一~三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,确定所述待排布pt所在的磁盘之后,还包括:将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1。结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘之前,还包括:以m+1为宽度和深度,建立(m+1)×(m+1)的矩阵,所述m+1为用于排布pt的总的磁盘数量;其中,该矩阵中的第i+1行第j+1列的矩阵元素Cij和第j+1行第i+1列的矩阵元素Cji用于记录第i+1个磁盘和第j+1个磁盘之间的相关系数,m、i和j为大于或等于0的整数;将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1,包括:当在第i+1个磁盘和第j+1个磁盘中排布同一pt组的pt时,将这两个磁盘之间的相关系数Cij和Cji增加1。结合第一方面,在第一方面的第一~五种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘,包括:将待排布pt所在的pt组中除已排布的pt所在磁盘之外的所有磁盘作为候选磁盘;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,若该磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中有超过设定阈值的相关系数,则将该磁盘排除在候选磁盘之外;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,确定该磁盘与已排布的每个pt所在磁盘之间的相关系数中的最大相关系数,将对应的所述最大相关系数最大的磁盘排除在候选磁盘之外。第二方面,提供一种磁盘分区排布装置,包括:第一确定模块,用于根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘;其中,所述候选磁盘属于除已排布的pt所在磁盘之外的磁盘;第二确定模块,用于根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述第一确定模块确定的至少一个候选磁盘中,确定所述待排布pt所在的磁盘;其中,两个磁盘之间的相关系数用于标识在恢复其中一个磁盘中的数据时,需要读取另一个磁盘中的数据的次数。结合第二方面,在第一种可能的实现方式中,所述第二确定模块具体用于:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数相加求和,确定综合相关系数;将所述至少一个候选磁盘中,对应的所述综合相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第二方面,在第二种可能的实现方式中,所述第二确定模块具体用于:确定任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中的最大相关系数;将所述至少一个候选磁盘中,所对应的所述最大相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第二方面,在第三种可能的实现方式中,所述第二确定模块具体用于:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加权求和,确定加权相关系数;其中,该任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中,最大的相关系数所对应的权值最大;将所述至少一个候选磁盘中,对应的所述加权相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第二方面,在第二方面的第一~三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述第二确定模块还用于:在确定所述待排布pt所在的磁盘之后,将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1。结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:建立模块,用于以m+1为宽度和深度,建立(m+1)×(m+1)的矩阵,所述m+1为用于排布pt的总的磁盘数量;其中,该矩阵中的第i+1行第j+1列的矩阵元素Cij和第j+1行第i+1列的矩阵元素Cji用于记录第i+1个磁盘和第j+1个磁盘之间的相关系数,m、i和j为大于或等于0的整数;所述第二确定模块具体用于:当在第i+1个磁盘和第j+1个磁盘中排布同一pt组的pt时,将这两个磁盘之间的相关系数Cij和Cji增加1。结合第二方面,在第二方面的第一~五种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述第一确定模块具体用于:将待排布pt所在的pt组中除已排布的pt所在磁盘之外的所有磁盘作为候选磁盘;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,若该磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中有超过设定阈值的相关系数,则将该磁盘排除在候选磁盘之外;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,确定该磁盘与已排布的每个pt所在磁盘之间的相关系数中的最大相关系数,将对应的所述最大相关系数最大的磁盘排除在候选磁盘之外。第三方面,提供一种进行数据存储的设备,该设备包括处理器、存储器和总线,所述存储器存储执行指令,当所述设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述执行指令使得所述设备执行如下方法:根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘;其中,所述候选磁盘属于除已排布的pt所在磁盘之外的磁盘;根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘;其中,两个磁盘之间的相关系数用于标识在恢复其中一个磁盘中的数据时,需要读取另一个磁盘中的数据的次数。结合第三方面,在第一种可能的实现方式中,所述处理器执行的所述方法中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数相加求和,确定综合相关系数;将所述至少一个候选磁盘中,对应的所述综合相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第三方面,在第二种可能的实现方式中,所述处理器执行的所述方法中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:确定任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中的最大相关系数;将所述至少一个候选磁盘中,所对应的所述最大相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第三方面,在第三种可能的实现方式中,所述处理器执行的所述方法中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加权求和,确定加权相关系数;其中,该任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中,最大的相关系数所对应的权值最大;将所述至少一个候选磁盘中,对应的所述加权相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。结合第三方面,在第三方面的第一~三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述处理器执行的所述方法中,确定所述待排布pt所在的磁盘之后,还包括:将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1。结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理器执行的所述方法中,根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘之前,还包括:以m+1为宽度和深度,建立(m+1)×(m+1)的矩阵,所述m+1为用于排布pt的总的磁盘数量;其中,该矩阵中的第i+1行第j+1列的矩阵元素Cij和第j+1行第i+1列的矩阵元素Cji用于记录第i+1个磁盘和第j+1个磁盘之间的相关系数,m、i和j为大于或等于0的整数;将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1,包括:当在第i+1个磁盘和第j+1个磁盘中排布同一pt组的pt时,将这两个磁盘之间的相关系数Cij和Cji增加1。结合第三方面,在第三方面的第一~五种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述处理器执行的所述方法中,根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘,包括:将待排布pt所在的pt组中除已排布的pt所在磁盘之外的所有磁盘作为候选磁盘;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,若该磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中有超过设定阈值的相关系数,则将该磁盘排除在候选磁盘之外;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,确定该磁盘与已排布的每个pt所在磁盘之间的相关系数中的最大相关系数,将对应的所述最大相关系数最大的磁盘排除在候选磁盘之外。采用上述任一方面提供的方法或装置,将同组内不同的pt排布在不同的磁盘上,这样可以保证数据的安全性,在其中一个磁盘故障,导致该磁盘上的某个pt中的数据丢失时,可以在其它磁盘中读取该pt所在pt组的其它pt的数据,基于读取的其它pt的数据来恢复该pt的数据。另外,可以选择与同组内当前已排布的pt所在的磁盘之间的相关系数较小的候选磁盘来作为待排布pt所在的磁盘,这样,可以不断均衡各磁盘之间的相关系数,从而增加每次并行读取的磁盘数量,减少并行读取的次数,提高数据恢复效率(详见具体实施方式部分的描述)。附图说明图1为不同组的磁盘分区pt排布示意图;图2为本发明实施例一提供的磁盘分区排布方法流程图;图3为本发明实施例二提供的磁盘分区排布方法流程图;图4为本发明实施例提供的磁盘分区排布装置结构示意图;图5为本发明实施例提供的磁盘分区排布设备结构示意图。具体实施方式本发明实施例提供了一种磁盘分区pt排布方法,在该方法中,将同组内不同的pt排布在不同的磁盘上,这样可以保证数据的安全性,在其中一个磁盘故障,导致该磁盘上的某个pt中的数据丢失时,可以在其它磁盘中读取该pt所在pt组的其它pt的数据,基于读取的其它pt的数据来恢复该pt的数据。另外,除了考虑数据的安全性外,还需要考虑数据的恢复效率。以基于EC校验的存储系统为例,如图1所示,一个pt组内共有6个pt,A、B、C、D、E、F、G、H、I、J分别表示不同的磁盘。图中,底纹图案相同的pt属于一个pt组。在图1中的pt排布下,若磁盘A损坏,为恢复磁盘A中pt1中的数据,需要读取磁盘B、C、D、E、F中该pt1所属pt组的其它pt的数据;为恢复磁盘A中pt2的数据,需要读取B、C、D、E、J中该pt2所属pt组的其它pt的数据;为恢复磁盘A中pt3的数据,需要读取B、C、D、I、J中该pt3所属pt组的其它pt的数据;为恢复磁盘A中pt4的数据,需要读取B、C、H、I、J中该pt4所属pt组的其它pt的数据;为恢复磁盘A中的pt5的数据,需要读取B、H、I、J中该pt5所属pt组的其它pt的数据;为恢复磁盘A中的pt6,需要读取F、G、H、I、J中该pt6所属pt组的其它pt的数据。这样,在磁盘A损坏的情况下,需要读取磁盘B、J5次,读取磁盘C、I4次,读取磁盘D、H3次,读取磁盘E、F、G2次。在进行数据恢复的时候,可以并行从不同磁盘读取数据,但为了保证数据在磁盘上的逻辑性,对同一磁盘却无法并行读取多次,只能按顺序依次读取。基于此,在图1的排布下,至少需要执行5次读取,数据恢复时延与针对某个磁盘的最大读取次数有很大关系,换言之,对各个磁盘读取次数相差越大,就会导致数据读取的并行性越差,数据恢复效率越低。为了提高数据恢复效率,本发明实施例在排布每个pt时,针对其中每个候选磁盘(将该pt所在的pt组中其它已排布的pt所在的磁盘之外的至少一个磁盘作为候选磁盘),查看该候选磁盘与其它已排布的每个pt所在磁盘之间的相关系数,根据该相关系数,从所述至少一个候选磁盘中选择待排布pt所在的磁盘。由于这里的相关系数可以标识在恢复其中一个磁盘中的数据时,需要读取另一个磁盘中的数据的次数,因此,可以选择与同组内当前已排布的pt所在的磁盘之间的相关系数较小的候选磁盘来作为待排布pt所在的磁盘,这样,可以不断均衡各磁盘之间的相关系数,也即均衡在恢复其中一个磁盘中的数据时,读取其它每个磁盘的次数,从而增加每次并行读取的磁盘数量,减少并行读取的次数,提高数据恢复效率。下面结合说明书附图对本发明实施例作进一步详细描述。实施例一如图2所示,为本发明实施例一提供的磁盘分区排布方法流程图,包括以下步骤:S201:根据待排布pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘;所述候选磁盘属于除已排布的pt所在磁盘之外的磁盘。这里,所谓pt组,是指在恢复pt组内的一个pt的数据的时候,需要读取同组内其它所有或部分pt的数据,也即采用同组内其它pt的数据来恢复该pt的数据。该步骤中,在待排布pt所在的pt组中,除其它已排布的pt所在磁盘之外的磁盘中,选择全部或部分磁盘作为候选磁盘。比如,可以将该pt组中除已排布的pt所在磁盘之外的所有磁盘作为候选磁盘。还可以针对该pt组中除已排布的pt所在磁盘之外的每个磁盘,若该磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中有超过设定阈值的相关系数,则将该磁盘排除在候选磁盘之外;或者,可以针对该pt组中除已排布的pt所在磁盘之外的每个磁盘,确定该磁盘与已排布的每个pt所在磁盘之间的相关系数中的最大相关系数,将对应的所述最大相关系数最大的磁盘排除在候选磁盘之外。S202:根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘;其中,两个磁盘之间的相关系数用于标识在恢复其中一个磁盘中的数据时,需要读取另一个磁盘中的数据的次数。该步骤中,若选择的候选磁盘有多个,则针对每个候选磁盘,查找该候选磁盘当前与其它已排布的每个pt分别所在的磁盘之间的相关系数,基于不同的候选磁盘所对应的查找到的相关系数的大小,来选择待排布pt所在的磁盘。在确定待排布pt所在的磁盘之后,可以将该磁盘与已排布的每个pt分别所在的磁盘之间的相关系数进行累加,简单地,可以直接加1。具体地,可以采用以下三种方式中的任意一种来选择待排布pt所在的磁盘。方式一、相关系数求和法;具体地,根据任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数相加求和,确定综合相关系数;将所述至少一个候选磁盘中,对应的所述综合相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。在该方式下,针对每个候选磁盘,将该候选磁盘与已排布的各个pt分别所在的不同磁盘之间的相关系数加权求和,得到综合相关系数,将最小的综合相关系数对应的候选磁盘确定为待排布pt所在的磁盘。该方式采用的是一种均衡综合相关系数的方法,该综合相关系数实质上反映了每个候选磁盘被“相关”的总次数(也即在其它磁盘故障时,可能被读取的总次数),选择对应的综合相关系数最小的候选磁盘作为待排布pt所在的磁盘,也即将各个磁盘被“相关”的次数进行均衡化,以实现对各个不同的磁盘读取次数的均衡化。方式二、最小相关系数法;具体地,根据任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:根据任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数,确定所述任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数中的最大相关系数;将所述至少一个候选磁盘中,所对应的所述最大相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。在该方式下,由于在进行数据恢复时,针对某个磁盘的最大读取次数对数据恢复效率有直接影响,因此,可以针对每个候选磁盘,首先确定该候选磁盘与已排布的每个pt分别所在的磁盘之间的各个相关系数中的最大相关系数,避开对应的最大相关系数较大的候选磁盘,选择对应的最大相关系数最小的候选磁盘作为待排布pt所在的磁盘。这样,在将待排布pt排布在选择的候选磁盘上后,该候选磁盘的与其它已排布的每个pt所在磁盘之间的相关系数就会增加,实现各个磁盘之间的相关系数的均衡化。否则,若选择其它候选磁盘,其它候选磁盘本来对应的最大相关系数就比较大,再排布这一个pt后,最大相关系数就会更大。方式三、相关系数加权求和法;具体地,根据任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数加权求和,确定加权相关系数;其中,该任一候选磁盘与已排布的每个pt所在磁盘之间的相关系数中,最大的相关系数所对应的权值最大;将所述至少一个候选磁盘中,对应的所述加权相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。与上述方式一的区别是,该方式二还为各个不同的相关系数设置相应的权值,由于在进行数据恢复时,针对某个磁盘的最大读取次数对数据恢复效率有直接影响,为了兼顾综合相关系数和最大相关系数,可以根据相关系数的取值不同,设置不同的权值,相关系数越大,该权值也越大。简单地,可以将任一候选磁盘与已排布的每个pt分别所在的不同磁盘之间的相关系数中,最大相关系数的权值设置为大于1的值,将其它相关系数的权值设置为1。下面通过一个具体的实施例对本发明磁盘分区排布方法作进一步说明。实施例二如下表一所示,用于排布pt的磁盘(disk)的总的数量为m+1,磁盘标识(Id)为0~m,以m+1为宽度和深度,建立一个(m+1)×(m+1)的矩阵,第i+1行第j+1列的矩阵元素Cij和第j+1行第i+1列的Cji用于记录第i+1个磁盘(即表中的磁盘i)和第j+1个磁盘(即表中的磁盘j)之间的相关系数,m、i和j为大于或等于0的整数。每次在两个磁盘(比如磁盘i和磁盘j)中排布同一pt组的pt时,这两个磁盘之间的相关系数(Cij和Cji)就相应地改变,比如增加1。DiskId012……m0/C01C02C0jC0m1C10/C12C1jC1m2C20C21/C2jC2m……Ci0Ci1Ci2/CimmCm0Cm1Cm2Cmj/表一如图3所示,为本发明实施例二提供的磁盘分区排布方法流程图,包括以下步骤:S301:根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘;其中,所述候选磁盘属于除已排布的pt所在磁盘之外的磁盘。S302:针对每个候选磁盘,将该候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加权求和,确定加权相关系数;其中,该候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中,最大的相关系数所对应的权值最大。S303:将所述至少一个候选磁盘中,对应的所述加权相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。S304:将确定的所述待排布pt所在的磁盘与所述已排布的pt所在磁盘之间的相关系数加1。假设有10个磁盘(disk),磁盘标识(Id)为0~9,每个pt组包含6个pt,pt组数量为20个,分别为pt_group_0~pt_group_19,其中,pt_group_i的6个pt为pt_group_i[0]~pt_group_i[5],i为正整数,且i∈[0,19]。初始化时,相关系数矩阵中各个相关系数取值为0,如下表二所示。DiskId012345678900000000000100000000002000000000030000000000400000000005000000000060000000000700000000008000000000090000000000表二首先排布pt_group_0的6个pt:假设pt_group_0[0]被排布在disk0,在排布pt_group_0[1]时,disk1~disk9为候选磁盘,假设选择了disk2,那么相关系数C02和C20被置为1。如下表三所示。Diskid012345678900010000000100000000002100000000030000000000400000000005000000000060000000000700000000008000000000090000000000表三在排布pt_group_0[2]时,同组的pt所在的磁盘为disk0和disk2,候选磁盘为剩余的8个磁盘;针对每个候选磁盘,将该候选磁盘与磁盘disk0之间的相关系数、和该候选磁盘与disk2之间的相关系数加权求和,确定的每个候选磁盘对应的加权相关系数都为0,则此时可以基于其它约束条件,比如安全性约束、数据均衡性约束、位置均衡性约束等中的任意一种或多种,确定pt_group_0[2]所在的磁盘为3。这里的安全性约束是指同一pt组中的不同pt应优先分布到更高安全层级的不同物理部件(机架、服务器、磁盘)中,其中,分布到不同的机架的安全级别>分布到不同的服务器的安全级别>分布到不同的磁盘的安全级别;数据均衡性约束是指每个磁盘上分布的pt数量占该磁盘总容量的比例均衡化;位置均衡性约束是指每个磁盘上分布的不同类型的pt(包含数据块pt、校验块pt)数量均衡化。依此类推,确定pt_group_0的各个pt分别排布在disk0、disk2、disk3、disk4、disk6、disk9,那么相关度矩阵更新为如下表四所示:disk_id012345678900011101001100000000002100110100131010101001410110010015000000000061011100001700000000008000000000091011101000表四在排布pt_group_1时,假设pt_group_1[0]被排布到disk1,在排布pt_group_1[1]的时候,除了disk1以外的磁盘都为候选磁盘,每个候选磁盘与disk1之间的相关系数都为0,根据其它约束条件,确定disk5为pt_group_1[1]所在的磁盘,将C51与C15置为1;依此类推,排布pt_group_1[2]时,除了disk1、disk5以外的磁盘都为候选磁盘,针对每个候选磁盘,将该候选磁盘与disk1,和该候选磁盘与disk5之间的相关系数加权求和,确定的每个候选磁盘对应的加权相关系数都为0,比如,针对候选磁盘disk0,确定disk0对应的加权相关系数Sum0=k1C01+k2C05=0,这里,k1、k2为相关系数的权值,由于C01和C05都为0,这两个加权系数并无实质作用;若C05>C01,则k2>k1,简单地,可以设置k1=1,k2>1,在针对其它候选磁盘确定加权相关系数时,仍采用这两个权值,若两个进行加权求和的相关系数相同,比如C05=C01,可以选择其中任意一个乘以较大的权值,比如选择C05乘以较大的取值k2。依据上述方式排布每个pt组的各个pt,直到所有pt都排布完毕。基于同一发明构思,本发明实施例中还提供了一种与磁盘分区排布方法对应的磁盘分区排布装置及设备,由于该装置及设备解决问题的原理与本发明实施例磁盘分区排布方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。如图4所示,为本发明实施例提供的磁盘分区排布装置结构示意图,包括:第一确定模块41,用于根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘;其中,所述候选磁盘属于除已排布的pt所在磁盘之外的磁盘;第二确定模块42,用于根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从第一确定模块41确定的至少一个候选磁盘中,确定所述待排布pt所在的磁盘;其中,两个磁盘之间的相关系数用于标识在恢复其中一个磁盘中的数据时,需要读取另一个磁盘中的数据的次数。可选地,所述第二确定模块42具体用于:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数相加求和,确定综合相关系数;将所述至少一个候选磁盘中,对应的所述综合相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。可选地,所述第二确定模块42具体用于:确定任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中的最大相关系数;将所述至少一个候选磁盘中,所对应的所述最大相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。可选地,所述第二确定模块42具体用于:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加权求和,确定加权相关系数;其中,该任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中,最大的相关系数所对应的权值最大;将所述至少一个候选磁盘中,对应的所述加权相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。可选地,所述第二确定模块42还用于:在确定所述待排布pt所在的磁盘之后,将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1。可选地,所述装置还包括:建立模块43,用于以m+1为宽度和深度,建立(m+1)×(m+1)的矩阵,所述m+1为用于排布pt的总的磁盘数量;其中,该矩阵中的第i+1行第j+1列的矩阵元素Cij和第j+1行第i+1列的矩阵元素Cji用于记录第i+1个磁盘和第j+1个磁盘之间的相关系数,m、i和j为大于或等于0的整数;所述第二确定模块42具体用于:当在第i+1个磁盘和第j+1个磁盘中排布同一pt组的pt时,将这两个磁盘之间的相关系数Cij和Cji增加1。可选地,所述第一确定模块41具体用于:将待排布pt所在的pt组中除已排布的pt所在磁盘之外的所有磁盘作为候选磁盘;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,若该磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中有超过设定阈值的相关系数,则将该磁盘排除在候选磁盘之外;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,确定该磁盘与已排布的每个pt所在磁盘之间的相关系数中的最大相关系数,将对应的所述最大相关系数最大的磁盘排除在候选磁盘之外。如图5所示,为本发明实施例提供的磁盘分区排布设备50结构示意图,该设备包括处理器51、存储器52和总线53,所述存储器52存储执行指令,当所述设备运行时,所述处理器51与所述存储器52之间通过总线53通信,所述处理器51执行所述执行指令使得所述设备执行如下方法:根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘;其中,所述候选磁盘属于除已排布的pt所在磁盘之外的磁盘;根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘;其中,两个磁盘之间的相关系数用于标识在恢复其中一个磁盘中的数据时,需要读取另一个磁盘中的数据的次数。可选地,所述处理器51执行的所述方法中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数相加求和,确定综合相关系数;将所述至少一个候选磁盘中,对应的所述综合相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。可选地,所述处理器51执行的所述方法中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:确定任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中的最大相关系数;将所述至少一个候选磁盘中,所对应的所述最大相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。可选地,所述处理器51执行的所述方法中,根据任一候选磁盘与已排布的pt所在磁盘之间的相关系数,从所述至少一个候选磁盘中,确定所述待排布pt所在的磁盘,包括:将任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加权求和,确定加权相关系数;其中,该任一候选磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中,最大的相关系数所对应的权值最大;将所述至少一个候选磁盘中,对应的所述加权相关系数最小的候选磁盘确定为所述待排布pt所在的磁盘。可选地,所述处理器51执行的所述方法中,确定所述待排布pt所在的磁盘之后,还包括:将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1。可选地,所述处理器51执行的所述方法中,根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘之前,还包括:以m+1为宽度和深度,建立(m+1)×(m+1)的矩阵,所述m+1为用于排布pt的总的磁盘数量;其中,该矩阵中的第i+1行第j+1列的矩阵元素Cij和第j+1行第i+1列的矩阵元素Cji用于记录第i+1个磁盘和第j+1个磁盘之间的相关系数,m、i和j为大于或等于0的整数;将确定的所述待排布pt所在的磁盘与已排布的每个pt分别所在的磁盘之间的相关系数加1,包括:当在第i+1个磁盘和第j+1个磁盘中排布同一pt组的pt时,将这两个磁盘之间的相关系数Cij和Cji增加1。可选地,所述处理器51执行的所述方法中,根据待排布磁盘分区pt所在的pt组中已排布的pt所在磁盘,确定至少一个候选磁盘,包括:将待排布pt所在的pt组中除已排布的pt所在磁盘之外的所有磁盘作为候选磁盘;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,若该磁盘与已排布的每个pt分别所在的磁盘之间的相关系数中有超过设定阈值的相关系数,则将该磁盘排除在候选磁盘之外;或者,针对待排布pt所在的pt组中除已排布的pt所在磁盘之外的每个磁盘,确定该磁盘与已排布的每个pt所在磁盘之间的相关系数中的最大相关系数,将对应的所述最大相关系数最大的磁盘排除在候选磁盘之外。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1