麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種數據存儲方法及裝置與流程

文檔序號:11233784閱讀:397來源:國知局
一種數據存儲方法及裝置與流程

本發明涉及數據處理領域,特別涉及一種數據存儲方法及裝置。



背景技術:

對于基于塊存儲的存儲系統,存儲設備中的元數據的重要性是不言而喻的。目前,在存儲系統中,為了提高數據存儲效率,常將真實數據和真實數據的元數據存儲在同一存儲設備上,例如:在存儲一數據時,首先計算該數據在該存儲設備上的存儲位置,確定該數據的存儲位置,并將該數據存儲至該存儲位置。這樣可以高效的存儲數據。

但是,上述存儲設備在計算一數據的存儲位置偏時,很可能出現偏差,例如:通過計算確定的一數據在上述存儲設備上的存儲位置正好在存儲了元數據的存儲位置,該數據將覆蓋該存儲位置上已存儲的元數據,進而對元數據進行誤操作,上述存儲設備在讀取元數據時必然出現問題,甚至導致存儲系統崩潰。

現有技術中,缺少對元數據的保護,在存儲數據時該數據很可能覆蓋了已存儲的元數據,導致存儲設備不能正確讀取元數據,甚至導致存儲系統崩潰,降低了存儲系統的可靠性。



技術實現要素:

本發明實施例的目的在于提供一種數據存儲方法及裝置,以提高存儲系統的可靠性。

為達到上述目的,本發明實施例公開了一種數據存儲方法,應用于存儲設備,所述存儲設備包括:元數據存儲區域,所述方法包括步驟:

接收數據存儲請求,其中,所述數據存儲請求中包含待存儲數據;

確定所述待存儲數據的目標存儲位置,并判斷所述目標存儲位置是否在所述元數據存儲區域內;

若在所述元數據存儲區域內,則判斷所述待存儲數據是否為元數據;

若為是,則在滿足預設存儲條件的情況下將所述待存儲數據存儲至所述目標存儲位置;

若為否,則拒絕將所述待存儲數據存儲至所述目標存儲位置。

在本發明的一種具體實現方式中,所述數據存儲請求中還包含:設備接口標識;

所述判斷所述待存儲數據是否為元數據,包括:

判斷所述設備接口標識是否對應預設的設備接口,其中,所述預設的設備接口用于傳遞元數據;

若為是,則判定所述待存儲數據為所述元數據。

在本發明的一種具體實現方式中,所述在滿足預設存儲條件的情況下將所述待存儲數據存儲至所述目標存儲位置,包括:

判斷所述元數據存儲區域中已存儲的所有元數據是否完整;

若為是,則將所述待存儲數據存儲至所述目標存儲位置。

在本發明的一種具體實現方式中,所述判斷所述元數據存儲區域中已存儲的所有元數據是否完整,包括:

根據預設的校驗算法,獲得所述元數據存儲區域中已存儲的所有元數據的第一校驗值;

判斷所述第一校驗值是否與第一預設的校驗值一致;

若為是,則判定所述元數據存儲區域中已存儲的所有元數據完整;

在所述將所述待存儲數據存儲至所述目標存儲位置之后,還包括:

根據所述預設的校驗算法,獲得所述元數據存儲區域中已存儲的所有元數據的第二校驗值;

根據所述第二校驗值,更新所述第一預設的校驗值。

在本發明的一種具體實現方式中,所述元數據存儲區域包括:主元數據存儲區域和備元數據存儲區域,其中,所述備元數據存儲區域為所述主元數據存儲區域的數據備份區域,所述目標存儲位置在所述主元數據存儲區域內;

所述判斷所述元數據存儲區域中已存儲的所有元數據是否完整,包括:

根據預設的校驗算法,獲得所述主元數據存儲區域中已存儲的所有元數據的第三校驗值,并判斷所述第三校驗值是否與第二預設的校驗值一致;

若所述第三校驗值與所述第二預設的校驗值不一致,則根據所述預設的校驗算法,獲得所述備元數據存儲區域中已存儲的元數據的第四校驗值,并判斷所述第四校驗值是否與所述第二預設的校驗值一致;

若為是,則判定所述元數據存儲區域中已存儲的所有元數據完整;

在所述將所述待存儲數據存儲至所述目標存儲位置之后,還包括:

根據所述預設的校驗算法,獲得所述主元數據存儲區域中已存儲的所有元數據的第五校驗值;

