一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种存储资源处理方法、装置及电子设备与流程

2022-07-02 11:32:51 来源:中国专利 TAG:


1.本发明涉及数据存储技术领域,特别是涉及一种存储资源处理方法、装置及电子设备。


背景技术:

2.随着raid(redundant arrays of independent disks,磁盘阵列)技术和ec(erasure coding,纠删码)技术的不断发展,在raid技术支持将硬盘划分为若干个逻辑块(trunk)的基础上,结合ec技术,可以实现raid中的各个条带(stripe)所包括的数据块(data block)数量(n)和校验块(parity block)数量(m)的任意组合,其中,n≥m,且n》1。这样,可以提高raid的冗余和安全性。
3.其中,raid中的每个条带(stripe)所包括的各个数据块(data block)和各个校验块(parity block)分别来自不同的硬盘,例如,同一存储节点上的不同硬盘或不同存储节点上的不同硬盘。例如,按照设备中的槽位数量和raid的需求,确定n m个用于创建raid的硬盘,进而,将每个硬盘划分成若干个虚拟的逻辑块(trunk),然后,利用每个硬盘所包括的一个逻辑块(trunk)创建一个包括n个数据块(data block)和m个校验块(parity block)的条带(stripe),得到多个条带(stripe),每个条带(stripe)包括n m个逻辑块(trunk),这些存储块分别来自n m个不同硬盘。其中,所谓槽位为:用于插入硬盘,以使硬盘安装到设备上的卡槽。
4.然而,在很多情况下,由于raid的使用状态的改变,需要对raid的存储资源进行处理,以保证raid的正常使用。例如,由于业务的持续发展等原因,用户往往需要对已有的raid进行扩容;又例如,用于创建raid的硬盘发生故障,导致条带(stripe)中包括故障逻辑块(trunk),降低条带(stripe)中所存储数据的安全性。
5.基于此,如何在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现对raid的存储资源的快速便捷处理,成为当前亟待解决的问题。


技术实现要素:

