亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種分布式存儲系統(tǒng)中元數(shù)據(jù)容錯恢復(fù)方法

文檔序號:7891778閱讀:265來源:國知局
專利名稱:一種分布式存儲系統(tǒng)中元數(shù)據(jù)容錯恢復(fù)方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息存儲領(lǐng)域,具體涉及ー種分布式存儲系統(tǒng)中元數(shù)據(jù)容錯恢復(fù)方法。
背景技術(shù)
傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)采用集中的存儲服務(wù)器存放所有數(shù)據(jù),存儲服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點(diǎn),不能滿足大規(guī)模存儲應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔(dān)存儲負(fù)荷,利用位置服務(wù)器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展,所以越來越多的企業(yè)開始使用分布式存儲系統(tǒng)來存放所有數(shù)據(jù)。
然而,對于大多數(shù)分布式文件系統(tǒng)而言,通常將元數(shù)據(jù)與數(shù)據(jù)兩者獨(dú)立開來,分別存放在不同的服務(wù)器中,從而獲得更高的系統(tǒng)擴(kuò)展性和I/o并發(fā)性。元數(shù)據(jù)服務(wù)器記錄數(shù)據(jù)邏輯名字與物理信息的映射關(guān)系,包含文件訪問控制所需要的所有塊數(shù)據(jù),對文件進(jìn)行訪問時,先向元數(shù)據(jù)服器務(wù)請求查詢對應(yīng)的元數(shù)據(jù),然后通過獲得的元數(shù)據(jù)進(jìn)行后續(xù)的與塊服務(wù)器讀寫等I/o操作。受到服務(wù)器自身硬件技術(shù)的局限和技術(shù)人員的操作因素,元數(shù)據(jù)服務(wù)器無法做到100%的無故障發(fā)生。存儲著海量數(shù)據(jù)資料的元數(shù)據(jù)服務(wù)器一旦發(fā)生故障,將直接導(dǎo)致整個分布式存儲系統(tǒng)內(nèi)存儲的海量數(shù)據(jù)丟失,造成企業(yè)的嚴(yán)重數(shù)據(jù)災(zāi)難。數(shù)據(jù)可靠性面臨著巨大的挑戰(zhàn),而此時ー種可靠有效的元數(shù)據(jù)容錯恢復(fù)方案就顯得尤為重要。通常傳統(tǒng)的元數(shù)據(jù)容錯恢復(fù)方案是將大部分元數(shù)據(jù)存放在元數(shù)據(jù)服務(wù)器或備份服務(wù)器的本地磁盤上,只有少部分元數(shù)據(jù)存放在元數(shù)據(jù)服務(wù)器的內(nèi)存中以滿足即時對元數(shù)據(jù)請求性能的需要和元數(shù)據(jù)可靠性的需要,這樣帶來的問題就是元數(shù)據(jù)服務(wù)器的性能會受到很大的影響,同時如果元數(shù)據(jù)服務(wù)器發(fā)生故障,對于內(nèi)存上存放的這部分元數(shù)據(jù)由于無法及時寫入磁盤而造成丟失,其后果也是比較嚴(yán)重的。然而,在日益增長的高性能商業(yè)存儲領(lǐng)域中,對存儲系統(tǒng)的性能和可靠性等要求較高,在現(xiàn)有分布式存儲系統(tǒng)元數(shù)據(jù)容錯恢復(fù)方案的基礎(chǔ)上,提出一種可靠高效的元數(shù)據(jù)容錯恢復(fù)方案就顯得很必要了。