根據所述第五校驗值,更新所述第二預設的校驗值。

在本發明的一種具體實現方式中,在判定所述第四校驗值與所述第二預設的校驗值一致之后,還包括:

根據所述備元數據存儲區域中已存儲的所有元數據,更新所述主元數據存儲區域中已存儲的元數據。

在本發明的一種具體實現方式中,所述方法還包括:

在所述第四校驗值與所述第二預設的校驗值不一致的情況下,初始化所述主元數據存儲區域內的元數據和所述備元數據存儲區域內的元數據,并判定所述元數據存儲區域中已存儲的所有元數據完整。

為達到上述目的,本發明實施例還公開了一種數據存儲裝置,應用于存儲設備,所述存儲設備包括:元數據存儲區域,所述裝置包括:請求接收模塊、存儲位置判斷模塊、數據判斷模塊、數據存儲模塊和數據存儲拒絕模塊;

其中,所述請求接收模塊,用于接收數據存儲請求,其中,所述數據存儲請求中包含待存儲數據;

所述存儲位置判斷模塊,用于確定所述待存儲數據的目標存儲位置,并判斷所述目標存儲位置是否在所述元數據存儲區域內,若在所述元數據存儲區域內,則觸發所述數據判斷模塊;

所述數據判斷模塊,用于判斷所述待存儲數據是否為元數據,若為是,則觸發所述數據存儲模塊,若為否,則觸發所述數據存儲拒絕模塊;

所述數據存儲模塊,用于在滿足預設存儲條件的情況下將所述待存儲數據存儲至所述目標存儲位置;

所述數據存儲拒絕模塊,用于拒絕將所述待存儲數據存儲至所述目標存儲位置。

在本發明的一種具體實現方式中,所述數據存儲請求中還包含:設備接口標識;

所述數據判斷模塊,包括:設備接口判斷子模塊和數據判定子模塊;

其中,所述設備接口判斷子模塊,用于判斷所述設備接口標識是否對應預設的設備接口,若為是,則觸發所述數據判定子模塊,其中,所述預設的設備接口用于傳遞元數據;

所述數據判定子模塊,用于判定所述待存儲數據為所述元數據。

在本發明的一種具體實現方式中,所述數據存儲模塊,包括:完整數據判斷子模塊和數據存儲子模塊;

其中,所述完整數據判斷子模塊,用于判斷所述元數據存儲區域中已存儲的所有元數據是否完整,若為是,則觸發所述數據存儲子模塊;

所述數據存儲子模塊,用于將所述待存儲數據存儲至所述目標存儲位置。

在本發明的一種具體實現方式中,所述完整數據判斷子模塊,包括:校驗值獲得單元、第一校驗值判斷單元和第一完整數據判定單元;

其中,所述校驗值獲得單元,用于根據預設的校驗算法,獲得所述元數據存儲區域中已存儲的所有元數據的第一校驗值;

所述第一校驗值判斷單元,用于判斷所述第一校驗值是否與第一預設的校驗值一致,若為是,則觸發所述完整數據判定單元;

所述完整數據判定單元,用于判定所述元數據存儲區域中已存儲的所有元數據完整;

所述裝置還包括:第一校驗值獲得模塊和第一校驗值更新模塊;

其中,所述第一校驗值獲得模塊,用于根據所述預設的校驗算法,獲得所述元數據存儲區域中已存儲的所有元數據的第二校驗值;

所述第一校驗值更新模塊,用于根據所述第二校驗值,更新所述第一預設的校驗值。

在本發明的一種具體實現方式中,所述元數據存儲區域包括:主元數據存儲區域和備元數據存儲區域,其中,所述備元數據存儲區域為所述主元數據存儲區域的數據備份區域,所述目標存儲位置在所述主元數據存儲區域內;

所述完整數據判斷子模塊,包括:第二校驗值判斷單元、第三校驗值判斷單元和第二完整數據判定單元;

其中,所述第二校驗值判斷單元,用于根據預設的校驗算法,獲得所述主元數據存儲區域中已存儲的所有元數據的第三校驗值,并判斷所述第三校驗值是否與第二預設的校驗值一致,若所述第三校驗值與所述第二預設的校驗值不一致,則觸發所述第三校驗值判斷單元;

所述第三校驗值判斷單元,用于根據所述預設的校驗算法,獲得所述備元數據存儲區域中已存儲的元數據的第四校驗值,并判斷所述第四校驗值是否與所述第二預設的校驗值一致,若為是,則觸發所述第二完整數據判定單元;

