本技術實施例涉及計算設備,尤其涉及一種數(shù)據(jù)遷移方法、裝置及設備。
背景技術:
1、對磁盤中的數(shù)據(jù)進行跨平臺遷移時,可以將磁盤中所有數(shù)據(jù)進行遷移,也可以僅遷移磁盤中的有效數(shù)據(jù)。
2、目前,為了通過減少數(shù)據(jù)遷移量的方式提高數(shù)據(jù)遷移效率,可以先探測磁盤中的無效數(shù)據(jù),并可以跳過無效數(shù)據(jù)、僅遷移磁盤中的有效數(shù)據(jù)。然而,若磁盤中的無效數(shù)據(jù)較多,探測無效數(shù)據(jù)所需的時長較大,通過上述方法遷移磁盤中數(shù)據(jù)時反而需要更多的時間,導致數(shù)據(jù)遷移效率較低。
技術實現(xiàn)思路
1、本技術實施例提供了一種數(shù)據(jù)遷移方法、裝置及設備,用于解決數(shù)據(jù)遷移效率較低的技術問題。
2、第一方面,本技術實施例提供了一種數(shù)據(jù)遷移方法,包括:將待遷移數(shù)據(jù)所在的目標存儲分區(qū)劃分為多個子分區(qū);在所述多個子分區(qū)中確定第一子分區(qū)和第二子分區(qū);根據(jù)所述第一子分區(qū)中的有效數(shù)據(jù)塊,確定所述第二子分區(qū)中的目標數(shù)據(jù)塊,所述目標數(shù)據(jù)塊為所述第二子分區(qū)中的有效數(shù)據(jù)塊、或所述第二子分區(qū)中的有效數(shù)據(jù)塊和無效數(shù)據(jù)塊;遷移所述第一子分區(qū)中的有效數(shù)據(jù)塊和所述第二子分區(qū)中的目標數(shù)據(jù)塊。
3、上述方案中,電子設備可以將待遷移數(shù)據(jù)所在的目標存儲分區(qū)劃分為多個子分區(qū);可以在多個子分區(qū)中確定第一子分區(qū)和第二子分區(qū);可以根據(jù)第一子分區(qū)中的有效數(shù)據(jù)塊,確定第二子分區(qū)中的目標數(shù)據(jù)塊;并可以對第一子分區(qū)中的有效數(shù)據(jù)塊和第二子分區(qū)中的目標數(shù)據(jù)塊進行遷移。通過上述方法,可以減少數(shù)據(jù)遷移所需的時長,提高了數(shù)據(jù)遷移效率。
4、一種可能的實現(xiàn)方式中,所述在所述多個子分區(qū)中確定第一子分區(qū)和第二子分區(qū),包括:
5、在所述多個子分區(qū)中確定有效數(shù)據(jù)塊,并統(tǒng)計所述有效數(shù)據(jù)塊的有效塊數(shù)量、以及統(tǒng)計確定所述有效數(shù)據(jù)塊時占用的總時長,直至所述有效塊數(shù)量大于第一預設值和/或所述總時長大于第二預設值;
6、將所述多個子分區(qū)中確定過所述有效數(shù)據(jù)塊的子分區(qū),確定為所述第一子分區(qū);
7、將所述多個子分區(qū)中除所述第一子分區(qū)以外的子分區(qū),確定為所述第二子分區(qū)。
8、上述方案中,可以將多個子分區(qū)分為第一子分區(qū)和第二子分區(qū),以便于分別確定各子分區(qū)中需要遷移的數(shù)據(jù)。
9、一種可能的實現(xiàn)方式中,針對任意一個所述子分區(qū),在所述子分區(qū)中確定有效數(shù)據(jù)塊,包括:
10、探測所述子分區(qū)中的無效數(shù)據(jù)塊;
11、將所述子分區(qū)中兩個相鄰的所述無效數(shù)據(jù)塊之間的數(shù)據(jù),確定為所述有效數(shù)據(jù)塊;和/或,將與所述子分區(qū)的起始地址/終止地址最近的所述無效數(shù)據(jù)塊,與所述子分區(qū)的起始地址/終止地址之間的數(shù)據(jù),確定為所述有效數(shù)據(jù)塊。
12、上述方案中,可以探測子分區(qū)中的無效數(shù)據(jù)塊,并可以根據(jù)子分區(qū)中的無效數(shù)據(jù)塊確定子分區(qū)中的有效數(shù)據(jù)塊,實現(xiàn)了確定子分區(qū)中有效數(shù)據(jù)塊的目的。
13、一種可能的實現(xiàn)方式中,所述根據(jù)所述第一子分區(qū)中的有效數(shù)據(jù)塊,確定所述第二子分區(qū)中的目標數(shù)據(jù)塊,包括:
14、確定所述第一子分區(qū)的第一容量;
15、根據(jù)所述目標存儲分區(qū)的總容量和所述第一容量,確定所述第二子分區(qū)的第二容量;
16、根據(jù)所述第一子分區(qū)中的有效數(shù)據(jù)塊的有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)中的目標數(shù)據(jù)塊。
17、上述方案中,可以根據(jù)第一子分區(qū)中的有效數(shù)據(jù)塊的有效塊數(shù)量、第一容量和第二容量,確定第二子分區(qū)中的目標數(shù)據(jù)塊,實現(xiàn)了確定第二子分區(qū)中的目標數(shù)據(jù)塊的目的。
18、一種可能的實現(xiàn)方式中,所述根據(jù)所述第一子分區(qū)中的有效數(shù)據(jù)塊的有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)中的目標數(shù)據(jù)塊,包括:
19、根據(jù)所述有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)中的有效數(shù)據(jù)塊對應的第一遷移時長;
20、根據(jù)所述第二容量,確定所述第二子分區(qū)中的有效數(shù)據(jù)塊和無效數(shù)據(jù)塊對應的第二遷移時長;
21、若所述第二遷移時長與預設閾值之和小于所述第一遷移時長,確定所述目標數(shù)據(jù)塊為所述第二子分區(qū)中有的效數(shù)據(jù)塊和無效數(shù)據(jù)塊;
22、若所述第二遷移時長與所述預設閾值之和大于或等于所述第一遷移時長,確定所述目標數(shù)據(jù)塊為所述第二子分區(qū)中的有效數(shù)據(jù)塊。
23、上述方案中,若第二遷移時長與預設閾值之和小于第一遷移時長,確定目標數(shù)據(jù)塊為第二子分區(qū)中有的效數(shù)據(jù)塊和無效數(shù)據(jù)塊;若第二遷移時長與預設閾值之和大于或等于第一遷移時長,確定目標數(shù)據(jù)塊為第二子分區(qū)中的有效數(shù)據(jù)塊。通過上述方案,實現(xiàn)了確定目標數(shù)據(jù)塊的目的。
24、一種可能的實現(xiàn)方式中,所述根據(jù)所述有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)中的有效數(shù)據(jù)塊對應的第一遷移時長,包括:
25、根據(jù)所述有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)對應的探測時長、并確定對所述第二子分區(qū)中的有效數(shù)據(jù)塊執(zhí)行遷移操作所需的遷移時長;
26、確定所述探測時長與所述遷移時長之和,為所述第一遷移時長。
27、上述方案中,可以將探測時長與遷移時長之和確定為第一遷移時長,實現(xiàn)了確定第一遷移時長的目的。
28、一種可能的實現(xiàn)方式中,所述根據(jù)所述有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)對應的探測時長,包括:
29、獲取確定所述第一子分區(qū)中的有效數(shù)據(jù)塊時占用的總時長;
30、確定所述有效塊數(shù)量與所述第一容量的第一比值;
31、確定所述總時長與所述有效塊數(shù)量的第二比值;
32、確定所述第一比值、所述第二比值以及所述第二容量之積,為所述探測時長。
33、上述方案中,可以根據(jù)有效塊數(shù)量、第一容量和第二容量,確定第二子分區(qū)對應的探測時長,實現(xiàn)了確定探測時長的目的。
34、一種可能的實現(xiàn)方式中,所述根據(jù)所述有效塊數(shù)量、所述第一容量和所述第二容量,確定遷移所述第二子分區(qū)中的有效數(shù)據(jù)塊所需的遷移時長,包括:
35、獲取數(shù)據(jù)的遷移速率;
36、確定所述有效塊數(shù)量與所述第一容量的第一比值;
37、確定所述第二容量與所述第一比值的第一乘積;
38、將所述第一乘積與所述遷移速率之比,確定為所述遷移時長。
39、上述方案中,可以根據(jù)有效塊數(shù)量、第一容量和第二容量,確定遷移第二子分區(qū)中的有效數(shù)據(jù)塊所需的遷移時長,實現(xiàn)了確定遷移時長的目的。
40、一種可能的實現(xiàn)方式中,根據(jù)所述第二容量,確定所述第二子分區(qū)中的有效數(shù)據(jù)塊和無效數(shù)據(jù)塊對應的第二遷移時長,包括:
41、獲取數(shù)據(jù)的遷移速率;
42、確定所述第二容量與所述遷移速率之比,為所述第二遷移時長。
43、上述方案中,可以將第二容量與遷移速率之比確定為第二遷移時長,實現(xiàn)了確定第二遷移時長的目的。
44、一種可能的實現(xiàn)方式中,
45、所述第一子分區(qū)為,所述多個子分區(qū)中連續(xù)的一個或多個子分區(qū);或者,
46、所述第一子分區(qū)為,所述多個子分區(qū)中不連續(xù)的一個或多個子分區(qū)。
47、上述方案中,若第一子分區(qū)為多個子分區(qū)中連續(xù)的一個或多個子分區(qū),可以使得第一子分區(qū)的確定速度較快;若第一子分區(qū)為多個子分區(qū)中不連續(xù)的一個或多個子分區(qū),可以使本技術實施例提供的數(shù)據(jù)遷移方法的處理準確性較高。
48、第二方面,本技術實施例提供了一種數(shù)據(jù)遷移裝置,所述數(shù)據(jù)遷移裝置包括劃分模塊、確定模塊和遷移模塊,其中,
49、所述劃分模塊用于,將待遷移數(shù)據(jù)所在的目標存儲分區(qū)劃分為多個子分區(qū);
50、所述確定模塊用于,在所述多個子分區(qū)中確定第一子分區(qū)和第二子分區(qū);
51、所述確定模塊還用于,根據(jù)所述第一子分區(qū)中的有效數(shù)據(jù)塊,確定所述第二子分區(qū)中的目標數(shù)據(jù)塊,所述目標數(shù)據(jù)塊為所述第二子分區(qū)中的有效數(shù)據(jù)塊、或所述第二子分區(qū)中的有效數(shù)據(jù)塊和無效數(shù)據(jù)塊;
52、所述遷移模塊用于,遷移所述第一子分區(qū)中的有效數(shù)據(jù)塊和所述第二子分區(qū)中的目標數(shù)據(jù)塊。
53、上述方案中,數(shù)據(jù)遷移裝置可以將待遷移數(shù)據(jù)所在的目標存儲分區(qū)劃分為多個子分區(qū);可以在多個子分區(qū)中確定第一子分區(qū)和第二子分區(qū);可以根據(jù)第一子分區(qū)中的有效數(shù)據(jù)塊,確定第二子分區(qū)中的目標數(shù)據(jù)塊;并可以對第一子分區(qū)中的有效數(shù)據(jù)塊和第二子分區(qū)中的目標數(shù)據(jù)塊進行遷移。通過上述方法,可以減少數(shù)據(jù)遷移所需的時長,提高了數(shù)據(jù)遷移效率。
54、一種可能的實現(xiàn)方式中,所述確定模塊具體用于,
55、在所述多個子分區(qū)中確定有效數(shù)據(jù)塊,并統(tǒng)計所述有效數(shù)據(jù)塊的有效塊數(shù)量、以及統(tǒng)計確定所述有效數(shù)據(jù)塊時占用的總時長,直至所述有效塊數(shù)量大于第一預設值和/或所述總時長大于第二預設值;
56、將所述多個子分區(qū)中確定過所述有效數(shù)據(jù)塊的子分區(qū),確定為所述第一子分區(qū);
57、將所述多個子分區(qū)中除所述第一子分區(qū)以外的子分區(qū),確定為所述第二子分區(qū)。
58、上述方案中,可以將多個子分區(qū)分為第一子分區(qū)和第二子分區(qū),以便于分別確定各子分區(qū)中需要遷移的數(shù)據(jù)。
59、一種可能的實現(xiàn)方式中,針對任意一個所述子分區(qū),所述確定模塊具體用于,
60、探測所述子分區(qū)中的無效數(shù)據(jù)塊;
61、將所述子分區(qū)中兩個相鄰的所述無效數(shù)據(jù)塊之間的數(shù)據(jù),確定為所述有效數(shù)據(jù)塊;和/或,將與所述子分區(qū)的起始地址/終止地址最近的所述無效數(shù)據(jù)塊,與所述子分區(qū)的起始地址/終止地址之間的數(shù)據(jù),確定為所述有效數(shù)據(jù)塊。
62、上述方案中,可以探測子分區(qū)中的無效數(shù)據(jù)塊,并可以根據(jù)子分區(qū)中的無效數(shù)據(jù)塊確定子分區(qū)中的有效數(shù)據(jù)塊,實現(xiàn)了確定子分區(qū)中有效數(shù)據(jù)塊的目的。
63、一種可能的實現(xiàn)方式中,所述確定模塊具體用于,
64、確定所述第一子分區(qū)的第一容量;
65、根據(jù)所述目標存儲分區(qū)的總容量和所述第一容量,確定所述第二子分區(qū)的第二容量;
66、根據(jù)所述第一子分區(qū)中的有效數(shù)據(jù)塊的有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)中的目標數(shù)據(jù)塊。
67、上述方案中,可以根據(jù)第一子分區(qū)中的有效數(shù)據(jù)塊的有效塊數(shù)量、第一容量和第二容量,確定第二子分區(qū)中的目標數(shù)據(jù)塊,實現(xiàn)了確定第二子分區(qū)中的目標數(shù)據(jù)塊的目的。
68、一種可能的實現(xiàn)方式中,所述確定模塊具體用于,
69、根據(jù)所述有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)中的有效數(shù)據(jù)塊對應的第一遷移時長;
70、根據(jù)所述第二容量,確定所述第二子分區(qū)中的有效數(shù)據(jù)塊和無效數(shù)據(jù)塊對應的第二遷移時長;
71、若所述第二遷移時長與預設閾值之和小于所述第一遷移時長,確定所述目標數(shù)據(jù)塊為所述第二子分區(qū)中有的效數(shù)據(jù)塊和無效數(shù)據(jù)塊;
72、若所述第二遷移時長與所述預設閾值之和大于或等于所述第一遷移時長,確定所述目標數(shù)據(jù)塊為所述第二子分區(qū)中的有效數(shù)據(jù)塊。
73、上述方案中,若第二遷移時長與預設閾值之和小于第一遷移時長,確定目標數(shù)據(jù)塊為第二子分區(qū)中有的效數(shù)據(jù)塊和無效數(shù)據(jù)塊;若第二遷移時長與預設閾值之和大于或等于第一遷移時長,確定目標數(shù)據(jù)塊為第二子分區(qū)中的有效數(shù)據(jù)塊。通過上述方案,實現(xiàn)了確定目標數(shù)據(jù)塊的目的。
74、一種可能的實現(xiàn)方式中,所述確定模塊具體用于,
75、根據(jù)所述有效塊數(shù)量、所述第一容量和所述第二容量,確定所述第二子分區(qū)對應的探測時長、并確定對所述第二子分區(qū)中的有效數(shù)據(jù)塊執(zhí)行遷移操作所需的遷移時長;
76、確定所述探測時長與所述遷移時長之和,為所述第一遷移時長。
77、上述方案中,可以將探測時長與遷移時長之和確定為第一遷移時長,實現(xiàn)了確定第一遷移時長的目的。
78、一種可能的實現(xiàn)方式中,所述確定模塊具體用于,
79、獲取確定所述第一子分區(qū)中的有效數(shù)據(jù)塊時占用的總時長;
80、確定所述有效塊數(shù)量與所述第一容量的第一比值;
81、確定所述總時長與所述有效塊數(shù)量的第二比值;
82、確定所述第一比值、所述第二比值以及所述第二容量之積,為所述探測時長。
83、上述方案中,可以根據(jù)有效塊數(shù)量、第一容量和第二容量,確定第二子分區(qū)對應的探測時長,實現(xiàn)了確定探測時長的目的。
84、一種可能的實現(xiàn)方式中,所述確定模塊具體用于,
85、獲取數(shù)據(jù)的遷移速率;
86、確定所述有效塊數(shù)量與所述第一容量的第一比值;
87、確定所述第二容量與所述第一比值的第一乘積;
88、將所述第一乘積與所述遷移速率之比,確定為所述遷移時長。
89、上述方案中,可以根據(jù)有效塊數(shù)量、第一容量和第二容量,確定遷移第二子分區(qū)中的有效數(shù)據(jù)塊所需的遷移時長,實現(xiàn)了確定遷移時長的目的。
90、一種可能的實現(xiàn)方式中,所述確定模塊具體用于,
91、獲取數(shù)據(jù)的遷移速率;
92、確定所述第二容量與所述遷移速率之比,為所述第二遷移時長。
93、上述方案中,可以將第二容量與遷移速率之比確定為第二遷移時長,實現(xiàn)了確定第二遷移時長的目的。
94、一種可能的實現(xiàn)方式中,
95、所述第一子分區(qū)為,所述多個子分區(qū)中連續(xù)的一個或多個子分區(qū);或者,
96、所述第一子分區(qū)為,所述多個子分區(qū)中不連續(xù)的一個或多個子分區(qū)。
97、上述方案中,若第一子分區(qū)為多個子分區(qū)中連續(xù)的一個或多個子分區(qū),可以使得第一子分區(qū)的確定速度較快;若第一子分區(qū)為多個子分區(qū)中不連續(xù)的一個或多個子分區(qū),可以使本技術實施例提供的數(shù)據(jù)遷移方法的處理準確性較高。
98、第三方面,本技術實施例供一種電子設備,包括:存儲器和處理器;
99、所述存儲器存儲計算機執(zhí)行指令;
100、所述處理器執(zhí)行所述存儲器存儲的計算機執(zhí)行指令,使得所述處理器執(zhí)行第一方面任一項所述的方法。
101、第四方面,本技術實施例提供一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有計算機執(zhí)行指令,當所述計算機執(zhí)行指令被處理器執(zhí)行時用于實現(xiàn)第一方面任一項所述的方法。
102、第五方面,本技術實施例提供一種計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)第一方面任一項所示的方法。