一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法及裝置制造方法
【專利摘要】本申請(qǐng)公開(kāi)了一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法,包括:A、對(duì)閃存進(jìn)行分區(qū)操作,獲得用于存儲(chǔ)系統(tǒng)文件的各個(gè)工作分區(qū),對(duì)于所述每一工作分區(qū)分別生成對(duì)應(yīng)的備份分區(qū);將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分區(qū)及其對(duì)應(yīng)的備份分區(qū);B、系統(tǒng)啟動(dòng)后,讀取工作分區(qū)中的系統(tǒng)文件,判斷所述系統(tǒng)文件是否正常,若是,執(zhí)行正常系統(tǒng)啟動(dòng)流程,并結(jié)束本流程,否則執(zhí)行步驟C;C、讀取所述工作分區(qū)對(duì)應(yīng)的備份分區(qū)中的系統(tǒng)文件,根據(jù)所讀取的系統(tǒng)文件恢復(fù)所述工作分區(qū),并重啟系統(tǒng),返回步驟B。本申請(qǐng)還公開(kāi)了一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)裝置。通過(guò)應(yīng)用本申請(qǐng)方案。系統(tǒng)能自動(dòng)地進(jìn)行檢測(cè)并恢復(fù)故障,提高產(chǎn)品穩(wěn)定性,改善用戶體驗(yàn)。
【專利說(shuō)明】一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及計(jì)算機(jī)數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種基于數(shù)據(jù)冗余的系統(tǒng)故障自 動(dòng)恢復(fù)方法及裝置。
【背景技術(shù)】
[0002] 目前,嵌入式系統(tǒng)中多以nor閃存(flash)或nand flash來(lái)保存非易失性數(shù)據(jù)。 nor flash雖無(wú)燒寫次數(shù)限制的問(wèn)題,但由于其成本因素,不適宜用來(lái)在嵌入式產(chǎn)品中存儲(chǔ) 大容量的數(shù)據(jù)。nand flash雖然成本低,適合存儲(chǔ)大容量非易失數(shù)據(jù),但由于其物理及工 藝特性,又存在著有限的燒寫次數(shù)以及壞塊問(wèn)題。盡管硬件驅(qū)動(dòng)程序和文件系統(tǒng)中有針對(duì) nand flash的壞塊處理機(jī)制,但實(shí)際應(yīng)用中還是頻頻造成系統(tǒng)故障,出現(xiàn)系統(tǒng)無(wú)法正常啟 動(dòng)或是產(chǎn)品不能正常工作的問(wèn)題。另外,用戶實(shí)際使用中的誤操作,也有可能造成系統(tǒng)文件 或是配置文件缺失,從而會(huì)引起系統(tǒng)故障。
【發(fā)明內(nèi)容】
[0003] 本申請(qǐng)?zhí)峁┝艘环N基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法及裝置,能自動(dòng)地進(jìn)行 檢測(cè)并恢復(fù)系統(tǒng)故障。
[0004] 本申請(qǐng)實(shí)施例提供的一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法,包括:
[0005] A、對(duì)閃存進(jìn)行分區(qū)操作,獲得用于存儲(chǔ)系統(tǒng)文件的各個(gè)工作分區(qū),對(duì)于所述每一 工作分區(qū)分別生成對(duì)應(yīng)的備份分區(qū);將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分區(qū)及其對(duì)應(yīng)的備份 分區(qū);
[0006] B、系統(tǒng)啟動(dòng)后,讀取工作分區(qū)中的系統(tǒng)文件,判斷所述系統(tǒng)文件是否正常,若是, 執(zhí)行正常系統(tǒng)啟動(dòng)流程,并結(jié)束本流程,否則執(zhí)行步驟C ;
[0007] C、讀取所述工作分區(qū)對(duì)應(yīng)的備份分區(qū)中的系統(tǒng)文件,根據(jù)所讀取的系統(tǒng)文件恢復(fù) 所述工作分區(qū),并重啟系統(tǒng),返回步驟B。
[0008] 較佳地,所述工作分區(qū)包括系統(tǒng)內(nèi)核分區(qū)、根文件系統(tǒng)分區(qū)以及至少一個(gè)應(yīng)用分 區(qū)。
[0009] 較佳地,步驟A所述將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分區(qū)及其對(duì)應(yīng)的備份分區(qū)之 后進(jìn)一步包括:對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行校驗(yàn)計(jì)算,將所得校驗(yàn)值存儲(chǔ)在工作分 區(qū)中;
[0010] 步驟B所述判斷所述系統(tǒng)文件是否正常包括:對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行 校驗(yàn)計(jì)算,將所得校驗(yàn)值與工作分區(qū)中存儲(chǔ)的校驗(yàn)值進(jìn)行比較,若一致則判定系統(tǒng)文件正 常,若不一致則判定系統(tǒng)文件不正常。
[0011] 較佳地,所述校驗(yàn)算法為CRC32算法或MD5算法。
[0012] 較佳地,所述閃存為nand閃存。
[0013] 本申請(qǐng)實(shí)施例還提供了一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)裝置,包括:初始 化模塊,判斷模塊和恢復(fù)處理模塊;
[0014] 初始化模塊,用于對(duì)閃存進(jìn)行分區(qū)操作,獲得用于存儲(chǔ)系統(tǒng)文件的各個(gè)工作分區(qū), 對(duì)于所述每一工作分區(qū)分別生成對(duì)應(yīng)的備份分區(qū);將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分區(qū)及 其對(duì)應(yīng)的備份分區(qū);
[0015] 判斷模塊,用于在系統(tǒng)啟動(dòng)后,讀取工作分區(qū)中的系統(tǒng)文件,判斷所述系統(tǒng)文件是 否正常,若不正常,使能恢復(fù)處理模塊;
[0016] 恢復(fù)處理模塊,用于讀取所述工作分區(qū)對(duì)應(yīng)的備份分區(qū)中的系統(tǒng)文件,根據(jù)所讀 取的系統(tǒng)文件恢復(fù)所述工作分區(qū),并重啟系統(tǒng)。
[0017] 較佳地,所述工作分區(qū)包括系統(tǒng)內(nèi)核分區(qū)、根文件系統(tǒng)分區(qū)以及至少一個(gè)應(yīng)用分 區(qū)。
[0018] 較佳地,所述初始化模塊進(jìn)一步包括:初始校驗(yàn)單元,用于對(duì)工作分區(qū)中存儲(chǔ)的系 統(tǒng)文件進(jìn)行校驗(yàn)計(jì)算,將所得校驗(yàn)值存儲(chǔ)在工作分區(qū)中;
[0019] 所述判斷模塊包括:
[0020] 校驗(yàn)計(jì)算單元,用于對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行校驗(yàn)計(jì)算,得到校驗(yàn)值;
[0021] 判斷單元,用于將所述校驗(yàn)計(jì)算單元得到的校驗(yàn)值與工作分區(qū)中存儲(chǔ)的校驗(yàn)值進(jìn) 行比較,若一致則判定系統(tǒng)文件正常;若不一致則判定系統(tǒng)文件不正常;
[0022] 使能單元,用于在所述判斷單元判定系統(tǒng)文件不正常時(shí),使能恢復(fù)處理模塊。
[0023] 較佳地,所述校驗(yàn)算法為CRC32算法或MD5算法。
[0024] 較佳地,所述閃存為nand閃存。
[0025] 從以上技術(shù)方案可以看出,設(shè)置存儲(chǔ)冗余系統(tǒng)文件數(shù)據(jù)的備份分區(qū),在系統(tǒng)啟動(dòng) 時(shí),若發(fā)現(xiàn)系統(tǒng)文件異常,則從備份分區(qū)中獲取相應(yīng)的冗余系統(tǒng)文件對(duì)工作分區(qū)中的異常 系統(tǒng)文件進(jìn)行恢復(fù)。通過(guò)應(yīng)用本申請(qǐng)方案。系統(tǒng)能自動(dòng)地進(jìn)行檢測(cè)并恢復(fù)故障,提高產(chǎn)品 穩(wěn)定性,改善用戶體驗(yàn)。
【專利附圖】
【附圖說(shuō)明】
[0026] 圖1為本申請(qǐng)方法的基本流程示意圖;
[0027] 圖2為本申請(qǐng)實(shí)施例提供的基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法流程示意圖;
[0028] 圖3為本申請(qǐng)的一個(gè)實(shí)施例提供的系統(tǒng)故障自動(dòng)恢復(fù)裝置的框圖;
[0029] 圖4為本申請(qǐng)的另一實(shí)施例提供的系統(tǒng)故障自動(dòng)恢復(fù)裝置的框圖。
【具體實(shí)施方式】
[0030] 為克服現(xiàn)有的nand flash保存非易失數(shù)據(jù)過(guò)程中存在的不足,充分利用其成本低 的優(yōu)勢(shì),本申請(qǐng)?zhí)峁┝艘环N基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法,如圖1所示,包括如下 步驟:
[0031] 步驟101 :對(duì)閃存進(jìn)行分區(qū)操作,獲得用于存儲(chǔ)系統(tǒng)文件的各個(gè)工作分區(qū),對(duì)于所 述每一工作分區(qū)分別生成對(duì)應(yīng)的備份分區(qū);將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分區(qū)及其對(duì)應(yīng) 的備份分區(qū);
[0032] 步驟102 :系統(tǒng)啟動(dòng)后,讀取工作分區(qū)中的系統(tǒng)文件,判斷所述系統(tǒng)文件是否正 常,若是,執(zhí)行正常系統(tǒng)啟動(dòng)流程,并結(jié)束本流程,否則執(zhí)行步驟103 ;
[0033] 步驟103 :讀取所述工作分區(qū)對(duì)應(yīng)的備份分區(qū)中的系統(tǒng)文件,根據(jù)所讀取的系統(tǒng) 文件恢復(fù)所述工作分區(qū),并重啟系統(tǒng),返回步驟102。
[0034] 本申請(qǐng)方案較為適用于nand flash。對(duì)于nor flash,雖然其不容易出現(xiàn)壞塊, 但由于誤操作或其他原因也會(huì)出現(xiàn)數(shù)據(jù)損壞的問(wèn)題,同樣可以應(yīng)用本申請(qǐng)方案解決這一問(wèn) 題。
[0035] 為使本申請(qǐng)技術(shù)方案的技術(shù)原理、特點(diǎn)以及技術(shù)效果更加清楚,以下結(jié)合具體實(shí) 施例對(duì)本申請(qǐng)技術(shù)方案進(jìn)行詳細(xì)闡述。
[0036] 為了應(yīng)用本申請(qǐng)方案,在系統(tǒng)分區(qū)時(shí),對(duì)于每一工作分區(qū)分別生成對(duì)應(yīng)的備份分 區(qū);例如,對(duì)于kernel分區(qū),要相應(yīng)生成對(duì)應(yīng)的kernel備份分區(qū),對(duì)于根文件系統(tǒng)分區(qū),要 相應(yīng)生成對(duì)應(yīng)的根文件系統(tǒng)備份分區(qū)。對(duì)閃存進(jìn)行燒寫時(shí),除了將系統(tǒng)文件數(shù)據(jù)存儲(chǔ)到工 作分區(qū),還要將與之相同的冗余系統(tǒng)文件數(shù)據(jù)存儲(chǔ)到與該工作分區(qū)對(duì)應(yīng)的備份分區(qū)。
[0037] 本申請(qǐng)實(shí)施例提供的基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法流程如圖2所示,包 括如下步驟:
[0038] 步驟201 :系統(tǒng)上電,運(yùn)行bootloader引導(dǎo)程序;
[0039] 步驟202 :讀取系統(tǒng)內(nèi)核(kernel)分區(qū)中的系統(tǒng)文件到內(nèi)存,通過(guò)CRC32或MD5特 征值比對(duì),判斷系統(tǒng)文件是否異常;若是,執(zhí)行步驟203,否則執(zhí)行步驟204 ;
[0040] 步驟203 :讀取冗余備份數(shù)據(jù),恢復(fù)錯(cuò)誤的kernel分區(qū),重新啟動(dòng),返回步驟201 ;
[0041] 步驟204 :掛載根文件系統(tǒng)(root file system)分區(qū),通過(guò)CRC32或MD5特征值比 對(duì),判斷關(guān)鍵系統(tǒng)文件是否異常;若是,執(zhí)行步驟205,否則執(zhí)行步驟206 ;
[0042] 步驟205 :讀取根文件系統(tǒng)分區(qū)對(duì)應(yīng)的備份分區(qū)的冗余備份數(shù)據(jù),恢復(fù)錯(cuò)誤的根 文件系統(tǒng)分區(qū),重新啟動(dòng),返回步驟201 ;
[0043] 步驟206 :依次掛載各個(gè)應(yīng)用分區(qū)(例如flashutils分區(qū)、config分區(qū)、dmb分區(qū) 等),通過(guò)分區(qū)掛載狀態(tài)和關(guān)鍵系統(tǒng)文件的CRC32或MD5值比對(duì),判斷是否出現(xiàn)異常,若是執(zhí) 行步驟207,若所有應(yīng)用分區(qū)均正常執(zhí)行步驟208 ;
[0044] 步驟207 :讀取異常應(yīng)用分區(qū)對(duì)應(yīng)的備份分區(qū)的冗余備份數(shù)據(jù),恢復(fù)該異常的應(yīng) 用分區(qū),重新啟動(dòng),返回步驟201 ;
[0045] 步驟208 :系統(tǒng)正常啟動(dòng)。
[0046] 圖3為本申請(qǐng)實(shí)施例提供的一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)裝置的框圖, 該系統(tǒng)故障自動(dòng)恢復(fù)裝置300包括:初始化模塊301,判斷模塊302和恢復(fù)處理模塊303 ;
[0047] 初始化模塊301,用于對(duì)閃存進(jìn)行分區(qū)操作,獲得用于存儲(chǔ)系統(tǒng)文件的各個(gè)工作分 區(qū),對(duì)于所述每一工作分區(qū)分別生成對(duì)應(yīng)的備份分區(qū);將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分 區(qū)及其對(duì)應(yīng)的備份分區(qū);
[0048] 判斷模塊302,用于在系統(tǒng)啟動(dòng)后,讀取工作分區(qū)中的系統(tǒng)文件,判斷所述系統(tǒng)文 件是否正常,若不正常,使能恢復(fù)處理模塊303 ;
[0049] 恢復(fù)處理模塊303,用于讀取所述工作分區(qū)對(duì)應(yīng)的備份分區(qū)中的系統(tǒng)文件,根據(jù)所 讀取的系統(tǒng)文件恢復(fù)所述工作分區(qū),并重啟系統(tǒng)。
[0050] 根據(jù)本申請(qǐng)的另一實(shí)施例,所述工作分區(qū)包括系統(tǒng)內(nèi)核分區(qū)、根文件系統(tǒng)分區(qū)以 及至少一個(gè)應(yīng)用分區(qū)。
[0051] 圖4為本申請(qǐng)的另一實(shí)施例提供的系統(tǒng)故障自動(dòng)恢復(fù)裝置300的框圖。其中,初 始化模塊301進(jìn)一步包括:初始校驗(yàn)單元3011,用于對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行校 驗(yàn)計(jì)算,將所得校驗(yàn)值存儲(chǔ)在工作分區(qū)中;
[0052] 所述判斷模塊302包括:
[0053] 校驗(yàn)計(jì)算單元3021,用于對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行校驗(yàn)計(jì)算,得到校驗(yàn) 值;
[0054] 判斷單元3022,用于將所述校驗(yàn)計(jì)算單元得到的校驗(yàn)值與工作分區(qū)中存儲(chǔ)的校驗(yàn) 值進(jìn)行比較,若一致則判定系統(tǒng)文件正常;若不一致則判定系統(tǒng)文件不正常;
[0055] 使能單元3023,用于在所述判斷單元判定系統(tǒng)文件不正常時(shí),使能恢復(fù)處理模塊 303。
[0056] 根據(jù)本申請(qǐng)的另一實(shí)施例,所述校驗(yàn)算法為CRC32算法或MD5算法。
[0057] 根據(jù)本申請(qǐng)的另一實(shí)施例,所述閃存為nand閃存。
[0058] 以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng)的保護(hù)范圍,凡在 本申請(qǐng)技術(shù)方案的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申 請(qǐng)保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1. 一種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)方法,其特征在于,包括: A、 對(duì)閃存進(jìn)行分區(qū)操作,獲得用于存儲(chǔ)系統(tǒng)文件的各個(gè)工作分區(qū),對(duì)于所述每一工作 分區(qū)分別生成對(duì)應(yīng)的備份分區(qū);將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分區(qū)及其對(duì)應(yīng)的備份分 區(qū); B、 系統(tǒng)啟動(dòng)后,讀取工作分區(qū)中的系統(tǒng)文件,判斷所述系統(tǒng)文件是否正常,若是,執(zhí)行 正常系統(tǒng)啟動(dòng)流程,并結(jié)束本流程,否則執(zhí)行步驟C ; C、 讀取所述工作分區(qū)對(duì)應(yīng)的備份分區(qū)中的系統(tǒng)文件,根據(jù)所讀取的系統(tǒng)文件恢復(fù)所述 工作分區(qū),并重啟系統(tǒng),返回步驟B。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng)故障自動(dòng)恢復(fù)方法,其特征在于,所述工作分區(qū)包括系 統(tǒng)內(nèi)核分區(qū)、根文件系統(tǒng)分區(qū)以及至少一個(gè)應(yīng)用分區(qū)。
3. 根據(jù)權(quán)利要求1所述的系統(tǒng)故障自動(dòng)恢復(fù)方法,其特征在于,步驟A所述將系統(tǒng)文件 分別存儲(chǔ)到相應(yīng)工作分區(qū)及其對(duì)應(yīng)的備份分區(qū)之后進(jìn)一步包括:對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng) 文件進(jìn)行校驗(yàn)計(jì)算,將所得校驗(yàn)值存儲(chǔ)在工作分區(qū)中; 步驟B所述判斷所述系統(tǒng)文件是否正常包括:對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行校驗(yàn) 計(jì)算,將所得校驗(yàn)值與工作分區(qū)中存儲(chǔ)的校驗(yàn)值進(jìn)行比較,若一致則判定系統(tǒng)文件正常,若 不一致則判定系統(tǒng)文件不正常。
4. 根據(jù)權(quán)利要求3所述的系統(tǒng)故障自動(dòng)恢復(fù)方法,其特征在于,所述校驗(yàn)算法為CRC32 算法或MD5算法。
5. 根據(jù)權(quán)利要求1至4任一項(xiàng)所述的系統(tǒng)故障自動(dòng)恢復(fù)方法,其特征在于,所述閃存為 nand閃存。
6. -種基于數(shù)據(jù)冗余的系統(tǒng)故障自動(dòng)恢復(fù)裝置,其特征在于,包括:初始化模塊,判斷 模塊和恢復(fù)處理模塊; 初始化模塊,用于對(duì)閃存進(jìn)行分區(qū)操作,獲得用于存儲(chǔ)系統(tǒng)文件的各個(gè)工作分區(qū),對(duì)于 所述每一工作分區(qū)分別生成對(duì)應(yīng)的備份分區(qū);將系統(tǒng)文件分別存儲(chǔ)到相應(yīng)工作分區(qū)及其對(duì) 應(yīng)的備份分區(qū); 判斷模塊,用于在系統(tǒng)啟動(dòng)后,讀取工作分區(qū)中的系統(tǒng)文件,判斷所述系統(tǒng)文件是否正 常,若不正常,使能恢復(fù)處理模塊; 恢復(fù)處理模塊,用于讀取所述工作分區(qū)對(duì)應(yīng)的備份分區(qū)中的系統(tǒng)文件,根據(jù)所讀取的 系統(tǒng)文件恢復(fù)所述工作分區(qū),并重啟系統(tǒng)。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng)故障自動(dòng)恢復(fù)裝置,其特征在于,所述工作分區(qū)包括系 統(tǒng)內(nèi)核分區(qū)、根文件系統(tǒng)分區(qū)以及至少一個(gè)應(yīng)用分區(qū)。
8. 根據(jù)權(quán)利要求6所述的系統(tǒng)故障自動(dòng)恢復(fù)裝置,其特征在于,所述初始化模塊進(jìn)一 步包括:初始校驗(yàn)單元,用于對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行校驗(yàn)計(jì)算,將所得校驗(yàn)值存 儲(chǔ)在工作分區(qū)中; 所述判斷模塊包括: 校驗(yàn)計(jì)算單元,用于對(duì)工作分區(qū)中存儲(chǔ)的系統(tǒng)文件進(jìn)行校驗(yàn)計(jì)算,得到校驗(yàn)值; 判斷單元,用于將所述校驗(yàn)計(jì)算單元得到的校驗(yàn)值與工作分區(qū)中存儲(chǔ)的校驗(yàn)值進(jìn)行比 較,若一致則判定系統(tǒng)文件正常;若不一致則判定系統(tǒng)文件不正常; 使能單元,用于在所述判斷單元判定系統(tǒng)文件不正常時(shí),使能恢復(fù)處理模塊。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng)故障自動(dòng)恢復(fù)裝置,其特征在于,所述校驗(yàn)算法為CRC32 算法或MD5算法。
10. 根據(jù)權(quán)利要求6至9任一項(xiàng)所述的系統(tǒng)故障自動(dòng)恢復(fù)裝置,其特征在于,所述閃存 為nand閃存。
【文檔編號(hào)】G06F11/14GK104216800SQ201410425988
【公開(kāi)日】2014年12月17日 申請(qǐng)日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】袁嘉晟, 游磊青, 梁文森 申請(qǐng)人:福建星網(wǎng)視易信息系統(tǒng)有限公司