所述第二完整數據判定單元,用于判定所述元數據存儲區域中已存儲的所有元數據完整;

所述裝置還包括:第二校驗值獲得模塊和第二校驗值更新模塊;

其中,所述第二校驗值獲得模塊,用于根據所述預設的校驗算法,獲得所述主元數據存儲區域中已存儲的所有元數據的第五校驗值;

所述第二校驗值更新模塊,用于根據所述第五校驗值,更新所述第二預設的校驗值。

在本發明的一種具體實現方式中,所述裝置還包括:元數據更新模塊,

用于根據所述備元數據存儲區域中已存儲的所有元數據,更新所述主元數據存儲區域中已存儲的元數據。

在本發明的一種具體實現方式中,所述裝置還包括:元數據初始化模塊,

用于在所述第四校驗值與所述第二預設的校驗值不一致的情況下,初始化所述主元數據存儲區域內的元數據和所述備元數據存儲區域內的元數據,并判定所述元數據存儲區域中已存儲的所有元數據完整。

由上可見,本發明實施例中,存儲設備接收到數據存儲請求后,確定出待存儲數據的目標存儲位置,并判斷該目標存儲位置是否在元數據存儲區域內,若在元數據存儲區域內,則判斷該待存儲數據是否為元數據,若為是,在滿足預設存儲條件的情況下將該待存儲數據存儲至所述目標存儲位置,若為否,則拒絕存儲該待存儲數據,這樣避免了真實數據覆蓋元數據的問題,保證了存儲設備能夠正確讀取元數據,提高了存儲系統的可靠性。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1本發明實施例提供的一種數據存儲方法的流程示意圖;

圖2本發明實施例提供的另一種數據存儲方法的流程示意圖;

圖3本發明實施例提供的另一種數據存儲方法的流程示意圖;

圖4本發明實施例提供的另一種數據存儲方法的流程示意圖;

圖5本發明實施例提供的一種數據存儲裝置的結構示意圖;

圖6本發明實施例提供的另一種數據存儲裝置的結構示意圖;

圖7本發明實施例提供的另一種數據存儲裝置的結構示意圖;

圖8本發明實施例提供的另一種數據存儲裝置的結構示意圖。

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是 全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。

本發明實施例公開了一種數據存儲方法及裝置,應用于存儲設備,存儲設備包括:元數據存儲區域,該方法包括:接收數據存儲請求,確定該數據存儲請求中包含的待存儲數據的目標存儲位置,并判斷目標存儲位置是否在元數據存儲區域內,若在元數據存儲區域內,則判斷待存儲數據是否為元數據,若為是,則在滿足預設存儲條件的情況下將待存儲數據存儲至目標存儲位置,若為否,則拒絕待存儲數據存儲至目標存儲位置。

下面通過具體實施例,對本發明進行詳細說明。

參考圖1,圖1本發明實施例提供的一種數據存儲方法的流程示意圖,應用于存儲設備,該存儲設備可以包括:元數據存儲區域,該方法可以包括如下步驟:

s101:接收數據存儲請求;

其中,上述數據存儲請求中包含待存儲數據。這里,待存儲數據可以為真實數據,也可以為真實數據的元數據。

實際應用中,數據存儲請求可以為存儲設備中的虛擬文件系統接收的用戶發送的數據存儲請求,其中,虛擬文件系統為基于云存儲的文件系統,其作為云存儲系統的底層存儲基礎,可以為上層應用提供存儲服務。

真實數據的元數據可以為:真實數據的存儲位置、真實數據的數據大小……等信息,本申請并不對此進行限定。

s102:確定所述待存儲數據的目標存儲位置,并判斷所述目標存儲位置是否在所述元數據存儲區域內,若在所述元數據存儲區域內,則執行步驟s103;

當然,在本發明其他實施例中,如果目標存儲位置不在所述元數據存儲區域內,則可以將待存儲數據直接存儲至目標存儲位置。

在本發明的一種具體實現方式中,上述存儲設備可以包括:元數據存儲區域和真實數據存儲區域,其中,元數據存儲區域,用于存儲元數據,真實數據存儲區域,用于存儲真實數據。

