本發(fā)明涉及存儲(chǔ),特別是涉及一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)方法和一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)裝置。
背景技術(shù):
1、分布式存儲(chǔ)系統(tǒng)故障恢復(fù)過程的本質(zhì)是存儲(chǔ)池內(nèi)對(duì)象數(shù)據(jù)修復(fù)的過程。存儲(chǔ)池是由許多放置組組成,放置組由多個(gè)對(duì)象存儲(chǔ)設(shè)備成員組成且實(shí)現(xiàn)數(shù)據(jù)的冗余。當(dāng)放置組的對(duì)象存儲(chǔ)設(shè)備成員變化或者故障宕掉后又恢復(fù)時(shí),就會(huì)觸發(fā)對(duì)象數(shù)據(jù)的修復(fù)。
2、當(dāng)前分布式存儲(chǔ)對(duì)象存儲(chǔ)設(shè)備故障恢復(fù)過程中,需要計(jì)算出所有需要恢復(fù)的對(duì)象并放在恢復(fù)隊(duì)列里,由恢復(fù)線程按照周期進(jìn)行對(duì)象恢復(fù)。在對(duì)象的恢復(fù)過程中通過控制恢復(fù)周期內(nèi)恢復(fù)的對(duì)象存儲(chǔ)設(shè)備個(gè)數(shù)以及對(duì)象存儲(chǔ)設(shè)備的放置組個(gè)數(shù)等多個(gè)參數(shù)來控制對(duì)象恢復(fù)的速度。分布式存儲(chǔ)的恢復(fù)速度受多個(gè)參數(shù)的影響,需要仔細(xì)調(diào)優(yōu)和監(jiān)控,以確保在不同負(fù)載和故障情況下保持恢復(fù)效率和服務(wù)質(zhì)量。這需要管理員有深入的了解和經(jīng)驗(yàn),以有效地管理集群的恢復(fù)過程,操作比較復(fù)雜,耗時(shí)比較長。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,提出了本發(fā)明實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)方法和相應(yīng)的一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)裝置。
2、根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)方法,所述分布式存儲(chǔ)系統(tǒng)包括監(jiān)控器和多個(gè)對(duì)象存儲(chǔ)設(shè)備;所述方法包括:
3、所述對(duì)象存儲(chǔ)設(shè)備周期性確定待恢復(fù)對(duì)象的數(shù)量,并向所述監(jiān)控器發(fā)送所述待恢復(fù)對(duì)象的數(shù)量;
4、接收所述監(jiān)控器發(fā)送的當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量;所述存儲(chǔ)池包括所述多個(gè)對(duì)象存儲(chǔ)設(shè)備存儲(chǔ)的對(duì)象;所述目標(biāo)恢復(fù)速度表征單位時(shí)間內(nèi)所述存儲(chǔ)池的可恢復(fù)對(duì)象的數(shù)量;
5、根據(jù)所述對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量、所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,確定所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量;
6、根據(jù)所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù)。
7、可選的,所述根據(jù)所述對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量、所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,確定所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量,包括:
8、獲取所述當(dāng)前周期的時(shí)長;
9、將所述對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量與所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量的比值,與所述當(dāng)前周期的時(shí)長和所述當(dāng)前周期的目標(biāo)恢復(fù)速度的乘積,作為所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量。
10、可選的,所述根據(jù)所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù),包括:
11、獲取上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和可恢復(fù)對(duì)象的數(shù)量;
12、確定所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量是否相同;
13、若所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量相同,則將所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量向上取整,得到所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量,按照所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù);
14、若所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量不相同,則確定所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量的差值;將所述當(dāng)前周期內(nèi)計(jì)算出的可恢復(fù)對(duì)象的數(shù)量減去所述差值后進(jìn)行向上取整,得到所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量,按照所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù)。
15、可選的,所述向所述監(jiān)控器發(fā)送所述待恢復(fù)對(duì)象的數(shù)量,包括:
16、所述對(duì)象存儲(chǔ)設(shè)備周期性向所述監(jiān)控器發(fā)送放置組狀態(tài)消息,所述放置組狀態(tài)消息包括所述待恢復(fù)對(duì)象的數(shù)量。
17、可選的,所述接收所述監(jiān)控器發(fā)送的當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,包括:
18、接收所述監(jiān)控器發(fā)送的放置組狀態(tài)確認(rèn)消息,所述放置組狀態(tài)確認(rèn)消息包括所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量。
19、根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)方法,所述分布式存儲(chǔ)系統(tǒng)包括監(jiān)控器和多個(gè)對(duì)象存儲(chǔ)設(shè)備;所述方法包括:
20、所述監(jiān)控器周期性獲取所述多個(gè)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量;
21、獲取當(dāng)前周期的目標(biāo)恢復(fù)速度,所述目標(biāo)恢復(fù)速度表征單位時(shí)間內(nèi)存儲(chǔ)池的可恢復(fù)對(duì)象的數(shù)量;所述存儲(chǔ)池包括所述多個(gè)對(duì)象存儲(chǔ)設(shè)備存儲(chǔ)的對(duì)象;
22、根據(jù)所述多個(gè)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量,確定所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量;
23、分別向所述多個(gè)對(duì)象存儲(chǔ)設(shè)備發(fā)送所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,以使所述多個(gè)對(duì)象存儲(chǔ)設(shè)備分別根據(jù)所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,確定在所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量并根據(jù)所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù)。
24、可選的,所述監(jiān)控器周期性獲取所述多個(gè)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量,包括:
25、所述監(jiān)控器周期性獲取多個(gè)對(duì)象存儲(chǔ)設(shè)備發(fā)送的放置組狀態(tài)消息,所述放置組狀態(tài)消息包括多個(gè)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量。
26、可選的,所述分別向所述多個(gè)對(duì)象存儲(chǔ)設(shè)備發(fā)送所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,包括:
27、分別向所述多個(gè)對(duì)象存儲(chǔ)設(shè)備發(fā)送放置組狀態(tài)確認(rèn)消息,所述放置組狀態(tài)確認(rèn)消息包括所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量。
28、根據(jù)本發(fā)明的第三方面,提供一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)裝置,所述分布式存儲(chǔ)系統(tǒng)包括監(jiān)控器和多個(gè)對(duì)象存儲(chǔ)設(shè)備;所述裝置包括:
29、第一發(fā)送模塊,用于所述對(duì)象存儲(chǔ)設(shè)備周期性確定待恢復(fù)對(duì)象的數(shù)量,并向所述監(jiān)控器發(fā)送所述待恢復(fù)對(duì)象的數(shù)量;
30、第一接收模塊,用于接收所述監(jiān)控器發(fā)送的當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量;所述存儲(chǔ)池包括所述多個(gè)對(duì)象存儲(chǔ)設(shè)備存儲(chǔ)的對(duì)象;所述目標(biāo)恢復(fù)速度表征單位時(shí)間內(nèi)所述存儲(chǔ)池的可恢復(fù)對(duì)象的數(shù)量;
31、第一確定模塊,用于根據(jù)所述對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量、所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,確定所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量;
32、第一恢復(fù)模塊,用于根據(jù)所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù)。
33、可選的,所述第一確定模塊,包括:
34、第一獲取子模塊,用于獲取所述當(dāng)前周期的時(shí)長;
35、第一計(jì)算子模塊,用于將所述對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量與所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量的比值,與所述當(dāng)前周期的時(shí)長和所述當(dāng)前周期的目標(biāo)恢復(fù)速度的乘積,作為所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量。
36、可選的,所述第一恢復(fù)模塊,包括:
37、第二獲取子模塊,用于獲取上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和可恢復(fù)對(duì)象的數(shù)量;
38、第一確定子模塊,用于確定所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量是否相同;
39、第一恢復(fù)子模塊,用于若所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量相同,則將所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量向上取整,得到所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量,按照所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù);
40、第二恢復(fù)子模塊,用于若所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量不相同,則確定所述上一周期的實(shí)際恢復(fù)對(duì)象的數(shù)量和所述可恢復(fù)對(duì)象的數(shù)量的差值;將所述當(dāng)前周期內(nèi)計(jì)算出的可恢復(fù)對(duì)象的數(shù)量減去所述差值后進(jìn)行向上取整,得到所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量,按照所述當(dāng)前周期的實(shí)際恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù)。
41、可選的,所述第一發(fā)送模塊,包括:
42、第一發(fā)送子模塊,用于所述對(duì)象存儲(chǔ)設(shè)備周期性向所述監(jiān)控器發(fā)送放置組狀態(tài)消息,所述放置組狀態(tài)消息包括所述待恢復(fù)對(duì)象的數(shù)量。
43、可選的,所述第一接收模塊,包括:
44、第一接收子模塊,用于接收所述監(jiān)控器發(fā)送的放置組狀態(tài)確認(rèn)消息,所述放置組狀態(tài)確認(rèn)消息包括所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量。
45、根據(jù)本發(fā)明的第四方面,提供一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)裝置,所述分布式存儲(chǔ)系統(tǒng)包括監(jiān)控器和多個(gè)對(duì)象存儲(chǔ)設(shè)備;所述裝置包括:
46、第一獲取模塊,用于所述監(jiān)控器周期性獲取所述多個(gè)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量;
47、第二獲取模塊,用于獲取當(dāng)前周期的目標(biāo)恢復(fù)速度,所述目標(biāo)恢復(fù)速度表征單位時(shí)間內(nèi)存儲(chǔ)池的可恢復(fù)對(duì)象的數(shù)量;所述存儲(chǔ)池包括所述多個(gè)對(duì)象存儲(chǔ)設(shè)備存儲(chǔ)的對(duì)象;
48、第二確定模塊,用于根據(jù)所述多個(gè)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量,確定所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量;
49、第二發(fā)送模塊,用于分別向所述多個(gè)對(duì)象存儲(chǔ)設(shè)備發(fā)送所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,以使所述多個(gè)對(duì)象存儲(chǔ)設(shè)備分別根據(jù)所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,確定在所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量并根據(jù)所述當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù)。
50、可選的,所述第一獲取模塊,包括:
51、第三獲取子模塊,用于所述監(jiān)控器周期性獲取多個(gè)對(duì)象存儲(chǔ)設(shè)備發(fā)送的放置組狀態(tài)消息,所述放置組狀態(tài)消息包括多個(gè)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量。
52、可選的,所述第二發(fā)送模塊,包括:
53、第二發(fā)送子模塊,用于分別向所述多個(gè)對(duì)象存儲(chǔ)設(shè)備發(fā)送放置組狀態(tài)確認(rèn)消息,所述放置組狀態(tài)確認(rèn)消息包括所述當(dāng)前周期的目標(biāo)恢復(fù)速度和所述當(dāng)前周期內(nèi)所述存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量。
54、根據(jù)本發(fā)明的第五方面,提供一種電子設(shè)備,所述電子設(shè)備包括:處理器、存儲(chǔ)器及存儲(chǔ)在所述存儲(chǔ)器上并能夠在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)方法。
55、根據(jù)本發(fā)明的第六方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的指令由電子設(shè)備的處理器執(zhí)行時(shí),使得所述電子設(shè)備能夠執(zhí)行如上所述的分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)方法。
56、本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
57、本發(fā)明實(shí)施例提供了一種分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)恢復(fù)方法,方法包括對(duì)象存儲(chǔ)設(shè)備周期性確定待恢復(fù)對(duì)象的數(shù)量,并向監(jiān)控器發(fā)送待恢復(fù)對(duì)象的數(shù)量;接收當(dāng)前周期的目標(biāo)恢復(fù)速度和當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量;根據(jù)對(duì)象存儲(chǔ)設(shè)備的待恢復(fù)對(duì)象的數(shù)量、當(dāng)前周期的目標(biāo)恢復(fù)速度和當(dāng)前周期內(nèi)存儲(chǔ)池的待恢復(fù)對(duì)象的數(shù)量,確定當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量;根據(jù)當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù)。本發(fā)明實(shí)施例通過調(diào)控當(dāng)前周期內(nèi)的可恢復(fù)對(duì)象的數(shù)量進(jìn)行恢復(fù),可控制分布式存儲(chǔ)的恢復(fù)速度的精確性和可靠性,降低了管理員以往通過調(diào)整多個(gè)配置參數(shù)來控制恢復(fù)速度的復(fù)雜度,增加了分布式存儲(chǔ)的易用性。