6.本发明实施例的目的在于提供一种raid扩容方法、装置及一种raid驱动,以在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现对raid的存储资源的快速便捷处理。具体技术方案如下:
7.第一方面,本发明实施例提供了一种存储资源处理方法,所述方法包括:确定待处理的目标raid;其中,所述目标raid包括多块初始硬盘,每块初始硬盘均被划分为多个逻辑块,且属于不同初始硬盘的各个逻辑块的大小相同,所述目标raid中的每个初始条带包括:分别属于第一数量块初始硬盘的所述第一数量个逻辑块,所述第一数量不大于所述多块初始硬盘的数量;从所述目标raid包括的多个初始条带中,确定各个待处理条带;利用目标硬盘中的用于替换的逻辑块替换每个待处理条带中的待替换逻辑块,以使替换后的每个待处理条带所包括的多个逻辑块分别属于不同的硬盘;其中,所述目标硬盘为新增硬盘,并且,
所述目标硬盘中的用于替换的各个逻辑块的大小与每个初始硬盘中的各个逻辑块的大小相同。
8.第二方面,本发明实施例提供了一种存储资源处理装置,所述装置包括:raid确定模块,用于确定待处理的目标raid;其中,所述目标raid包括多块初始硬盘,每块初始硬盘均被划分为多个逻辑块,且属于不同初始硬盘的各个逻辑块的大小相同,所述目标raid中的每个初始条带包括:分别属于第一数量块初始硬盘的所述第一数量个逻辑块,所述第一数量不大于所述多块初始硬盘的数量;条带确定模块,用于从所述目标raid包括的多个初始条带中,确定各个待处理条带;条带处理模块,用于利用目标硬盘中的用于替换的逻辑块替换每个待处理条带中的待替换逻辑块,以使替换后的每个待处理条带所包括的多个逻辑块分别属于不同的硬盘;其中,所述目标硬盘为新增硬盘,并且,所述目标硬盘中的用于替换的各个逻辑块的大小与每个初始硬盘中的各个逻辑块的大小相同。
9.第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的任一存储资源处理方法的步骤。
10.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一存储资源处理方法的步骤。
11.第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的任一存储资源处理方法的步骤。
12.本发明实施例有益效果:
13.以上可见,应用本发明实施例提供的方案,首先确定待处理的目标raid,该目标raid包括多块初始硬盘,并且,每块初始硬盘均被划分为多个逻辑块(trunk),且属于不同初始硬盘的各个逻辑块(trunk)的大小相同。其中,在构建该目标raid时,设定了该目标raid中的每个初始条带(stripe)所包括的数据块(data block)数量和校验块(parity block)数量,并且,上述数据块(data block)数量和校验块(parity block)数量的和值为第一数量,该第一数量不大于上述多块初始硬盘的数量。从而,每个初始条带(stripe)可以包括分别属于第一数量块初始硬盘的第一数量个逻辑块(trunk)。之后,在对上述目标raid进行存储资源处理时,可以首先在目标raid所包括的各个初始硬盘所在的设备上插入新增硬盘,并且,每个新增硬盘均被划分为多个逻辑块(trunk),每个新增硬盘中的各个逻辑块(trunk)的大小与每个初始硬盘中的各个逻辑块(trunk)的大小相同。
14.这样,在利用对上述目标raid进行存储资源处理时,可以从上述新增硬盘中选取用于对上述目标raid进行存储资源处理的目标硬盘,并从该目标raid包括的多个初始条带(stripe)中,确定各个待处理条带(stripe)。进而,便可以利用目标硬盘中的用于替换的逻辑块(trunk)替换每个待处理条带(stripe)中的待替换逻辑块(trunk),以使替换后的每个待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘,得到处理后的目标raid。
15.基于此,应用本发明实施例提供的方案,在对目标raid的存储资源进行处理时,可以利用新增的目标硬盘中的用于替换的逻辑块(trunk)替换目标raid中的各个待处理条带
(stripe)中的待替换逻辑块(trunk),得到替换后的各个待处理条带(stripe),并且,替换后的每个待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘。在上述处理过程中,针对替换后的每个待处理条带(stripe)以及目标raid中除待处理条带(stripe)之外的各个条带(stripe),可以正常地执行数据写入操作等各类操作,从而,可以无需停止现有业务,保证现有业务的正常运行;并且,由于替换后的每个待处理条带(stripe)中包括目标硬盘中的逻辑块(trunk),从而,在对替换后的待处理条带(stripe)执行数据写入操作时,待写入的数据可以顺利地写入到目标硬盘中,从而,可以无需增加额外的磁盘带宽开销。这样,可以能够在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现对raid的存储资源的快速便捷处理。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
17.图1为一种目标raid中所包括的多个初始条带的示意图;
18.图2为在图1所示目标raid的基础上一种目标硬盘中所划分的各个逻辑块的示意图;
19.图3为本发明实施例提供的一种存储资源处理方法的流程示意图;
20.图4为本发明实施例提供的另一种存储资源处理方法的流程示意图;
21.图5为本发明实施例提供的另一种存储资源处理方法的流程示意图;
22.图6-图8为在图1所示目标raid和图2所示目标硬盘的基础上,图5所示具体实现方式的一种示例的示意图;
23.图9为另一种目标raid中所包括的多个初始条带的示意图;
24.图10-图12为在图10所示目标raid和图2所示目标硬盘的基础上,图1中s302的一种具体实现方式的一种示例的示意图;
25.图13为本发明实施例提供的另一种存储资源处理方法的流程示意图;
26.图14为本发明实施例提供的一种存储资源处理装置的结构示意图;
27.图15为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
29.对于一个raid而言,由于raid的使用状态的改变,需要对raid的存储资源进行处理,以保证raid的正常使用。基于此,如何在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现对raid的存储资源的快速便捷处理,成为当前亟待解决的问题。
30.为了解决上述技术问题,本发明实施例提供了一种存储资源处理方法。
31.其中,该存储资源处理方法适用于任一需要对现有的raid进行存储资源处理的应用场景,示例性的,对视频监控领域中,用于存储监控视频的raid进行扩容;对包括故障硬盘的raid进行修复等,当然并不局限于此。
32.并且,该存储资源处理方法可以应用于设置了用于对raid进行存储资源处理的功能模块的各类独立电子设备或者电子设备集群,例如,笔记本电脑、台式电脑、服务器等,当然并不局限于此,以下可以简称电子设备;从而,该电子设备可以通过运行上述功能模块,执行该存储资源处理方法的各个步骤,完成对raid的存储资源处理。
33.其中,该功能模块可以为raid驱动,也可以是其他能够实现对raid进行存储资源处理的功能的模块,对此,本发明实施例不做具体行动。
34.例如,该存储资源处理方法可以应用于安装有raid驱动的笔记本电脑,该笔记本电脑通过运行所安装的raid驱动执行该存储资源处理方法的各个步骤,完成对raid的存储资源处理。
35.待处理的目标raid中包括多块初始硬盘,并且,每块初始硬盘均被划分为多个逻辑块(trunk),且属于不同初始硬盘的各个逻辑块(trunk)的大小相同。从而,在构建该目标raid时,可以设定该目标raid中的每个条带(stripe)所包括的数据块(data block)数量和校验块(parity block)数量,并且,每个条带(stripe)所包括的数据块(data block)数量和校验块(parity block)数量的和值为第一数量,该第一数量不大于上述多个初始硬盘的数量。
36.这样,为了保证写入到各个条带(stripe)中的数据的安全性,目标raid包括的每个条带(stripe)中的各个逻辑块(trunk)分别位于不同的硬盘上,因此,便可以从第一数量个初始硬盘中分别选取一个逻辑块(trunk),构成一个条带(stripe),从而,得到该目标raid中的多个初始条带(stripe)。即该目标raid中的每个初始条带(stripe)包括:分别属于第一数量块初始硬盘的第一数量个逻辑块(trunk)。也就是说,每个初始条带(stripe)中所包括的各个逻辑块(trunk)均属于不同的初始硬盘。
37.例如,如图1所示,为一种目标raid中所包括的多个初始条带(stripe)的示意图。其中,第一数量为20,tk为trunk的缩写,从而,tka1-tka20分别为属于初始硬盘a的第一个至第20个逻辑块(trunk),tkb1-tkb20分别为属于初始硬盘b的第一个至第20个逻辑块(trunk),tkc1-tkc20分别为属于初始硬盘c的第一个至第20个逻辑块(trunk),依次类推,tkt1-tkt20分别为属于初始硬盘t的第一个至第20个逻辑块(trunk)。也就是说,在图1中,具有相同字母标识的逻辑块(trunk)属于相同的初始硬盘,而具有不同字母标识的逻辑块(trunk)属于不同的初始硬盘,而具有相同字母标识且具有不同数字标识的逻辑块(trunk)为属于同一初始硬盘的不同逻辑块(trunk)。这样,每个条带(stripe)包括分别属于初始硬盘a至初始硬盘t的二十个逻辑块(trunk)。
38.此外,可选的,在目标raid所包括的多块初始硬盘的数量大于上述第一数量时,不同初始条带(stripe)所包括的各个逻辑块(trunk)所属的初始硬盘可以不完全相同。
39.进而,在对上述目标raid进行存储资源处理时,可以首先根据上述各个初始硬盘所在的设备的可用槽位的数量以及当前业务的数据存储需求,在上述设备上插入一个或多个新增硬盘。并且,每个新增硬盘也均被划分为多个逻辑块(trunk),每个新增硬盘中的各个逻辑块(trunk)的大小与每个初始硬盘中的各个逻辑块(trunk)的大小相同。
40.其中,可选的,上述各个初始硬盘所在的设备可以为一个,即上述各个初始硬盘位于同一设备上,则新增硬盘也被插入到该设备中。
41.可选的,上述各个初始硬盘所在的设备可以为多个,即上述各个初始硬盘分散安装在不同的设备上,则每个新增硬盘也可以被插入到上述多个设备中的任一设备中,并且,当所插入的新增硬盘的数量为多个时,所出入的多个新增硬盘可以插入到同一设备上,也可以插入到不同设备上。
42.例如,当目标raid如图1所示时,则一种新增硬盘中所划分的各个逻辑块(trunk)的示意图可以如图2所示。如图2所示,tk为trunk的缩写,tku表示新增硬盘,tku1-tku20为对新增硬盘tku进行逻辑块(trunk)划分后,所得到的新增硬盘tku中的20个逻辑块(trunk)。
43.其中,每个目标硬盘中的逻辑块(trunk)与每个初始硬盘中的逻辑块(trunk)的大小是根据数据存储业务需求、硬盘容量等确定的,对此,本发明实施例不做具体限定。
44.这样,在对上述目标raid进行存储资源处理时,便可以根据该目标raid所包括的各个初始硬盘的硬盘信息以及当前业务的数据存储需求,从上述各个新增硬盘中,确定用于对目标raid进行存储资源处理的目标硬盘。
45.在上述内容的基础上,本发明实施例提供的一种存储资源处理方法,包括如下步骤:
46.确定待处理的目标raid;其中,所述目标raid包括多块初始硬盘,每块初始硬盘均被划分为多个逻辑块,且属于不同初始硬盘的各个逻辑块的大小相同,所述目标raid中的每个初始条带包括:分别属于第一数量块初始硬盘的所述第一数量个逻辑块,所述第一数量不大于所述多块初始硬盘的数量;
47.从所述目标raid包括的多个初始条带中,确定各个待处理条带;
48.利用目标硬盘中的用于替换的逻辑块替换每个待处理条带中的待替换逻辑块,以使替换后的每个待处理条带所包括的多个逻辑块分别属于不同的硬盘;其中,所述目标硬盘为新增硬盘,并且,所述目标硬盘中的各个用于替换的逻辑块的大小与每个初始硬盘中的各个逻辑块的大小相同。
49.以上可见,应用本发明实施例提供的方案,首先确定待处理的目标raid,该目标raid包括多块初始硬盘,并且,每块初始硬盘均被划分为多个逻辑块(trunk),且属于不同初始硬盘的各个逻辑块(trunk)的大小相同。其中,在构建该目标raid时,设定了该目标raid中的每个初始条带(stripe)所包括的数据块(data block)数量和校验块(parity block)数量,并且,上述数据块(data block)数量和校验块(parity block)数量的和值为第一数量,该第一数量不大于上述多块初始硬盘的数量。从而,每个初始条带(stripe)可以包括分别属于第一数量块初始硬盘的第一数量个逻辑块(trunk)。之后,在对上述目标raid进行存储资源处理时,可以首先在目标raid所包括的各个初始硬盘所在的设备上插入新增硬盘,并且,每个新增硬盘均被划分为多个逻辑块(trunk),每个新增硬盘中的各个逻辑块(trunk)的大小与每个初始硬盘中的各个逻辑块(trunk)的大小相同。
50.这样,在利用对上述目标raid进行存储资源处理时,可以从上述新增硬盘中选取用于对上述目标raid进行存储资源处理的目标硬盘,并从该目标raid包括的多个初始条带(stripe)中,确定各个待处理条带(stripe)。进而,便可以利用目标硬盘中的用于替换的逻
辑块(trunk)替换每个待处理条带(stripe)中的待替换逻辑块(trunk),以使替换后的每个待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘,得到处理后的目标raid。
51.基于此,应用本发明实施例提供的方案,在对目标raid的存储资源进行处理时,可以利用新增的目标硬盘中的用于替换的逻辑块(trunk)替换目标raid中的各个待处理条带(stripe)中的待替换逻辑块(trunk),得到替换后的各个待处理条带(stripe),并且,替换后的每个待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘。在上述处理过程中,针对替换后的每个待处理条带(stripe)以及目标raid中除待处理条带(stripe)之外的各个条带(stripe),可以正常地执行数据写入操作等各类操作,从而,可以无需停止现有业务,保证现有业务的正常运行;并且,由于替换后的每个待处理条带(stripe)中包括目标硬盘中的逻辑块(trunk),从而,在对替换后的待处理条带(stripe)执行数据写入操作时,待写入的数据可以顺利地写入到目标硬盘中,从而,可以无需增加额外的磁盘带宽开销。这样,可以能够在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现对raid的存储资源的快速便捷处理。
52.下面,结合附图,对本发明实施例提供的一种存储资源处理方法进行具体说明。
53.图3为本发明实施例提供的一种存储资源处理方法的流程示意图,如图3所示,该方法可以包括如下步骤:
54.s301:确定待处理的目标raid;
55.其中,目标raid包括多块初始硬盘,每块初始硬盘均被划分为多个逻辑块(trunk),且属于不同初始硬盘的各个逻辑块(trunk)的大小相同,目标raid中的每个初始条带(stripe)包括:分别属于第一数量块初始硬盘的第一数量个逻辑块(trunk),第一数量不大于多块初始硬盘的数量;
56.电子设备可以首先从已构建完成的raid中,确定待处理的目标raid。
57.例如,将存储空间不足,需要进行扩容的raid确定为待处理的目标raid;又例如,将所包括的多个硬盘中,存在故障硬盘,需要进行修复的raid确定为待处理的目标raid等。当前,并不局限于此。
58.可选的,针对已构建完成的raid,电子设备可以根据该raid的使用状态,确定该raid是否为待处理的目标raid。
59.例如,针对已构建完成的raid,当电子设备确定出该raid的使用状态为待扩容状态时,则说明该raid的存储空间不能够满足业务需求,需要进行扩容,从而,电子设备可以将该raid确定为待处理的目标raid;
60.又例如,针对已构建完成的raid,当电子设备确定出该raid的使用状态为待修复状态时,则说明该raid将所包括的多个硬盘中,存在故障硬盘,需要进行修复,从而,电子设备可以将该raid确定为待处理的目标raid。
61.s302:从目标raid包括的多个初始条带中,确定各个待处理条带;
62.在确定出待处理的目标raid后,电子设备便可以从目标raid的多个初始条带(stripe)中,确定各个待处理条带(stripe)。
63.例如,当需要对目标raid进行扩容时,则电子设备可以将该raid中正在进行数据写入的条带(stripe)确定为待处理条带(stripe),也可以将该raid中写入数据的条带
(stripe)确定为待处理条带(stripe)等。又例如,当需要对目标raid进行修复时,则电子设备可以将该raid中存在故障的条带(stripe)确定为待处理条带(stripe)。
64.可选的,在当前业务持续运行的过程中,电子设备可以针对上述目标raid中的初始条带(stripe)执行数据写入操作。这样,电子设备可以将当前待执行数据写入操作的初始条带(stripe)确定为待处理条带(stripe),进而,在完成对该待处理条带(stripe)中的待替换逻辑块(trunk)的替换后,上述数据写入操作所对应的待写入的数据,即可以随之被写入到替换后的待处理条带(stripe)中。并且,若该待处理条带(stripe)中已经写入数据,且所写入的数据即将失效或者已经失效,则上述数据写入操作所对应的待写入的数据将覆盖该待处理条带(stripe)中已经写入的数据,而无需将该待处理条带(stripe)中已经写入的数据迁移到目标硬盘中。这样,电子设备可以在当前业务持续运行的过程中,同步完成对上述目标raid的存储资源的处理,并且,不增加额外磁盘带宽开销。
65.又例如,当需要对包括属于故障硬盘的逻辑块(trunk)的条带(stripe)进行修复时,则电子设备可以将包括属于故障硬盘的逻辑块(trunk)的条带(stripe)确定为待处理的目标raid。
66.为了行文清晰,后续将会对上述步骤s302进行举例说明。
67.s303:利用目标硬盘中的用于替换的逻辑块替换每个待处理条带中的待替换逻辑块,以使替换后的每个待处理条带所包括的多个逻辑块分别属于不同的硬盘;
68.其中,目标硬盘为新增硬盘,并且,目标硬盘中的用于替换的各个逻辑块的大小与每个初始硬盘中的各个逻辑块的大小相同。
69.在确定出上述各个待处理条带(stripe)后,便可以在新增硬盘中确定用于对目标raid进行存储资源处理的目标硬盘,其中,上述目标硬盘为新增硬盘。并且,每个目标硬盘也均被划分为多个逻辑块(trunk),每个目标硬盘中的各个逻辑块(trunk)的大小与每个初始硬盘中的各个逻辑块(trunk)的大小相同。进而,在确定每个待处理条带(stripe)中的待替换逻辑块(trunk)后,便可以利用目标硬盘中的用于替换的逻辑块(trunk)替换每个待处理条带(stripe)中的待替换逻辑块(trunk),以使替换后的每个待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘。
70.其中,在确定每个待处理条带(stripe)中的待替换逻辑块(trunk)时,可以通过多种方式进行确定。例如,在每个待处理条带(stripe)中随机确定第三数量个待替换逻辑块(trunk);又例如,将每个待处理条带(stripe)中属于指定初始硬盘的逻辑块(trunk)确定为待替换逻辑块(trunk)等。
71.例如,在某些存在异步i/o(input/output,输入/输出)运行场景下,目标raid所包括的各个初始硬盘中可以存在热点硬盘,即进行异步i/o次数过多的硬盘,从而,上述热点硬盘的性能可以成为目标raid的性能瓶颈,降低目标raid的运行性能,因此,可以将目标raid的各个初始条带(stripe)中包括的属于上述热点硬盘的逻辑块(trunk)替换掉,以优化目标raid的整体运行性能。基于此,便可以将每个待处理条带(stripe)中属于热点硬盘的逻辑块(trunk)确定为待替换逻辑块(trunk)。
72.对此,本发明实施例不做具体限定。并且,可以通过多种方式执行上述步骤s303。为了行文清晰,后续将会对上述步骤s303,以及确定每个待处理条带(stripe)中的待替换逻辑块(trunk)的方式进行举例说明。
73.此外,在对上述目标raid进行存储资源处理时,可以首先根据该目标raid所包括的各个初始硬盘的硬盘信息以及当前业务的数据存储需求,确定用于对目标raid进行存储资源处理的目标硬盘。
74.基于此,可选的,一种具体实现方式中,本发明实施例提供的一种存储资源处理方法,还可以包括如下步骤11:
75.步骤11:各个新增硬盘中确定目标硬盘。
76.在本具体实现方式中,在利用目标硬盘中的用于替换的逻辑块(trunk)替换每个待处理条带中的待替换逻辑块(trunk)之前,可以首先从各个新增硬盘中,确定目标硬盘。
77.可选的,一种具体实现方式中,上述步骤11可以包括如下步骤111:
78.步骤111:针对每个待处理条带(stripe),基于各个新增硬盘的硬盘信息,从各个新增硬盘中确定目标硬盘。
79.在本具体实现方式中,在确定出各个待处理条带(stripe)后,针对每个待处理条带(stripe),在对该待处理条带(stripe)进行处理之前,可以首先基于各个新增硬盘的硬盘信息,从各个新增硬盘中确定目标硬盘,进而,便可以利用所确定的目标硬盘中的逻辑块(trunk)替换该待处理条带(stripe)中的待替换逻辑块(trunk),以使替换后的该待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘。
80.例如,针对每个待处理条带(stripe),可以根据各个新增硬盘的硬盘总容量、空闲容量、健康值等硬盘信息,从各个新增硬盘中选取用于替换该待处理条带(stripe)中的待替换逻辑块(trunk)的目标硬盘。
81.其中,可选的,上述新增硬盘的硬盘信息可以包括:新增硬盘的硬盘总容量、空闲容量、健康值等硬盘信息中的至少一种;
82.可选的,在上述目标raid是由位于多个设备上的多个初始硬盘构成的情况下,上述新增硬盘的硬盘信息可以包括:新增硬盘所在的设备标识。
83.其中,可选的,在新增硬盘为多个的情况下,上述目标硬盘可以为一个或多个。也就是说,可以将全部的新增硬盘均确定为目标硬盘,也可以仅仅将部分新增硬盘确定为目标硬盘;并且,针对不同的待处理条带(stripe),所确定的目标硬盘可以相同,也可以不同。
84.可选的,一种具体实现方式中,上述步骤11可以包括如下步骤112:
85.步骤112:在预设的随机数取值范围中进行随机数选取,并将所选取的随机数所属的随机值取值子区间对应的新增硬盘,确定为目标硬盘;
86.其中,随机数取值范围是由各个新增硬盘对应的随机值取值子区间构成的。
87.在本具体实现方式中,可以为每个新增硬盘预先设置随机值取值子区间,并确定由各个新增硬盘对应的随机值取值子区间构成的总取值范围,进而,将该总取值范围作为随机数取值范围。这样,在确定目标硬盘时,便可以在上述随机数取值范围中进行随机数选取,进而,确定所选取的随机数所属的随机值取值子区间,并将该随机值取值子区间对应的新增硬盘确定为目标硬盘。
88.例如,在所插入的多个新增硬盘的资源等级相同时,可以为每个新增硬盘设置相同大小的随机值取值子区间,并将所有新增硬盘的随机值取值子区间构成的总取值区间作为随机值的取值范围,从而,在确定目标硬盘时,可以在上述总取值区间内随机选取第二数量个随机值,并确定所选取的每个随机值所属的随机值取值子区间。针对所选取的每个随
机值,各个新增硬盘中,所设置的随机值取值子区间为该随机值所在的随机值取值子区间的新增硬盘即为所确定的目标硬盘。
89.示例性的,存在两个资源等级相同的新增硬盘,第一个新增硬盘的随机值取值子区间为1-40,第二个新增硬盘的随机值取值子区间为41-80,则总取值区间为1-80。进而,第二数量为1,则在确定目标硬盘时,可以在1-80内进行随机值获取,得到随机值20,由于随机值20属于第一个新增硬盘的随机值取值子区间为1-40,则可以将第一个硬盘确定为目标硬盘。
90.其中,由于新增硬盘可以为目标raid提供存储资源,并且,根据各个新增硬盘所安装设备、总容量、空闲容量、健康度等的不同,各个新增硬盘为目标raid提供存储资源的能力可以不同,因此,可以将各个新增硬盘为目标raid提供存储资源的能力作为各个新增硬盘的资源等级。
91.进而,所谓资源等级相同的新增硬盘是指满足如下条件中的至少一个条件的硬盘:安装在同一设备中、总容量相同、空闲容量相同和健康值相同的新增硬盘。例如,可以将安装在同一设备中、总容量相同、空闲容量相同,且健康值相同的新增硬盘确定为资源等级相同的新增硬盘。
92.其中,所谓健康值是基于硬盘的各个运行参数确定的用于表征硬盘的运行状态的参数,健康值越高,则说明硬盘的运行状态越好。
93.可选的,一种具体实现方式中,上述步骤11可以包括如下步骤113:
94.步骤113:在预设的权重取值范围中进行权重选取,并将具有所选取的权重的新增硬盘确定为目标硬盘;
95.其中,权重取值范围是由各个新增硬盘的权重构成的。
96.在本具体实现方式中,可以根据每个新增硬盘的硬盘信息,为每个新增硬盘预先设置权重,并确定由各个新增硬盘的权重构成的总权重范围,进而,将该总权重范围作为权重取值范围。这样,在确定目标硬盘时,便可以在上述权重取值范围中进行权重选取,进而,确定具有所选取的权重的新增硬盘,并将该新增硬盘确定为目标硬盘。
97.例如,在所插入的多个新增硬盘的资源等级不同时,可以按照各个新增硬盘的资源等级的不同,为每个新增硬盘设置不同的权重,并将所有新增硬盘的权重构成的权重值范围作为随机值的取值范围,从而,在确定目标硬盘时,可以在上述随机值的取值范围内随机选取第二数量个随机值,则权重值为该随机值的新增硬盘即为所确定的目标硬盘。
98.在上述例子中,利用随机值确定目标硬盘可以离散化处理新条带(stripe)的组成,避免规律性选择目标硬盘所导致的硬盘异常后数据的规律性丢失的问题,提高所写入数据的安全性。
99.再例如,各个新增硬盘的总容量可能不一致,为了保证各个硬盘的使用均衡,可以使总容量较大的新增硬盘较多且不连续地被确定为目标硬盘,因此,可以根据各个新增硬盘空闲容量的比重,动态调整各个新增硬盘的取值区间或权重。其中,所谓总容量较大的新增硬盘较多且不连续地被确定为目标硬盘是指:总容量较大的新增硬盘被确定为目标硬盘的次数较多,并且,总容量较大的新增硬盘不是被连续多次确定为目标硬盘的。也就是说,总容量较大的新增硬盘与其他新增硬盘是相间地被确定为目标硬盘的,其中,总容量较大的新增硬盘被确定为目标硬盘的次数较多。
100.示例性的,存在两个新增硬盘,第一个新增硬盘的总容量为4t,第二个新增硬盘的总容量为8t,每个新增硬盘中所划分的每个逻辑块(trunk)的大小为128k。假设可用容量1t用数值1表示,则总容量为4t的新增硬盘的容量比重可以用数值4表示,而总容量为8t的新增硬盘的容量比重可以用数值8表示,进而,可以根据上述两个新增硬盘的容量比重的比值,设置总容量为4t的新增硬盘的随机值取值子区间为1-40,总容量为8t的新增硬盘的随机值取值子空间为41-120,则随机值的取值范围为1-120。进而,在确定目标硬盘时,可以在1-120内进行随机值获取,随机值落在哪一个新增硬盘的取值区间内,则将该新增硬盘确定为目标硬盘。这样,即可以保证总容量较大的硬盘被确定为目标硬盘的次数相对较多,又保证了将总容量较大的新增硬盘确定为目标硬盘的情况是离散分布的。
101.示例性的,也可以利用新增硬盘的空闲容量和总容量的百分比,确定目标硬盘。针对上述示例中的总容量为4t和总容量为8t的两个新增硬盘,在该两个新增硬盘刚插入设备时,该两个新增硬盘的空闲容量/总容量的值均为100%,则在确定目标硬盘时,可以一定的取值区间内取随机值,然后,计算((空闲容量-随机值)/总容量)*1000倍,并按照计算结果的大小进行排序,从而,根据排序结果确定目标硬盘。其中,上述计算公式中,*1000进行数值扩大的目的是避免随机值太小在linux系统等操作系统中无法进行差异识别。
102.此外,在确定目标硬盘时,还可以进一步考虑目标raid所能使用的全部初始硬盘和新增硬盘中的空闲容量的分布,从而,根据全部初始硬盘和新增硬盘中的空闲容量的分布,动态调整各个新增硬盘的权重,从而,提高全部初始硬盘和新增硬盘中的空闲容量的分布的均衡性。
103.需要强调的是,上述举例仅仅是对从新增硬盘中确定目标硬盘的方式的举例说明,而非限定,任何能够从新增硬盘中确定目标硬盘的方式均属于本发明实施例的保护范围。
104.可选的,一种具体实现方式中,如图4所示,本发明实施例提供的一种存储资源处理方法,还可以包括如下步骤s300:
105.s300:在检测到各个新增硬盘后,对所检测到的各个新增硬盘进行逻辑块划分。
106.在本具体实现方式中,用于对目标raid进行存储资源处理的目标硬盘是从预先插入的新增硬盘中确定的,因此,在对上述目标raid进行存储资源处理时,电子设备可以首先检测是否存在新增硬盘,也就是说,上述目标raid所包括的各个初始硬盘所在的设备中是否插入了新的硬盘。这样,在检测到存在新增硬盘时,由于电子设备可以获知每个初始硬盘中的各个逻辑块(trunk)的大小,因此,电子设备便可以按照该大小,对所检测到的新增硬盘进行逻辑块(trunk)划分,以使得新增硬盘中所划分得到的各个逻辑块(trunk)的大小与每个初始硬盘中的各个逻辑块(trunk)的大小相同。
107.可选的,针对每个待处理条带(stripe),在存在针对该待处理条带(stripe)的数据写入操作时,在利用目标硬盘中的逻辑块(trunk)替换该待处理条带(stripe)中的待替换逻辑块(trunk)后,可以针对替换后的该待处理条带(stripe)执行上述数据写入操作,从而,将上述数据写入操作所对应的待写入数据写入到替换后的该待处理条带(stripe)中。并且,上述数据写入操作所对应的待写入数据中的部分数据,或者,上述数据写入操作所对应的待写入数据的部分校验数据将被写入到目标硬盘中。
108.以上可见,应用本发明实施例提供的方案,在对目标raid的存储资源进行处理时,
可以利用新增的目标硬盘中的逻辑块(trunk)替换目标raid中的各个待处理条带(stripe)中的待替换逻辑块(trunk),得到替换后的各个待处理条带(stripe),并且,替换后的每个待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘。在上述处理过程中,针对替换后的每个待处理条带(stripe)以及目标raid中除待处理条带(stripe)之外的各个条带(stripe),可以正常地执行数据写入操作等各类操作,从而,可以无需停止现有业务,保证现有业务的正常运行;并且,由于替换后的每个待处理条带(stripe)中包括目标硬盘中的逻辑块(trunk),从而,在对替换后的待处理条带(stripe)执行数据写入操作时,待写入的数据可以顺利地写入到目标硬盘中,从而,可以无需增加额外的磁盘带宽开销。这样,可以能够在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现对raid的存储资源的快速便捷处理。
109.在很多情况下,由于待存储数据量的增加等原因,上述目标raid的存储空间将不能满足实际应用中数据存储的需求,因此,可以利用目标硬盘对上述目标raid进行扩容。即通过逻辑块(trunk)替换,将目标硬盘中的逻辑块(trunk)添加至上述目标raid的初始条带(stripe)中,并且由于是逻辑块(trunk)的替换,可以不改变每个条带(stripe)中所包含的逻辑块(trunk)的数量,还可以基于从初始条带(stripe)中替换出来的属于各个初始硬盘中的逻辑块(trunk)构建新的条带(stripe),从而,借助于目标硬盘中的逻辑块(trunk),可以增加目标raid所包括的条带(stripe)的数量,进而增加目标raid的存储空间。
110.基于此,可选的,一种具体实现方式中,如图5所示,本发明实施例提供的一种存储资源处理方法,还可以包括如下步骤s304:
111.s304:基于被替换的各个待替换逻辑块创建新的条带。
112.在本具体实现方式中,在利用目标硬盘中的逻辑块(trunk)替换每个待处理条带(stripe)中的待替换逻辑块(trunk)后,可以得到被替换出来的属于各个初始硬盘的各个待替换逻辑块(trunk),从而,便可以基于被替换的各个待替换逻辑块(trunk)创建新的条带(stripe)。并且,所创建的新的条带(stripe)中包括:分别属于第一数量个硬盘的第一数量个逻辑块(trunk),并且,该第一数量个逻辑块(trunk)可以存在属于目标硬盘的逻辑块(trunk),也可以不存在属于目标硬盘的逻辑块(trunk)。
113.例如,可以从被替换的各个待替换逻辑块(trunk)中选取分别属于不同初始硬盘的第一数量个待替换逻辑块(trunk),并将所选取的第一数量个待替换逻辑块(trunk)构建为新的条带(stripe)。
114.例如,可以从被替换的各个待替换逻辑块(trunk)中选取分别属于不同初始硬盘的若干个待替换逻辑块(trunk),并且,所选取的若干个待替换逻辑块(trunk)的数量不小于上述第一数量与目标硬盘的第二数量的第一差值,进而,计算第一数量与所选取的若干个待替换逻辑块(trunk)的数量的第二差值。这样,便可以从目标硬盘中选取第二差值个目标硬盘,从而,将所选取的若干个待替换逻辑块(trunk)与所选取的第二差值个目标硬盘中的每个目标硬盘中的一个逻辑块(trunk)构建为新的条带(stripe)。
115.需要强调的是,上述举例仅仅是对上述步骤s304的举例说明,而非限定,任何可以实现上述步骤s304的方式均属于本发明实施例的保护范围。
116.例如,如图6-图8所示,在上述目标raid如图1所示,且目标硬盘中所划分得到的各个逻辑块(trunk)如图2所示的基础上,假设目标raid中的条带(stripe)1-20为待处理条带
(stripe),且每个待处理条带(stripe)中包括1个待替换逻辑块(trunk)。
117.这样,如图6所示,可以将条带(stripe)1中的逻辑块(trunk)tka1替换为目标硬盘中的tku1;如图7所示,将条带(stripe)2中的逻辑块(trunk)tkc2替换为目标硬盘中的tku2。依次类推,如图8所示,直至用目标硬盘中的各个逻辑块(trunk)依次分别替换条带(stripe)1-20中的一个待替换逻辑块(trunk),得到20个被替换出来的分别属于不同初始硬盘的待替换逻辑块(trunk)。
118.其中,如图8所示,针对虚线框中所标识的目标硬盘中的每个逻辑块(trunk),该逻辑块(trunk)通过带箭头的虚线连接线所连接的待替换逻辑块(trunk),为该逻辑块(trunk)所替换出来的待替换逻辑块(trunk)。进而,便可以基于被替换出来的20个分别属于不同初始硬盘的待替换逻辑,创建新的条带(stripe),即创建得到图8中的条带(stripe)21,该目标条带(stripe)21即为扩容所得到的新的存储空间。
119.在本具体实现方式中,在创建得到每个新的条带(stripe)后,可以随即利用该新的条带(stripe)进行数据写入,即在创建得到每个新的条带(stripe)后,可以随即对该新的条带(stripe)执行数据写入操作。也就是说,在本具体实现方式中,通过对待处理条带(stripe)中的目标逻辑块(trunk)的替换实现对目标raid的扩容,和当前数据写入业务可以同时进行。
120.可选的,一种具体实现方式中,在图5所示具体实现方式的基础上,本发明实施例提供的一种存储资源处理方法,还可以包括如下步骤21:
121.步骤21:在创建得到全部新的条带后,依次对所创建的每个新的条带执行数据写入操作。
122.在本具体实现方式中,在创建得到每个新的条带(stripe)后,可以将该新的条带(stripe)作为可用于进行数据写入的条带(stripe)进行保留,从而,可以在目标硬盘不存在可用于替换的逻辑块(trunk),即完成上述目标raid的扩容后,再依次对所创建的每个新的条带(stripe)执行数据写入操作。
123.其中,可选的,在上述目标raid中的初始条带(stripe)均作为待处理条带(stripe)被替换,且针对所有被替换后的初始条带(stripe)均已经执行过数据写入操作时,当需要接着执行数据写入操作,以向扩容后的目标raid写入数据时,上述所创建的全部新的条带(stripe)即可以作为当前可用的空白条带(stripe),从而,可以依次对所创建的每个新的条带(stripe)执行数据写入操作。
124.可选的,在目标硬盘不存在可用于替换的逻辑块(trunk),且针对所有作为待处理条带(stripe)被替换后的初始条带(stripe)均已经执行过数据写入操作时,若仍然存在无需进行待替换逻辑块替换的初始条带(stripe),那么,当需要接着执行数据写入操作,以向扩容后的目标raid写入数据时,可以首先针对无需进行待替换逻辑块替换的初始条带(stripe)执行数据写入操作,并在无需进行待替换逻辑块替换的初始条带(stripe)均已经执行过数据写入操作后,依次对所创建的每个新的条带(stripe)执行数据写入操作。
125.可选的,在目标硬盘不存在可用于替换的逻辑块(trunk)时,此时,无论是否还存在无需进行待替换逻辑块替换的初始条带(stripe),当需要接着执行数据写入操作,以向扩容后的目标raid写入数据时,均可以首先依次对所创建的每个新的条带(stripe)执行数据写入操作,进而,在所创建的每个新的条带(stripe)已经执行过数据写入操作后,在从扩
容后的目标raid中的第一个条带(stripe)开始,依次执行数据写入操作,覆盖扩容后的目标raid中的每个条带(stripe)中所写入的数据。
126.其中,上述各个可选的具体实现方式,仅仅是对上述步骤21的举例说明,而非限定,任何能够实现上述步骤21的方式均属于本技术的保护范围。
127.基于此,在上述步骤21所示的具体实现方式中,针对替换后的每个待处理条带(stripe),可以正常地执行待执行的数据写入操作,从而,无需停止现有业务,保证现有业务的正常运行;此外,由于替换后的待处理条带(stripe)包括目标硬盘中的逻辑块(trunk),从而,通过对替换后的待处理条带(stripe)执行数据写入操作,该数据写入操作对应的待写入数据可以顺利地写入到目标硬盘中,并且,无需将写在初始硬盘中的数据迁移到目标硬盘中,从而,可以无需增加额外的磁盘带宽开销。这样,便可以能够在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现raid的快速便捷扩容。
128.下面,对上述步骤s302,从目标raid包括的多个初始条带中,确定各个待处理条带,进行举例说明。
129.可选的,一种具体实现方式中,上述步骤s302可以包括如下步骤31:
130.步骤31:若上述目标raid包括的多个初始条带均已被写入数据,则将上述多个初始条带中的各个初始条带确定为待处理条带。
131.在本具体实现方式中,由于上述目标raid中不存在未写入数据的空白条带(stripe),因此,当再次针对上述目标raid执行数据写入操作时,所写入的数据需要覆盖各个初始条带(stripe)中已经写入的数据。因此,可以将上述目标raid包括的多个初始条带(stripe)中的各个初始条带(stripe)均确定为待处理条带(stripe)。
132.例如,可以从目标raid包括的多个初始条带(stripe)中的第一个初始条带(stripe)开始,依次将各个初始条带(stripe)确定为待处理条带(stripe)。示例性的,如图1所示,在各个初始条带(stripe)1-20中不存在未写入数据的空白条带(stripe)的情况下,可以按照从上至下的顺序,依次将各个初始条带(stripe)1-20确定为待处理条带(stripe)。
133.可选的,另一种具体实现方式中,上述步骤s302可以包括如下步骤32:
134.步骤32:若上述目标raid包括的多个初始条带中存在空白条带;则将上述多个初始条带中写入数据的各个初始条带,和/或,各个空白条带确定为待处理条带。
135.在本具体实现方式中,考虑到上述目标raid中存在未写入数据的空白条带(stripe),为了保证上述目标raid中已经写入数据的初始条带(stripe)中所写入的数据的安全性,当再次针对上述目标raid执行数据写入操作时,可以仅仅将数据写入操作所对应的待写入数据写入到的空白条带(stripe)中。因此,可以将上述目标raid包括的多个初始条带(stripe)中的各个空白条带(stripe)确定为待处理条带(stripe)。
136.相应的,在某些情况下,虽然上述目标raid中存在未写入数据的空白条带(stripe),然而,考虑到上述目标raid中已经写入数据的初始条带(stripe)中所写入的数据可能已经失效,当再次针对上述目标raid执行数据写入操作时,可以利用数据写入操作所对应的待写入数据覆盖已经写入数据的各个初始条带(stripe)中所写入的数据。因此,也可以将上述目标raid包括的多个初始条带(stripe)中的已被写入数据的各个初始条带(stripe)确定为待处理条带(stripe)。
137.此外,在某些情况下,考虑到上述目标raid中存在未写入数据的空白条带(stripe),为了保证上述目标raid中已经写入数据的初始条带(stripe)中所写入的数据的安全性,当再次针对上述目标raid执行数据写入操作时,可以首先将数据写入操作所对应的待写入数据写入到的空白条带(stripe)中,进而,在空白条带(stripe)均写入数据后,为了保证后续数据写入操作所对应的待写入数据能够被写入到上述目标raid中,可以将后续数据写入操作所对应的待写入数据覆盖各个初始条带(stripe)中已经写入的数据。因此,还可以将上述目标raid包括的多个初始条带(stripe)中的各个空白条带(stripe)和已被写入数据的各个初始条带(stripe)均确定为待处理条带(stripe),即将上述目标raid包括的多个初始条带(stripe)均确定为待处理条带(stripe)。
138.例如,可以从目标raid包括的多个初始条带(stripe)中的第一个初始条带(stripe)开始,依次将各个初始条带(stripe)确定为待处理条带(stripe)。示例性,如图1所示,在各个初始条带(stripe)1-20中,初始条带(stripe)1-5中已经写入数据,且初始条带(stripe)6-20为未写入数据的空白条带(stripe)的情况下,可以按照从上至下的顺序,依次将各个初始条带(stripe)1-20确定为待处理条带(stripe)。
139.又例如,可以从目标raid中所存在的空白条带(stripe)中的第一个条带(stripe)开始,依次将各个空白条带(stripe)确定为待处理条带(stripe)。示例性的,如图1所示,在各个初始条带(stripe)1-20中,初始条带(stripe)1-5中已经写入数据,且初始条带(stripe)6-20为未写入数据的空白条带(stripe)的情况下,可以按照从上至下的顺序,依次将各个初始条带(stripe)6-20确定为待处理条带(stripe)。
140.又例如,可以从目标raid中所存在的空白条带(stripe)中的第一个条带(stripe)开始,依次将各个空白条带(stripe)确定为待处理条带(stripe);在各个空白条带(stripe)被确定为待处理条带(stripe)后,从多个初始条带(stripe)中的第一个初始条带(stripe)开始,依次将在确定第一个初始条带(stripe)之前,已经写入数据的各个初始条带(stripe)确定为待处理条带(stripe)。示例性的,如图1所示,在各个初始条带(stripe)1-20中,初始条带(stripe)1-5中已经写入数据,且初始条带(stripe)6-20为未写入数据的空白条带(stripe)的情况下,可以首先按照从上至下的顺序,依次将各个初始条带(stripe)6-20确定为待处理条带(stripe),进而,再次按照从上至下的顺序,将各个初始条带(stripe)1-5确定为待处理条带(stripe)。
141.需要强调的是,上述各个例子仅仅是对上述步骤s302的举例说明,而非限定,任何从目标raid包括的多个初始条带(stripe)中,确定各个待处理条带(stripe)的实现方式,均属于本发明实施例的保护范围。
142.示例性的,假设,目标raid中的每个初始条带(stripe)包括10个逻辑块(trunk),且10个逻辑块(trunk)中包括:8个数据块(data block)和2个校验块(parity block),并且,每个逻辑块(trunk)的大小为4k。其中,可以将目标raid中的每个初始条带(stripe)称为8 2条带(stripe)。
143.这样,在进行数据写入时,如果待写入数据的数据量为4k。相应的:
144.第一种方式中,如果按照条带(stripe)进行数据写入,那么,至少需要8个数据量为4k的数据才可以写满一个初始条带(stripe),因此,在待写入数据的数据量只有4k的情况下,可以首先确定该待写入数据所要写入的初始条带(stripe),以及在该初始条带
(stripe)中所要写入的数据块(data block),从而,可以读取该初始条带(stripe)中其他7个数据块(data block)中已经写入的数据,并利用所读取的数据和该待写入数据,重新计算2个校验数据,进而,可以将所读取的数据、该待写入数据以及重新计算得到的2个校验数据写入该初始条带(stripe)中,或者,保持该初始条带(stripe)中其他7个数据块(data block)中已经写入的数据不变,将该待写入数据和重新计算得到的2个校验数据写入该初始条带(stripe)中。
145.在上述第一种方式中,在准备将该待写入数据和重新计算得到的2个校验数据写入该初始条带(stripe)中时,可以首先将该初始条带(stripe)确定为待处理条带(stripe),进而,可以直接用目标硬盘中的用于替换的逻辑块替换该初始条带(stripe)中的待替换逻辑块(trunk),并在替换完成后,将该待写入数据和重新计算得到的2个校验数据写入替换后的该初始条带(stripe)中。
146.其中,最多可以替换该初始条带(stripe)中的全部8 2个逻辑块(trunk),也可以只替换用于存储该待写入数据的数据块(data block),还可以只替换用于存储该待写入数据的数据块(data block)和两个校验块(parity block)。这都是合理的。
147.第二种方式中,在对数据一致性要求较低且业务i/o(input/output,输入/输出)较小的场景下,在每次获取到数据量为4k的待写入数据时,可以将每个待写入数据陆续写入到一个初始条带(stripe)中,从而,在获取到第8个待写入数据时,可以一次性读出已写入的7个待写入数据,从而,利用上述已写入的7个待写入数据和第8个待写入数据,计算2个校验数据,从而,继续写入上述第8个待写入数据和所计算得到的2个校验数据。
148.在上述第二种方式中,在每次获取到一个数据量为4k的待写入数据,并将该待写入数据写入到上述初始条带(stripe)中,可以首先将该初始条带(stripe)确定为待处理条带(stripe),进而,可以直接用目标硬盘中的一个用于替换的逻辑块(trunk)替换上述初始条带(stripe)中的一个未写入数据的逻辑块(trunk)。并在替换完成后,将上述所获取到的待写入数据写入到上述所替换的属于目标硬盘的逻辑块(trunk)中。
149.其中,需要强调的是,上述两种方式均是目标raid自带的写入方式,在本发明实施例中仅仅是利用上述两种方式对上述步骤31和步骤32所示的具体实现方式进行举例说明,而非限定目标raid的写入方式。任何能够对目标raid进行数据写入的写入方式均属于本发明实施例的保护范围。
150.基于上述情况,在上述步骤31和步骤32所示的具体实现方式中,将目标raid包括的写入数据的初始条带(stripe)确定为待处理条带(stripe)的情况下,对于待处理条带(stripe)而言,在写入新的待写入数据后,写有新的待写入数据的替换后的逻辑块(trunk),替换了旧的写有数据的被替换的逻辑块(trunk),而由于旧的写有数据的被替换的逻辑块(trunk)中的数据可以是即将过期或者已经过期的数据,从而,无需将旧的写有数据的被替换的逻辑块(trunk)中的数据迁移到目标硬盘中,从而,可以实现在不影响业务正常运行,且不增加额外磁盘带宽的情况下实现目标raid的扩容。
151.下面,对每个待处理条带(stripe)中的待替换逻辑块(trunk)的确定方式进行举例说明。
152.可选的,一种具体实现方式中,每个待处理条带中的待替换逻辑块的确定方式,可以包括如下步骤41-42:
153.步骤41:针对每个待处理条带,基于该待处理条带中各个逻辑块所属初始硬盘的硬盘信息和目标raid的硬盘信息,确定该待处理条带中各个逻辑块的替换权重值;
154.步骤42:基于每个待处理条带中各个逻辑块的替换权重值和目标硬盘的第二数量,确定每个待处理条带中的待替换逻辑块。
155.在本具体实现方式中,针对每个待处理条带(stripe),可以首先基于该待处理条带(stripe)中各个逻辑块(trunk)所属初始硬盘的硬盘信息和目标raid的硬盘信息,确定待处理条带(stripe)中各个逻辑块(trunk)的替换权重值。
156.其中,所谓每个逻辑块(trunk)的替换权重值可以表征:基于目标raid的资源处理目标所确定的每个逻辑块(trunk)被替换的可能性。针对每个逻辑块(trunk),若该逻辑块(trunk)的替换权重值越大,则该逻辑块(trunk)被替换的可能性越大,从而,该逻辑块(trunk)被替换后,对实现目标raid的资源处理目标的贡献越大;反之,若该逻辑块(trunk)的替换权重值越小,则该逻辑块(trunk)被替换的可能性越小,从而,该逻辑块(trunk)被替换后,对实现目标raid的资源处理目标的贡献越小。
157.例如,对于性能要求较高的目标raid中,对于初始条带(stripe)中的各个逻辑块(trunk)所在硬盘的健康值比较偏重,从而,所在硬盘的健康值较高的逻辑块(trunk)的替换权重值可以较小,即不希望替换所在硬盘的健康值较高的逻辑块(trunk)。
158.也就是说,每个逻辑块(trunk)的替换权重值的计算可以根据目标raid的产品需求、业务需求等进行动态的调整和优化。
159.可选的,上述初始硬盘的硬盘信息可以包括:初始硬盘的硬盘总容量、空闲容量、健康值等硬盘信息中的至少一种;目标raid的硬盘信息可以包括目标硬盘中的硬盘总容量、空闲容量、健康值等硬盘信息中的至少一种。
160.此外,可选的,在上述第一数量小于上述目标raid所包括的多个初始硬盘的数量的基础上,在确定每个待处理条带(stripe)中各个逻辑块(trunk)的替换权重值时,可以基于上述目标raid所包括的每个初始硬盘的硬盘信息,以及目标raid的硬盘信息进行确定。
161.进而,针对每个待处理条带(stripe),在确定出该待处理条带(stripe)中各个逻辑块(trunk)的替换权重值后,便可以进一步基于该待处理条带(stripe)中各个逻辑块(trunk)的替换权重值和目标硬盘的第二数量,确定该待处理条带(stripe)中的待替换逻辑块(trunk)。
162.例如,针对每个待处理条带(stripe),按照该待处理条带(stripe)中各个逻辑块(trunk)的替换权重值由大到小排列,将排列在前第二数量位的待替换逻辑块(trunk)确定为待替换逻辑块(trunk)。
163.可选的,一种具体实现方式中,上述步骤22可以包括如下步骤421和422:
164.步骤421:针对每个待处理条带(stripe),将所包括的替换权重值满足预设条件的各个逻辑块(trunk),确定为候选逻辑块(trunk);
165.其中,预设条件包括:位于预设权重范围,或者,大于预设权重阈值;
166.步骤422:若所确定的候选逻辑块(trunk)的第三数量大于目标硬盘的第二数量,则从所确定的候选逻辑块(trunk)中选取第二数量个逻辑块(trunk),作为待替换逻辑块(trunk)。
167.在本具体实现方式中,针对每个待处理条带(stripe),可以首先从该待处理条带
(stripe)所包括的各个逻辑块(trunk)中,确定替换权重值满足预设条件的各个逻辑块(trunk),作为候选逻辑块(trunk)。
168.例如,针对每个待处理条带(stripe),可以首先从该待处理条带(stripe)所包括的各个逻辑块(trunk)中,确定替换权重值位于预设权重范围的各个逻辑块(trunk),作为候选逻辑块(trunk)。
169.又例如,针对每个待处理条带(stripe),可以首先从该待处理条带(stripe)所包括的各个逻辑块(trunk)中,确定替换权重值大于预设权重阈值的各个逻辑块(trunk),作为候选逻辑块(trunk)。
170.需要强调的是,上述举例仅仅是上述针对每个待处理条带(stripe),将所包括的替换权重值满足预设条件的各个逻辑块(trunk),确定为候选逻辑块(trunk)的实现方式的举例说明,而非限定,任何可以确定出每个待处理条带(stripe)中的候选逻辑块(trunk)的方式均属于本发明实施例的保护范围。
171.进而,针对每个待处理条带(stripe),若所确定的候选逻辑块(trunk)的第三数量大于目标硬盘的第二数量,则可以从所确定的候选逻辑块(trunk)中选取第二数量个逻辑块(trunk),作为待替换逻辑块(trunk)。
172.例如,针对每个待处理条带(stripe),若所确定的候选逻辑块(trunk)的第三数量大于目标硬盘的第二数量,可以随机从所确定的候选逻辑块(trunk)中选取第二数量个逻辑块(trunk),作为待替换逻辑块(trunk)。
173.又例如,针对每个待处理条带(stripe),若所确定的候选逻辑块(trunk)的第三数量大于目标硬盘的第二数量,则按照各个候选逻辑块(trunk)的替换权重值由大到小排列,将排列在前第二数量位的待替换逻辑块(trunk)确定为待替换逻辑块(trunk)。
174.当然,还可以利用其他方式,实现上述步骤422,对此,本发明实施例不做具体行动。
175.可选的,另一种具体实现方式中,上述步骤42可以包括如下步骤421和423:
176.步骤421:针对每个待处理条带(stripe),将所包括的替换权重值满足预设条件的各个逻辑块(trunk),确定为候选逻辑块(trunk);
177.其中,预设条件包括:位于预设权重范围,或者,大于预设权重阈值;
178.步骤423:若所确定的候选逻辑块(trunk)的第三数量不大于目标硬盘的第二数量,将所确定的候选逻辑块(trunk)确定为待替换逻辑块(trunk)。
179.在本具体实现方式中,针对每个待处理条带(stripe),可以首先从该待处理条带(stripe)所包括的各个逻辑块(trunk)中,确定替换权重值满足预设条件的各个逻辑块(trunk),作为候选逻辑块(trunk)。进而,针对每个待处理条带(stripe),若所确定的候选逻辑块(trunk)的第三数量不大于目标硬盘的第二数量,则可以将所确定的候选逻辑块(trunk)确定为待替换逻辑块(trunk)。
180.也就是说,针对每个待处理条带(stripe),若所确定的候选逻辑块(trunk)的第三数量不大于目标硬盘的第二数量,由于能够实现分别利用目标硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个候选逻辑块(trunk),因此,可以将该待处理条带(stripe)中的候选逻辑块(trunk)全部确定为待替换逻辑块(trunk)。
181.可选的,再一种具体实现方式中,上述步骤42可以包括如下步骤421-423:
182.步骤421:针对每个待处理条带(stripe),将所包括的替换权重值满足预设条件的各个逻辑块(trunk),确定为候选逻辑块(trunk);
183.其中,预设条件包括:位于预设权重范围,或者,大于预设权重阈值;
184.步骤422:若所确定的候选逻辑块(trunk)的第三数量大于目标硬盘的第二数量,则从所确定的候选逻辑块(trunk)中选取第二数量个逻辑块(trunk),作为待替换逻辑块(trunk);
185.步骤423:若所确定的候选逻辑块(trunk)的第三数量不大于目标硬盘的第二数量,将所确定的候选逻辑块(trunk)确定为待替换逻辑块(trunk)。
186.可选的,一种具体实现方式中,每个待处理条带(stripe)中的待替换逻辑块(trunk)的确定方式,可以包括如下步骤43:
187.步骤43:将每个待处理条带中属于热点硬盘的逻辑块,确定为每个待处理条带中的待替换逻辑块。
188.在本具体实现方式中,目标raid所包括的各个初始硬盘中可以存在热点硬盘,从而,上述热点硬盘的性能可以成为目标raid的性能瓶颈,降低目标raid的运行性能,因此,可以将各个待处理条带(stripe)中包括的属于上述热点硬盘的逻辑块(trunk)替换掉,以优化目标raid的整体运行性能。
189.基于此,便可以首先确定目标raid所包括的各个初始硬盘中的热点硬盘,进而,将每个待处理条带(stripe)中属于热点硬盘的逻辑块(trunk)确定为待替换逻辑块(trunk)。
190.可选的,可以将目标raid所包括的各个初始硬盘中,在指定时长内,异步i/o次数大于预设次数阈值的初始硬盘,确定为热点硬盘。
191.下面,对上述步骤s303中,利用目标硬盘中的用于替换的逻辑块替换每个待处理条带中的待替换逻辑块,进行举例说明。
192.可选的,一种具体实现方式中,上述步骤s303可以包括如下步骤51:
193.步骤51:针对每个待处理条带,若该待处理条带中的待替换逻辑块的第三数量不小于目标硬盘的第二数量,则分别利用每个目标硬盘中的一个用于替换的逻辑块替换每个待处理条带中的一个待替换逻辑块。
194.在本具体实现方式中,针对所确定的每个待处理条带(stripe),可以首先确定该待处条带(stripe)中的待替换逻辑块(trunk),并得到待替换逻辑块(trunk)的第三数量,从而,便可以确定该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量与所确定的目标硬盘的第二数量的数值大小关系。
195.其中,若该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量不小于目标硬盘的第二数量,便可以分别利用每个目标硬盘中的一个用于替换的逻辑块(trunk)替换每个待处理条带(stripe)中的一个待替换逻辑块(trunk)。
196.可选的,针对每个待处理条带(stripe),若该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量等于目标硬盘的第二数量,则上述步骤51可以包括如下步骤511:
197.步骤511:分别利用每个目标硬盘中的一个用于替换的逻辑块替换每个待处理条带中的一个待替换逻辑块。
198.针对每个待处理条带(stripe),若该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量等于目标硬盘的第二数量,则该待处理条带(stripe)中的每个待替换
逻辑块(trunk)便可以分别被替换为不同硬盘中的一个逻辑块(trunk)。
199.例如,如图6-图8所示,在上述目标raid如图1所示,且目标硬盘中所划分得到的各个逻辑块(trunk)如图2所示的基础上,假设目标raid中的条带(stripe)1-20为待处理条带(stripe),且每个待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量为1,则每个待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量等于目标硬盘的第二数量。
200.这样,如图6所示,可以将条带(stripe)1中的逻辑块(trunk)tka1替换为目标硬盘中的tku1;如图7所示,将条带(stripe)2中的逻辑块(trunk)tkc2替换为目标硬盘中的tku2。依次类推,如图8所示,直至用目标硬盘中的各个逻辑块(trunk)依次分别替换条带(stripe)1-20中的待替换逻辑块(trunk),得到替换后的各个待处理条带(stripe),且替换后的每个待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘。
201.可选的,针对每个待处理条带(stripe),若该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量大于目标硬盘的第二数量,则上述步骤51可以包括如下步骤512:
202.步骤512:利用目标硬盘中的第四数量个用于替换的逻辑块,从除待处理条带之外的至少一个初始条带中,替换得到所述第四数量个指定逻辑块;并且,分别利用一个待利用逻辑块替换该待处理条带中的一个待替换逻辑块;
203.其中,第四数量为:第三数量与第二数量的差值,指定逻辑块不属于该待处理条带所包括的初始硬盘,待利用逻辑块包括:每个目标硬盘中的一个用于替换的逻辑块和第四数量个指定逻辑块。
204.针对每个待处理条带(stripe),若该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量大于目标硬盘的第二数量,则在利用每个目标硬盘中的一个用于替换的逻辑块(trunk)分别替换该待处理条带(stripe)中的一个待替换逻辑块(trunk)后,该待处理条带(stripe)中仍然存在未被替换的待替换逻辑块(trunk)。
205.例如,针对某个待处理条带(stripe),若该待处理条带(stripe)所包括的待替换逻辑块(trunk)的第三数量为3,而目标硬盘的第二数量为2,那么,在利用分别属于不同目标硬盘的两个逻辑块(trunk),替换该待处理条带(stripe)中的两个待替换逻辑块(trunk)后,该待处理条带(stripe)中仍然存在1个待替换逻辑块(trunk)。
206.进而,为了使得该待处理条带(stripe)中的每个待替换逻辑块(trunk)均被替换,且替换后的该待处理条带(stripe)所包括的多个逻辑块(trunk)分别属于不同的硬盘,可以利用不属于该待处理条带(stripe)所包括初始硬盘的逻辑块(trunk)对上述仍然存在的未被替换的待替换逻辑块(trunk)进行替换。
207.其中,可以首先计算该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量与目标硬盘的第二数量的差值,得到第四数量,则该第四数量即为:利用每个目标硬盘中的一个用于替换的逻辑块(trunk)分别替换该待处理条带(stripe)中的一个待替换逻辑块(trunk)后,该待处理条带(stripe)中仍然存在的未被替换的待替换逻辑块(trunk)的数量。
208.进而,考虑到目标raid包括的每个初始条带(stripe)中的各个逻辑块(trunk)均不属于目标硬盘,则可以利用目标硬盘中的第四数量个用于替换的逻辑块(trunk),从除该待处理条带(stripe)之外的至少一个初始条带(stripe)中,替换第四数量个指定逻辑块(trunk),并且,所替换得到的第四数量个指定逻辑块均不属于该待处理条带(stripe)所包
括的初始硬盘。
209.这样,由于目标硬盘的数量与指定逻辑块(trunk)的数量的和值等于该待处理条带(stripe)中的待替换逻辑块(trunk)的数量,因此,便可以利用每个目标硬盘中的一个用于替换的逻辑块(trunk)以及每个指定逻辑块(trunk),分别替换该待处理条带(stripe)中的各个待替换逻辑块(trunk)。也就是说,该待处理条带(stripe)中的每个待替换逻辑块(trunk)可以被替换为一个指定逻辑块(trunk)或一个目标硬盘中的一个逻辑块(trunk)。
210.也就是说,可以从每个目标硬盘中确定一个用于替换的逻辑块,得到第二数量个属于目标硬盘的逻辑块,进而,可以将上述确定的第二数量个属于目标硬盘的逻辑块和上述替换得到的第四数量个指定逻辑块作为待利用逻辑块,从而,可以分别利用一个待利用逻辑块替换该待处理条带中的一个待替换逻辑块。
211.其中,为了保证替换后的除待处理条带之外的至少一个初始条带(stripe)仍然是可用于进行数据写入的条带(stripe),因此,所得到的第四数量个指定逻辑块(trunk)中,属于同一初始条带(stripe)的指定逻辑块(trunk)被分别替换为属于不同目标硬盘的一个逻辑块(trunk),这样,替换后的除待处理条带之外的至少一个初始条带(stripe)所包括的各个逻辑块(trunk)仍然均属于不同的硬盘。
212.并且,为了保证替换后的该待处理条带(stripe)仍然是可用于进行数据写入的条带(stripe),由于上述各个指定逻辑块(trunk)是用于替换该待处理条带(stripe)中的待替换逻辑块(trunk)的,而该待处理条带(stripe)中未被替换的各个逻辑块(trunk)将得以保留,因此,各个指定逻辑块(trunk)所属的初始硬盘,均与该待处理条带(stripe)中未被替换的各个逻辑块(trunk)所属的初始硬盘不同。
213.这样,便可以利用每个目标硬盘中的一个逻辑块(trunk)以及每个指定逻辑块(trunk),分别替换该待处理条带(stripe)所包括的各个待替换逻辑块(trunk)。
214.例如,如图9-图12所示,其中,图9为目标raid中的三个初始条带(stripe),进而,如图10所示,当初始硬盘i和初始硬盘j是故障硬盘时,按照从上至下的顺序,第一个初始条带(stripe)为不包括故障逻辑块(trunk)的初始条带(stripe),第二个初始条带(stripe)包括故障逻辑块(trunk)tki2,第三个初始条带(stripe)包括故障逻辑块(trunk)tki3和tkj3。则可以确定第二个初始条带(stripe)和第三个初始条带(stripe)为待处理条带(stripe),且第二个初始条带(stripe)中的待替换逻辑块(trunk)为逻辑块(trunk)tki2,第三个初始条带(stripe)中的待替换逻辑块(trunk)为逻辑块(trunk)tki3和tkj3。
215.进而,当目标硬盘如图2所示时,如图11所示,针对上述第二个初始条带(stripe),利用目标硬盘中的逻辑块(trunk)tku1替换该第二个初始条带(stripe)中的待替换逻辑块(trunk)tki2,得到替换后的待处理条带(stripe);针对上述第三个初始条带(stripe),利用目标硬盘中的逻辑块(trunk)tku2替换该第三个初始条带(stripe)中的待替换逻辑块(trunk)tki3。
216.之后,如图12所示,利用目标硬盘中的逻辑块(trunk)tku3替换上述第一个初始条带(stripe)中的逻辑块(trunk)tka1,从而,得到替换出来的指定逻辑块(trunk)tka1,进而,便可以利用该指定逻辑块(trunk)tka1替换第三个初始条带(stripe)中的待替换逻辑块(trunk)tkj3。
217.如前所述,在有些情况下,用于构建上述目标raid的多个初始硬盘中可能存在故
障硬盘,这样,为了保证写入到包括属于故障硬盘的逻辑块(trunk)的初始条带(stripe)中的数据的完整性和安全性,可以将该初始条带(stripe)中的属于故障硬盘的逻辑块(trunk)替换为目标硬盘中的逻辑块(trunk)。
218.基于此,可选的,一种具体实现方式中,如图13所示,上述步骤s302,从目标raid包括的多个初始条带中,确定各个待处理条带,可以包括如下步骤s3021;
219.s3021:将目标raid包括的多个初始条带中,包括故障逻辑块的各个条带,确定为各个待处理条带;
220.相应的,在本具体实现方式中,本发明实施例提供的一种存储资源处理方法还可以包括如下步骤s305:
221.s305:针对每个待处理条带,将该待处理条带所包括的故障逻辑块,确定为该故障条带中的待替换逻辑块。
222.在本具体实现方式中,电子设备可以首先检测上述目标raid所包括的多块初始硬盘中是否存在故障硬盘,以及,上述目标raid所包括的多块初始硬盘中的各个逻辑块(trunk)中是否存在发生故障的逻辑块(trunk)。
223.其中,当上述目标raid所包括的多块初始硬盘中存在故障硬盘,和/或,上述目标raid所包括的多块初始硬盘中的各个逻辑块(trunk)中存在故障逻辑块(trunk)时,可以将发生故障的逻辑块(trunk),以及属于故障硬盘的逻辑块(trunk)确定为故障逻辑块(trunk),并且,故障硬盘的数量可以是一个,也可以是多个。
224.进而,电子设备便可以从上述目标raid中的多个初始条带(stripe)中,确定包括故障逻辑块(trunk)的各个初始条带(stripe),并将所确定的包括故障逻辑块(trunk)的各个条带(stripe),确定为各个待处理条带(stripe)。其中,每个待处理条带(stripe)中可以包括至少一个故障逻辑块(trunk)。
225.可选的,另一种具体实现方式中,上述步骤s303中可以包括如下步骤52:
226.步骤52:针对每个待处理条带,若第三数量小于第二数量,则从目标硬盘中选取第三数量个硬盘作为待利用硬盘,并分别利用所选取的各个待利用硬盘中的一个逻辑块替换每个待处理条带中的一个待替换逻辑块。
227.在本具体实现方式中,针对所确定的每个待处理条带(stripe),可以首先确定该待处条带(stripe)中的待替换逻辑块(trunk),并得到待替换逻辑块(trunk)的第三数量,从而,便可以确定该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量与所确定的目标硬盘的第二数量的数值大小关系。
228.其中,若该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量小于目标硬盘的第二数量,可以利用部分目标硬盘中的逻辑块(trunk)对该待处理条带(stripe)中的待替换逻辑块(trunk)进行替换。也就是说,可以存在不对该待处理条带(stripe)中的待替换逻辑块(trunk)进行替换的目标硬盘。
229.基于此,可以从目标硬盘中选取第三数量个硬盘作为待利用硬盘,并分别利用所选取的各个待利用硬盘中的一个逻辑块(trunk)替换每个待处理条带(stripe)中的一个待替换逻辑块(trunk)。
230.例如,针对某个待处理条带(stripe),若该待处理条带(stripe)所包括的待替换逻辑块(trunk)的第三数量为2,而目标硬盘的第二数量为3,那么,可以在3个目标硬盘中选
取2个目标硬盘作为待利用硬盘,并利用分别从所选取的目标硬盘中确定一个逻辑块(trunk),并利用从所选取的目标硬盘中确定的两个逻辑块(trunk),替换该待处理条带(stripe)中的两个待替换逻辑块(trunk)。
231.其中,可选的,一种具体实现方式中,上述步骤52可以包括如下步骤521:
232.步骤521:基于每个目标硬盘的硬盘信息,从所述目标硬盘中选取所述第三数量个硬盘作为待利用硬盘;
233.其中,每个目标硬盘的硬盘信息至少包括每个目标硬盘的总容量、每个目标硬盘的空余容量,或者,每个目标硬盘的健康值。
234.在本具体实现方式中,在该待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量小于目标硬盘的第二数量的情况下,可以确定每个目标硬盘的硬盘信息,并根据所确定的硬盘信息,从各个目标硬盘中选取第三数量个硬盘作为待利用硬盘。
235.其中,每个目标硬盘的硬盘信息至少包括每个目标硬盘的总容量、每个目标硬盘的空余容量,或者,每个目标硬盘的健康值。
236.也就是说,可以至少根据每个目标硬盘的的总容量、每个目标硬盘的空余容量,或者,每个目标硬盘的健康值,从各个目标硬盘中选取第三数量个硬盘作为待利用硬盘。
237.例如,按照健康值从高到低排序,选取排列在前第三数量位的目标硬盘作为待利用硬盘。又例如,按照空余容量从高到低排序,选取排列在前第三数量位的目标硬盘作为待利用硬盘。再例如,按照空余容量占总容量的百分比从高到低排序,选取排列在前第三数量位的目标硬盘作为待利用硬盘等。
238.又例如,在所插入的多个新增硬盘的资源等级相同时,可以为每个新增硬盘设置相同大小的随机值取值子区间,从而,在确定出第二数量个目标硬盘时,可以在该第二数量个目标硬盘的随机值取值子区间构成的取值范围内选取第三数量个随机值,并确定所选取的每个随机值所属的随机值取值子区间。针对所选取的每个随机值,该第二数量个目标硬盘中,所设置的随机值取值子区间为该随机值所在的随机值取值子区间的目标硬盘即为所确定的待利用硬盘。
239.又例如,在所插入的多个新增硬盘的资源等级不同时,可以按照各个新增硬盘的资源等级的不同,为每个新增硬盘设置不同的权重,从而,在确定出第二数量个目标硬盘时,可以在该第二数量个目标硬盘的权重值构成的取值范围内随机选取第三数量个随机值,则权重值为该随机值的目标硬盘即为所确定的待利用硬盘。
240.在上述例子中,利用随机值确定待利用硬盘可以离散化处理新条带(stripe)的组成,避免规律性选择待利用硬盘所导致的硬盘异常后数据的规律性丢失的问题,提高所写入数据的安全性。
241.再例如,各个目标硬盘的总容量可能不一致,为了保证各个目标硬盘的使用均衡,可以使总容量较大的目标硬盘较多且不连续的被确定为待利用硬盘,因此,可以根据各个目标硬盘空闲容量的比重,动态调整各个目标硬盘的取值区间或权重。
242.示例性的,存在两个目标硬盘,第一个目标硬盘的总容量为4t,第二个目标硬盘的总容量为8t,每个目标硬盘中所划分的每个逻辑块(trunk)的大小为128k。假设可用容量1t用数值1表示,则总容量为4t的目标硬盘的容量比重可以用数值4表示,而总容量为8t的目标硬盘的容量比重可以用数值8表示,进而,可以根据上述两个新增硬盘的容量比重的比
值,设置总容量为4t的目标硬盘的随机值取值子区间为1-40,总容量为8t的目标硬盘的随机值取值子空间为41-120,则随机值的取值范围为1-120。进而,在确定一个待利用硬盘时,可以在1-120内进行随机值获取,随机值落在哪一个目标硬盘的取值区间内,则将该目标硬盘确定为待利用硬盘。这样,即可以保证总容量较大的目标被确定为待利用硬盘的次数相对较多,又保证了将总容量较大的目标硬盘确定为待利用硬盘的情况是离散分布的。
243.此外,在确定待利用硬盘时,还可以进一步考虑目标硬盘中的空闲容量的分布,从而,根据目标硬盘中的空闲容量的分布,动态调整各个目标硬盘的权重,从而,目标硬盘中的空闲容量的分布的均衡性。
244.需要强调的是,上述硬盘信息所包括的信息类型,以及选取待利用硬盘的举例,仅仅是对上述步骤521的举例说明,任何能够基于每个目标硬盘的硬盘信息,从所述目标硬盘中选取所述第三数量个硬盘作为待利用硬盘的实现方式,以及任何属于每个目标硬盘的硬盘信息均属于本发明实施例的保护范围。
245.可选的,再一种具体实现方式中,上述步骤s303可以包括如下步骤51和52:
246.步骤51:针对每个待处理条带,若该待处理条带中的待替换逻辑块的第三数量不小于目标硬盘的第二数量,则分别利用每个目标硬盘中的一个逻辑块替换每个待处理条带中的一个待替换逻辑块;
247.步骤52:针对每个待处理条带,若第三数量小于第二数量,则从目标硬盘中选取第三数量个硬盘作为待利用硬盘,并分别利用所选取的各个待利用硬盘中的一个逻辑块替换每个待处理条带中的一个待替换逻辑块。
248.在很多情况下,由于待存储数据量的增加等原因,上述目标raid的存储空间将不能满足实际应用中数据存储的需求,因此,可以利用目标硬盘对上述目标raid进行扩容。即通过逻辑块(trunk)替换,将目标硬盘中的逻辑块(trunk)添加至上述目标raid的初始条带(stripe)中,并可以基于从初始条带(stripe)中替换出来的属于各个初始硬盘中的逻辑块(trunk)构建新的条带(stripe),从而,借助于目标硬盘中的逻辑块(trunk),可以增加目标raid所包括的条带(stripe)的数量,进而,增加目标raid的存储空间。
249.其中,由于目标raid所包括的每条条带(stripe)中包括的逻辑块(trunk)属于不同的硬盘,因此,可以对各个待处理条带(stripe)进行分组,从而,在进行逻辑块(trunk)替换时,可以使得属于同一条带(stripe)组的被替换的各个待替换逻辑块(trunk)分别属于不同的初始硬盘,从而,可以利用属于同一条带(stripe)组的被替换的各个待替换逻辑块(trunk),构建新的条带(stripe)。
250.基于此,可选的,一种具体实现方式中,每预设数量个待处理条带(stripe)被划分为一个条带(stripe)组,并且,属于同一条带(stripe)组的被替换的各个待替换逻辑块(trunk)分别属于不同的初始硬盘。
251.在本具体实现方式中,可以根据目标raid所包括的每条条带(stripe)中包括的逻辑块(trunk)的数量,以及所确定的目标硬盘的数量,确定上述预设数量。之后,便可以按照该预设数量,对各个待处理条带(stripe)进行分组,从而,将每预设数量个待处理条带(stripe)划分为一个条带(stripe)组。进而,针对每个条带(stripe)组,便可以利用目标硬盘中的逻辑块(trunk)对该条带(stripe)组中的各个待处理条带(stripe)中的待替换逻辑块(trunk)进行替换,并且,属于该条带(stripe)组的被替换的各个待替换逻辑块(trunk)
分别属于不同的初始硬盘。
252.其中,对于每个条带(stripe)组而言,针对该条带(stripe)组中的第一个待处理条带(stripe),分别利用每个目标硬盘或者每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk);然后,针对该条带(stripe)组中的第二个待处理条带(stripe),分别利用每个目标硬盘或者每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk),并且,第二个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk),与之前已完成替换的各个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk)均属于不同的初始硬盘;之后,针对该条带(stripe)组中的第三个待处理条带(stripe),分别利用每个目标硬盘或者每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk),并且,第三个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk),与之前已完成替换的各个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk)均属于不同的初始硬盘;依次类推,直至针对该条带(stripe)组中的第预设数量个待处理条带(stripe),分别利用每个目标硬盘或者每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk),并且,第预设数量个指定条带(stripe)中所替换出来的待替换逻辑块(trunk),与之前已完成替换的各个待处理条带(stripe)所替换出来的待替换逻辑块(trunk)均属于不同的初始硬盘。至此,便可以得到针对该条带(stripe)组中的预设数量个待处理条带(stripe),被替换出来的均属于不同初始硬盘的全部待替换逻辑块(trunk)。
253.进而,在完成对上述该条带(stripe)组中预设数量个待处理条带(stripe)中的待替换逻辑块(trunk)的替换后,针对下一条带(stripe)组中的待进行待替换逻辑块(trunk)替换的预设数量个待处理条带(stripe)而言,可以重新循环上述过程,得到针对下一条带(stripe)组中的预设数量个待处理条带(stripe),被替换出来的均属于不同初始硬盘的全部待替换逻辑块(trunk)。
254.其中,可选的,在实际应用中,电子设备可以不执行具体的针对待处理条带(stripe)的分组动作,因此,在对待处理条带(stripe)进行待替换逻辑块(trunk)替换时,可以针对所确定的第一个待处理条带(stripe),分别利用每个目标硬盘或每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk);然后,针对所确定的第二个待处理条带(stripe),分别利用每个目标硬盘或每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk),并且,第二个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk),与之前已完成替换的各个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk)均属于不同的初始硬盘;之后,针对所确定的第三个待处理条带(stripe),分别利用每个目标硬盘或每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk),并且,第三个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk),与之前已完成替换的各个待处理条带(stripe)中所替换出来的待替换逻辑块(trunk)均属于不同的初始硬盘;依次类推,直至针对第预设数量个待处理条带(stripe),分别利用每个目标硬盘或每个待利用硬盘中的一个逻辑块(trunk)替换该待处理条带(stripe)中的一个待替换逻辑块(trunk),并且,第预设数量个指定条带(stripe)中所替换出来的待替换逻辑块(trunk),与
之前已完成替换的各个待处理条带(stripe)所替换出来的待替换逻辑块(trunk)均属于不同的初始硬盘。至此,便可以得到针对上述预设数量个待处理条带(stripe),被替换出来的均属于不同初始硬盘的全部待替换逻辑块(trunk)。
255.进而,在完成对每预设数量个待处理条带(stripe)中的待替换逻辑块(trunk)的替换后,针对下一个待进行待替换逻辑块(trunk)替换的待处理条带(stripe)而言,可以重新将其确定为第一个待处理条带(stripe),从而,循环上述过程,得到针对下一组预设数量个待处理条带(stripe),被替换出来的均属于不同初始硬盘的全部待替换逻辑块(trunk)。
256.其中,由于每个待处理条带(stripe)中被目标硬盘中的逻辑块(trunk)替换的待替换逻辑块(trunk)的数量不大于上述第二数量,而待创建的新的条带(stripe)中所包括的逻辑块(trunk)的数量为上述第一数量,因此,针对每个条带(stripe)组,被替换的全部待替换逻辑块(trunk)的数量不大于第一数量;进而,考虑到基于被替换的各个待替换逻辑块(trunk)所创建的新的条带(stripe)中可以包括目标硬盘中的逻辑块(trunk),那么,第一数量与被替换的全部待替换逻辑块(trunk)的数量的差值不大于目标硬盘的第二数量。
257.也就是说,针对每个条带(stripe)组,属于该条带(stripe)组的被替换的各个待替换逻辑块(trunk)的数量不大于上述第一数量,且不小于第一数量与第二数量的差值。
258.并且,针对每个条带(stripe)组,若每个待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量不小于目标硬盘的第二数量,则属于该条带(stripe)组的被替换的各个待替换逻辑块(trunk)的数量为:上述第二数量与预设数量的乘积。若待处理条带(stripe)中的待替换逻辑块(trunk)的第三数量小于目标硬盘的第二数量,则属于该条带(stripe)组的被替换的各个待替换逻辑块(trunk)的数量为:上述第三数量与预设数量的乘积。
259.例如,每个条带(stripe)所包括的逻辑块(trunk)的第一数量为20,目标硬盘的第二数量为1,且每个待处理条带(stripe)中包括的待替换逻辑块(trunk)的数量为1,则上述预设数量可以为20,则所创建的新的条带(stripe)所包括的20个待替换逻辑块(trunk)分别属于各个初始硬盘;
260.又例如,每个条带(stripe)所包括的逻辑块(trunk)的第一数量为20,目标硬盘的第二数量为1,且每个待处理条带(stripe)中包括的待替换逻辑块(trunk)的数量为1,则上述预设数量可以为19,则所创建的新的条带(stripe)包括的19个分别属于一个初始硬盘的待替换逻辑块(trunk)和一个属于目标硬盘的逻辑块(trunk)。
261.可选的,在确定各个待处理条带(stripe)时,可以每次只确定一个待处理条带(stripe),并在对该待处理条带(stripe)中的待替换逻辑块(trunk)进行替换后,确定下一待处理条带(stripe),直至所替换的待处理条带(stripe)的数量达到预设数量。
262.可选的,在确定各个待处理条带(stripe)时,可以每次同时确定多个待处理条带(stripe),并在对该多个待处理条带(stripe)中的待替换逻辑块(trunk)分别进行替换后,确定下一组多个待处理条带(stripe),直至所替换的待处理条带(stripe)的数量达到预设数量。
263.可选的,在确定各个待处理条带(stripe)时,可以每次同时确定预设数量个待处理条带(stripe),即确定包括预设数量个待处理条带(stripe)的一个条带(stripe)组,并在对该条带(stripe)组中的各个待处理条带(stripe)中的待替换逻辑块(trunk)分别进行
替换后,确定下一条带(stripe)组。
264.进而,当目标硬盘中不存在可用的逻辑块(trunk)时,由于无法利用目标硬盘中的逻辑块(trunk)替换待处理条带(stripe)中的待替换逻辑块(trunk),从而,也就无法继续通过对待处理条带(stripe)中的待替换逻辑块(trunk)的替换实现对目标radi的资源处理,因此,完成对上述目标raid的资源处理。
265.也就是说,可选的,当目标raid包括的多个初始条带(stripe)均作为待处理条带(stripe)且被替换时,或者,当目标硬盘中不存在可用的逻辑块(trunk)时,完成对上述目标raid的资源处理。
266.如前所述,利用本发明实施例提供的存储资源处理方法,可以实现对目标raid的扩容和修复。因此,在实际应用中,可以利用本发明实施例提供的存储资源处理方法,分别对目标raid进行扩容或修复,也可以交替执行,实现对目标raid进行扩容和修复。
267.也就是说,利用本发明实施例提供的存储资源处理方法,可以仅仅对目标raid进行扩容;也可以仅仅对目标raid进行修复;也可以在对目标raid进行扩容后,若扩容后的目标raid中存在故障逻辑块(trunk),则可以进一步对扩容后的目标raid进行修复;还可以在对目标raid进行修复后,进一步对修复后的目标radi进行扩容。这都是合理的。
268.相应于上述本发明实施例提供的一种存储资源处理方法,本发明实施例还提供了一种存储资源处理装置。
269.图14为本发明实施例提供的一种存储资源处理装置的结构示意图,如图14所示,所述装置包括:
270.raid确定模块1401,用于确定待处理的目标raid;其中,所述目标raid包括多块初始硬盘,每块初始硬盘均被划分为多个逻辑块,且属于不同初始硬盘的各个逻辑块的大小相同,所述目标raid中的每个初始条带包括:分别属于第一数量块初始硬盘的所述第一数量个逻辑块,所述第一数量不大于所述多块初始硬盘的数量;
271.条带确定模块1402,用于从所述目标raid包括的多个初始条带中,确定各个待处理条带;
272.条带处理模块1403,用于利用目标硬盘中的用于替换的逻辑块替换每个待处理条带中的待替换逻辑块,以使替换后的每个待处理条带所包括的多个逻辑块分别属于不同的硬盘;其中,所述目标硬盘为新增硬盘,并且,所述目标硬盘中的用于替换的各个逻辑块的大小与每个初始硬盘中的各个逻辑块的大小相同。
273.以上可见,应用本发明实施例提供的方案,在对目标raid的存储资源进行处理时,可以利用新增的目标硬盘中的逻辑块替换目标raid中的各个待处理条带中的待替换逻辑块,得到替换后的各个待处理条带,并且,替换后的每个待处理条带所包括的多个逻辑块分别属于不同的硬盘。在上述处理过程中,针对替换后的每个待处理条带以及目标raid中除待处理条带之外的各个条带,可以正常地执行数据写入操作等各类操作,从而,可以无需停止现有业务,保证现有业务的正常运行;并且,由于替换后的每个待处理条带中包括目标硬盘中的逻辑块,从而,在对替换后的待处理条带执行数据写入操作时,待写入的数据可以顺利地写入到目标硬盘中,从而,可以无需增加额外的磁盘带宽开销。这样,可以能够在不影响现有业务运行和不增加额外磁盘带宽开销的基础上,实现对raid的存储资源的快速便捷处理。
274.可选的,一种具体实现方式中,所述条带处理模块1403,包括:
275.第一处理子模块,用于针对每个待处理条带,若该待处理条带中的待替换逻辑块的第三数量不小于目标硬盘的第二数量,则分别利用每个目标硬盘中的一个用于替换的逻辑块替换该待处理条带中的一个待替换逻辑块;和/或,
276.第二处理子模块,用于针对每个待处理条带,若所述第三数量小于所述第二数量,则从所述目标硬盘中选取所述第三数量个硬盘作为待利用硬盘,并分别利用所选取的各个待利用硬盘中的一个用于替换的逻辑块替换该待处理条带中的一个待替换逻辑块。
277.可选的,一种具体实现方式中,每预设数量个待处理条带被划分为一个条带组,并且,属于同一条带组的被替换的各个待替换逻辑块分别属于不同的初始硬盘。
278.可选的,一种具体实现方式中,所述装置还包括:
279.第一确定模块,用于针对每个待处理条带,基于该待处理条带中各个逻辑块所属初始硬盘的硬盘信息和所述目标raid的硬盘信息,确定该待处理条带中各个逻辑块的替换权重值;基于每个待处理条带中各个逻辑块的替换权重值和所述目标硬盘的第二数量,确定每个待处理条带中的待替换逻辑块;或者,将每个待处理条带中属于热点硬盘的逻辑块,确定为每个待处理条带中的待替换逻辑块。
280.可选的,一种具体实现方式中,所述第一确定模块包括:
281.候选逻辑块确定子模块,用于针对每个待处理条带,将所包括的替换权重值满足预设条件的各个逻辑块,确定为候选逻辑块;其中,所述预设条件包括:位于预设权重范围,或者,大于预设权重阈值;
282.第一确定子模块,用于若所确定的候选逻辑块的第三数量大于所述目标硬盘的第二数量,则从所确定的候选逻辑块中选取所述第二数量个逻辑块,作为待替换逻辑块;和/或,第二确定子模块,用于若所确定的候选逻辑块的第三数量不大于所述目标硬盘的第二数量,将所确定的候选逻辑块确定为待替换逻辑块。
283.可选的,一种具体实现方式中,所述第一确定子模块具体用于:
284.基于每个目标硬盘的硬盘信息,从所述目标硬盘中选取所述第三数量个硬盘作为待利用硬盘;其中,每个目标硬盘的硬盘信息至少包括每个目标硬盘的总容量、每个目标硬盘的空余容量,或者,每个目标硬盘的健康值。
285.可选的,一种具体实现方式中,所述条带确定模块1402具体用于:
286.若所述多个初始条带均已被写入数据,则将所述多个初始条带中的各个初始条带确定为待处理条带;或者,
287.若所述多个初始条带中存在空白条带;则将所述多个初始条带中已被写入数据的各个初始条带,和/或,各个空白条带确定为待处理条带。
288.可选的,一种具体实现方式中,所述若所述第三数量不小于所述第二数量,则第一处理子模块具体用于:
289.若所述第三数量等于所述第二数量,则分别利用每个目标硬盘中的一个用于替换的逻辑块替换每个待处理条带中的一个待替换逻辑块;
290.若所述第三数量大于所述第二数量,则利用所述目标硬盘中的第四数量个用于替换的逻辑块,从除所述待处理条带之外的至少一个初始条带中,替换得到所述第四数量个指定逻辑块;并且,分别利用一个待利用逻辑块替换该待处理条带中的一个待替换逻辑块;
其中,所述第四数量为:所述第三数量与所述第二数量的差值,所述指定逻辑块不属于该待处理条带所包括的初始硬盘,所述待利用逻辑块包括:每个目标硬盘中的一个用于替换的逻辑块和所述第四数量个指定逻辑块。
291.可选的,一种具体实现方式中,所述条带确定模块1402具体用于:
292.将所述目标raid包括的多个初始条带中,包括故障逻辑块的各个条带,确定为各个待处理条带;
293.所述装置还包括:
294.第二确定模块,用于针对每个待处理条带,将该待处理条带所包括的故障逻辑块,确定为该故障条带中的待替换逻辑块.
295.可选的,一种具体实现方式中,所述装置还包括:
296.条带创建模块,用于基于被替换的各个待替换逻辑块创建新的条带。
297.可选的,一种具体实现方式中,所述装置还包括:
298.硬盘确定模块,用于从各个新增硬盘中确定目标硬盘。
299.可选的,一种具体实现方式中,所述硬盘确定模块,具体用于:
300.针对每个待处理条带,基于各个新增硬盘的硬盘信息,从各个新增硬盘中确定目标硬盘;或者,
301.在预设的随机数取值范围中进行随机数选取,并将所选取的随机数所属的随机值取值子区间对应的新增硬盘,确定为目标硬盘;其中,所述随机数取值范围是由各个新增硬盘对应的随机值取值子区间构成的;或者,
302.在预设的权重取值范围中进行权重选取,并将具有所选取的权重的新增硬盘确定为目标硬盘;其中,所述权重取值范围是由各个新增硬盘的权重构成的。
303.可选的,一种具体实现方式中,所述装置还包括:
304.硬盘划分模块,用于在检测到各个新增硬盘后,对所检测到的各个新增硬盘进行逻辑块划分。
305.相应于上述本发明实施例提供的一种存储资源处理方法,本发明实施例还提供了一种电子设备,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信,
306.存储器1503,用于存放计算机程序;
307.处理器1501,用于执行存储器1503上所存放的程序时,实现上述本发明实施例提供的任一存储资源处理方法的步骤。
308.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,
dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
309.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述本发明实施例提供的任一raid的扩容方法的步骤。
310.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述本发明实施例提供的任一raid的扩容方法的步骤。
311.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
312.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
313.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
314.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献