對于基于塊存儲的存儲系統,存儲設備中的元數據的重要性是不言而喻的,因為,存儲系統中可能包括多個存儲設備,且每個存儲設備中存儲有大量的真實數據,存儲系統可以根據元數據可以快速地獲得真實數據,而不必去每個存儲設備中所有真實數據來獲得獲得真實數據。因此,這種情況下,在存儲設備接收到數據存儲請求后,需要確定待存儲數據的目標存儲位置是否在元數據存儲區域。這里,對于如何確定待存儲數據的目標存儲位置數據現有技術,此處不再贅述。

s103:判斷所述待存儲數據是否為元數據,若為是,則執行步驟s104,若為否,則執行步驟s105;

s104:在滿足預設存儲條件的情況下將所述待存儲數據存儲至所述目標存儲位置;

s105:拒絕將所述待存儲數據存儲至所述目標存儲位置。

具體地,在確定待存儲數據的目標存儲位置在元數據存儲區域內情況下,為了確保元數據存儲區域內的元數據正確,需要確定該待存儲數據是否為元數據,若是元數據,則滿足預設存儲條件的情況下將待存儲數據存儲至確定的該待存儲數據的目標存儲位置,即將該待存儲數據存儲至元數據存儲區域內,若不是元數據,則拒絕待存儲數據存儲至確定的該待存儲數據的目標存儲位置,即不允許該待存儲數據存儲至元數據存儲區域內。

在本發明的一種具體實現方式中,上述數據存儲請求中還可以包含:設備接口標識;

這種情況下,上述判斷所述待存儲數據是否為元數據,可以包括:

判斷設備接口標識是否對應預設的設備接口,其中,預設的設備接口用于傳遞元數據;

若為是,則判定待存儲數據為元數據;

若為否,則判定待存儲數據不是元數據。

實際應用中,在存儲設備中可以預設一個設備接口,如:設備驅動接口,該預設的設備接口負責傳遞元數據及元數據的相關信息,而拒絕傳遞真實數據及真實數據的相關信息,這里元數據的相關信息包括:元數據的數據量大小、 元數據的目標存儲位置等,真實數據的相關信息包括:真實數據的數據量大小、真實數據的目標存儲位置等。這樣在判斷待存儲數據是否為元數據時,只需要判斷數據存儲請求中包含的設備接口標識對應的設備接口是否為用于傳遞元數據的預設的設備接口即可,方便、快捷地判斷出了待存儲數據是否為元數據,有效地避免了真實數據存儲至元數據存儲區域中。

應用圖1所示實施例,存儲設備接收到數據存儲請求后,確定出待存儲數據的目標存儲位置,并判斷該目標存儲位置是否在元數據存儲區域內,若在元數據存儲區域內,則判斷該待存儲數據是否為元數據,若為是,在滿足預設存儲條件的情況下將該待存儲數據存儲至所述目標存儲位置,若為否,則拒絕存儲該待存儲數據,這樣避免了真實數據覆蓋元數據的問題,保證了存儲設備能夠正確讀取元數據,提高了存儲系統的可靠性。

參考圖2,圖2本發明實施例提供的另一種數據存儲方法的流程示意圖,應用于存儲設備,該存儲設備可以包括:元數據存儲區域,該方法中,步驟s104可以包括:

s1041:判斷所述元數據存儲區域中已存儲的所有元數據是否完整,若為是,則執行步驟s1042;

s1042:將所述待存儲數據存儲至所述目標存儲位置。

實際應用中,很可能因為用戶的誤操作等原因,導致元數據存儲區域內的元數據的信息缺失或信息錯誤,此時,若不對該不完整的元數據進行處理,還是將接收到的元數據存儲至元數據存儲區域中,那么當存儲設備讀取到該不完整的元數據時,很可能導致存儲系統崩潰。因此,在將元數據存儲至元數據存儲區域的目標存儲位置之前,判斷元數據存儲區域中已存儲的所有元數據是否完整,以盡快發現并處理元數據存儲區域中的元數據不完整的問題,避免存儲系統崩潰的問題出現。

應用圖2所示實施例,判斷元數據存儲區域中已存儲的所有元數據是否完整,在元數據存儲區域中已存儲的所有元數據完整的情況下,才將待存儲數據存儲至目標存儲位置。這樣,保證了元數據存儲區域中的元數據的正確、完整,避免了因元數據存儲區域中的元數據不完整而導致存儲系統崩潰的問題。

參考圖3,圖3本發明實施例提供的另一種數據存儲方法的流程示意圖,應 用于存儲設備,該存儲設備可以包括:元數據存儲區域,該方法中,步驟s1041可以包括:

