国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種緩存數(shù)據(jù)保護(hù)方法和裝置與流程

      文檔序號:12801856閱讀:351來源:國知局
      一種緩存數(shù)據(jù)保護(hù)方法和裝置與流程

      本發(fā)明涉及數(shù)據(jù)安全性領(lǐng)域,尤其涉及一種緩存數(shù)據(jù)保護(hù)方法和裝置。



      背景技術(shù):

      隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)存儲系統(tǒng)越來越成為經(jīng)濟(jì)社會發(fā)展的必不可少的一部分;大數(shù)據(jù)時代到來的同時也為數(shù)據(jù)存儲系統(tǒng)的設(shè)計難度帶來巨大挑戰(zhàn),例如,如何保證數(shù)據(jù)的安全性,如何在大規(guī)模i/o(input/output)并發(fā)訪問數(shù)據(jù)存儲系統(tǒng)時,保證數(shù)據(jù)的一致性和數(shù)據(jù)存儲系統(tǒng)的i/o性能變得非常關(guān)鍵;數(shù)據(jù)存儲系統(tǒng)通常引入磁盤數(shù)據(jù)緩存技術(shù),以確保數(shù)據(jù)存儲系統(tǒng)的i/o吞吐性能;當(dāng)數(shù)據(jù)存儲系統(tǒng)的電源出現(xiàn)故障時,如果不采取應(yīng)急保護(hù)措施,必然會導(dǎo)致緩存數(shù)據(jù)丟失。

      目前針對數(shù)據(jù)存儲系統(tǒng)的掉電保護(hù)方案中,通常設(shè)置數(shù)據(jù)存儲系統(tǒng)的主板基本輸入輸出系統(tǒng)(basicinputoutputsystem,bios)工作在adr-c2f模式,在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電后,利用電池備份單元(batterybackupunit,bbu)繼續(xù)供電,此時相應(yīng)的操作系統(tǒng)不能正常工作,掉電后依靠主板bios將位于內(nèi)存中的全部緩存數(shù)據(jù)直接拷貝到磁盤;在數(shù)據(jù)存儲系統(tǒng)重新上電后,開機(jī)進(jìn)入bios,由bios將掉電保存的緩存數(shù)據(jù)從磁盤重新完整拷貝到內(nèi)存。

      上述的掉電保護(hù)方案中嚴(yán)重依賴于磁盤的可靠性,在存儲緩存數(shù)據(jù)的磁盤發(fā)生故障時,會導(dǎo)致緩存數(shù)據(jù)恢復(fù)失敗。



      技術(shù)實(shí)現(xiàn)要素:

      為解決上述技術(shù)問題,本發(fā)明實(shí)施例期望提供一種緩存數(shù)據(jù)保護(hù)方法和裝置,能夠提高數(shù)據(jù)存儲系統(tǒng)中緩存數(shù)據(jù)的可恢復(fù)性。

      本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:

      本發(fā)明實(shí)施例提供了一種緩存數(shù)據(jù)保護(hù)方法,應(yīng)用于數(shù)據(jù)存儲系統(tǒng),所述方法包括:

      在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,將數(shù)據(jù)存儲系統(tǒng)的內(nèi)存中的每一個緩存數(shù)據(jù)文件分別存儲到n個存儲設(shè)備中,n為大于1的自然數(shù);所述n個存儲設(shè)備包括1個主存儲設(shè)備和n-1個從屬存儲設(shè)備;

      在數(shù)據(jù)存儲系統(tǒng)重新上電時,從每個存儲設(shè)備讀取數(shù)據(jù)存儲系統(tǒng)掉電時存儲的緩存數(shù)據(jù)文件;在從主存儲設(shè)備讀取任意一個緩存數(shù)據(jù)文件失敗時,基于從至少一個從屬存儲設(shè)備讀取的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      上述方案中,所述基于從至少一個從屬存儲設(shè)備讀取的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù),包括:獲取未能從主存儲設(shè)備成功讀取的緩存數(shù)據(jù)文件的序號,基于所獲取的緩存數(shù)據(jù)文件的序號,在從至少一個從屬存儲設(shè)備讀取出的緩存數(shù)據(jù)文件中找出相應(yīng)的緩存數(shù)據(jù)文件;基于所找出的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      上述方案中,在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,所述方法還包括:存儲每個緩存數(shù)據(jù)文件的標(biāo)識信息,所述每個緩存數(shù)據(jù)文件的標(biāo)識信息包括:對應(yīng)的緩存數(shù)據(jù)文件的元數(shù)據(jù)和下一個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;

      讀取數(shù)據(jù)存儲系統(tǒng)掉電時存儲的緩存數(shù)據(jù)文件包括:令i取1至m-1,m表示數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時內(nèi)存中存儲的緩存數(shù)據(jù)文件的個數(shù);在讀取第i個緩存數(shù)據(jù)文件后,基于第i個緩存數(shù)據(jù)文件的標(biāo)識信息,讀取第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù);基于第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù),從對應(yīng)存儲設(shè)備中讀取第i+1個緩存數(shù)據(jù)文件。

      上述方案中,在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,所述方法還包括:存儲第1個至第m-1個緩存數(shù)據(jù)文件的特征碼,其中,第i個緩存文件的特征碼,用于指示第i+1個緩存數(shù)據(jù)文件的位置信息、第i+1個個緩存數(shù)據(jù)文件的元數(shù)據(jù)或第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;

      在從主存儲設(shè)備讀取第i個緩存數(shù)據(jù)文件失敗時,讀取第i+1個緩存數(shù)據(jù)文件包括:基于第i個緩存數(shù)據(jù)文件的特征碼,從主存儲設(shè)備讀取第i+1個緩 存數(shù)據(jù)文件。

      上述方案中,在存儲各個緩存數(shù)據(jù)文件之前,所述方法還包括:基于內(nèi)存中緩存數(shù)據(jù)的基數(shù)樹,找出待存儲的各個緩存數(shù)據(jù)文件。

      本發(fā)明實(shí)施例還提供了一種緩存數(shù)據(jù)保護(hù)裝置,應(yīng)用于數(shù)據(jù)存儲系統(tǒng),所述裝置包括:第一存儲模塊、讀取模塊和恢復(fù)模塊;其中,

      第一存儲模塊,用于在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,將數(shù)據(jù)存儲系統(tǒng)的內(nèi)存中的每一個緩存數(shù)據(jù)文件分別存儲到n個存儲設(shè)備中,n為大于1的自然數(shù);所述n個存儲設(shè)備包括1個主存儲設(shè)備和n-1個從屬存儲設(shè)備;

      讀取模塊,用于在數(shù)據(jù)存儲系統(tǒng)重新上電時,從每個存儲設(shè)備讀取數(shù)據(jù)存儲系統(tǒng)掉電時存儲的緩存數(shù)據(jù)文件;

      恢復(fù)模塊,用于在從主存儲設(shè)備讀取任意一個緩存數(shù)據(jù)文件失敗時,基于從至少一個從屬存儲設(shè)備讀取的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      上述方案中,所述恢復(fù)模塊,具體用于獲取未能從主存儲設(shè)備成功讀取的緩存數(shù)據(jù)文件的序號,基于所獲取的緩存數(shù)據(jù)文件的序號,在從至少一個從屬存儲設(shè)備讀取出的緩存數(shù)據(jù)文件中找出相應(yīng)的緩存數(shù)據(jù)文件;基于所找出的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      上述方案中,所述裝置還包括第二存儲模塊,所述第二存儲模塊,具體用于在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,存儲每個緩存數(shù)據(jù)文件的標(biāo)識信息,所述每個緩存數(shù)據(jù)文件的標(biāo)識信息包括:對應(yīng)的緩存數(shù)據(jù)文件的元數(shù)據(jù)和下一個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;

      所述讀取模塊,具體用于在讀取第i個緩存數(shù)據(jù)文件后,基于第i個緩存數(shù)據(jù)文件的標(biāo)識信息,讀取第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù);基于第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù),從對應(yīng)存儲設(shè)備中讀取第i+1個緩存數(shù)據(jù)文件,i取1至m-1,m表示數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時內(nèi)存中存儲的緩存數(shù)據(jù)文件的個數(shù)。

      上述方案中,所述裝置還包括第三存儲模塊,所述第三存儲模塊,具體用于在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,存儲第1個至第m-1個緩存數(shù)據(jù)文件的特征碼,其中,第i個緩存文件的特征碼,用于指示第i+1個緩存數(shù)據(jù)文件的位置信息、 第i+1個個緩存數(shù)據(jù)文件的元數(shù)據(jù)或第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;

      所述讀取模塊,具體用于在從主存儲設(shè)備讀取第i個緩存數(shù)據(jù)文件失敗時,基于第i個緩存數(shù)據(jù)文件的特征碼,從主存儲設(shè)備讀取第i+1個緩存數(shù)據(jù)文件。

      上述方案中,所述第一存儲模塊,還用于在存儲各個緩存數(shù)據(jù)文件之前,基于內(nèi)存中緩存數(shù)據(jù)的基數(shù)樹,找出待存儲的各個緩存數(shù)據(jù)文件。

      本發(fā)明實(shí)施例提供的一種緩存數(shù)據(jù)保護(hù)方法和裝置,在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,將數(shù)據(jù)存儲系統(tǒng)的內(nèi)存中的每一個緩存數(shù)據(jù)文件分別存儲到n個存儲設(shè)備中,n為大于1的自然數(shù);所述n個存儲設(shè)備包括1個主存儲設(shè)備和n-1個從屬存儲設(shè)備;在數(shù)據(jù)存儲系統(tǒng)重新上電時,從每個存儲設(shè)備讀取數(shù)據(jù)存儲系統(tǒng)掉電時存儲的緩存數(shù)據(jù)文件;在從主存儲設(shè)備讀取任意一個緩存數(shù)據(jù)文件失敗時,基于從至少一個從屬存儲設(shè)備讀取的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù);如此,能夠提高數(shù)據(jù)存儲系統(tǒng)中緩存數(shù)據(jù)的可恢復(fù)性。

      附圖說明

      圖1為本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例的流程圖;

      圖2為本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例中存儲設(shè)備中數(shù)據(jù)存儲結(jié)構(gòu)示意圖;

      圖3為本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例中緩存數(shù)據(jù)恢復(fù)的流程圖;

      圖4為本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例中使用兩個存儲設(shè)備進(jìn)行數(shù)據(jù)恢復(fù)的流程圖;

      圖5為本發(fā)明實(shí)施例緩存數(shù)據(jù)保護(hù)裝置的結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。

      第一實(shí)施例

      圖1為本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例的流程圖,如圖1所示,該 流程包括:

      步驟100:在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,將數(shù)據(jù)存儲系統(tǒng)的內(nèi)存中的每一個緩存數(shù)據(jù)文件分別存儲到n個存儲設(shè)備中,n為大于1的自然數(shù);所述n個存儲設(shè)備包括1個主存儲設(shè)備和n-1個從屬存儲設(shè)備。

      這里,針對數(shù)據(jù)存儲系統(tǒng)設(shè)置有持續(xù)供電模塊,該持續(xù)供電模塊,用于在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,繼續(xù)為數(shù)據(jù)存儲系統(tǒng)的內(nèi)存和各個存儲設(shè)備進(jìn)行供電;示例性地,持續(xù)供電模塊可以采用bbu實(shí)現(xiàn)。

      本步驟中,每個存儲設(shè)備的類型包括但不限于:flash存儲器、非易失性內(nèi)存(nonvolatileram,nvram)、隨機(jī)存儲器等等。

      進(jìn)一步地,數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,將數(shù)據(jù)存儲系統(tǒng)的內(nèi)存中的每一個緩存數(shù)據(jù)文件都可以稱為臟數(shù)據(jù)文件;在存儲各個緩存數(shù)據(jù)文件之前,還可以基于內(nèi)存中緩存數(shù)據(jù)的基數(shù)樹(radix-tree),找出待存儲的各個緩存數(shù)據(jù)文件;這里,每個從屬存儲設(shè)備存儲的緩存數(shù)據(jù)文件可以稱為鏡像數(shù)據(jù)文件。

      在實(shí)際應(yīng)用中,在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,還可以存儲每個緩存數(shù)據(jù)文件的標(biāo)識信息,所述每個緩存數(shù)據(jù)文件的標(biāo)識信息包括:對應(yīng)的緩存數(shù)據(jù)文件的元數(shù)據(jù)和下一個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;這里,每個緩存數(shù)據(jù)文件的元數(shù)據(jù)可以用于指示對應(yīng)緩存數(shù)據(jù)文件的存儲位置信息。

      也就是說,第i個緩存數(shù)據(jù)文件的標(biāo)識信息包括:第i個緩存數(shù)據(jù)文件的元數(shù)據(jù)和第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;i取1至m-1,m表示數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時內(nèi)存中存儲的緩存數(shù)據(jù)文件的個數(shù)。

      這里,存儲第i個緩存數(shù)據(jù)文件的標(biāo)識信息的存儲設(shè)備,可以與存儲第i個緩存數(shù)據(jù)文件的存儲設(shè)備相同,也可以與存儲第i個緩存數(shù)據(jù)文件的存儲設(shè)備不相同。

      進(jìn)一步地,在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,還可以存儲第1個至第m-1個緩存數(shù)據(jù)文件的特征碼,其中,第i個緩存文件的特征碼,用于指示第i+1個緩存數(shù)據(jù)文件的位置信息、第i+1個個緩存數(shù)據(jù)文件的元數(shù)據(jù)或第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;如此,根據(jù)第i個緩存文件的特征碼,便可以找出 第i+1個個緩存數(shù)據(jù)文件所在的位置。

      下面通過圖2示例性地說明:當(dāng)存儲每個緩存數(shù)據(jù)文件的標(biāo)識信息的存儲設(shè)備與存儲對應(yīng)的緩存數(shù)據(jù)文件的存儲設(shè)備相同時,存儲設(shè)備中數(shù)據(jù)存儲的結(jié)構(gòu)示意圖,如圖2所示,nvm_pfp_header表示存儲的數(shù)據(jù)的首部,nvm_pfp_unit[0]表示存儲的第1個緩存數(shù)據(jù)文件的標(biāo)識信息和特征碼,nvm_pfp_item[0,0]至nvm_pfp_item[0,n]表示存儲的第1個緩存數(shù)據(jù)文件;nvm_pfp_unit[1]表示存儲的第2個緩存數(shù)據(jù)文件的標(biāo)識信息和特征碼,nvm_pfp_item[1,0]至nvm_pfp_item[1,n]表示存儲的第2個緩存數(shù)據(jù)文件。

      步驟101:在數(shù)據(jù)存儲系統(tǒng)重新上電時,從每個存儲設(shè)備讀取數(shù)據(jù)存儲系統(tǒng)掉電時存儲的緩存數(shù)據(jù)文件;在從主存儲設(shè)備讀取任意一個緩存數(shù)據(jù)文件失敗時,基于從至少一個從屬存儲設(shè)備讀取的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      本步驟中,可以解析出第1個緩存數(shù)據(jù)文件的元數(shù)據(jù),根據(jù)第1個緩存數(shù)據(jù)文件的元數(shù)據(jù),讀取第1個緩存數(shù)據(jù)文件;在從每個存儲設(shè)備中讀取第i個緩存數(shù)據(jù)文件后,基于第i個緩存數(shù)據(jù)文件的標(biāo)識信息,解析出第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù);基于第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù),從對應(yīng)存儲設(shè)備中讀取第i+1個緩存數(shù)據(jù)文件;如此,便于按順序讀取第1個緩存數(shù)據(jù)文件至第m個緩存數(shù)據(jù)文件。

      由于每個存儲設(shè)備可能發(fā)生區(qū)域故障,因此,可能存在至少一個緩存數(shù)據(jù)文件或至少一個緩存數(shù)據(jù)文件的元數(shù)據(jù)存儲失敗的情況,進(jìn)而,讀取對應(yīng)緩存數(shù)據(jù)文件時,會出現(xiàn)讀取失敗的情況;針對這種情況,在本步驟中,在從主存儲設(shè)備讀取第i個緩存數(shù)據(jù)文件失敗時,可以基于第i個緩存數(shù)據(jù)文件的特征碼,從主存儲設(shè)備讀取第i+1個緩存數(shù)據(jù)文件;具體地,在從主存儲設(shè)備讀取第i個緩存數(shù)據(jù)文件失敗時,通過模式匹配解析出第i個緩存數(shù)據(jù)文件的特征碼,這里,可以對第i個緩存數(shù)據(jù)文件的特征碼所指示的第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)(cyclicredundancycheck,crc),在通過crc校驗(yàn)后,確認(rèn)i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù),進(jìn)而基于第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù)讀取第i+1個緩存數(shù)據(jù)文件,實(shí)現(xiàn)第i+1個緩存數(shù)據(jù)文件的恢復(fù)。

      在現(xiàn)有技術(shù)中,在從磁盤中恢復(fù)緩存數(shù)據(jù)文件時,如果磁盤存儲介質(zhì)出現(xiàn)區(qū)域損壞時,又可能導(dǎo)致一個或多個緩存數(shù)據(jù)文件讀取失敗,導(dǎo)致后續(xù)的緩存數(shù)據(jù)文件也不能讀?。幌鄬Φ?,在本發(fā)明第一實(shí)施例中,使用緩存數(shù)據(jù)文件的特征碼,可以保證磁盤存儲介質(zhì)出現(xiàn)區(qū)域損壞時,通過對應(yīng)的特征碼找到后續(xù)的緩存數(shù)據(jù)文件的位置或元數(shù)據(jù),從而繼續(xù)讀取后續(xù)的緩存數(shù)據(jù)文件;如此,提高了緩存數(shù)據(jù)的可恢復(fù)性。

      本步驟中,所述基于從至少一個從屬存儲設(shè)備讀取的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù),包括:獲取未能從主存儲設(shè)備成功讀取的緩存數(shù)據(jù)文件的序號,基于所獲取的緩存數(shù)據(jù)文件的序號,在從至少一個從屬存儲設(shè)備讀取出的緩存數(shù)據(jù)文件中找出相應(yīng)的緩存數(shù)據(jù)文件;基于所找出的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù);示例性地,未能從主存儲設(shè)備成功讀取第j個緩存數(shù)據(jù)文件時,獲取的未能從主存儲設(shè)備成功讀取的緩存數(shù)據(jù)文件的序號為j,從屬存儲設(shè)備對第j個緩存數(shù)據(jù)文件進(jìn)行數(shù)據(jù)恢復(fù),j小于等于m。

      圖3為本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例中緩存數(shù)據(jù)恢復(fù)的流程圖,如圖3所示,共有一個從屬存儲設(shè)備,主存儲設(shè)備和從屬存儲設(shè)備統(tǒng)稱為存儲設(shè)備1。

      參照圖3,緩存數(shù)據(jù)恢復(fù)的流程包括:

      步驟101a:緩存數(shù)據(jù)保護(hù)裝置在數(shù)據(jù)存儲系統(tǒng)重新上電時,讀取存儲設(shè)備1存儲的緩存數(shù)據(jù)文件。

      這里,緩存數(shù)據(jù)保護(hù)裝置用于按照本發(fā)明第一實(shí)施例的緩存數(shù)據(jù)保護(hù)方法進(jìn)行緩存數(shù)據(jù)恢復(fù),讀取存儲設(shè)備1的緩存數(shù)據(jù)文件的過程已經(jīng)在步驟101中作出說明,這里不再重復(fù)。

      步驟101b:按照所讀取的緩存數(shù)據(jù)文件對受保護(hù)裝置中的緩存數(shù)據(jù)進(jìn)行恢復(fù)。

      這里,受保護(hù)裝置可以是數(shù)據(jù)存儲系統(tǒng)的內(nèi)存。

      步驟101c:在緩存數(shù)據(jù)恢復(fù)完成后,結(jié)束流程。

      圖4為本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例中使用兩個存儲設(shè)備進(jìn)行數(shù) 據(jù)恢復(fù)的流程圖,這兩個存儲設(shè)備分別為一個從屬存儲設(shè)備和主存儲設(shè)備,在圖4中,將控制主存儲設(shè)備的裝置記為sc0,將控制從屬存儲設(shè)備的裝置記為sc1,可以理解的是,sc0和sc1可以是同一個裝置,也可以是不同的裝置。

      如圖4所示,上述使用兩個存儲設(shè)備進(jìn)行數(shù)據(jù)恢復(fù)的流程包括:

      步驟101a:在數(shù)據(jù)存儲系統(tǒng)上電后,sc0和sc1分別讀取對應(yīng)的存儲設(shè)備中保存的緩存數(shù)據(jù)文件。

      這里,讀取對應(yīng)的存儲設(shè)備中保存的緩存數(shù)據(jù)文件已經(jīng)在步驟101中作出說明,這里不再重復(fù)。

      步驟101b:sc0將主存儲設(shè)備的讀取統(tǒng)計信息發(fā)送至sc1。

      這里,主存儲設(shè)備的讀取統(tǒng)計信息包括:主存儲設(shè)備成功讀取的緩存數(shù)據(jù)文件的序號、以及主存儲設(shè)備讀取失敗的緩存數(shù)據(jù)文件的序號。

      步驟101c:sc1根據(jù)主存儲設(shè)備的讀取統(tǒng)計信息,將從屬存儲設(shè)備保存的未能在主存儲設(shè)備中成功讀取的緩存數(shù)據(jù)文件發(fā)送至sc0。

      步驟101d:sc0根據(jù)來自主設(shè)備和從屬存儲設(shè)備的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      步驟101e:sc0在數(shù)據(jù)恢復(fù)完成后,向sc1發(fā)出通知信息,通知sc1緩存數(shù)據(jù)恢復(fù)已經(jīng)完成。

      在本發(fā)明的緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例,還可以根據(jù)數(shù)據(jù)恢復(fù)控制信號來確定是否進(jìn)行緩存數(shù)據(jù)恢復(fù);具體地說,在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,向至少一個存儲設(shè)備寫入掉電信息;在未接收到數(shù)據(jù)恢復(fù)控制信號時,不進(jìn)行緩存數(shù)據(jù)的恢復(fù);在接收到數(shù)據(jù)恢復(fù)控制信號時,讀取對應(yīng)的存儲設(shè)備中的掉電信息,如果不能成功讀取出掉電信息,則不進(jìn)行緩存數(shù)據(jù)的恢復(fù);反之,如果能夠成功讀取出掉電信息,則基于讀取出的掉電信息,判斷數(shù)據(jù)存儲系統(tǒng)發(fā)生異常掉電,此時再進(jìn)行緩存數(shù)據(jù)的恢復(fù);這里,緩存數(shù)據(jù)的恢復(fù)過程已經(jīng)在步驟100和步驟101中做出說明,這里不再重復(fù)。

      應(yīng)用本發(fā)明緩存數(shù)據(jù)保護(hù)方法的第一實(shí)施例,在至少兩個存儲設(shè)備中均進(jìn)行緩存數(shù)據(jù)的備份,實(shí)現(xiàn)了數(shù)據(jù)鏡像;在進(jìn)行緩存數(shù)據(jù)恢復(fù)時,可以從從屬存 儲設(shè)備中獲取在主存儲設(shè)備中未能讀取的緩存數(shù)據(jù)文件,提高了緩存數(shù)據(jù)文件的可恢復(fù)性;另外,通過使用緩存數(shù)據(jù)文件的特征碼,可以保證每個存儲設(shè)備的存儲介質(zhì)出現(xiàn)區(qū)域損壞時,找到后續(xù)的緩存數(shù)據(jù)文件的位置或元數(shù)據(jù),從而繼續(xù)讀取后續(xù)的緩存數(shù)據(jù)文件,如此,進(jìn)一步提高了緩存數(shù)據(jù)的可恢復(fù)性。

      第二實(shí)施例

      針對本發(fā)明第一實(shí)施例的緩存數(shù)據(jù)保護(hù)方法,本發(fā)明第二實(shí)施例提供了一種緩存數(shù)據(jù)保護(hù)裝置。

      圖5為本發(fā)明實(shí)施例緩存數(shù)據(jù)保護(hù)裝置的結(jié)構(gòu)示意圖,如圖5所示,該裝置應(yīng)用于數(shù)據(jù)存儲系統(tǒng),該裝置包括:第一存儲模塊500、讀取模塊501和恢復(fù)模塊502;其中,

      第一存儲模塊500,用于在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,將數(shù)據(jù)存儲系統(tǒng)的內(nèi)存中的每一個緩存數(shù)據(jù)文件分別存儲到n個存儲設(shè)備中,n為大于1的自然數(shù);所述n個存儲設(shè)備包括1個主存儲設(shè)備和n-1個從屬存儲設(shè)備;

      讀取模塊501,用于在數(shù)據(jù)存儲系統(tǒng)重新上電時,從每個存儲設(shè)備讀取數(shù)據(jù)存儲系統(tǒng)掉電時存儲的緩存數(shù)據(jù)文件;

      恢復(fù)模塊502,用于在從主存儲設(shè)備讀取任意一個緩存數(shù)據(jù)文件失敗時,基于從至少一個從屬存儲設(shè)備讀取的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      具體地,所述恢復(fù)模塊502,用于獲取未能從主存儲設(shè)備成功讀取的緩存數(shù)據(jù)文件的序號,基于所獲取的緩存數(shù)據(jù)文件的序號,在從至少一個從屬存儲設(shè)備讀取出的緩存數(shù)據(jù)文件中找出相應(yīng)的緩存數(shù)據(jù)文件;基于所找出的緩存數(shù)據(jù)文件,進(jìn)行緩存數(shù)據(jù)恢復(fù)。

      進(jìn)一步地,所述裝置還包括第二存儲模塊503,所述第二存儲模塊,用于在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,存儲每個緩存數(shù)據(jù)文件的標(biāo)識信息,所述每個緩存數(shù)據(jù)文件的標(biāo)識信息包括:對應(yīng)的緩存數(shù)據(jù)文件的元數(shù)據(jù)和下一個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;

      所述讀取模塊501,具體用于在讀取第i個緩存數(shù)據(jù)文件后,基于第i個緩存數(shù)據(jù)文件的標(biāo)識信息,讀取第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù);基于第i+1個 緩存數(shù)據(jù)文件的元數(shù)據(jù),從對應(yīng)存儲設(shè)備中讀取第i+1個緩存數(shù)據(jù)文件,i取1至m-1,m表示數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時內(nèi)存中存儲的緩存數(shù)據(jù)文件的個數(shù)。

      進(jìn)一步地,所述裝置還包括第三存儲模塊504,所述第三存儲模塊504,具體用于在數(shù)據(jù)存儲系統(tǒng)發(fā)生掉電時,存儲第1個至第m-1個緩存數(shù)據(jù)文件的特征碼,其中,第i個緩存文件的特征碼,用于指示第i+1個緩存數(shù)據(jù)文件的位置信息、第i+1個個緩存數(shù)據(jù)文件的元數(shù)據(jù)或第i+1個緩存數(shù)據(jù)文件的元數(shù)據(jù)位置信息;

      所述讀取模塊501,具體用于在從主存儲設(shè)備讀取第i個緩存數(shù)據(jù)文件失敗時,基于第i個緩存數(shù)據(jù)文件的特征碼,從主存儲設(shè)備讀取第i+1個緩存數(shù)據(jù)文件。

      這里,所述第一存儲模塊500,還用于在存儲各個緩存數(shù)據(jù)文件之前,基于內(nèi)存中緩存數(shù)據(jù)的基數(shù)樹,找出待存儲的各個緩存數(shù)據(jù)文件。

      在實(shí)際應(yīng)用中,所述第一存儲模塊500、讀取模塊501、恢復(fù)模塊502、第二存儲模塊503和第三存儲模塊504均可由位于終端中的中央處理器(centralprocessingunit,cpu)、微處理器(microprocessorunit,mpu)、數(shù)字信號處理器(digitalsignalprocessor,dsp)、或現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga)等實(shí)現(xiàn)。

      本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實(shí)施的計算機(jī)程序產(chǎn)品的形式。

      本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可 編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

      這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

      這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

      以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1