本公開(kāi)涉及計(jì)算機(jī),尤其涉及一種分布式存儲(chǔ)的加速訪問(wèn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,越來(lái)越多的企業(yè)采用分布式存儲(chǔ)的方式進(jìn)行企業(yè)內(nèi)部信息管理。
2、通常情況下,分布式存儲(chǔ)系統(tǒng)中各存儲(chǔ)節(jié)點(diǎn)通常需要處于同一網(wǎng)絡(luò)中,基于分布式的特性,將每個(gè)存儲(chǔ)節(jié)點(diǎn)中的文件分別同步至其他存儲(chǔ)節(jié)點(diǎn)中;若某一存儲(chǔ)節(jié)點(diǎn)中的文件未被同步至其他存儲(chǔ)節(jié)點(diǎn)中,其他存儲(chǔ)節(jié)點(diǎn)的用戶則無(wú)法順利獲取該文件。
3、因此,現(xiàn)有的文件獲取方法其網(wǎng)絡(luò)成本以及存儲(chǔ)成本較大,且存在同步延遲的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述技術(shù)問(wèn)題,本公開(kāi)提供了一種分布式存儲(chǔ)的加速訪問(wèn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),以減少存儲(chǔ)成本,降低同步延遲。
2、第一方面,本公開(kāi)實(shí)施例提供一種分布式存儲(chǔ)的加速訪問(wèn)方法,所述方法應(yīng)用于基于地域的分布式存儲(chǔ)系統(tǒng)中,包括:
3、從存儲(chǔ)系統(tǒng)的多個(gè)候選存儲(chǔ)節(jié)點(diǎn)中確定客戶端對(duì)應(yīng)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),所述多個(gè)候選存儲(chǔ)節(jié)點(diǎn)包括中心存儲(chǔ)節(jié)點(diǎn)、邊緣存儲(chǔ)節(jié)點(diǎn);
4、根據(jù)客戶端發(fā)起的文件上傳請(qǐng)求,將所述文件上傳請(qǐng)求對(duì)應(yīng)的待上傳文件保存至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中;
5、若所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)為邊緣存儲(chǔ)節(jié)點(diǎn),則將所述待上傳文件同步至所述中心存儲(chǔ)節(jié)點(diǎn)中;
6、根據(jù)客戶端發(fā)起的文件下載請(qǐng)求,確定所述文件下載請(qǐng)求對(duì)應(yīng)的目標(biāo)文件;
7、若所述目標(biāo)文件存在于所述存儲(chǔ)系統(tǒng)中,且所述目標(biāo)文件的上傳途徑不是所述目標(biāo)存儲(chǔ)節(jié)點(diǎn),則從所述中心存儲(chǔ)節(jié)點(diǎn)下載所述目標(biāo)文件至所述客戶端中,并將所述中心存儲(chǔ)節(jié)點(diǎn)中的目標(biāo)文件緩存至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中。
8、在一些實(shí)施例中,所述從存儲(chǔ)系統(tǒng)的多個(gè)候選存儲(chǔ)節(jié)點(diǎn)中確定客戶端對(duì)應(yīng)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),包括:
9、獲取每個(gè)所述候選存儲(chǔ)節(jié)點(diǎn)的公網(wǎng)ip地址以及所述客戶端的公網(wǎng)ip地址;
10、根據(jù)所述公網(wǎng)ip地址對(duì)所述候選存儲(chǔ)節(jié)點(diǎn)以及所述客戶端進(jìn)行匹配,將與所述客戶端處于同一網(wǎng)絡(luò)內(nèi)的候選存儲(chǔ)節(jié)點(diǎn)作為所述客戶端的目標(biāo)存儲(chǔ)節(jié)點(diǎn)。
11、在一些實(shí)施例中,所述方法還包括:
12、若不存在與所述客戶端處于同一網(wǎng)絡(luò)內(nèi)的候選存儲(chǔ)節(jié)點(diǎn),則獲取所述候選存儲(chǔ)節(jié)點(diǎn)的內(nèi)網(wǎng)檢測(cè)地址,以使所述客戶端通過(guò)所述內(nèi)網(wǎng)檢測(cè)地址訪問(wèn)每個(gè)所述候選存儲(chǔ)節(jié)點(diǎn),將訪問(wèn)成功的候選存儲(chǔ)節(jié)點(diǎn)作為所述客戶端的目標(biāo)存儲(chǔ)節(jié)點(diǎn);或者,
13、若不存在通過(guò)所述內(nèi)網(wǎng)檢測(cè)地址訪問(wèn)成功的候選存儲(chǔ)節(jié)點(diǎn),則將所述中心存儲(chǔ)節(jié)點(diǎn)分配給所述客戶端。
14、在一些實(shí)施例中,所述根據(jù)客戶端發(fā)起的文件上傳請(qǐng)求,將所述文件上傳請(qǐng)求對(duì)應(yīng)的待上傳文件保存至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中,包括:
15、獲取所述待上傳文件的哈希值;
16、若基于所述哈希值確定所述存儲(chǔ)系統(tǒng)中不存在所述待上傳文件,則將所述待上傳文件存儲(chǔ)至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)。
17、在一些實(shí)施例中,所述將所述待上傳文件存儲(chǔ)至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn),包括:
18、依次將所述待上傳文件的多個(gè)分片數(shù)據(jù)上傳至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn);
19、將所述多個(gè)分片數(shù)據(jù)進(jìn)行合并,得到合并文件;
20、若所述合并文件的哈希值與所述待上傳文件的哈希值一致,則確定所述待上傳文件上傳完成。
21、在一些實(shí)施例中,所述根據(jù)客戶端發(fā)起的文件下載請(qǐng)求,確定所述文件下載請(qǐng)求對(duì)應(yīng)的目標(biāo)文件之后,所述方法還包括:
22、根據(jù)所述目標(biāo)文件的文件標(biāo)識(shí)獲取所述目標(biāo)文件的文件存儲(chǔ)信息;
23、基于所述文件存儲(chǔ)信息,確定所述目標(biāo)文件的上傳途徑。
24、在一些實(shí)施例中,所述方法還包括:
25、當(dāng)基于所述文件存儲(chǔ)信息,確定所述目標(biāo)文件處于待同步狀態(tài)時(shí),在同步隊(duì)列中查詢所述文件標(biāo)識(shí);
26、若所述同步隊(duì)列中不存在所述文件標(biāo)識(shí),則將所述目標(biāo)文件的同步任務(wù)添加至所述同步隊(duì)列中;或者,
27、若同步隊(duì)列中存在所述文件標(biāo)識(shí),則在預(yù)設(shè)等待時(shí)間后再次獲取所述文件存儲(chǔ)信息。
28、第二方面,本公開(kāi)實(shí)施例提供一種分布式存儲(chǔ)的加速訪問(wèn)裝置,包括:
29、第一確定模塊,用于從存儲(chǔ)系統(tǒng)的多個(gè)候選存儲(chǔ)節(jié)點(diǎn)中確定客戶端對(duì)應(yīng)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),所述多個(gè)候選存儲(chǔ)節(jié)點(diǎn)包括中心存儲(chǔ)節(jié)點(diǎn)、邊緣存儲(chǔ)節(jié)點(diǎn);
30、上傳模塊,用于根據(jù)客戶端發(fā)起的文件上傳請(qǐng)求,將所述文件上傳請(qǐng)求對(duì)應(yīng)的待上傳文件保存至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中;
31、同步模塊,用于若所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)為邊緣存儲(chǔ)節(jié)點(diǎn),則將所述待上傳文件同步至所述中心存儲(chǔ)節(jié)點(diǎn)中;
32、第二確定模塊,用于根據(jù)客戶端發(fā)起的文件下載請(qǐng)求,確定所述文件下載請(qǐng)求對(duì)應(yīng)的目標(biāo)文件;
33、下載模塊,用于若所述目標(biāo)文件存在于所述存儲(chǔ)系統(tǒng)中,且所述目標(biāo)文件的上傳途徑不是所述目標(biāo)存儲(chǔ)節(jié)點(diǎn),則從所述中心存儲(chǔ)節(jié)點(diǎn)下載所述目標(biāo)文件至所述客戶端中,并將所述中心存儲(chǔ)節(jié)點(diǎn)中的目標(biāo)文件緩存至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中。
34、第三方面,本公開(kāi)實(shí)施例提供一種電子設(shè)備,包括:
35、存儲(chǔ)器;
36、處理器;以及
37、計(jì)算機(jī)程序;
38、其中,所述計(jì)算機(jī)程序存儲(chǔ)在所述存儲(chǔ)器中,并被配置為由所述處理器執(zhí)行以實(shí)現(xiàn)如第一方面所述的方法。
39、第四方面,本公開(kāi)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行以實(shí)現(xiàn)第一方面所述的方法。
40、第五方面,本公開(kāi)實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序或指令,該計(jì)算機(jī)程序或指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的分布式存儲(chǔ)的加速訪問(wèn)方法。
41、本公開(kāi)實(shí)施例提供的分布式存儲(chǔ)的加速訪問(wèn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),通過(guò)為客戶端分配目標(biāo)存儲(chǔ)節(jié)點(diǎn),將客戶端所上傳的文件存儲(chǔ)至目標(biāo)存儲(chǔ)節(jié)點(diǎn)并同步至中心存儲(chǔ)節(jié)點(diǎn)中,在需要下載文件時(shí)按需同步文件,無(wú)需將文件同步至每個(gè)存儲(chǔ)節(jié)點(diǎn),在下載文件時(shí)可以直接從中心存儲(chǔ)節(jié)點(diǎn)下載,節(jié)省了存儲(chǔ)資源,無(wú)需用戶承擔(dān)由中心存儲(chǔ)節(jié)點(diǎn)緩存至目標(biāo)存儲(chǔ)節(jié)點(diǎn)的時(shí)間成本,保證文件同步以及下載的實(shí)時(shí)性,提高了文件獲取的效率。
1.一種分布式存儲(chǔ)的加速訪問(wèn)方法,其特征在于,所述方法應(yīng)用于基于地域的分布式存儲(chǔ)系統(tǒng)中,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從存儲(chǔ)系統(tǒng)的多個(gè)候選存儲(chǔ)節(jié)點(diǎn)中確定客戶端對(duì)應(yīng)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)客戶端發(fā)起的文件上傳請(qǐng)求,將所述文件上傳請(qǐng)求對(duì)應(yīng)的待上傳文件保存至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述將所述待上傳文件存儲(chǔ)至所述目標(biāo)存儲(chǔ)節(jié)點(diǎn),包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)客戶端發(fā)起的文件下載請(qǐng)求,確定所述文件下載請(qǐng)求對(duì)應(yīng)的目標(biāo)文件之后,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括:
8.一種分布式存儲(chǔ)的加速訪問(wèn)裝置,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一項(xiàng)所述的方法。