s1041a:根據預設的校驗算法,獲得所述元數據存儲區域中已存儲的所有元數據的第一校驗值;

其中,預設的校驗算法可以為crc校驗算法,還可以為其他校驗算法,本發明對此不進行限定。

s1041b:判斷所述第一校驗值是否與第一預設的校驗值一致,若為是,則執行步驟s1041c;

其中,第一預設的校驗值可以為上述存儲設備在上一次元數據存儲區域中存儲待存儲數據后獲得的,這樣更為智能化;也可以為用戶根據元數據存儲區域中已存儲的元數據給定的,這樣更為人性化。

s1041c:判定所述元數據存儲區域中已存儲的所有元數據完整。

假設,第一預設的校驗值為145,若根據預設的校驗算法,獲得第一的校驗值為145,145=145,則可以判定元數據存儲區域中已存儲的所有元數據完整,此時,可以將待存儲數據存儲至元數據存儲區域中的目標存儲位置。

一種具體實現方式中,若第一校驗值與第一預設的校驗值不一致,則可以初始化元數據存儲區域中的元數據,再將待存儲數據存儲至元數據存儲區域中的目標存儲位置。假設,第一預設的校驗值為145,若根據預設的校驗算法,獲得第一的校驗值為120,145≠120,則可以判定元數據存儲區域中已存儲的所有元數據不完整,此時,可以將元數據存儲區域中的元數據全部初始化后。這樣若元數據存儲區域中的元數據存儲錯誤的部分,可以得到及時的處理,提高了存儲系統的可靠性。

另外,上述數據存儲方法中,在將待存儲數據存儲至目標存儲位置之后,還可以包括:

s106:根據所述預設的校驗算法,獲得所述元數據存儲區域中已存儲的所有元數據的第二校驗值;

s107:根據所述第二校驗值,更新所述第一預設的校驗值。

實際應用中,待存儲數據存儲至元數據存儲區域中后,元數據存儲區域中的元數據發生了變化,為了確保校驗正確,第一預設的校驗值需要更新。假設,存儲待存儲數據前第一預設的校驗值為145,判斷得到第一校驗值與第一預設的校驗值一致,則將待存儲數據存儲至元數據存儲區域中,此時再獲得第二校驗值為150,則將第一預設的校驗值更新為150。

需要說明的是,當元數據存儲區域中未存儲數據時,可以直接將待存儲數據存儲至元數據存儲區域中的目標存儲位置,存儲后獲得第二校驗值,并將該第二校驗值作為第一預設的校驗值,當再有待存儲數據需要存儲至元數據存儲區域中時,根據上述步驟進行校驗。

應用圖3所示實施例,根據預設的校驗算法,獲得元數據存儲區域中已存儲的所有元數據的第一校驗值,判斷該第一校驗值是否與第一預設的校驗值一致,若一致,則可以將待存儲數據存儲至元數據存儲區域中的目標存儲位置,并在存儲待存儲數據后,獲得元數據存儲區域中已存儲的所有元數據的第二校驗值,根據該第二校驗值,更新第一預設的校驗值。這樣能夠及時發現元數據存儲區域中的元數據存儲是否錯誤的部分,提高了存儲系統的可靠性。

參考圖4,圖4本發明實施例提供的另一種數據存儲方法的流程示意圖,應用于存儲設備,該存儲設備可以包括:元數據存儲區域,該方法中,元數據存儲區域可以包括:主元數據存儲區域和備元數據存儲區域,其中,備元數據存儲區域為主元數據存儲區域的數據備份區域,目標存儲位置在主元數據存儲區域內。

這種情況下,步驟s1041可以包括:

s1041d:根據預設的校驗算法,獲得所述主元數據存儲區域中已存儲的所有元數據的第三校驗值,并判斷所述第三校驗值是否與第二預設的校驗值一致,若所述第三校驗值與所述第二預設的校驗值不一致,則執行步驟s1041e;

其中,預設的校驗算法可以為crc校驗算法,還可以為其他校驗算法,本發明對此不進行限定。另外,第二預設的校驗值可以為上述存儲設備在上一次主元數據存儲區域中存儲待存儲數據后,根據主元數據存儲區域中已存儲的所有元數據獲得的;也可以上述存儲設備在上一次主元數據存儲區域中存儲待存儲數據后,并將該待存儲數據備份到備元數據存儲區域后,根據備元數據存儲 區域中已存儲的所有元數據獲得的;還可以為用戶根據主元數據存儲區域中已存儲的所有元數據給定的。

