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

数据迁移方法及装置与流程

2022-05-18 07:56:45 来源:中国专利 TAG:


1.本技术涉及数据迁移技术领域,特别是涉及一种数据迁移方法及装置。


背景技术:

2.数据迁移领域,一般当已有存储设备的存储空间不足之后,需要添加新的存储设备进行存储。为了提高数据的存储速度,需要将数据从存储空间不足的设备往新的存储设备中迁移,使各个存储设备中的存储容量相接近,达到数据均衡的效果。已有的数据迁移方法需用户手动选择迁移文件,无法实现数据的自动选择和迁移。


技术实现要素:

3.本技术提供一种数据迁移方法及装置,可以自动选择迁移文件。
4.为达到上述目的,本技术提供一种数据迁移方法,该方法包括:
5.查询多个存储设备的文件存储量;
6.确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备;
7.从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组,第一存储设备中文件组是基于文件的唯一标识信息对第一存储设备中文件进行均匀分组得到的,文件的唯一标识信息是对文件的初始标识信息编码生成的;
8.将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备,使得每个第一存储设备与其对应的第二存储设备的文件存储量大致相同。
9.其中,从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组的步骤包括:
10.基于唯一标识信息对每个第一存储设备的所有文件进行分组;
11.从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;
12.其中,每个第一存储设备的迁移文件组的组数是距离每个第一存储设备的预设值最近的整数,预设值等于第一乘积除以两倍的每个第一存储设备的总存储量得到的值,第一乘积等于每个第一存储设备与其对应的第二存储设备的文件存储量的差值和每个第一存储设备中文件组的总组数的乘积。
13.其中,文件的唯一标识信息是对文件的初始标识信息二进制化而生成的,
14.基于唯一标识信息对每个第一存储设备的所有文件进行分组的步骤包括:
15.基于文件的唯一标识信息的最后预设位数,对每个第一存储设备的所有文件进行分组。
16.其中,确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备的步骤包括:
17.确定出多个存储设备中存储量最多的第一存储设备和存储量最少的第二存储设备,并确定存储设备的平均存储量;
18.在第一存储设备的存储量和平均存储量的差值大于第一阈值,和/或,平均存储量和第二存储设备的存储量的差值大于第一阈值的情况下,执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组的步骤。
19.其中,将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤之后包括:
20.返回执行确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备的步骤,直至第一存储设备的存储量和平均存储量的差值小于第一阈值、且平均存储量和第二存储设备的存储量的差值小于第一阈值。
21.其中。文件大小小于第二阈值的第一文件及其唯一标识信息一同存储于其所属存储设备的数据库中。
22.其中,文件大小大于第二阈值的第二文件存储于其所属存储设备的存储器中;
23.确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备的步骤包括:
24.确定出多个存储设备中第一文件存储量较多的至少一个第一存储设备和第一文件存储量较少的至少一个第二存储设备;
25.确定出多个存储设备中第二文件存储量较多的至少一个第一存储设备和第二文件存储量较少的至少一个第二存储设备;
26.执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤,以将第一文件的第一存储设备中的至少一个迁移文件组迁移至第一文件的第二存储设备,将第二文件的第一存储设备中的至少一个迁移文件组迁移至第二文件的第二存储设备。
27.其中,确定出多个存储设备中第一文件存储量较多的至少一个第一存储设备和第一文件存储量较少的至少一个第二存储设备的步骤包括:确定出多个存储设备中第一文件存储数量较多的至少一个第一存储设备和第一文件存储数量较少的至少一个第二存储设备;和/或,
28.确定出多个存储设备中第二文件存储量较多的至少一个第一存储设备和第二文件存储量较少的至少一个第二存储设备的步骤包括:确定出多个存储设备中第二文件占用空间较多的至少一个第一存储设备和第二文件占用空间较少的至少一个第二存储设备。
29.其中,确定出多个存储设备中第一文件存储数量较多的至少一个第一存储设备和第一文件存储数量较少的至少一个第二存储设备的步骤包括:
30.确定出多个存储设备中第一文件存储数量最多的第一存储设备和第一文件存储数量最少的第二存储设备,并确定存储设备的第一文件存储数量平均值;
31.在第一文件的第一存储设备的第一文件存储数量和第一文件存储数量平均值的差值大于数量阈值,和/或,第一文件存储数量平均值和第一文件的第二存储设备的第一文件存储数量的差值大于数量阈值的情况下,执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤,以将第一文件的第一存储设备中的至少一个迁移文件组迁移至第一文件的第二存储设备;
32.确定出多个存储设备中第二文件占用空间较多的至少一个第一存储设备和第二
文件占用空间较少的至少一个第二存储设备的步骤包括:
33.确定出多个存储设备中第二文件占用空间最多的第一存储设备和第二文件占用空间最少的第二存储设备,并确定存储设备的第二文件占用空间平均值;
34.在第二文件的第一存储设备的第二文件占用空间和第二文件占用空间平均值的差值大于容量阈值,和/或,第二文件占用空间平均值和第二文件的第二存储设备的第二文件占用空间的差值大于容量阈值的情况下,执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤,以将第二文件的第一存储设备中的至少一个迁移文件组迁移至第二文件的第二存储设备。
35.其中,该方法应用于服务器,服务器存储有各个文件的存储地址,将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤包括:
36.将每个第一存储设备中的至少一个迁移文件组中的每个文件拷贝到对应的第二存储设备;
37.更新每个文件的存储地址;
38.删除第一存储设备中的每个文件。
39.其中,将每个第一存储设备中的至少一个迁移文件组中的每个文件拷贝到对应的第二存储设备,之后包括:
40.判断每个文件在对应的第一存储设备和第二存储设备的占用空间是否一致;
41.若每个文件在对应的第一存储设备和第二存储设备的占用空间一致,执行更新每个文件的存储地址的步骤。
42.为达到上述目的,本技术还提供一种迁移设备,该迁移设备包括:
43.迁移判断模块,迁移判断模块用于查询多个存储设备的文件存储量;确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备;
44.数据选择模块,数据选择模块用于从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组,第一存储设备中文件组是基于文件的唯一标识信息对第一存储设备中文件进行均匀分组得到的,文件的唯一标识信息是对文件的初始标识信息编码生成的;
45.迁移模块,迁移模块用于将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备,使得每个第一存储设备与其对应的第二存储设备的文件存储量大致相同。
46.其中迁移模块包括:
47.数据拷贝模块,数据拷贝模块用于将每个第一存储设备中的至少一个迁移文件组中的每个文件拷贝到对应的第二存储设备;
48.设备更新模块,设备更新模块用于更新每个文件的存储地址;
49.数据删除模块,数据删除模块用于删除第一存储设备中的每个文件。
50.为达到上述目的,本技术还提供一种迁移设备,该迁移设备包括处理器;处理器用于执行指令以实现上述方法。
51.为达到上述目的,本技术还提供一种计算机可读存储介质,其用于存储指令/程序数据,指令/程序数据能够被执行以实现上述方法。
52.本技术数据迁移方法中,先确定出存储量较多的至少一个第一存储设备和存储量
较少的至少一个第二存储设备,可以从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组,接着将每个第一存储设备的至少一个迁移文件组迁移到对应的第二存储设备中,从而实现每个第一存储设备与其对应的第二存储设备的文件存储量大致相同的目的,以使多个存储设备的文件存储量均衡,并且由于第一存储设备的文件组是基于文件的唯一标识信息进行分组的,且文件的唯一标识信息是对文件的初始标识信息编码生成的,这样通过文件的唯一标识信息分组可以将第一存储设备的文件打乱,使得不同文件组之间的文件量相差不大,从而可以以文件组为单位确定所需要迁移的文件,如此执行主体无需基于第一存储设备中每个文件的大小精确挑选迁移文件,可自动选择迁移文件,提高数据迁移处理效率,且如此直接选取一定组数的文件组进行迁移而实现第一存储设备和第二存储设备的文件存储量大致相同的目的。
附图说明
53.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
54.图1是本技术数据迁移方法一实施方式的流程示意图;
55.图2是本技术数据迁移方法另一实施方式的流程示意图;
56.图3是本技术数据迁移方法又一实施方式的流程示意图;
57.图4是本技术迁移设备一实施方式的结构示意图;
58.图5是本技术计算机可读存储介质一实施方式的结构示意图。
具体实施方式
59.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。另外,除非另外指明(例如,“或另外”或“或在替代方案中”),否则如本文所使用的术语“或”指代非排他性的“或”(即,“和/或”)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施例可以与一个或多个其它实施例组合以形成新的实施例。
60.本技术提供一种数据迁移方法,具体如图1所示,本实施方式的数据迁移方法包括以下步骤。该数据迁移方法的执行主体可为服务器。需要注意的是,以下步骤编号仅用于简化说明,并不旨在限制步骤的执行顺序,本实施方式的各步骤可以在不违背本技术技术思想的基础上,任意更换执行顺序。
61.s101:查询多个存储设备的文件存储量。
62.可以先查询多个存储设备的文件存储量,以便后续基于多个存储设备的文件存储量确定待迁出文件的第一存储设备和待迁入文件的第二存储设备。
63.在一实现方式中,本技术的数据迁移方法的执行主体(例如服务器)自身存储有每个存储设备存储的文件信息,其可基于每个存储设备存储的文件信息计算出每个存储设备的文件存储量。
64.在另一实现方式中,本技术的数据迁移方法的执行主体可与多个存储设备通信连
接,这样执行主体就可向每个存储设备发出获取文件存储量的指令,以从每个存储设备获取到每个存储设备自身的文件存储量。
65.s102:确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备。
66.基于步骤s101查询到多个存储设备的文件存储量后,可以确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备。
67.在一实现方式中,在步骤s101中,可以直接将多个存储设备中存储量最多的一个存储设备作为第一存储设备,将多个存储设备中存储量最少的一个存储设备作为第二存储设备,以便后续执行将第一存储设备中的部分文件迁移至第二存储设备,进而使得多个存储设备的存储量均衡。
68.在另一实现方式中,可以从多个存储设备中选取存储量较多的第一数量个第一存储设备和存储量较少的第二数量个第二存储设备。其中,第一数量和第二数量在此不做限定,具体可根据存储设备总数量等实际情况进行设定。例如存储设备总数量为20,则第一数量可为5,第二数量可为5。且第一数量可和第二数量相同或不相同。
69.在又一实现方式中,可以计算出存储设备的平均存储量,在步骤s102中,可以将多个存储设备中文件存储量多于平均存储量的至少一个存储设备作为第一存储设备,将多个存储设备中文件存储量少于平均存储量的至少一个存储设备作为第二存储设备。
70.s103:从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组。
71.基于上述步骤确定存储量较多的第一存储设备和存储量较少的第二存储设备之后,可以从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组,以便后续将每个第一存储设备的至少一个迁移文件组迁移到对应的第二存储设备中,从而实现每个第一存储设备与其对应的第二存储设备的文件存储量大致相同的目的,以使多个存储设备的文件存储量均衡,并且由于第一存储设备的文件组是基于文件的唯一标识信息进行分组的,且文件的唯一标识信息是对文件的初始标识信息编码生成的,这样通过文件的唯一标识信息分组可以将第一存储设备的文件打乱,使得不同文件组之间的文件量相差不大,从而可以以文件组为单位确定所需要迁移的文件,如此执行主体无需基于第一存储设备中每个文件的大小精确挑选迁移文件,可自动选择迁移文件,提高数据迁移处理效率,且如此直接选取一定组数的文件组进行迁移而实现第一存储设备和第二存储设备的文件存储量大致相同的目的。
72.在一实现方式中,已经预先基于文件的唯一标识信息将每个存储设备的所有文件进行分组,此时在步骤s103中只需从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组即可。
73.在另一实现方式中,在步骤s102判断出需要迁出文件的第一存储设备后,在步骤s103中,可以基于文件的唯一标识信息仅将每个第一存储设备的所有文件进行分组,继而从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组。
74.其中,在上述两个实现方式中,每个第一存储设备的迁移文件组的组数可以是距离每个第一存储设备的预设值最近的整数。其中,预设值等于第一乘积除以两倍的每个第一存储设备的总存储量得到的值,第一乘积等于每个第一存储设备与其对应的第二存储设备的文件存储量的差值和每个第一存储设备中文件组的总组数的乘积。当然,在其他可替
换的实施例中,每个第一存储设备的迁移文件组的组数可以是每个第一存储设备的预设值向上舍入的整数。
75.知晓每个第一存储设备的迁移文件组的组数n后,可以从每个第一存储设备选取n个文件组作为迁移文件组。例如,可以从每个第一存储设备随机选取n个文件组作为迁移文件组,以进一步打乱文件,以使从每个第一存储设备所取的至少一个迁移文件组的文件总量接近于每个第一存储设备与其对应的第二存储设备的文件存储量差值的一半,从而使得数据迁移后第一存储设备与其对应的第二存储设备的文件存储量能够均衡。又例如,可以将每个第一存储设备的前n个文件组作为迁移文件组。
76.可以理解的是,在本技术方案中,每个第一存储设备对应有至少一个第二存储设备。具体地,可以将第一存储设备和第二存储设备一一对应,使得每一个第一存储设备都有一个对应的第二存储设备,如此设置,可以基于每个第一存储设备与其对应的第二存储设备的文件存储量的差值确定出每个第一存储设备需筛选出的迁移文件组的总数。例如,步骤s102确定出两个第一存储设备和两个第二存储设备,可以将存储量最多的第一存储设备和存储量最少的第二存储设备对应,并将存储量次多的第一存储设备和存储量次少的第二存储设备对应。
77.可选地,本技术可以通过a进制化或哈希算法等方式对文件的初始标识信息进行编码,得到文件的唯一标识信息。
78.另外,在唯一标识信息为a进制化的字符串的情况下,可以基于文件的唯一标识信息的最后预设位数(例如最后b位),将每个第一存储设备的所有文件分成多组文件组(例如ab组文件组),以便通过文件的唯一标识信息对每个第一存储设备的所有文件进行均匀分组,从而使得不同文件组之间的文件量相差不大。另外,在其他实施例中,可以基于文件的唯一标识信息的第c 1位~第c b位的字符串,将每个第一存储设备的所有文件分成ab组,其中,c为大于或等于0的整数,且c b小于或等于唯一标识信息的总字符数。
79.进一步地,文件的唯一标识信息可以是对文件的初始标识信息二进制化而生成的,这样每个第一存储设备中文件组的组数可以呈两倍变化,从而可以较为精确地控制每个第一存储设备中文件组的组数,使得分组不至于过多或过少导致不同组之间的文件量不太均衡。当然,在其他实施例中,文件的唯一标识信息也可以是对文件的初始标识信息六进制化或五进制化而生成的。
80.其中,步骤s103所指的“筛选出至少一个迁移文件组”可以理解成,筛选出至少一个迁移文件组或至少一个迁移文件组中所有文件的标识信息(可以指文件的初始标识信息、唯一标识信息或文件名),并不是指通过将第一存储设备的至少一个迁移文件组拷到执行主体上的方式筛选出至少一个迁移文件组,以避免在迁移过程中该数据迁移方法的执行主体接收过多不必要的文件导致处理速度降低。
81.另外,在第一存储设备及其对应的第二存储设备的文件存储量较为均衡的情况下,可以不将第一存储设备中的文件迁移至第一存储设备对应的第二存储设备。具体地,在步骤s103之前,可以计算出存储设备中文件的平均存储量,然后判断第一存储设备的文件存储量和平均存储量的差值是否大于第一阈值,并判断平均存储量和第一存储设备对应的第二存储设备的文件存储量的差值是否大于第一阈值;在第一存储设备的文件存储量和平均存储量的差值大于第一阈值,和/或,平均存储量和第一存储设备对应的第二存储设备的
文件存储量的差值大于第一阈值的情况下,执行步骤s103、步骤s104,以将第一存储设备的文件迁移至第一存储设备对应的第二存储设备,从而使得第一存储设备与其对应的第二存储设备的文件存储量大致相同;在第一存储设备的文件存储量和平均存储量的差值小于第一阈值,且,平均存储量和第一存储设备对应的第二存储设备的存储量的差值小于第一阈值的情况下,说明第一存储设备和第二存储设备的文件存储量相对均衡,可不执行步骤s103和步骤s104。
82.s104:将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备。
83.基于上述步骤确定每个第一存储设备待迁出的至少一个迁移文件组后,可以将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备。
84.其中,步骤s104具体可包括:执行主体可以将第一存储设备中的所有迁移文件组中的每个文件拷贝到第一存储设备对应的第二存储设备;拷贝完成后更新一半文件组中的每个文件的存储地址;接着删除第一存储设备中的所有迁移文件组中的每个文件,这样通过更新存储地址后删除的方式,保证在更新地址前执行主体还能从第一存储设备获取到迁移文件,在更新地址后执行主体能从第二存储设备获取到迁移文件,从而用户无论何时都能获取到迁移文件,能够保证用户在迁移过程中能够正常访问迁移文件。
85.其中,数据迁移方法的执行主体可存储有各个文件的存储地址,具体可存储有各个文件存储在哪个存储设备上。其中,各个文件的存储地址、唯一标识信息和/或文件大小等信息可存储于执行主体的数据库中的第一集合中。第一集合的名称file_info集合或其他名称。从而上述的“更新一半文件组中的每个文件的存储地址”可以指,数据迁移方法的执行主体可将自身存储的各个文件的存储地址信息从第一存储设备更改为第二存储设备。
86.进一步地,为进一步保证在迁移过程中能够正常访问迁移文件,可以在确定迁移文件拷贝成功的情况下,也就是说在迁移文件在第一存储设备和第二存储设备的占用空间一致的情况下,更新迁移文件的存储地址,如此设置,可以避免迁移文件未完全传输至第二存储设备导致的迁移后用户无法访问到完整文件的情况,可以保证在第二存储设备获取到完整迁移文件的情况下才更新迁移文件的存储地址,以保证迁移后用户能够访问到完整的文件。
87.为便于管理迁移过程,在整个迁移过程中,可以用标志位标注迁移文件的不同迁移状态,以便执行主体清楚每个迁移文件当前所处状态。具体地,迁移文件可以包括数据待迁移、数据已拷贝、数据已同步、数据已更新以及数据已删除这五个迁移状态。这5个迁移状态的标志位可分别为0、1、2、3、-1。
88.具体地,在迁移过程中,迁移文件的初始迁移状态为数据待迁移,其标志位为0,执行主体可将标志位为0的迁移文件从第一存储设备拷贝至第一存储设备对应的第二存储设备,拷贝后将迁移文件的标志位更改为1,即迁移文件的迁移状态更新为数据已拷贝。接着可以筛选出标志位为1的迁移文件,校验标志位为1的迁移文件在第一存储设备和第二存储设备的占用空间是否一致;若一致,代表迁移文件拷贝成功,会将拷贝成功的迁移文件的标志位改为2,以表示迁移文件的当前迁移状态更改为数据已同步。然后可以筛选出标志位为2的迁移文件,将标志位为2的迁移文件的存储地址从第一存储设备更改为第二存储设备,这样用户可以通过迁移文件的存储地址准确找到迁移文件迁移后的存储地址,然后将存储地址修改成功的迁移文件的标志位修改为3。接着可以筛选出标志位为3的迁移文件,让第
一存储设备筛除标志位为3的迁移文件,然后将删除成功的迁移文件的迁移标注位更改为-1,代表该迁移文件迁移成功。
89.为进一步便于管理迁移过程,数据迁移方法的执行主体可以将选取的一半文件组的所有文件的信息临时存放到数据库的第二集合中,以在该第二集合中管理各个迁移文件的迁移过程。本技术的数据库的类型不做限制,例如可为mongo数据库。第二集合的名称可为transfer_log集合。
90.其中,集合中存储的迁移文件的信息可以包括迁移文件的唯一标识信息、文件大小、第一存储设备、第二存储设备和标志位。
91.在本实施方式中,先确定出存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备,可以从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组,接着将每个第一存储设备的至少一个迁移文件组迁移到对应的第二存储设备中,从而实现每个第一存储设备与其对应的第二存储设备的文件存储量大致相同的目的,以使多个存储设备的文件存储量均衡,并且由于第一存储设备的文件组是基于文件的唯一标识信息进行分组的,且文件的唯一标识信息是对文件的初始标识信息编码生成的,这样通过文件的唯一标识信息分组可以将第一存储设备的文件打乱,使得不同文件组之间的文件量相差不大,从而可以以文件组为单位确定所需要迁移的文件,如此执行主体无需基于第一存储设备中每个文件的大小精确挑选迁移文件,可自动选择迁移文件,提高数据迁移处理效率,且如此直接选取一定组数的文件组进行迁移而实现第一存储设备和第二存储设备的文件存储量大致相同的目的。
92.其中,本技术还可按照文件大小区分第一文件和第二文件(即按照文件大小区分大文件和小文件),具体地文件大小小于第二阈值的文件可称为第一文件(小文件),文件大小大于第二阈值的文件可称为第二文件(大文件)。考虑到第一文件占用空间虽小但数量很多,本技术将第一文件及其唯一标识信息一同存储于其所属存储设备的数据库中,这样可以在数据库中通过第一文件的唯一标识信息查找到第一文件,避免因为“将占用空间虽小但数据很多的第一文件存储到存储器(即硬盘)中需要遍历存储器中的第一文件才能找到查找的第一文件”导致的第一文件访问速度和效率低,以提高第一文件的访问速度和效率。也可通过上述数据迁移方法迁移第一文件,使各个存储设备存储的第一文件的量均衡。具体地,如图2所示,本实施方式的第一文件的数据迁移方法可包括以下步骤。该数据迁移方法的执行主体可为服务器。需要注意的是,以下步骤编号仅用于简化说明,并不旨在限制步骤的执行顺序,本实施方式的各步骤可以在不违背本技术技术思想的基础上,任意更换执行顺序。
93.s201:查询多个存储设备的第一文件的存储量。
94.s202:确定出多个存储设备中第一文件存储量较多的至少一个第一存储设备和第一文件存储量较少的至少一个第二存储设备。
95.可选地,因为第一文件的大小均小于第二阈值,从而相比于第二文件而言,不同第一文件的占用空间差别不大,在此情况下,在步骤s201中,可以直接查询每个存储设备的第一文件的存储数量,在步骤s202中,可以确定出多个存储设备中第一文件存储数量较多的至少一个第一存储设备和第一文件存储数量较少的至少一个第二存储设备。
96.当然,在其他实施例中,在步骤s201中,可以查询每个存储设备的所有第一文件的
占用空间,在步骤s202中,可以确定出多个存储设备中第一文件占用空间较多的至少一个第一存储设备和第一文件占用空间较少的至少一个第二存储设备。
97.s203:从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组。
98.其中,文件的唯一标识信息是对文件的初始标识信息编码生成的。
99.s204:将每个第一文件的第一存储设备的所有迁移文件组迁移至对应的第一文件的第二存储设备。
100.在步骤s204中,可以将第一存储设备的数据库中存储的所有迁移文件组中的每个第一文件迁移到第二存储设备的数据库中。
101.具体地,在迁移过程中,可以先基于待迁移的第一文件的唯一标识信息从第一存储设备的数据库中查找到待迁移的第一文件,然后将查找到的待迁移的第一文件发送至第二存储设备。然后可以通过待迁移的第一文件的唯一标识信息查询第一存储设备和第二存储设备各自的数据库中待迁移的第一文件的占用空间是否相同,若相同,则说明待迁移的第一文件拷贝成功;接着将拷贝成功的第一文件的存储地址从第一存储设备更改为第二存储设备;然后删除第一存储设备的数据库中的已更改地址的第一文件的相关信息。
102.其中,为便于验证第一存储设备和第二存储设备各自的数据库中待迁移的第一文件的占用空间是否相同,存储设备的数据库中还可存储有第一文件的占用空间信息,这样就可从存储设备的数据库中直接读取到第一文件的占用空间信息,从而就可通过确认第一存储设备和第二存储设备各自的数据库中待迁移的第一文件的占用空间信息是否相同,来确认第一存储设备和第二存储设备各自的数据库中待迁移的第一文件的占用空间是否相同。
103.另外,存储设备的数据库中存储的第一文件的相关信息可以包括第一文件的唯一标识信息、文件大小、文件原始数据(即第一文件本身)。
104.另外,在步骤s202中将多个存储设备中第一文件存储数量最多的存储设备作为第一文件的第一存储设备、且将第一文件存储设备最少的存储设备作为第一文件的第二存储设备的情况下,在步骤s203之前,可以确定存储设备的第一文件存储数量平均值,判断第一文件的第一存储设备的第一文件存储数量和第一文件存储数量平均值的差值是否大于数量阈值,且判断第一文件存储数量平均值和第一文件的第二存储设备的第一文件存储数量的差值是否大于数量阈值;在第一文件的第一存储设备的第一文件存储数量和第一文件存储数量平均值的差值大于数量阈值,和/或,第一文件存储数量平均值和第一文件的第二存储设备的第一文件存储数量的差值大于数量阈值的情况下,执行步骤s203、步骤s204,以将第一文件的第一存储设备的部分第一文件迁移至第一文件的第二存储设备,从而使得第一存储设备与其对应的第二存储设备的第一文件存储量大致相同;在第一文件的第一存储设备的第一文件存储数量和第一文件存储数量平均值的差值小于数量阈值,且,第一文件存储数量平均值和第一文件的第二存储设备的第一文件存储数量的差值小于数量阈值的情况下,说明第一存储设备和第二存储设备中第一文件存储数量相对均衡,可不执行步骤s203和步骤s204。可选地,执行完步骤s204后,可以返回执行步骤s202,以基于每个存储设备当前的文件存储量自动判断是否需要迁移,并在需要迁移时执行步骤s203和步骤s204,以将当前的第一文件的第一存储设备中的部分第一文件迁移至当前的第一文件的第二存储设备,直至第一文件的第一存储设备的存储量和平均存储量的差值小于第一阈值、且平
均存储量和第一文件的第二存储设备的存储量的差值小于第一阈值。
105.可以理解的是,在第一文件的迁移判断中,第一阈值为数量阈值。其中,数量阈值可根据实际情况进行设定,在此不做限定,例如可为50或30。
106.另外,第二文件可直接存储于其所属存储设备的存储器(即硬盘)中。也可通过上述数据迁移方法迁移第二文件,使各个存储设备存储的第二文件的量均衡。具体地,如图3所示,本实施方式的第二文件的数据迁移方法可包括以下步骤。该数据迁移方法的执行主体可为服务器。需要注意的是,以下步骤编号仅用于简化说明,并不旨在限制步骤的执行顺序,本实施方式的各步骤可以在不违背本技术技术思想的基础上,任意更换执行顺序。
107.s301:查询多个存储设备的第二文件的存储量。
108.s302:确定出多个存储设备中第二文件存储量较多的至少一个第一存储设备和第二文件存储量较少的至少一个第二存储设备。
109.可选地,在步骤s301中,可以查询每个存储设备的所有第二文件的占用空间,在步骤s302中,可以确定出多个存储设备中第二文件占用空间较多的至少一个第一存储设备和第二文件占用空间较少的至少一个第二存储设备。
110.s303:从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组。
111.其中,文件的唯一标识信息是对文件的初始标识信息编码生成的。
112.s304:将每个第二文件的第一存储设备的所有迁移文件组迁移至对应的第二文件的第二存储设备。
113.在步骤s304中,可以将第一存储设备的存储器中存储的所有迁移文件组中的每个第二文件迁移到第二存储设备的存储器中。
114.具体地,在迁移过程中,可以先基于待迁移的第二文件的唯一标识信息从第一存储设备中查找到待迁移的第二文件,然后将查找到的待迁移的第二文件发送至第二存储设备。然后可以通过待迁移的第二文件的唯一标识信息查询第一存储设备和第二存储设备中待迁移的第二文件的占用空间是否相同,若相同,则说明待迁移的第二文件拷贝成功;接着将拷贝成功的第二文件的存储地址从第一存储设备更改为第二存储设备;然后删除第一存储设备的存储器中的已更改地址的第二文件。
115.其中为便于管理存储设备中的第二文件,可以将对第二文件的唯一标识信息进行处理生成的路径作为第二文件的存储路径,这样通过第二文件的唯一标识信息就可知晓第二文件的存储路径,以便于从存储设备中查找到相应的第二文件。
116.为进一步提高第二文件的查找效率,每个存储设备可以以树状结构存储第二文件。具体地,每个存储设备可基于其内存储的第二文件的存储路径建立出第二文件存储的树状结构。
117.另外,在步骤s302中将多个存储设备中第二文件占用空间最多的存储设备作为第二文件的第一存储设备、且将第二文件占用空间最少的存储设备作为第二文件的第二存储设备的情况下,在步骤s303之前,可以确定存储设备的第二文件占用空间平均值,判断第二文件的第一存储设备的第二文件占用空间和第二文件占用空间平均值的差值是否大于容量阈值,且判断第二文件占用空间平均值和第二文件的第二存储设备的第二文件占用空间的差值是否大于容量阈值;在第二文件的第一存储设备的第二文件占用空间和第二文件占用空间平均值的差值大于容量阈值,和/或,第二文件占用空间平均值和第二文件的第二存
储设备的第二文件占用空间的差值大于容量阈值的情况下,执行步骤s303、步骤s304,以将第二文件的第一存储设备的第二文件迁移至第二文件的第二存储设备,从而使得第一存储设备与其对应的第二存储设备的第二文件存储量大致相同;在第二文件的第一存储设备的第二文件占用空间和第二文件占用空间平均值的差值小于容量阈值,且,第二文件占用空间平均值和第二文件的第二存储设备的第二文件占用空间的差值小于容量阈值的情况下,说明第一存储设备和第二存储设备中第二文件占用空间相对均衡,可不执行步骤s303和步骤s304。可选地,执行完步骤s304后,可以返回执行步骤s302,以基于每个存储设备当前的文件存储量自动判断是否需要迁移,并在需要迁移时执行步骤s303和步骤s304,以将当前的第二文件的第一存储设备中的部分第二文件迁移至当前的第二文件的第二存储设备,直至第二文件的第一存储设备的存储量和平均存储量的差值小于第一阈值、且平均存储量和第二文件的第二存储设备的存储量的差值小于第一阈值。
118.可以理解的是,在第二文件的迁移判断中,第一阈值为容量阈值。其中,容量阈值可根据实际情况进行设定,在此不做限定,例如可为50g或30g。
119.可以理解的是,第一文件对应的第一阈值(即数量阈值)以及第二文件对应的第一阈值(即容量阈值)可根据实际情况进行设定,在此不做限制。且第一文件对应的第一阈值可不等于或等于第二文件对应的第一阈值,在此不做限定。
120.在具体的数据迁移过程中,可以基于上述数据迁移方法实现方式,进行至少一次迭代过程,以使多个存储设备的文件存储量均衡。
121.具体地,在第k次迭代中,可以确定多个存储设备中当前存储量最多的第一存储设备和当前存储量较少的第二存储设备,并确定存储设备的平均存储量;然后在第一存储设备的存储量和平均存储量的差值大于第一阈值,和/或,平均存储量和第二存储设备的存储量的差值大于第一阈值的情况下,筛选出从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组,第一存储设备中文件组是基于文件的唯一标识信息对第一存储设备中文件进行均匀分组得到的,文件的唯一标识信息是对文件的初始标识信息编码生成的;将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备,使得每个第一存储设备与其对应的第二存储设备的文件存储量大致相同;在第一存储设备的存储量和平均存储量的差值小于第一阈值,且,平均存储量和第二存储设备的存储量的差值小于第一阈值的情况下,终止迭代。
122.另外,存储设备的平均存储量可以等于所有存储设备的存储量之和与存储设备的总数量的比值。
123.本技术提供一种迁移设备。该迁移设备包括迁移判断模块、数据选择模块和迁移模块。
124.其中,迁移判断模块用于查询多个存储设备的文件存储量;确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备。
125.数据选择模块用于从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组,第一存储设备中文件组是基于文件的唯一标识信息对第一存储设备中文件进行均匀分组得到的,文件的唯一标识信息是对文件的初始标识信息编码生成的。
126.迁移模块用于将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备,使得每个第一存储设备与其对应的第二存储设备的文件存储量大致相同。
127.具体地,数据选择模块用于基于唯一标识信息对每个第一存储设备的所有文件进行分组;从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;其中,每个第一存储设备的迁移文件组的组数是距离每个第一存储设备的预设值最近的整数,预设值等于第一乘积除以两倍的每个第一存储设备的总存储量得到的值,第一乘积等于每个第一存储设备与其对应的第二存储设备的文件存储量的差值和每个第一存储设备中文件组的总组数的乘积。
128.数据选择模块还可用于基于文件的唯一标识信息的最后预设位数,对每个第一存储设备的所有文件进行分组。其中,文件的唯一标识信息是对文件的初始标识信息二进制化而生成的。
129.迁移判断模块用于确定出多个存储设备中存储量最多的第一存储设备和存储量最少的第二存储设备,并确定存储设备的平均存储量;在第一存储设备的存储量和平均存储量的差值大于第一阈值,和/或,平均存储量和第二存储设备的存储量的差值大于第一阈值的情况下,执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组的步骤。
130.迁移设备还可包括迭代模块,迭代模块用于执行每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤之后,返回执行确定出多个存储设备中存储量较多的至少一个第一存储设备和存储量较少的至少一个第二存储设备的步骤,直至第一存储设备的存储量和平均存储量的差值小于第一阈值且平均存储量和第二存储设备的存储量的差值小于第一阈值。
131.另外,文件大小小于第二阈值的第一文件及其唯一标识信息一同存储于其所属存储设备的数据库中。文件大小大于第二阈值的第二文件存储于其所属存储设备的存储器中。
132.迁移判断模块用于确定出多个存储设备中第一文件存储量较多的至少一个第一存储设备和第一文件存储量较少的至少一个第二存储设备;确定出多个存储设备中第二文件存储量较多的至少一个第一存储设备和第二文件存储量较少的至少一个第二存储设备;并与数据选择模块等模块通信,执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤,以将第一文件的第一存储设备中的至少一个迁移文件组迁移至第一文件的第二存储设备,将第二文件的第一存储设备中的至少一个迁移文件组迁移至第二文件的第二存储设备。
133.判断迁移模块用于确定出多个存储设备中第一文件存储数量较多的至少一个第一存储设备和第一文件存储数量较少的至少一个第二存储设备;和/或,确定出多个存储设备中第二文件占用空间较多的至少一个第一存储设备和第二文件占用空间较少的至少一个第二存储设备。
134.判断迁移模块用于确定出多个存储设备中第一文件存储数量最多的第一存储设备和第一文件存储数量最少的第二存储设备,并确定存储设备的第一文件存储数量平均值;在第一存储设备的第一文件存储数量和第一文件存储数量平均值的差值大于数量阈值,和/或,第一文件存储数量平均值和第二存储设备的第一文件存储数量的差值大于数量阈值的情况下,执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;将
每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤,以将第一文件的第一存储设备中的至少一个迁移文件组迁移至第一文件的第二存储设备;确定出多个存储设备中第二文件占用空间最多的第一存储设备和第二文件占用空间最少的第二存储设备,并确定存储设备的第二文件占用空间平均值;在第一存储设备的第二文件占用空间和第二文件占用空间平均值的差值大于容量阈值,和/或,第二文件占用空间平均值和第二存储设备的第二文件占用空间的差值大于容量阈值的情况下,执行从每个第一存储设备的所有文件组中筛选出至少一个迁移文件组;将每个第一存储设备的至少一个迁移文件组迁移至对应的第二存储设备的步骤,以将第二文件的第一存储设备中的至少一个迁移文件组迁移至第二文件的第二存储设备。
135.迁移模块包括数据拷贝模块、设备更新模块和数据删除模块,数据拷贝模块用于将每个第一存储设备中的至少一个迁移文件组中的每个文件拷贝到对应的第二存储设备;设备更新模块用于更新每个文件的存储地址;数据删除模块用于删除第一存储设备中的每个文件。
136.迁移模块还包括数据同步模块,数据同步模块用于判断每个文件在对应的第一存储设备和第二存储设备的占用空间是否一致;若每个文件在对应的第一存储设备和第二存储设备的占用空间一致,与设备更新模块更新,执行更新每个文件的存储地址的步骤。
137.迁移模块还包括数据上传模块,数据上传模块用于将用户上传的数据保存在存储设备中。
138.请参阅图4,图4是本技术迁移设备20一实施方式的结构示意图。本技术迁移设备20包括处理器22,处理器22用于执行指令以实现本技术上述任一实施方式的方法及任意不冲突的组合所提供的方法。
139.迁移设备20可为摄像装置或服务器等设备,在此不做限定。
140.处理器22还可以称为cpu(central processing unit,中央处理单元)。处理器22可能是一种集成电路芯片,具有信号的处理能力。处理器22还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器,或者该处理器22也可以是任何常规的处理器等。
141.迁移设备20还可进一步包括存储器21,用于存储处理器22运行所需的指令和数据。
142.请参阅图5,图5为本技术实施方式中计算机可读存储介质的结构示意图。本技术实施例的计算机可读存储介质30存储有指令/程序数据31,该指令/程序数据31被执行时实现本技术上述方法任一实施例以及任意不冲突的组合所提供的方法。其中,该指令/程序数据31可以形成程序文件以软件产品的形式存储在上述存储介质30中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质30包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等设备。
143.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,
仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
144.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
145.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
146.以上仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

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

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

相关文献