發(fā)明內(nèi)容
本發(fā)明的目的是提供ー種分布式存儲系統(tǒng)中元數(shù)據(jù)容錯恢復(fù)方法。本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,數(shù)據(jù)容錯恢復(fù)步驟如下
元數(shù)據(jù)服務(wù)器會每隔一段時間將內(nèi)存中的元數(shù)據(jù)寫入到元數(shù)據(jù)文件中,如果發(fā)生掉電,那么從最后一次執(zhí)行將內(nèi)存中的元數(shù)據(jù)寫入到文件操作到掉電時刻之間進(jìn)行的元數(shù)據(jù)操作,會因?yàn)闆]有從內(nèi)存寫入到文件而丟失,所以采用changelog的機(jī)制,為元數(shù)據(jù)生成命名為changelog. *. dfs的文件,其中,*表示數(shù)字N,這些文件以log的方式將每次的元數(shù)據(jù)操作記錄下來,這些文件可稱為元數(shù)據(jù)改變?nèi)罩疚募?,以下簡稱為日志文件,它們存儲了過去的N小時的文件改變,N最大值的數(shù)值是由元數(shù)據(jù)服務(wù)器配置文件中的BACK_L0GS參數(shù)設(shè)置的,默認(rèn)為50,即如果元數(shù)據(jù)服務(wù)進(jìn)程已經(jīng)運(yùn)行了 50個小時,那么在數(shù)據(jù)路徑下會有changelog. I. dfs changelog. 50. dfs 50個文件,數(shù)字越小,表示最近最新的日志文件;
當(dāng)元數(shù)據(jù)服務(wù)器掉電重啟后,在執(zhí)行元數(shù)據(jù)服務(wù)器啟動之前需要進(jìn)行錯誤恢復(fù),具體措施為需要將最近的ー個日志文件changelog. *. dfs并入主元數(shù)據(jù)文件metadata, dfs中;
changelog主要功能是如何將元數(shù)據(jù)操作以log的形式記錄到日志文件中,在dfs元數(shù)據(jù)服務(wù)器進(jìn)程中主要有三個函數(shù)changelog_init、changelog_rotate和changelog ;
changelog_init函數(shù)完成changelog機(jī)制的初始化工作,從配置文件中獲取BACK_LOGS值來設(shè)置全局變量BackLogsNumber,該變量表示changelog. *. dfs的最多個數(shù),另ー個全局變量fd=NULL,該變量是要操作的changelog. *. dfs的文件描述符;
changelog_rotate函數(shù)主要完成重命名changelog. * dfs文件,關(guān)閉fd描述符對應(yīng)的文件;若BackLogsNumberX),則將所有的日志文件重命名,命名方法就是將 changelog. * dfs中*代表的數(shù)字N加I,新名中的N值最大為BackLogsNumber ;若BackLogsNumber<=0,則刪除掉changelog. 0. dfs,表示不需要進(jìn)行changelog ;向所有的備份服務(wù)器發(fā)送消息MAT0ML_METACHANGES_L0G通知它們需要重命名changelog_ml. * dfs,即備份服務(wù)器上的日志文件也需要重命名;
changelog函數(shù)完成的功能是向changelog. 0. dfs中添加log,從傳入?yún)?shù)中取出version和log,并將log存放到printbuff數(shù)組中;以追加的方式打開changelog. 0. dfs文件,fd記錄其文件描述符,將version和log寫入到該文件中;向所有備份服務(wù)器發(fā)送MAT0ML_METACHANGES_L0G消息,將version和log作為數(shù)據(jù)包發(fā)送出去,通知它們需要各自修改 changelog_ml. 0. dfs ;
log信息可以有兩部組成changid和log。第一列依次遞增的數(shù)字是changeid,它是由dfs元數(shù)據(jù)服務(wù)器中ー個全局變量version來維護(hù),姆次調(diào)用changelog都會自加I,而且該值也會被寫入到元數(shù)據(jù)文件中,也就是該變量在文件系統(tǒng)誕生后會一直遞增,在恢復(fù)操作時通過比對元數(shù)據(jù)文件中的version和日志文件中changeid來確定從哪一條log開始恢復(fù);
當(dāng)元數(shù)據(jù)服務(wù)器掉電吋,內(nèi)存中元數(shù)據(jù)與元數(shù)據(jù)文件中的元數(shù)據(jù)可能并不是一致,因?yàn)橹斑M(jìn)行了一些文件操作,每個文件操作成功后都有日志記錄,這些文件操作導(dǎo)致了元數(shù)據(jù)的更新,但沒有及時寫入到元數(shù)據(jù)文件中,在使用恢復(fù)操作恢復(fù)元數(shù)據(jù)時,會先將最近的元數(shù)據(jù)文件加載到內(nèi)存中,然后根據(jù)version值決定從哪條log開始恢復(fù),每執(zhí)行一條log其實(shí)就是將先前的文件操作再執(zhí)行一次,當(dāng)所有l(wèi)og執(zhí)行完畢,將內(nèi)存中元數(shù)據(jù)寫入到元數(shù)據(jù)文件中,產(chǎn)生的新的元數(shù)據(jù)文件與掉電時刻內(nèi)存中的元數(shù)據(jù)是保持一致的;
備份服務(wù)器的工作是定期從元數(shù)據(jù)服務(wù)器上下載元數(shù)據(jù)文件、日志文件、session文件和實(shí)時接收從元數(shù)據(jù)服務(wù)端發(fā)送的log日志并寫入到日志文件中,當(dāng)元數(shù)據(jù)服務(wù)器宕機(jī)后,從備份服務(wù)器上面找回元數(shù)據(jù)服務(wù)器宕機(jī)前的完整元數(shù)據(jù)文件。本發(fā)明的有益效果是大幅提高分布式文件系統(tǒng)中元數(shù)據(jù)服務(wù)的性能,通過本地和遠(yuǎn)程操作日志來保證元數(shù)據(jù)的可靠性,使得當(dāng)元數(shù)據(jù)服務(wù)器發(fā)生意外故障時能及時方便的通過操作日志來恢復(fù)所有元數(shù)據(jù)信息。使分布式文件系統(tǒng)更適用于復(fù)雜的高性能商業(yè)存儲領(lǐng)域,因而具有非常廣_的發(fā)展前景。