一種具體實現方式中,若第三校驗值與第二預設的校驗值一致,可以將待存儲數據存儲至主元數據存儲區域中的目標存儲位置,存儲在主元數據存儲區域中后,還可以將該待存儲數據從主元數據存儲區域中備份到備元數據存儲區域中。

當然,若第三校驗值與第二預設的校驗值一致,還可以在將待存儲數據存儲至主元數據存儲區域中的目標存儲位置的同時,將該待存儲數據直接存儲至備元數據存儲區域中。

s1041e:根據所述預設的校驗算法,獲得所述備元數據存儲區域中已存儲的元數據的第四校驗值,并判斷所述第四校驗值是否與所述第二預設的校驗值一致,若為是,則執行步驟s1041f;

s1041f:判定所述元數據存儲區域中已存儲的所有元數據完整。

在本發明的一種具體實現方式中,上述判定元數據存儲區域中已存儲的所有元數據完整之前,還可以包括:

根據備元數據存儲區域中已存儲的所有元數據,更新主元數據存儲區域中已存儲的元數據。

具體地,根據備元數據存儲區域中已存儲的所有元數據,更新主元數據存儲區域中已存儲的元數據,可以為:獲得主元數據存儲區域中出現錯誤的元數據,及備元數據存儲區域中對應該出現錯誤的元數據的正確的元數據,由該正確的元數據更新出現錯誤的元數據,這樣能夠快速地更新主元數據存儲區域中已存儲的元數據。

具體地,根據備元數據存儲區域中已存儲的所有元數據,更新主元數據存儲區域中已存儲的元數據,還可以為:由備元數據存儲區域中已存儲的所有元數據更新主元數據存儲區域中已存儲的所有元數據,這樣能夠準確地更新主元數據存儲區域中已存儲的元數據。

實際應用中,備元數據存儲區域為主元數據存儲區域的數據備份區域,在正常的情況下,主元數據存儲區域中的元數據和備元數據存儲區域中的元數據 相同。當主元數據存儲區域內的元數據不完整、出現差錯時,若備元數據存儲區域內的元數據完整,則可以根據備元數據存儲區域中已存儲的所有元數據,更新主元數據存儲區域中已存儲的所有元數據完整,從而保證了元數據存儲區域的元數據的正確完整,降低了操作元數據的出錯率。

一種具體實現方式中,上述數據存儲方法還可以包括:

在第四校驗值與第二預設的校驗值不一致的情況下,初始化主元數據存儲區域內的元數據和備元數據存儲區域內的元數據,并判定元數據存儲區域中已存儲的所有元數據完整。

具體地,在第四校驗值與第二預設的校驗值不一致的情況下,表明主元數據存儲區域內的元數據和備元數據存儲區域內的元數據都不完整,主元數據存儲區域內的出現錯誤的元數據并不能由備元數據存儲區域內的元數據恢復,因此,需要初始化主元數據存儲區域內的元數據和備元數據存儲區域內的元數據,以保證后續存儲的元數據正確,避免了存儲系統崩潰。

另外,上述數據存儲方法中,在將待存儲數據存儲至目標存儲位置之后,還可以包括:

s108:根據所述預設的校驗算法,獲得所述主元數據存儲區域中已存儲的所有元數據的第五校驗值;

s109:根據所述第五校驗值,更新所述第二預設的校驗值。

實際應用中,待存儲數據存儲至主元數據存儲區域中后,主元數據存儲區域中的元數據發生了變化,為了確保校驗正確,第二預設的校驗值需要更新。假設,存儲待存儲數據前第二預設的校驗值為145,在判定元數據存儲區域中已存儲的所有元數據完整后,將待存儲數據存儲至主元數據存儲區域中,此時再獲得第五校驗值為150,則將第二預設的校驗值更新為150。

當然,第二預設的校驗值也可以根據備元數據存儲區域中已存儲的所有元數據進行更新。具體地,在在判定元數據存儲區域中已存儲的所有元數據完整后,將待存儲數據存儲至主元數據存儲區域中,在將該待存儲數據存備份至備在判定元數據存儲區域中已存儲的所有元數據完整后,將待存儲數據存儲至主元數據存儲區域中,此時,可以根據預設的校驗算法,獲得備元數據存儲區域 中已存儲的所有元數據的第六校驗值,根據該第六校驗值,更新第二預設的校驗值。

