本技術實施例涉及計算機領域,具體而言,涉及一種數(shù)據(jù)的冗余方法、裝置、存儲介質及電子設備。
背景技術:
1、在數(shù)據(jù)存儲系統(tǒng)中,使用靜態(tài)的冗余方式進行數(shù)據(jù)存儲,無法平衡存儲成本與存儲性能。
2、由此可知,相關技術中存在無法平衡存儲成本與存儲性能的問題。
3、針對相關技術中存在的上述問題,目前尚未提出有效的解決方案。
技術實現(xiàn)思路
1、本技術實施例提供了一種數(shù)據(jù)的冗余方法、裝置、存儲介質及電子設備,以至少解決相關技術中存在的無法平衡存儲成本與存儲性能的問題。
2、根據(jù)本技術的一個實施例,提供了一種數(shù)據(jù)的冗余方法,包括:應用于數(shù)據(jù)存儲系統(tǒng)中,所述數(shù)據(jù)存儲系統(tǒng)中包括多個存儲設備,所述存儲設備用于存儲目標數(shù)據(jù),包括:在所述目標數(shù)據(jù)發(fā)生變化的情況下,確定所述目標數(shù)據(jù)中包括的數(shù)據(jù)塊的第一數(shù)量,以及確定存儲所述目標數(shù)據(jù)的冗余方式;其中,所述冗余方式中包括一個或多個冗余子方式,每個所述冗余子方式中設置有數(shù)據(jù)條帶的數(shù)量以及校驗條帶的數(shù)量;確定每個所述冗余子方式設置的數(shù)據(jù)條帶的第二數(shù)量;基于所述第一數(shù)量以及所述第二數(shù)量確定存儲所述目標數(shù)據(jù)中包括的每個所述數(shù)據(jù)塊的目標冗余方式,其中,所述目標冗余方式中包括一個或多個所述冗余子方式;按照所述目標冗余方式將每個所述數(shù)據(jù)塊存儲至所述數(shù)據(jù)存儲系統(tǒng)中包括的目標存儲設備中。
3、在一個示例性實施例中,所述基于所述第一數(shù)量以及所述第二數(shù)量確定存儲所述目標數(shù)據(jù)中包括的每個所述數(shù)據(jù)塊的目標冗余方式,包括:重復執(zhí)行目標操作,直到滿足退出條件;在滿足所述退出條件的情況下,基于每次執(zhí)行所述目標操作所得到的第一冗余方式確定每個所述數(shù)據(jù)塊的所述目標冗余方式;其中,所述目標操作包括:確定所述第二數(shù)量中包括的小于或等于所述第一數(shù)量的第三數(shù)量;將所述第三數(shù)量中包括的最大數(shù)量對應的目標冗余子方式確定為所述第一冗余方式;確定所述第一數(shù)量與所述最大數(shù)量的目標差值;在所述目標差值大于零的情況下,將所述第一數(shù)量更新為所述目標差值;在所述目標差值等于零的情況下,確定滿足所述退出條件。
4、在一個示例性實施例中,所述基于每次執(zhí)行所述目標操作所得到的第一冗余方式確定每個所述數(shù)據(jù)塊的所述目標冗余方式,包括:在所述第一冗余方式中包括一個目標冗余子方式的情況下,確定每個所述數(shù)據(jù)塊的所述目標冗余方式為所述第一冗余方式;在所述第一冗余方式中包括n個目標冗余子方式的情況下,確定每個所述目標冗余子方式中設置的數(shù)據(jù)條帶的數(shù)量,得到n個第四數(shù)量;對所述第一數(shù)量的所述數(shù)據(jù)塊進行分組,得到n個子數(shù)據(jù)塊組,n個所述子數(shù)據(jù)塊組中包括的數(shù)據(jù)塊的數(shù)量與n個所述第四數(shù)量一一對應;將每個所述子數(shù)據(jù)塊組的所述目標冗余方式確定為與所述子數(shù)據(jù)塊組對應的所述第四數(shù)量對應的所述目標冗余子方式。
5、在一個示例性實施例中,所述確定存儲所述目標數(shù)據(jù)的冗余方式,包括:確定接收到的冗余方式設置指令中包括的目標冗余數(shù);將冗余數(shù)為所述目標冗余數(shù)的方式確定為所述冗余方式。
6、在一個示例性實施例中,在所述目標數(shù)據(jù)的數(shù)據(jù)類型指示所述目標數(shù)據(jù)為目錄的情況下,獲取冗余方式設置屬性;在所述冗余方式設置屬性指示默認冗余方式的情況下,將所述目錄的冗余方式確定為所述默認冗余方式;在所述冗余方式設置屬性指示繼承冗余方式的情況下,確定所述目錄的第二冗余方式,控制所述目錄下的數(shù)據(jù)繼承所述第二冗余方式,以使所述目錄下的數(shù)據(jù)的冗余方式為所述第二冗余方式;在所述冗余方式設置屬性指示遞歸繼承冗余方式的情況下,確定所述目錄的第三冗余方式,控制所述目錄下的子目錄,以及所述子目錄下的子目錄繼承所述第三冗余方式,以使所述目錄下的子目錄,以及所述子目錄下的子目錄的冗余方式為所述第三冗余方式。
7、在一個示例性實施例中,所述按照所述目標冗余方式將每個所述數(shù)據(jù)塊存儲至所述數(shù)據(jù)存儲系統(tǒng)中包括的目標存儲設備中,包括:確定每個所述數(shù)據(jù)塊的目標數(shù)據(jù)塊以及校驗數(shù)據(jù)塊;在所述數(shù)據(jù)存儲系統(tǒng)中確定出待存儲所述目標數(shù)據(jù)塊的第一存儲設備;在所述數(shù)據(jù)存儲系統(tǒng)中確定出待存儲所述校驗數(shù)據(jù)塊的第二存儲設備,其中,所述第一存儲設備與所述第二存儲設備不同,將所述第一存儲設備以及所述第二存儲設備確定為所述目標存儲設備。在一個示例性實施例中,所述按照所述目標冗余方式將每個所述數(shù)據(jù)塊存儲至所述數(shù)據(jù)存儲系統(tǒng)中包括的目標存儲設備中,包括:按照所述目標冗余方式將所述數(shù)據(jù)塊以滿分條帶的方式寫入至所述目標存儲設備中;在按照所述目標冗余方式將所述數(shù)據(jù)塊以滿分條帶的方式寫入至所述目標存儲設備中之后,所述方法還包括:按照所述滿分條帶的方式讀取所述目標存儲設備中存儲的所述數(shù)據(jù)塊。
8、根據(jù)本技術的另一個實施例,提供了一種數(shù)據(jù)的冗余裝置,應用于數(shù)據(jù)存儲系統(tǒng)中,所述數(shù)據(jù)存儲系統(tǒng)中包括多個存儲設備,所述存儲設備用于存儲目標數(shù)據(jù),包括:第一確定模塊,用于在所述目標數(shù)據(jù)發(fā)生變化的情況下,確定所述目標數(shù)據(jù)中包括的數(shù)據(jù)塊的第一數(shù)量,以及確定存儲所述目標數(shù)據(jù)的冗余方式;其中,所述冗余方式中包括一個或多個冗余子方式,每個所述冗余子方式中設置有數(shù)據(jù)條帶的數(shù)量以及校驗條帶的數(shù)量;第二確定模塊,用于確定每個所述冗余子方式設置的數(shù)據(jù)條帶的第二數(shù)量;第三確定模塊,用于基于所述第一數(shù)量以及所述第二數(shù)量確定存儲所述目標數(shù)據(jù)中包括的每個所述數(shù)據(jù)塊的目標冗余方式,其中,所述目標冗余方式中包括一個或多個所述冗余子方式;冗余模塊,用于按照所述目標冗余方式將每個所述數(shù)據(jù)塊存儲至所述數(shù)據(jù)存儲系統(tǒng)中包括的目標存儲設備中。
9、根據(jù)本技術的又一個實施例,還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有計算機程序,其中,所述計算機程序被設置為運行時執(zhí)行上述任一項方法實施例中的步驟。
10、根據(jù)本技術的又一個實施例,還提供了一種電子設備,包括存儲器和處理器,所述存儲器中存儲有計算機程序,所述處理器被設置為運行所述計算機程序以執(zhí)行上述任一項方法實施例中的步驟。
11、根據(jù)本技術的又一個實施例,還提供了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述任一項方法實施例中的步驟。
12、通過本技術,在數(shù)據(jù)存儲系統(tǒng)中,數(shù)據(jù)存儲系統(tǒng)中包括多個存儲設備,存儲設備用于存儲目標數(shù)據(jù),可以在目標數(shù)據(jù)發(fā)生變化的情況下,確定目標數(shù)據(jù)中包括的數(shù)據(jù)塊的第一數(shù)量,以及確定存儲目標數(shù)據(jù)的冗余方式;其中,冗余方式中包括一個或多個冗余子方式,每個冗余子方式中設置有數(shù)據(jù)條帶的數(shù)量以及校驗條帶的數(shù)量;確定每個冗余子方式設置的數(shù)據(jù)條帶的第二數(shù)量;基于第一數(shù)量以及第二數(shù)量確定存儲目標數(shù)據(jù)中包括的每個數(shù)據(jù)塊的目標冗余方式,其中,目標冗余方式中包括一個或多個冗余子方式;按照目標冗余方式將每個數(shù)據(jù)塊存儲至數(shù)據(jù)存儲系統(tǒng)中包括的目標存儲設備中。由于可以根據(jù)目標數(shù)據(jù)中包括的數(shù)據(jù)塊的第一數(shù)量和每個冗余子方式中設置的數(shù)據(jù)條帶的第二數(shù)量確定存儲每個數(shù)據(jù)塊的目標冗余方式,實現(xiàn)了根據(jù)數(shù)據(jù)塊的第一數(shù)量動態(tài)選擇目標冗余方式,因此,可以解決相關技術中存在的無法平衡存儲成本與存儲性能的問題,達到降低存儲成本以及提高存儲性能的效果。