圖I是分布式文件系統(tǒng)的元數(shù)據(jù)備份操作日志示意 圖2是分布式文件系統(tǒng)的元數(shù)據(jù)容錯恢復(fù)示意 圖3是元數(shù)據(jù)容錯備份恢復(fù)關(guān)系示意圖。
具體實(shí)施例方式參照說明書附圖對本發(fā)明的方法作以下詳細(xì)地說明。如附圖所示,元數(shù)據(jù)服務(wù)器會每隔一段時間將內(nèi)存中的元數(shù)據(jù)寫入到元數(shù)據(jù)文件中,如果發(fā)生掉電,那么從最后一次執(zhí)行將內(nèi)存中的元數(shù)據(jù)寫入到文件操作到掉電時刻之間進(jìn)行的元數(shù)據(jù)操作,會因?yàn)闆]有從內(nèi)存寫入到文件而丟失。所以我們提出了ー種changelog的機(jī)制。我們會為元數(shù)據(jù)生成名為changelog. *. dfs (*表示數(shù)字N)的文件,這些文件以log的方式將每次的元數(shù)據(jù)操作記錄下來。這些文件可稱為元數(shù)據(jù)改變?nèi)罩疚募?(以下簡稱為日志文件),它們存儲了過去的N小時的文件改變,N最大值的數(shù)值是由元數(shù)據(jù)服務(wù)器配置文件中的BACK_L0GS參數(shù)設(shè)置的,默認(rèn)為50,即如果元數(shù)據(jù)服務(wù)進(jìn)程已經(jīng)運(yùn)行了 50個小時,那么在數(shù)據(jù)路徑下會有changelog. I. dfs change log. 50. dfs 50個文件,數(shù)字越小,表示最近最新的日志文件。當(dāng)元數(shù)據(jù)服務(wù)器掉電重啟后,在執(zhí)行元數(shù)據(jù)服務(wù)器啟動之前需要進(jìn)行錯誤恢復(fù)。具體措施為需要將最近的一個日志文件changelog. *. dfs并入主元數(shù)據(jù)文件metadata,dfs中
changelog主要功能是如何將元數(shù)據(jù)操作以log的形式記錄到日志文件中。在dfs元數(shù)據(jù)服務(wù)器進(jìn)程中主要有三個函數(shù)changelog_init、changelog_rotate和changelog。changelog_init函數(shù)完成changelog機(jī)制的初始化工作。具體實(shí)現(xiàn)從配置文件中獲取BACK_L0GS值來設(shè)置全局變量BackLogsNumber,該變量表不changelog. * dfs的最多個數(shù)。另ー個全局變量fd=NULL,該變量是要操作的changelog.*. dfs的文件描述符。changelog_rotate函數(shù)主要完成重命名changelog. * dfs文件。具體實(shí)現(xiàn)關(guān)閉fd描述符對應(yīng)的文件;若BackLogsNumberX),則將所有的日志文件重命名,命名方法就是將changelog. * dfs中*代表的數(shù)字N加I,比如changelog. 5. dfs會重命名為changelog. 6. dfs。新名中的 N 值最大為 BackLogsNumber ;若 BackLogsNumber〈=0,則刪除掉changelog. 0. dfs,表示不需要進(jìn)行changelog ;向所有的備份服務(wù)器發(fā)送消息MAT0ML_METACHANGES_L0G通知它們需要重命名changelog_ml. *. dfs,即備份服務(wù)器上的日志文件也需要重命名。changelog函數(shù)完成的功能是向changelog. 0. dfs中添加log。具體實(shí)現(xiàn)為從傳入?yún)?shù)中取出version和log,并將log存放到printbuff數(shù)組中;以追加的方式打開changelog. 0. dfs文件,fd記錄其文件描述符,將version和log寫入到該文件中;向所有備份服務(wù)器發(fā)送MAT0ML_METACHANGES_L0G消息,將version和log作為數(shù)據(jù)包發(fā)送出去,通知它們需要各自修改changelog_ml. 0. dfs。log信息可以有兩部組成changid和log。第一列依次遞增的數(shù)字是changeid,它是由dfs元數(shù)據(jù)服務(wù)器中ー個全局變量version來維護(hù),姆次調(diào)用changelog都會自加1,而且該值也會被寫入到元數(shù)據(jù)文件中,也就是該變量在文件系統(tǒng)誕生后會一直遞增,在恢復(fù)操作時通過比對元數(shù)據(jù)文件中的version和日志文件中changeid來確定從哪一條log開始恢復(fù)。當(dāng)元數(shù)據(jù)服務(wù)器掉電吋,內(nèi)存中元數(shù)據(jù)與元數(shù)據(jù)文件中的元數(shù)據(jù)可能并不是一致,因?yàn)橹斑M(jìn)行了一些文件操作(姆個文件操作成功后都有日志記錄),這些文件操作導(dǎo)致了元數(shù)據(jù)的更新,但沒有及時寫入到元數(shù)據(jù)文件中。在使用恢復(fù)操作恢復(fù)元數(shù)據(jù)時,會先將最近的元數(shù)據(jù)文件加載到內(nèi)存中,然后根據(jù)version值決定從哪條log開始恢復(fù),每執(zhí)行一條log其實(shí)就是將先前的文件操作再執(zhí)行一次。當(dāng)所有l(wèi)og執(zhí)行完畢,將內(nèi)存中元數(shù)據(jù)寫入到元數(shù)據(jù)文件中,產(chǎn)生的新的元數(shù)據(jù)文件與掉電時刻內(nèi)存中的元數(shù)據(jù)是保持一致的。備份服務(wù)器主要的工作是定期從元數(shù)據(jù)服務(wù)器上下載元數(shù)據(jù)文件、日志文件、session文件和實(shí)時接收從元數(shù)據(jù)服務(wù)端發(fā)送的log日志并寫入到日志文件中。當(dāng)元數(shù)據(jù)服務(wù)器宕機(jī)后,我們能從備份服務(wù)器上面找回元數(shù)據(jù)服務(wù)器宕機(jī)前的完整元數(shù)據(jù)文件。
實(shí)施例讓元數(shù)據(jù)服務(wù)器存儲了三種類型的元數(shù)據(jù)文件的名字空間和塊的名字空間、從文件到塊的映射、塊的副本的位置。所有的元數(shù)據(jù)都放在內(nèi)存中。前兩種類型的元數(shù)據(jù)通過向操作日志登記修改而保持不變,操作日志存儲在元數(shù)據(jù)服務(wù)器的本地磁盤并在幾個遠(yuǎn)程機(jī)器上留有副本。使用日志使得我們可以很簡單地、可靠地更新元數(shù)據(jù)服務(wù)器的狀態(tài),即使在元數(shù)據(jù)服務(wù)器崩潰的情況下也不會有不一致的問題。因?yàn)樵獢?shù)據(jù)存儲在內(nèi)存中,所以元數(shù)據(jù)服務(wù)器的操作很快,所有對元數(shù)據(jù)服務(wù)器的請求都會在極短的時間內(nèi)得到響應(yīng),從而保證了元數(shù)據(jù)服務(wù)的性能需求。操作日志包含了對元數(shù)據(jù)所作的修改的歷史記錄。它作為邏輯時間線定義了并發(fā)操作的執(zhí)行順序。文件、塊以及它們的版本號都由它們被創(chuàng)建時的邏輯時間而唯一地、永久地被標(biāo)識。由于操作日志的重要性,我們必須要將操作日志可靠地保存起來,并且只有在元數(shù)據(jù)的改變固定下來之后才將變化呈現(xiàn)給用戶。所以我們將操作日志復(fù)制到遠(yuǎn)程的機(jī)器上,并且只有在將相應(yīng)的日志記錄寫到本地和遠(yuǎn)程的磁盤上之后才回答用戶的請求。元數(shù)據(jù)服務(wù)器可以用操作日志來恢復(fù)它的文件系統(tǒng)的狀態(tài)。為了將啟動時間減至最小,日志就必須要比較小。每當(dāng)日志的長度增長到超過一定的規(guī)模后,元數(shù)據(jù)服務(wù)器就要檢查它的狀態(tài),它可以從本地磁盤裝入最近的檢查點(diǎn)來恢復(fù)狀態(tài)。創(chuàng)建ー個檢查點(diǎn)比較費(fèi)時,元數(shù)據(jù)服務(wù)器的內(nèi)部狀態(tài)是以一種在創(chuàng)建一個檢查點(diǎn)時并不耽誤即將到來的修改操作的方式來組織的。元數(shù)據(jù)服務(wù)器切換到一個新的日志文件并在ー個單獨(dú)的線程中創(chuàng)建檢查點(diǎn)。這個新的檢查點(diǎn)記錄了切換前所有的修改。 名字空間的修改必須是原子性的,它們只能有元數(shù)據(jù)服務(wù)器處理名字空間鎖保證了操作的原子性和正確性,而元數(shù)據(jù)服務(wù)器的操作日志在全局范圍內(nèi)定義了這些操作的順序。除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1.一種分布式存儲系統(tǒng)中元數(shù)據(jù)容錯恢復(fù)方法,其特征在于恢復(fù)步驟如下 元數(shù)據(jù)服務(wù)器會每隔一段時間將內(nèi)存中的元數(shù)據(jù)寫入到元數(shù)據(jù)文件中,如果發(fā)生掉電,那么從最后一次執(zhí)行將內(nèi)存中的元數(shù)據(jù)寫入到文件操作到掉電時刻之間進(jìn)行的元數(shù)據(jù)操作,會因?yàn)闆]有從內(nèi)存寫入到文件而丟失,所以采用changelog的機(jī)制,為元數(shù)據(jù)生成命名為changelog. *. dfs的文件,其中,*表示數(shù)字N,這些文件以log的方式將每次的元數(shù)據(jù)操作記錄下來,這些文件可稱為元數(shù)據(jù)改變?nèi)罩疚募?,以下簡稱為日志文件,它們存儲了過去的N小時的文件改變,N最大值的數(shù)值是由元數(shù)據(jù)服務(wù)器配置文件中的BACK_L0GS參數(shù)設(shè)置的,默認(rèn)為50,即如果元數(shù)據(jù)服務(wù)進(jìn)程已經(jīng)運(yùn)行了 50個小時,那么在數(shù)據(jù)路徑下會有changelog. I. dfs changelog. 50. dfs 50個文件,數(shù)字越小,表示最近最新的日志文件;當(dāng)元數(shù)據(jù)服務(wù)器掉電重啟后,在執(zhí)行元數(shù)據(jù)服務(wù)器啟動之前需要進(jìn)行錯誤恢復(fù),具體措施為需要將最近的一個日志文件changelog. *. dfs并入主元數(shù)據(jù)文件metadata, dfs中; changelog主要功能是如何將元數(shù)據(jù)操作以log的形式記錄到日志文件中,在dfs元數(shù)據(jù)服務(wù)器進(jìn)程中主要有三個函數(shù)changelog_init、changelog_rotate和changelog ; changelog_init函數(shù)完成changelog機(jī)制的初始化工作,從配置文件中獲取BACK_LOGS值來設(shè)置全局變量BackLogsNumber,該變量表示changelog. *. dfs的最多個數(shù),另一個全局變量fd=NULL,該變量是要操作的changelog. *. dfs的文件描述符; changelog_rotate函數(shù)主要完成重命名changelog. *. dfs文件,關(guān)閉fd描述符對應(yīng)的文件;若BackLogsNumberX),則將所有的日志文件重命名,命名方法就是將changelog. *. dfs中*代表的數(shù)字N加I,新名中的N值最大為BackLogsNumber ;若BackLogsNumber<=0,則刪除掉changelog. 0. dfs,表示不需要進(jìn)行changelog ;向所有的備份服務(wù)器發(fā)送消息MAT0ML_METACHANGES_L0G通知它們需要重命名changelog_ml. *. dfs,即備份服務(wù)器上的日志文件也需要重命名; changelog函數(shù)完成的功能是向changelog. 0. dfs中添加log,從傳入?yún)?shù)中取出version和log,并將log存放到printbuff數(shù)組中;以追加的方式打開changelog. 0. dfs文件,fd記錄其文件描述符,將version和log寫入到該文件中;向所有備份服務(wù)器發(fā)送MAT0ML_METACHANGES_L0G消息,將version和log作為數(shù)據(jù)包發(fā)送出去,通知它們需要各自修改 changelog_ml. 0. dfs ; log信息可以有兩部組成changid和log。
2.第一列依次遞增的數(shù)字是changeid,它是由dfs元數(shù)據(jù)服務(wù)器中一個全局變量version來維護(hù),每次調(diào)用changelog都會自加I,而且該值也會被寫入到元數(shù)據(jù)文件中,也就是該變量在文件系統(tǒng)誕生后會一直遞增,在恢復(fù)操作時通過比對元數(shù)據(jù)文件中的version和日志文件中changeid來確定從哪一條log開始恢復(fù); 當(dāng)元數(shù)據(jù)服務(wù)器掉電時,內(nèi)存中元數(shù)據(jù)與元數(shù)據(jù)文件中的元數(shù)據(jù)可能并不是一致,因?yàn)橹斑M(jìn)行了一些文件操作,每個文件操作成功后都有日志記錄,這些文件操作導(dǎo)致了元數(shù)據(jù)的更新,但沒有及時寫入到元數(shù)據(jù)文件中,在使用恢復(fù)操作恢復(fù)元數(shù)據(jù)時,會先將最近的元數(shù)據(jù)文件加載到內(nèi)存中,然后根據(jù)version值決定從哪條log開始恢復(fù),每執(zhí)行一條log其實(shí)就是將先前的文件操作再執(zhí)行一次,當(dāng)所有l(wèi)og執(zhí)行完畢,將內(nèi)存中元數(shù)據(jù)寫入到元數(shù)據(jù)文件中,產(chǎn)生的新的元數(shù)據(jù)文件與掉電時刻內(nèi)存中的元數(shù)據(jù)是保持一致的;備份服務(wù)器的工作是定期從元數(shù)據(jù)服務(wù)器上下載元數(shù)據(jù)文件、日志文件、session文 件和實(shí)時接收從元數(shù)據(jù)服務(wù)端發(fā)送的log日志并寫入到日志文件中,當(dāng)元數(shù)據(jù)服務(wù)器宕機(jī)后,從備份服務(wù)器上面找回元數(shù)據(jù)服務(wù)器宕機(jī)前的完整元數(shù)據(jù)文件。
全文摘要
本發(fā)明提供一種分布式存儲系統(tǒng)中元數(shù)據(jù)容錯恢復(fù)方法,當(dāng)元數(shù)據(jù)服務(wù)器掉電時,內(nèi)存中元數(shù)據(jù)與元數(shù)據(jù)文件中的元數(shù)據(jù)可能并不是一致,因?yàn)橹斑M(jìn)行了一些文件操作,每個文件操作成功后都有日志記錄,這些文件操作導(dǎo)致了元數(shù)據(jù)的更新,但沒有及時寫入到元數(shù)據(jù)文件中,在使用恢復(fù)操作恢復(fù)元數(shù)據(jù)時,會先將最近的元數(shù)據(jù)文件加載到內(nèi)存中,然后根據(jù)version值決定從哪條log開始恢復(fù),每執(zhí)行一條log其實(shí)就是將先前的文件操作再執(zhí)行一次,當(dāng)所有l(wèi)og執(zhí)行完畢,將內(nèi)存中元數(shù)據(jù)寫入到元數(shù)據(jù)文件中,產(chǎn)生的新的元數(shù)據(jù)文件與掉電時刻內(nèi)存中的元數(shù)據(jù)是保持一致的。
文檔編號H04L29/08GK102662795SQ20121007286
公開日2012年9月12日 申請日期2012年3月20日 優(yōu)先權(quán)日2012年3月20日
發(fā)明者崔贏, 張俊, 張明富, 張現(xiàn)忠, 顏秉珩 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1