需要說明的是,當主元數據存儲區域中未存儲數據時,可以直接將待存儲數據存儲至主元數據存儲區域中的目標存儲位置,存儲后獲得第五校驗值,并將該第五校驗值作為第二預設的校驗值,當再有待存儲數據需要存儲至主元數據存儲區域中時,根據上述步驟進行校驗。

應用圖4所示實施例,在校驗主元數據存儲區域中已存儲的元數據失敗后,再校驗備主元數據存儲區域中已存儲的元數據,若成功,則可以判定元數據存儲區域中已存儲的所有元數據完整,由于備元數據存儲區域為主元數據存儲區域的數據備份區域,因此可以根據該備元數據存儲區域中的元數據恢復主元數據存儲區域的元數據,降低操作元數據的出錯率,提高了存儲系統的可靠性。

參考圖5,圖5本發明實施例提供的一種數據存儲裝置的結構示意圖,應用于存儲設備,上述存儲設備可以包括:元數據存儲區域,該裝置可以包括:請求接收模塊501、存儲位置判斷模塊502、數據判斷模塊503、數據存儲模塊504和數據存儲拒絕模塊505;

其中,請求接收模塊501,用于接收數據存儲請求,其中,數據存儲請求中包含待存儲數據;

存儲位置判斷模塊502,用于確定待存儲數據的目標存儲位置,并判斷目標存儲位置是否在元數據存儲區域內,若在元數據存儲區域內,則觸發數據判斷模塊;

數據判斷模塊503,用于判斷待存儲數據是否為元數據,若為是,則觸發數據存儲模塊504,若為否,則觸發數據存儲拒絕模塊505;

數據存儲模塊504,用于在滿足預設存儲條件的情況下將待存儲數據存儲至目標存儲位置;

數據存儲拒絕模塊505,用于拒絕將待存儲數據存儲至目標存儲位置。

一種具體實現方式中,數據存儲請求中還可以包含:設備接口標識;

數據判斷模塊503,可以包括:設備接口判斷子模塊和數據判定子模塊(圖5中未示出);

其中,設備接口判斷子模塊,用于判斷設備接口標識是否對應預設的設備接口,若為是,則觸發數據判定子模塊,其中,預設的設備接口用于傳遞元數據;

數據判定子模塊,用于判定待存儲數據為元數據。

應用圖5所示實施例,存儲設備接收到數據存儲請求后,確定出待存儲數據的目標存儲位置,并判斷該目標存儲位置是否在元數據存儲區域內,若在元數據存儲區域內,則判斷該待存儲數據是否為元數據,若為是,在滿足預設存儲條件的情況下將該待存儲數據存儲至所述目標存儲位置,若為否,則拒絕存儲該待存儲數據,這樣避免了真實數據覆蓋元數據的問題,保證了存儲設備能夠正確讀取元數據,提高了存儲系統的可靠性。

參考圖6,圖6本發明實施例提供的另一種數據存儲裝置的結構示意圖,應用于存儲設備,上述存儲設備可以包括:元數據存儲區域,該裝置中,數據存儲模塊504,可以包括:完整數據判斷子模塊5041和數據存儲子模塊5042;

其中,完整數據判斷子模塊5041,用于判斷元數據存儲區域中已存儲的所有元數據是否完整,若為是,則觸發數據存儲子模塊5042;

數據存儲子模塊5042,用于將待存儲數據存儲至目標存儲位置。

應用圖6所示實施例,判斷元數據存儲區域中已存儲的所有元數據是否完整,在元數據存儲區域中已存儲的所有元數據完整的情況下,才將待存儲數據存儲至目標存儲位置。這樣,保證了元數據存儲區域中的元數據的正確、完整,避免了因元數據存儲區域中的元數據不完整而導致存儲系統崩潰的問題。

參考圖7,圖7本發明實施例提供的另一種數據存儲裝置的結構示意圖,應用于存儲設備,上述存儲設備可以包括:元數據存儲區域,該裝置中,完整數據判斷子模塊5041,可以包括:校驗值獲得單元5041a、第一校驗值判斷單元5041b和第一完整數據判定單元5041c;

其中,校驗值獲得單元5041a,用于根據預設的校驗算法,獲得元數據存儲區域中已存儲的所有元數據的第一校驗值;

第一校驗值判斷單元5041b,用于判斷第一校驗值是否與第一預設的校驗值一致,若為是,則觸發完整數據判定單元5041c;

完整數據判定單元5041c,用于判定元數據存儲區域中已存儲的所有元數據完整;

