本申請屬于計(jì)算機(jī)存儲,更具體地,涉及一種基于多隊(duì)列的糾刪碼條帶更新方法、裝置和電子設(shè)備。
背景技術(shù):
1、隨著信息技術(shù)飛速發(fā)展,海量數(shù)據(jù)不斷生成,如何可靠存儲這些數(shù)據(jù)成為挑戰(zhàn)。糾刪碼技術(shù)作為一種或廣泛應(yīng)用于各類大型數(shù)據(jù)中心的可靠性保障技術(shù),通過對數(shù)據(jù)進(jìn)行分塊處理并計(jì)算生成額外的校驗(yàn)塊,使得部分?jǐn)?shù)據(jù)丟失時仍能通過解碼恢復(fù)出原始數(shù)據(jù),為數(shù)據(jù)存儲提供高可用性保障。在全閃(solid?-?state?drive,ssd)集群中,糾刪碼憑借獨(dú)特的數(shù)據(jù)分片與冗余機(jī)制,減少數(shù)據(jù)冗余,在保障數(shù)據(jù)安全可靠的同時,提升ssd存儲利用率,降低整體存儲成本,推動全閃集群存儲向高效經(jīng)濟(jì)方向邁進(jìn)。
2、然而,ssd盤的壽命直接受寫操作次數(shù)影響,寫操作頻繁的ssd盤磨損程度更高,更易故障。在寫密集的全閃集群中,由于糾刪碼技術(shù)依賴于校驗(yàn)塊來確保數(shù)據(jù)的完整性與可恢復(fù)性,頻繁的數(shù)據(jù)更新將引發(fā)頻繁的校驗(yàn)塊計(jì)算與更新操作,引入大量額外寫操作,加重ssd盤磨損,進(jìn)而導(dǎo)致全閃集群中?ssd?盤的壽命顯著降低。
3、現(xiàn)有的針對糾刪碼條帶更新的優(yōu)化方案大多適應(yīng)于hdd集群,主要關(guān)注如何提高條帶更新的速度、減少條帶更新時的數(shù)據(jù)傳輸流量,而沒有關(guān)注寫次數(shù)這一會對ssd盤壽命產(chǎn)生直接影響的設(shè)計(jì)指標(biāo)。因此,現(xiàn)有的許多成熟的糾刪碼更新優(yōu)化方案不適用于全閃集群。
技術(shù)實(shí)現(xiàn)思路
1、針對現(xiàn)有技術(shù)的缺陷,本申請的目的在于提供一種基于多隊(duì)列的糾刪碼條帶更新方法、裝置和電子設(shè)備,旨在解決現(xiàn)有糾刪碼條帶更新方案無法解決全閃集群中ssd盤的壽命較低的問題。
2、為實(shí)現(xiàn)上述目的,第一方面,本申請?zhí)峁┝艘环N基于多隊(duì)列的糾刪碼條帶更新方法,包括:
3、獲取原始條帶中數(shù)據(jù)塊的基本元數(shù)據(jù)信息;
4、基于所述基本元數(shù)據(jù)信息,將所述數(shù)據(jù)塊放入不同的預(yù)設(shè)編碼隊(duì)列,所述不同的預(yù)設(shè)編碼隊(duì)列包括高頻更新編碼隊(duì)列、低頻更新編碼隊(duì)列和無更新編碼隊(duì)列;
5、基于不同的預(yù)設(shè)編碼隊(duì)列中的數(shù)據(jù)塊,分別使用不同的預(yù)設(shè)生成策略生成條帶。
6、本申請通過特定數(shù)據(jù)塊元數(shù)據(jù)管理方式,動態(tài)調(diào)整數(shù)據(jù)塊的隊(duì)列分配和條帶生成策略,減少糾刪碼條帶更新過程中的寫放大效應(yīng),有效分散了寫入負(fù)載,減少更新操作對于ssd磨損,延長了ssd的使用壽命,并保證更新操作后的數(shù)據(jù)讀寫效率。
7、根據(jù)本申請?zhí)峁┑囊环N基于多隊(duì)列的糾刪碼條帶更新方法,所述基于所述基本元數(shù)據(jù)信息,將所述數(shù)據(jù)塊放入不同的預(yù)設(shè)編碼隊(duì)列,包括:
8、在設(shè)定的時間窗口內(nèi),通過所述基本元數(shù)據(jù)信息計(jì)算獲得每個數(shù)據(jù)塊的更新頻率和局部性特征,并基于更新頻率和局部性特征進(jìn)行位置編碼;
9、基于所述位置編碼計(jì)算數(shù)據(jù)塊的位置權(quán)重,并基于位置權(quán)重將數(shù)據(jù)塊放入對應(yīng)的預(yù)設(shè)編碼隊(duì)列。
10、根據(jù)本申請?zhí)峁┑囊环N基于多隊(duì)列的糾刪碼條帶更新方法,所述基于所述位置編碼計(jì)算數(shù)據(jù)塊的位置權(quán)重,包括:
11、在設(shè)定的時間窗口內(nèi),確定所有數(shù)據(jù)塊中更新頻率最高的數(shù)據(jù)塊;
12、對于剩余數(shù)據(jù)塊,將位置編碼與所述更新頻率最高的數(shù)據(jù)塊做點(diǎn)乘,獲得當(dāng)前數(shù)據(jù)塊相對于所述更新頻率最高數(shù)據(jù)塊的位置權(quán)重。
13、根據(jù)本申請?zhí)峁┑囊环N基于多隊(duì)列的糾刪碼條帶更新方法,所述基于位置權(quán)重將數(shù)據(jù)塊放入對應(yīng)的預(yù)設(shè)編碼隊(duì)列,包括:
14、將各個數(shù)據(jù)塊的位置權(quán)重與各自更新的頻率相乘,獲得綜合權(quán)值;
15、將綜合權(quán)值大于預(yù)設(shè)閾值的數(shù)據(jù)塊與更新頻率最高的數(shù)據(jù)塊放入所述高頻更新編碼隊(duì)列,將其他數(shù)據(jù)塊放入所述低頻更新編碼隊(duì)列,將設(shè)定的時間窗口內(nèi)未捕獲到的數(shù)據(jù)塊放入所述無更新編碼隊(duì)列。
16、根據(jù)本申請?zhí)峁┑囊环N基于多隊(duì)列的糾刪碼條帶更新方法,所述基于不同的預(yù)設(shè)編碼隊(duì)列中的數(shù)據(jù)塊,分別使用不同的預(yù)設(shè)生成策略生成條帶,包括:
17、對于所述高頻更新編碼隊(duì)列,根據(jù)隊(duì)列中現(xiàn)有的數(shù)據(jù)塊順序,結(jié)合當(dāng)前設(shè)定的編碼,順序生成條帶,若在條帶生成過程中或生成后出現(xiàn)更新操作,將對應(yīng)的編碼計(jì)算在緩存層進(jìn)行更新;
18、基于各硬盤的健康狀態(tài)信息,將所述高頻更新編碼隊(duì)列生成的新條帶轉(zhuǎn)移到健康狀況良好的硬盤中存儲。
19、根據(jù)本申請?zhí)峁┑囊环N基于多隊(duì)列的糾刪碼條帶更新方法,所述方法還包括:
20、動態(tài)調(diào)整數(shù)據(jù)塊所屬的隊(duì)列,并根據(jù)當(dāng)前集群負(fù)載情況重新生成和存儲條帶。
21、本申請根據(jù)文件訪問模式和更新情況動態(tài)調(diào)整存儲策略,適應(yīng)不同的存儲需求和訪問場景,確保系統(tǒng)長期穩(wěn)定運(yùn)行。
22、第二方面,本申請?zhí)峁┮环N基于多隊(duì)列的糾刪碼條帶更新裝置,包括:
23、獲取模塊,用于獲取原始條帶中數(shù)據(jù)塊的基本元數(shù)據(jù)信息;
24、調(diào)整模塊,用于基于所述基本元數(shù)據(jù)信息,將所述數(shù)據(jù)塊放入不同的預(yù)設(shè)編碼隊(duì)列,所述不同的預(yù)設(shè)編碼隊(duì)列包括高頻更新編碼隊(duì)列、低頻更新編碼隊(duì)列和無更新編碼隊(duì)列;
25、生成模塊,用于基于不同的預(yù)設(shè)編碼隊(duì)列中的數(shù)據(jù)塊,分別使用不同的預(yù)設(shè)生成策略生成條帶。
26、第三方面,本申請?zhí)峁┮环N電子設(shè)備,包括:至少一個存儲器,用于存儲程序;至少一個處理器,用于執(zhí)行存儲器存儲的程序,當(dāng)存儲器存儲的程序被執(zhí)行時,處理器用于執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的基于多隊(duì)列的糾刪碼條帶更新方法。
27、第四方面,本申請?zhí)峁┮环N計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀存儲介質(zhì)存儲有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序在處理器上運(yùn)行時,使得處理器執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的基于多隊(duì)列的糾刪碼條帶更新方法。
28、第五方面,本申請?zhí)峁┮环N計(jì)算機(jī)程序產(chǎn)品,當(dāng)計(jì)算機(jī)程序產(chǎn)品在處理器上運(yùn)行時,使得處理器執(zhí)行第一方面或第一方面的任一種可能的實(shí)現(xiàn)方式所描述的基于多隊(duì)列的糾刪碼條帶更新方法。
29、可以理解的是,上述第二方面至第六方面的有益效果可以參見上述第一方面中的相關(guān)描述,在此不再贅述。
30、總體而言,通過本申請所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:
31、通過特定數(shù)據(jù)塊元數(shù)據(jù)管理方式,動態(tài)調(diào)整數(shù)據(jù)塊的隊(duì)列分配和條帶生成策略,減少糾刪碼條帶更新過程中的寫放大效應(yīng),有效分散了寫入負(fù)載,減少更新操作對于ssd磨損,延長了ssd的使用壽命,并保證更新操作后的數(shù)據(jù)讀寫效率。
1.一種基于多隊(duì)列的糾刪碼條帶更新方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的基于多隊(duì)列的糾刪碼條帶更新方法,其特征在于,所述基于所述基本元數(shù)據(jù)信息,將所述數(shù)據(jù)塊放入不同的預(yù)設(shè)編碼隊(duì)列,包括:
3.根據(jù)權(quán)利要求2所述的基于多隊(duì)列的糾刪碼條帶更新方法,其特征在于,所述基于所述位置編碼計(jì)算數(shù)據(jù)塊的位置權(quán)重,包括:
4.根據(jù)權(quán)利要求2所述的基于多隊(duì)列的糾刪碼條帶更新方法,其特征在于,所述基于位置權(quán)重將數(shù)據(jù)塊放入對應(yīng)的預(yù)設(shè)編碼隊(duì)列,包括:
5.根據(jù)權(quán)利要求1所述的基于多隊(duì)列的糾刪碼條帶更新方法,其特征在于,所述基于不同的預(yù)設(shè)編碼隊(duì)列中的數(shù)據(jù)塊,分別使用不同的預(yù)設(shè)生成策略生成條帶,包括:
6.根據(jù)權(quán)利要求1所述的基于多隊(duì)列的糾刪碼條帶更新方法,其特征在于,所述方法還包括:
7.一種基于多隊(duì)列的糾刪碼條帶更新裝置,其特征在于,包括:
8.一種電子設(shè)備,其特征在于,包括:
9.一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)存儲有計(jì)算機(jī)程序,其特征在于,當(dāng)所述計(jì)算機(jī)程序在處理器上運(yùn)行時,使得所述處理器執(zhí)行如權(quán)利要求1-6任一所述的基于多隊(duì)列的糾刪碼條帶更新方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,當(dāng)所述計(jì)算機(jī)程序產(chǎn)品在處理器上運(yùn)行時,使得所述處理器執(zhí)行如權(quán)利要求1-6任一所述的基于多隊(duì)列的糾刪碼條帶更新方法。