一种数据存储方法和数据存储系统与流程
未命名
08-03
阅读:109
评论:0
1.本技术涉及数据处理技术领域,特别是涉及一种数据存储方法和数据存储系统。
背景技术:
2.随着网络技术的不断发展,在诸多应用场景中越来越多的数据需要被存储。使得在现有的分布式集群中,随着年限的增加需要进行大量扩容,并要求硬盘具备较高的存储和读取性能来满足不同工作的需要。因此越来越多的存储系统中包含多种类型的硬盘。然而,面对同时包含单磁臂硬盘和双磁臂硬盘的场景,如何通过负载均衡将数据流合理存储至相应的硬盘中,成为数据存储的关键。
技术实现要素:
3.本技术主要解决的技术问题是提供一种数据存储方法和数据存储系统,能够提高数据存储的可靠性及效率。
4.为解决上述技术问题,本技术采用的一个技术方案是:提供一种数据存储方法,所述数据存储方法应用于存储系统,所述存储系统中包含第一数量的多磁臂硬盘和第二数量的单磁臂硬盘,所述数据存储方法包括:获得待存储数据对应的多个数据块;基于所述第一数量和所述第二数量,从所述多个数据块中确定第三数量的第一数据块和第四数量的第二数据块;其中,不同所述第一数据块用于存储至不同所述多磁臂硬盘,不同所述第二数据块用于存储至不同所述单磁臂硬盘;基于各个所述多磁臂硬盘和各个所述单磁臂硬盘的硬盘状态,确定各个所述第一数据块和各个所述第二数据块分别对应的目标硬盘;其中,所述硬盘
5.状态至少与硬盘的利用率相关;将所述第一数据块和所述第二数据块存储至对应的所述目标硬盘。
6.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种数据存储系统,包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行如上述技术方案中任一项所述的方法。
7.本技术的有益效果是:区别于现有技术的情况,本技术提出一种数据存储方法,将待存储数据编译成多个数据块,并按照存储系统中多磁臂硬盘和单磁臂硬盘的数量,将多个数据块分为多个第一数据块和多个第二数据块,且第一数据块用于存储至多磁臂硬盘,第二数据块用于存储至单磁臂硬盘,使得数据流可以均衡存储至存储系统中的各个硬盘中;同时当存储系统中的部分硬盘损坏时,仍可以通过未损坏硬盘中的数据块对待存储数据进行还原,提高了数据存储的可靠性以及效率。
附图说明
8.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
9.图1是本技术数据存储方法一实施方式的流程示意图;
10.图2是步骤s103之前对应一实施方式的示意图;
11.图3是图1中步骤s103对应另一实施方式的流程示意图;
12.图4是步骤s203对应一实施方式的示意图;
13.图5是本技术数据存储装置一实施方式的结构示意图;
14.图6是本技术数据存储系统一实施方式的结构示意图。
具体实施方式
15.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
16.请参阅图1,图1是本技术数据存储方法一实施方式的流程示意图,在本实施方式中,该数据存储方法应用与存储系统,该存储系统中包含第一数量的多磁臂硬盘和第二数量的单磁臂硬盘。其中,多磁臂硬盘可以为双磁臂硬盘、三磁臂硬盘或四磁臂硬盘等。具体地,该数据存储方法具体包括:
17.s101:获得待存储数据对应的多个数据块。
18.在一实施方式中,步骤s101包括:获得当前需要存储至存储系统的待存储数据,对该待存储数据进行处理以生成对应的多个数据块。其中,可以通过多个数据块中的部分对完整的待存储数据进行还原,以提高待存储数据存储的可靠性。
19.具体地,通过纠删码技术将待存储数据分为多个数据块,并通过将多个数据块存储至不同硬盘中,可以防止部分硬盘损坏导致整个待存储数据丢失。
20.s102:基于第一数量和第二数量,从多个数据块中确定第三数量的第一数据块和第四数量的第二数据块。其中,不同第一数据块用于存储至不同多磁臂硬盘,不同第二数据块用于存储至不同单磁臂硬盘。
21.在一实施方式中,响应于存储系统中包含第一数量的多磁臂硬盘和第二数量的单磁臂硬盘,将第一数量和第二数量的第一和值作为第一参考值。将第一数量与第一参考值的比值作为第一权重,以及将第二数量与第一参考值的比值作为第二权重。
22.响应于第一数量为n1,第二数量为n2,第一权重和第二权重的计算公式如下:
[0023][0024]
其中,q1表示上述第一权重,q2表示上述第二权重。
[0025]
进一步地,基于多个数据块的数量分别与第一权重和第二权重的乘积,将多个数据块分为第三数量的第一数据块和第四数量的第二数据块。每个第一数据块用于存储至一个多磁臂硬盘中,每个第二数据块用于存储至一个单磁臂硬盘中,且不同数据块存储的硬
盘不相同。
[0026]
具体地,将待存储数据对应的数据块总数与第一权重相乘得到第一数值,以及将待存储数据对应的数据块总数与第一权重相乘得到第二数值。其中,当第一数值和第二数值为整数,则将第一数值作为上述第三数量,以及将第二数值作为上述第四数量;当第一数值和第二数值都包含小数部分,则将四舍五入后的第一数值作为上述第三数量,以及将四舍五入后的第二数值作为上述第四数量。通过将待存储数据分为多个第一数据块和多个第二数据块,使得数据流可以均衡存储至存储系统中的各个硬盘中,从而提高存储系统对数据进行存储的效率。
[0027]
例如,存储系统中包含五个多磁臂硬盘和四个单磁臂硬盘,且待存储数据被编译为五个数据块,则基于上述方式,多磁臂硬盘对应的第一权重为5/9,按照四舍五入原则将三个数据块作为第一数据块。剩余两个数据块作为第二数据块。
[0028]
s103:基于各个多磁臂硬盘和各个单磁臂硬盘的硬盘状态,确定各个第一数据块和各个第二数据块分别对应的目标硬盘。其中,硬盘状态至少与硬盘的利用率相关。
[0029]
在一实施方式中,步骤s103之前包括确定所有多磁臂硬盘对应的多个第一候选硬盘集合,以及确定所有单磁臂硬盘对应的一个第二候选硬盘集合。
[0030]
其中,每个多磁臂硬盘中包括多个单盘,任一第一候选硬盘集合中包括每个多磁臂硬盘中的一个单盘,第一候选硬盘集合的数量与多磁臂硬盘的磁臂数量正相关,且多个第一候选硬盘集合首尾相连,每个单磁臂硬盘设置与第二候选硬盘集合中。
[0031]
具体地,每个多磁臂硬盘中单盘的数量与对应多磁臂硬盘中磁臂的数量一致。例如,当多磁臂硬盘为双磁臂硬盘时,双磁臂硬盘中设置有两个磁臂,两个磁臂可以同步分别对两个不同的单盘进行存储和读取操作中的至少一种,因此双磁臂硬盘可以被识别为两个单盘。
[0032]
响应于存储系统中包含第一数量的多磁臂硬盘,且每个多磁臂硬盘中包括多个单盘,从每个多磁臂硬盘中任意选取一个单盘以构成一个第一候选硬盘集合,然后从每个多磁臂硬盘中剩余的单盘中再次任意选取一个单盘构成另一个第一候选硬盘集合。重复执行上述步骤,直至多磁臂硬盘中没有剩余的单盘,并获得多个多磁臂硬盘对应的多个第一候选硬盘集合。其中,多磁臂硬盘的磁臂数量越多,则对应的第一候选硬盘集合的数量越多。
[0033]
由于多磁臂硬盘中的一个单盘损坏,该多磁臂硬盘中的其他单盘同样会被损坏。因此本实施方式通过将多个多磁臂硬盘划分为多个第一候选硬盘集合,使得每个第一候选硬盘集合中包含的单盘属于不同多磁臂硬盘,从而避免在对数据块进行存储时,不同数据块同时存储至多磁臂硬盘的多个单盘中。即本实施方式可以提高对数据存储的可靠性。
[0034]
进一步地,将获得的多个第一候选硬盘集合进行排列,且多个第一候选硬盘集合首尾相连。例如,当获得多个多磁臂硬盘对应的四个第一候选硬盘集合a、b、c、d时,将这四个第一候选硬盘集合按照“abcdab
……”
的顺序进行排列,以使得在对不同待存储数据进行存储时选择不同的第一候选硬盘集合,促使多个待存储数据均匀存储至多个多磁臂硬盘的不同单盘上,提高存储系统的存储能力。
[0035]
需要说明的是,在存储系统开始工作前,上述确定多个第一候选硬盘集合以及确定第二候选硬盘集合的步骤只需执行一次。
[0036]
另外,在本实施方式中,当存储系统进行工作时,将第一候选硬盘集合中正在执行
预设指令的第一候选硬盘,预先移动至第三候选硬盘集合中;以及,将第二候选硬盘中正在执行预设指令的第二候选硬盘,预先移动至第三候选硬盘集合中。
[0037]
其中,上述预设指令包括存储和读取中的至少一种,第三候选硬盘集合中的硬盘完成预设指令后,从第三候选硬盘集合中移动至对应的第一候选硬盘集合或第二候选硬盘集合的尾部位置。
[0038]
例如,请参阅图2,图2为步骤s103之前对应一实施方式的示意图。如图2中a所示,当第一候选硬盘集合中的vdisk1-1、vdisk2-1和vdisk3-1,以及第二候选硬盘集合中的vdisk6和vdisk7正在执行预设指令时,将其移动至第三候选硬盘集合中。移动后的第一候选硬盘集合、第二候选硬盘集合以及第三候选硬盘集合如图2中b所示。当vdisk1-1、vdisk2-1、vdisk3-1、vdisk6和vdisk7完成预设指令后,将其移动至对应的候选硬盘集合的尾部位置,具体可参照图2中c。需要说明的是,实际应用中可以根据预设指令的完成时间依次将对应的硬盘添加至对应候选硬盘集合的尾部位置。
[0039]
进一步地,步骤s103包括:在对待存储数据进行存储时,从多个第一候选硬盘集合中选择一个第一候选硬盘集合作为当前第一候选硬盘集合。
[0040]
进一步地,至少基于第一候选硬盘集合以及第二候选硬盘集合中空闲硬盘,确定各个第一数据块和各个第二数据块分别对应的目标硬盘。其中,空闲硬盘包括区别与第三候选硬盘集合中的硬盘。
[0041]
具体地,空闲硬盘为此时当前第一候选硬盘集合和第二候选硬盘集合中不执行上述预设指令的硬盘。针对每个第一数据块,从当前第一候选硬盘集合中选择一个空闲硬盘作为对应的目标硬盘;以及,针对每个第二数据块,从第二候选硬盘集合中选择一个空闲硬盘作为对应的目标硬盘。通过将空闲硬盘作为第一数据块或第二数据块的目标硬盘,可以提高存储效率。
[0042]
s104:将第一数据块和第二数据块存储至对应的目标硬盘。
[0043]
在一实施方式中,步骤s104包括:响应于通过上述步骤获得各个第一数据块和各个第二数据块对应的目标硬盘,将第一数据块存储至对应的目标硬盘中,以及将第二数据块存储至对应的目标硬盘中,以完成对待存储数据的存储。
[0044]
本技术提出的数据存储方法,将待存储数据编译成多个数据块,并按照存储系统中多磁臂硬盘和单磁臂硬盘的数量,将多个数据块分为多个第一数据块和多个第二数据块,且第一数据块用于存储至多磁臂硬盘,第二数据块用于存储至单磁臂硬盘,使得数据流可以均衡存储至存储系统中的各个硬盘中;同时当存储系统中的部分硬盘损坏时,仍可以通过未损坏硬盘中的数据块对待存储数据进行还原,提高了数据存储的可靠性以及效率。
[0045]
在另一实施方式中,响应于多个多磁臂硬盘对应的多个第一候选硬盘集合首尾相连,当存储系统正在对当前待存储数据的存储,或已经完成对当前待存储数据的存储,并将对下个待存储数据进行存储时,将当前第一候选硬盘集合之后的第一候选硬盘集合更新为当前第一候选硬盘集合。例如,当多个多磁臂硬盘对应有四个第一候选硬盘集合a、b、c、d时,且当前第一候选硬盘集合为d,则在对下个待存储数据进行存储时将第一候选硬盘集合a作为当前第一候选硬盘集合。
[0046]
进一步地,返回至获得待存储数据对应的多个数据块的步骤,并依次执行图1中对应的步骤。
[0047]
请参阅图3,图3为图1中步骤s103对应另一实施方式的流程示意图。步骤s103具体包括:
[0048]
s201:判断当前第一候选硬盘集合以及第二候选硬盘集合中空闲硬盘的数量是否大于或等于第三数量与第四数量的第二和值。
[0049]
在一实施方式中,响应于从多个多磁臂硬盘对应的多个第一候选硬盘集合中选择一个作为当前第一候选硬盘集合,并基于当前第一候选硬盘集合和第二候选硬盘集合对待存储数据对应的多个第一数据块和第二数块进行存储。
[0050]
响应于当前第一候选硬盘集合中的部分正在执行预设指令的第一候选硬盘被移动至第三候选硬盘集合中,获取当前第一候选硬盘集合和第二候选硬盘集合中空闲硬盘的数量,以及获取第三数量与第四数量的第二和值。
[0051]
将上述空闲硬盘的数量与第二和值进行比较,若空闲硬盘的数量大于或等于第二和值,则执行步骤s202;若空闲硬盘的数量小于第二和值,则执行步骤s203。
[0052]
s202:从空闲硬盘中确定每个第一数据块和每个第二数据块对应的目标硬盘。
[0053]
在一实施方式中,步骤s202包括:基于当前第一候选硬盘集合中空闲硬盘的排列顺序,依次选择空闲硬盘作为每个第一数据块对应的目标硬盘。以及,基于第二候选硬盘集合中空闲硬盘的排列顺序,依次选择空闲硬盘作为每个第二数据块对应的目标硬盘。
[0054]
具体地,根据存储空间从大到小的顺序对当前第一候选硬盘集合中多个空闲硬盘进行排序,并根据排列顺序依次选择一个当前第一候选硬盘集合中的空闲硬盘作为第一数据块的目标硬盘;以及,根据存储空间从大到小的顺序对第二候选硬盘集合中的空闲硬盘进行排序,并根据排列顺序依次选择一个第二候选硬盘集合中的空闲硬盘作为第二数据块的目标硬盘。例如,当有两个第一数据块时,根据当前第一候选硬盘集合中空闲硬盘的排列顺序,将排在第一位的空闲硬盘作为一个第一数据块的目标硬盘,将排在第二位的空闲硬盘作为另一个第一数据块的目标硬盘。
[0055]
可选地,在其他实施方式中,也可以根据存储系统中多个多磁臂硬盘或多个单磁臂硬盘的编号顺序对相应候选硬盘集合中的空闲硬盘进行排序。例如,赋予每个多磁臂硬盘和每个单磁臂硬盘对应的编号,并按照对应编号对当前第一候选硬盘集合中的空闲硬盘进行排序,以及按照对应编号对第二候选硬盘集合中的空闲硬盘进行排序。
[0056]
进一步地,响应于确定每个第一数据块和每个第二数据块对应的目标硬盘,将目标硬盘移动至第三候选硬盘集合中,以助于后续目标硬盘在第三候选硬盘集合中完成数据存储的工作。并且,可以保证当前第一候选硬盘集合和第二候选硬盘集合中都为空闲硬盘,从而提高后续数据存储和/或读取的效率。
[0057]
s203:基于空闲硬盘以及第三候选硬盘集合中的至少部分硬盘,确定每个第一数据块和每个第二数据块对应的目标硬盘。
[0058]
在一实施方式中,步骤s203包括:响应于上述空闲硬盘对应的数量小于第二和值,则第一数据块和第二数据块中存在至少部分剩余数据块无法找到相对应的空闲硬盘作为目标硬盘,此时需要从第三候选硬盘集合中选取相应数量的硬盘以作为上述每个剩余数据块的目标硬盘。
[0059]
具体地,获取当前第一候选硬盘集合和第二候选硬盘集合中空闲硬盘对应的数量,并获得第二和值与该空闲硬盘对应数量的第三差值。
[0060]
进一步地,将第三候选硬盘集合中的硬盘按利用率从低到高的顺序排列,将排序后前第三差值的硬盘作为补充硬盘。
[0061]
可选地,上述利用率可以通过util指标来判断,即在存储系统中设置有硬盘性能检测模块,以每隔预设时间检测获取第三候选硬盘集合中每个硬盘对应的util值。或者,可以根据第三候选硬盘集合中每个硬盘执行存储和/或读取工作对应的数据大小确定对应的利用率。
[0062]
需要说明的是,当选取的补充硬盘为多磁臂硬盘中的单盘时,该补充硬盘在添加至第三候选硬盘之前为当前第一候选硬盘集合中的单盘。
[0063]
进一步地,基于补充硬盘和空闲硬盘确定第一数据块和第二数据块对应的目标硬盘。
[0064]
具体地,响应于从第三候选硬盘集合中选取部分作为补充硬盘,此时补充硬盘与空闲硬盘的总数与第一数据块和第二数据块的总数一致。先根据当前第一候选硬盘集合中的空闲硬盘,确定部分第一数据块对应的目标硬盘,以及根据第二候选硬盘集合中的空闲硬盘,确定部分第二数据块对应的目标硬盘。其中,具体过程可参照上述步骤s202。
[0065]
进一步地,从补充硬盘中依次确定每个剩余数据块对应的目标硬盘,且剩余数据块与补充硬盘一一对应。在确定各个第一数据块和各个第二数据块对应的目标硬盘后,将目标硬盘移动至第三候选硬盘集合中。
[0066]
在一具体实施方式中,请参阅图4,图4为步骤s203对应一实施方式的示意图。当前第一候选硬盘集合list1中包括空闲硬盘vdisk4-1和vdisk5-1,第二候选硬盘集合list2中包含空闲硬盘vdisk8。当第一数据块的数量为3,第二数据块的数量为2时,将vdisk4-1、vdisk5-1和vdisk8作为对应数据块的目标硬盘后,还剩余一个第一数据块和一个第二数据块未获得相应的目标硬盘。此时,从第三候选硬盘list3中选取利用率较低的两个硬盘vdisk6和vdisk1-1作为补充硬盘,使得剩余的第一数据块和第二数据块获得对应的目标硬盘。
[0067]
在另一实施方式中,响应于空闲硬盘的数量大于或等于第二和值,步骤s202之前还包括:
[0068]
响应于第三数量大于当前第一候选硬盘集合中空闲硬盘的数量,获得第三数量与当前第一候选硬盘集合中空闲硬盘的数量的第一差值。将第一差值对应数量的第一数据块更新为第二数据块。
[0069]
具体地,当第三数量大于当前第一候选硬盘集合中空闲硬盘的数量,则表示存在至少部分剩余第一数据块无法在当前第一候选硬盘集合中找到相应的空闲硬盘作为目标硬盘;然而,由于当前第一候选硬盘集合和第二候选硬盘集合中空闲硬盘的数量大于或等于待存储数据对应的数据块总数,则从第二候选硬盘集合中确定每个第二数据块对应的目标硬盘后,第二候选硬盘集合中剩余的空闲硬盘数量大于或等于上述剩余第一数据块的数量。此时,获取所有第一数据块对应的第三数量与当前第一候选硬盘集合中空闲硬盘数量的第一差值,并将第一差值对应数值的第一数据块更新为第二数据块;使得更新后,所有第一数据块都可以从对应当前第一候选硬盘集合中找到相对应的目标硬盘,以及所有第二数据块也可以从对应的第二候选硬盘集合中获得对应的目标硬盘。从而避免从第三候选硬盘集合中选取相应的硬盘作为剩余第一数据块的目标硬盘,提高了数据存储的效率。
[0070]
或者,响应于第四数量大于第二候选硬盘集合中空闲硬盘的数量,获得第四数量与第二候选硬盘集合中空闲硬盘的数量的第二差值,将第二差值对应数量的第二数据块更新为第一数据块。
[0071]
具体地,获取所有第二数据块对应的第四数量与第二候选硬盘集合中空闲硬盘数量的第二差值,并将第二差值对应数值的第二数据块更新为第一数据块;使得更新后所有第一数据块和所有第二数据块都可以从对应的候选硬盘集合中获得相对应的目标硬盘。
[0072]
进一步地,从空闲硬盘中确定每个第一数据块和每个第二数据块对应的目标硬盘,具体过程可参照上述步骤s202,在此不进行详细阐述。
[0073]
请参阅图5,图5为本技术数据存储装置一实施方式的结构示意图。具体地,该装置包括相互耦接的获得模块10、第一处理模块20、第二处理模块30和存储模块40。
[0074]
具体而言,获得模块10用于获得待存储数据对应的多个数据块。
[0075]
第一处理模块20用于基于第一数量和第二数量,从多个数据块中确定第三数量的第一数据块和第四数量的第二数据块。其中,不用第一数据块用于存储至不同多磁臂硬盘,不同第二数据块用于存储至不同单磁臂硬盘。
[0076]
第二处理模块30用于基于各个多磁臂硬盘和各个单磁臂硬盘的硬盘状态,确定各个第一数据块和各个第二数据块分别对应的目标硬盘;其中,硬盘状态至少与硬盘的利用率相关。
[0077]
存储模块40用于将第一数据块和第二数据块存储至对应的目标硬盘。
[0078]
请参阅图6,图6为本技术数据存储系统一实施方式的结构示意图,该图像挑选模型训练装置包括相互耦接的存储器50和处理器60,处理器60中存储有程序指令,处理器60用于执行程序指令以实现上述任一实施方式中的数据存储方法。具体地,处理器60还可以称为cpu(central processing unit,中央处理单元)。处理器60可能是一种集成电路芯片,具有信号的处理能力。处理器60还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器60可以由集成电路芯片共同实现。
[0079]
需要说明的是,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0080]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0081]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施
方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0082]
以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
技术特征:
1.一种数据存储方法,其特征在于,所述数据存储方法应用于存储系统,所述存储系统中包含第一数量的多磁臂硬盘和第二数量的单磁臂硬盘,所述数据存储方法包括:获得待存储数据对应的多个数据块;基于所述第一数量和所述第二数量,从所述多个数据块中确定第三数量的第一数据块和第四数量的第二数据块;其中,不同所述第一数据块用于存储至不同所述多磁臂硬盘,不同所述第二数据块用于存储至不同所述单磁臂硬盘;基于各个所述多磁臂硬盘和各个所述单磁臂硬盘的硬盘状态,确定各个所述第一数据块和各个所述第二数据块分别对应的目标硬盘;其中,所述硬盘状态至少与硬盘的利用率相关;将所述第一数据块和所述第二数据块存储至对应的所述目标硬盘。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一数量和所述第二数量,从所述多个数据块中确定第三数量的第一数据块和第四数量的第二数据块,包括:将所述第一数量和所述第二数量的第一和值作为第一参考值,将所述第一数量与所述第一参考值的比值作为第一权重,以及将所述第二数量与所述第一参考值的比值作为第二权重;基于所述多个数据块的数量分别与所述第一权重和所述第二权重的乘积,将所述多个数据块分为第三数量的所述第一数据块和第四数量的所述第二数据块。3.根据权利要求1所述的方法,其特征在于,所有所述多磁臂硬盘对应的多个第一候选硬盘集合,所有所述单磁臂硬盘对应一个第二候选硬盘集合;其中,每个所述多磁臂硬盘中包括多个单盘,任一所述第一候选硬盘集合中包括每个所述多磁臂硬盘中的一个所述单盘,所述第一候选硬盘集合的数量与所述多磁臂硬盘的磁臂数量正相关,且多个所述第一候选硬盘集合首尾相连;每个所述单磁臂硬盘设置于所述第二候选硬盘集合中。4.根据权利要求3所述的方法,其特征在于,所述第一候选硬盘集合中正在执行预设指令的第一候选硬盘,预先移动至第三候选硬盘集合中,所述第二候选硬盘中正在执行预设指令的第二候选硬盘,预先移动至第三候选硬盘集合中;其中,所述预设指令包括存储和读取中的至少一种,所述第三候选硬盘集合中的硬盘完成所述预设指令后,从所述第三候选硬盘集合中移动至对应的所述第一候选硬盘集合或所述第二候选硬盘集合的尾部位置;所述基于各个所述多磁臂硬盘和各个所述单磁臂硬盘的硬盘状态,确定各个所述第一数据块和各个所述第二数据块分别对应的目标硬盘,包括:从多个所述第一候选硬盘集合中选择一个作为当前所述第一候选硬盘集合;至少基于当前所述第一候选硬盘集合以及所述第二候选硬盘集合中空闲硬盘,确定各个所述第一数据块和各个所述第二数据块分别对应的目标硬盘;其中,所述空闲硬盘包括区别于所述第三候选硬盘集合中的硬盘。5.根据权利要求4所述的方法,其特征在于,所述至少基于当前所述第一候选硬盘集合以及所述第二候选硬盘集合中空闲硬盘,确定各个所述第一数据块和各个所述第二数据块分别对应的目标硬盘,包括:判断当前所述第一候选硬盘集合以及所述第二候选硬盘集合中空闲硬盘的数量是否
大于或等于所述第三数量与所述第四数量的第二和值;若是,则从所述空闲硬盘中确定每个所述第一数据块和每个所述第二数据块对应的所述目标硬盘;若否,则基于所述空闲硬盘以及所述第三候选硬盘集合中的至少部分所述硬盘,确定每个所述第一数据块和每个所述第二数据块对应的所述目标硬盘。6.根据权利要求5所述的方法,其特征在于,所述从所述空闲硬盘中确定每个所述第一数据块和每个所述第二数据块对应的所述目标硬盘之前,包括:响应于所述第三数量大于当前所述第一候选硬盘集合中所述空闲硬盘的数量,获得所述第三数量与所述第一候选硬盘集合中所述空闲硬盘的数量的第一差值,将所述第一差值对应数量的所述第一数据块更新为所述第二数据块;响应于所述第四数量大于所述第二候选硬盘集合中所述空闲硬盘的数量,获得所述第四数量与所述第二候选硬盘集合中所述空闲硬盘的数量的第二差值,将所述第二差值对应数量的所述第二数据块更新为所述第一数据块。7.根据权利要求5或6所述的方法,其特征在于,所述从所述空闲硬盘中确定每个所述第一数据块和每个所述第二数据块对应的所述目标硬盘,包括:基于当前所述第一候选硬盘集合中所述空闲硬盘的排列顺序,依次选择所述空闲硬盘作为每个所述第一数据块对应的所述目标硬盘;以及,基于所述第二候选硬盘集合中所述空闲硬盘的排列顺序,依次选择所述空闲硬盘作为每个所述第二数据块对应的所述目标硬盘;将所述目标硬盘移动至所述第三候选硬盘集合中。8.根据权利要求5所述的方法,其特征在于,所述基于所述空闲硬盘以及所述第三候选硬盘集合中的至少部分所述硬盘,确定每个所述第一数据块和每个所述第二数据块对应的所述目标硬盘,包括:获得所述第二和值与所述空闲硬盘对应数量的第三差值;将所述第三候选硬盘集合中的硬盘按所述利用率从低到高的顺序排列,将排序后前所述第三差值的硬盘作为补充硬盘;基于所述补充硬盘和所述空闲硬盘确定所述第一数据块和所述第二数据块对应的所述目标硬盘;将所述目标硬盘移动至所述第三候选硬盘集合中。9.根据权利要求3所述的方法,其特征在于,所述将所述第一数据块和所述第二数据块存储至对应的所述目标硬盘之后,包括:将当前所述第一候选硬盘集合之后的所述第一候选硬盘集合更新为当前所述第一候选硬盘集合;返回至所述获得待存储数据对应的多个数据块的步骤。10.一种数据存储系统,其特征在于,包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行如权利要求1-9中任一项所述的方法。
技术总结
本申请公开了一种数据存储方法和数据存储系统,该数据存储方法应用于存储系统,该存储系统中包含第一数量的多磁臂硬盘和第二数量的单磁臂硬盘,该数据存储方法包括:获得待存储数据对应的多个数据块;基于第一数量和第二数量,从多个数据块中确定第三数量的第一数据块和第四数量的第二数据块;其中,不同第一数据块用于存储至不同多磁臂硬盘,不同第二数据块用于存储至不同单磁臂硬盘;基于各个多磁臂硬盘和各个单磁臂硬盘的硬盘状态,确定各个第一数据块和各个第二数据块分别对应的目标硬盘;其中,硬盘状态至少与硬盘的利用率相关;将第一数据块和第二数据块存储至对应的目标硬盘。通过上述方式,本申请能够提高数据存储的可靠性及效率。的可靠性及效率。的可靠性及效率。
技术研发人员:夏天鹏 李文勇 罗心 江文龙 周明伟
受保护的技术使用者:浙江大华技术股份有限公司
技术研发日:2023.03.17
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