此時,上述數據存儲裝置還可以包括:第一校驗值獲得模塊506和第一校驗值更新模塊507;

其中,第一校驗值獲得模塊506,用于根據預設的校驗算法,獲得元數據存儲區域中已存儲的所有元數據的第二校驗值;

第一校驗值更新模塊507,用于根據第二校驗值,更新第一預設的校驗值。

應用圖7所示實施例,根據預設的校驗算法,獲得元數據存儲區域中已存儲的所有元數據的第一校驗值,判斷該第一校驗值是否與第一預設的校驗值一致,若一致,則可以將待存儲數據存儲至元數據存儲區域中的目標存儲位置,并在存儲待存儲數據后,獲得元數據存儲區域中已存儲的所有元數據的第二校驗值,根據該第二校驗值,更新第一預設的校驗值。這樣能夠及時發現元數據存儲區域中的元數據存儲是否錯誤的部分,提高了存儲系統的可靠性。

參考圖8,圖8本發明實施例提供的另一種數據存儲裝置的結構示意圖,應用于存儲設備,上述存儲設備可以包括:元數據存儲區域,該裝置中,元數據存儲區域可以包括:主元數據存儲區域和備元數據存儲區域,其中,備元數據存儲區域為主元數據存儲區域的數據備份區域,目標存儲位置在主元數據存儲區域內;

完整數據判斷子模塊5041,包括:第二校驗值判斷單元5041d、第三校驗值判斷單元5041e和第二完整數據判定單元5041f;

其中,第二校驗值判斷單元5041d,用于根據預設的校驗算法,獲得主元數據存儲區域中已存儲的所有元數據的第三校驗值,并判斷第三校驗值是否與第二預設的校驗值一致,若第三校驗值與第二預設的校驗值不一致,則觸發第三校驗值判斷單元5041e;

第三校驗值判斷單元5041e,用于根據預設的校驗算法,獲得備元數據存儲區域中已存儲的元數據的第四校驗值,并判斷第四校驗值是否與第二預設的校驗值一致,若為是,則觸發第二完整數據判定單元5041f;

第二完整數據判定單元5041f,用于判定元數據存儲區域中已存儲的所有元 數據完整。

此時,上述數據存儲裝置還可以包括:第二校驗值獲得模塊508和第二校驗值更新模塊509;

其中,第二校驗值獲得模塊508,用于根據預設的校驗算法,獲得主元數據存儲區域中已存儲的所有元數據的第五校驗值;

第二校驗值更新模塊509,用于根據第五校驗值,更新第二預設的校驗值。

一種具體實現方式中,上述數據存儲裝置還可以包括:元數據更新模塊(圖8中未示出),

用于根據備元數據存儲區域中已存儲的所有元數據,更新主元數據存儲區域中已存儲的元數據。

一種具體實現方式中,上述數據存儲裝置還可以包括:元數據初始化模塊(圖8中未示出),

用于在第四校驗值與第二預設的校驗值不一致的情況下,初始化主元數據存儲區域內的元數據和備元數據存儲區域內的元數據,并判定元數據存儲區域中已存儲的所有元數據完整。

應用圖8所示實施例,在校驗主元數據存儲區域中已存儲的元數據失敗后,再校驗備主元數據存儲區域中已存儲的元數據,若成功,則可以判定元數據存儲區域中已存儲的所有元數據完整,由于備元數據存儲區域為主元數據存儲區域的數據備份區域,因此可以根據該備元數據存儲區域中的元數據恢復主元數據存儲區域的元數據,降低操作元數據的出錯率,提高了存儲系統的可靠性。

對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。

需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有 更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。

本領域普通技術人員可以理解實現上述方法實施方式中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于計算機可讀取存儲介質中,這里所稱得的存儲介質,如:rom/ram、磁碟、光盤等。

以上所述僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 襄垣县| 若尔盖县| 西丰县| 尉犁县| 忻州市| 名山县| 兴安县| 南丹县| 盈江县| 彰武县| 色达县| 营口市| 长兴县| 高平市| 闵行区| 都兰县| 新沂市| 奇台县| 大庆市| 株洲县| 若羌县| 达拉特旗| 沂源县| 道孚县| 大兴区| 广饶县| 江山市| 德州市| 保靖县| 冕宁县| 文山县| 称多县| 息烽县| 辉县市| 松桃| 石城县| 赤水市| 龙陵县| 云龙县| 永胜县| 日照市|