本發(fā)明涉及存儲系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種存儲系統(tǒng)掉電保護方法及系統(tǒng)。
背景技術(shù):
目前,在大數(shù)據(jù)時代的背景下,存儲系統(tǒng)中數(shù)據(jù)的處理量越來越大,因此對存儲系統(tǒng)中數(shù)據(jù)的快速獲取及存儲也提出了更高要求。
在存儲系統(tǒng)中,處理器的數(shù)據(jù)處理速度是后端磁盤處理速度的指數(shù)倍,其中后端磁盤一直是影響存儲系統(tǒng)IO數(shù)據(jù)存取效率的關(guān)鍵路徑,提高后端磁盤IO數(shù)據(jù)的存取速度刻不容緩。在現(xiàn)有存儲系統(tǒng)架構(gòu)模式中,通過將系統(tǒng)內(nèi)存中的一部分空間作為從磁盤讀寫數(shù)據(jù)的緩存空間,以提高后端磁盤IO數(shù)據(jù)的存取速度。然而,該方案存在如下問題:當(dāng)存儲系統(tǒng)出現(xiàn)掉電情況時,緩存中的數(shù)據(jù)還沒有下發(fā)到后端磁盤,而掉電后緩存中數(shù)據(jù)可能丟失,會導(dǎo)致數(shù)據(jù)不一致。
技術(shù)實現(xiàn)要素:
鑒于此,本發(fā)明提供一種存儲系統(tǒng)掉電保護方法及系統(tǒng),在存儲系統(tǒng)出現(xiàn)掉電時將緩存單元中的數(shù)據(jù)保存,使系統(tǒng)在重新上電時能夠?qū)?shù)據(jù)恢復(fù),保證數(shù)據(jù)的一致。
為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種存儲系統(tǒng)掉電保護方法,包括:
在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制所述功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù);
從所述內(nèi)存單元的各所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并生成掉電保護總體信息,所述掉電保護總體信息記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。
可選地,所述從所述內(nèi)存單元的各所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并生成掉電保護總體信息包括:
初始化掉電保護總體信息;
循環(huán)查詢所述內(nèi)存單元的各所述功能模塊中是否存在需要保存的數(shù)據(jù),若所述功能模塊存在需要保存的數(shù)據(jù),則從所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并更新所述掉電保護總體信息。
可選地,還包括:
當(dāng)所述存儲系統(tǒng)上電后,查詢是否存在需要恢復(fù)的數(shù)據(jù);
若是,則獲取掉電保護總體信息,從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,從所述數(shù)據(jù)單元信息解析獲得數(shù)據(jù)單元所屬的功能模塊,并將所述數(shù)據(jù)單元信息傳送給所述功能模塊,控制所述功能模塊執(zhí)行數(shù)據(jù)恢復(fù)。
可選地,所述從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置包括:
校驗所述掉電保護總體信息的校驗值是否正確,若是,則從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置。
可選地,還包括:當(dāng)查詢到已保存的數(shù)據(jù)全部成功恢復(fù)后,清空已保存的數(shù)據(jù)。
一種存儲系統(tǒng)掉電保護系統(tǒng),包括:
掉電檢測模塊,用于在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制所述功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù);
數(shù)據(jù)保存模塊,用于從所述內(nèi)存單元的各所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并生成掉電保護總體信息,所述掉電保護總體信息記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。
可選地,所述數(shù)據(jù)保存模塊包括:
信息更新子模塊,用于初始化掉電保護總體信息,并在從所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存后,更新所述掉電保護總體信息;
數(shù)據(jù)保存子模塊,用于循環(huán)查詢所述內(nèi)存單元的功能模塊中是否存在需要保存的數(shù)據(jù),若所述功能模塊存在需要保存的數(shù)據(jù),則從所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存。
可選地,還包括:
查詢模塊,用于當(dāng)所述存儲系統(tǒng)上電后,查詢是否存在需要恢復(fù)的數(shù)據(jù);
數(shù)據(jù)恢復(fù)模塊,用于若存在需要恢復(fù)的數(shù)據(jù),則獲取掉電保護總體信息,從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,從所述數(shù)據(jù)單元信息解析獲得數(shù)據(jù)單元所屬的功能模塊,并將所述數(shù)據(jù)單元信息傳送給所述功能模塊,控制所述功能模塊執(zhí)行數(shù)據(jù)恢復(fù)。
可選地,所述數(shù)據(jù)恢復(fù)模塊用于從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,包括:
所述數(shù)據(jù)恢復(fù)模塊具體用于校驗所述掉電保護總體信息的校驗值是否正確,若是,則從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置。
可選地,所述查詢模塊還用于當(dāng)查詢到已保存的數(shù)據(jù)全部被成功恢復(fù)后,控制清空已保存的數(shù)據(jù)。
由上述技術(shù)方案可知,本發(fā)明所提供的存儲系統(tǒng)掉電保護方法及系統(tǒng),在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù);從內(nèi)存單元的各功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并相應(yīng)生成掉電保護總體信息,記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。在系統(tǒng)重新上電時,可以根據(jù)保存的數(shù)據(jù)單元信息及數(shù)據(jù)項進行數(shù)據(jù)恢復(fù)。
本發(fā)明存儲系統(tǒng)掉電保護方法及系統(tǒng),在存儲系統(tǒng)出現(xiàn)掉電時將緩存單元中的數(shù)據(jù)保存,使系統(tǒng)重新上電時能夠?qū)?shù)據(jù)恢復(fù),從而保證數(shù)據(jù)的一致。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種存儲系統(tǒng)掉電保護方法的流程圖;
圖2為本發(fā)明實施例提供的一種存儲系統(tǒng)掉電保護方法中上電恢復(fù)方法的流程圖;
圖3為本發(fā)明實施例提供的一種存儲系統(tǒng)掉電保護系統(tǒng)的示意圖;
圖4為本發(fā)明又一實施例提供的一種存儲系統(tǒng)掉電保護系統(tǒng)的示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供一種存儲系統(tǒng)掉電保護方法,包括:
在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制所述功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù);
從所述內(nèi)存單元的各所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并生成掉電保護總體信息,所述掉電保護總體信息記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。
可以看出,本實施例存儲系統(tǒng)掉電保護方法,在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù);從內(nèi)存單元的各功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并相應(yīng)生成掉電保護總體信息,記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。在系統(tǒng)重新上電時,可以根據(jù)保存的數(shù)據(jù)單元信息及數(shù)據(jù)項恢復(fù)數(shù)據(jù)。因此本實施例存儲系統(tǒng)掉電保護方法,在存儲系統(tǒng)出現(xiàn)掉電時將緩存單元中的數(shù)據(jù)保存,使系統(tǒng)重新上電時能夠?qū)?shù)據(jù)恢復(fù),從而保證數(shù)據(jù)的一致。
下面結(jié)合具體實施方式對本實施例存儲系統(tǒng)掉電保護方法進行詳細說明。請參考圖1,本實施例存儲系統(tǒng)掉電保護方法包括步驟:
S10:在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制所述功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù)。
在檢測到存儲系統(tǒng)出現(xiàn)異常掉電時,向存儲系統(tǒng)內(nèi)存單元中的各功能模塊發(fā)送掉電通知,各功能模塊在接收到掉電通知時,執(zhí)行必要的準備工作,停止運行業(yè)務(wù),包括停止前端業(yè)務(wù)以及后端磁盤的訪問,并整理出需要保存的數(shù)據(jù)。其中,所述的內(nèi)存單元包括緩存區(qū)。
優(yōu)選的,本實施例中所述功能模塊為預(yù)設(shè)的受保護功能模塊,即在系統(tǒng)發(fā)生掉電情況時,對需要受保護的功能模塊進行保存數(shù)據(jù)。
S11:從所述內(nèi)存單元的各所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并生成掉電保護總體信息,所述掉電保護總體信息記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。
在檢測到存儲系統(tǒng)出現(xiàn)異常掉電時,并在各功能模塊完成準備工作,整理出需要保存的數(shù)據(jù)后,開啟數(shù)據(jù)保存流程。
本實施例中數(shù)據(jù)保存流程具體包括:首先,初始化掉電保護總體信息,并保存;然后,循環(huán)查詢所述內(nèi)存單元的各所述功能模塊中是否存在需要保存的數(shù)據(jù),若功能模塊存在需要保存的數(shù)據(jù),則從所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并更新所述掉電保護總體信息。更新掉電保護總體信息是指在掉電保護總體信息中記錄保存數(shù)據(jù)對應(yīng)的數(shù)據(jù)單元信息以及保存位置。
其中,在每一數(shù)據(jù)單元的數(shù)據(jù)項全部保存完成后,在掉電保護總體信息中更新記錄其數(shù)據(jù)單元信息。在所有數(shù)據(jù)單元信息以及數(shù)據(jù)項全部保存完成后,更新掉電保護總體信息。
本實施例存儲系統(tǒng)掉電保護方法,在存儲系統(tǒng)出現(xiàn)異常掉電時,將內(nèi)存單元中需要保存的數(shù)據(jù)進行保存,保存對應(yīng)的數(shù)據(jù)單元信息及數(shù)據(jù)項,使存儲系統(tǒng)在重新上電時能夠根據(jù)保存的數(shù)據(jù)進行數(shù)據(jù)恢復(fù),從而可保證內(nèi)存單元中數(shù)據(jù)完整,可提高存儲系統(tǒng)數(shù)據(jù)的可靠性,不至于因為系統(tǒng)掉電而丟失緩存中業(yè)務(wù)數(shù)據(jù)導(dǎo)致數(shù)據(jù)不一致。
在本實施例另一具體實施方式中,在上述實施例內(nèi)容的基礎(chǔ)上,所述存儲系統(tǒng)掉電保護方法還包括上電恢復(fù)流程,請參考圖2,具體包括步驟:
S20:當(dāng)所述存儲系統(tǒng)上電后,查詢是否存在需要恢復(fù)的數(shù)據(jù)。
在存儲系統(tǒng)重新上電,重啟運行時,根據(jù)多種條件綜合判斷由哪些控制器需要恢復(fù)哪些存儲池的數(shù)據(jù),將需要恢復(fù)數(shù)據(jù)的存儲池和功能模塊在當(dāng)前控制器啟動起來。
S21:若是,則獲取掉電保護總體信息,從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,從所述數(shù)據(jù)單元信息解析獲得數(shù)據(jù)單元所屬的功能模塊,并將所述數(shù)據(jù)單元信息傳送給所述功能模塊,控制所述功能模塊執(zhí)行數(shù)據(jù)恢復(fù)。
若查詢到系統(tǒng)存在需要恢復(fù)的數(shù)據(jù),則獲取掉電保護總體信息,從掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置。
其中,從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置包括:校驗所述掉電保護總體信息的校驗值是否正確,若是,則從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置。
在獲取到掉電保護總體信息后,校驗所述掉電保護總體信息的校驗值是否正確,示例性的,在掉電保護信息中可設(shè)置循環(huán)冗余校驗碼(Cyclic Redundancy Check,CRC),在獲取到掉電保護信息后首先對掉電保護信息進行循環(huán)冗余查錯校驗。若校驗錯誤,表明該掉電保護總體信息對應(yīng)的保存數(shù)據(jù)中不存在有效數(shù)據(jù),則停止。若校驗正確,則從掉電保護總體信息中解析已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,并進行后續(xù)流程。
具體的在本步驟中,從掉電保護總體信息中首先解析出第一個數(shù)據(jù)單元信息及對應(yīng)的保存位置,從獲得的數(shù)據(jù)單元信息解析出數(shù)據(jù)單元所屬的功能模塊,將數(shù)據(jù)單元信息傳送給所述功能模塊,所述功能模塊從保存位置中讀取數(shù)據(jù)項,執(zhí)行數(shù)據(jù)恢復(fù),并返回執(zhí)行結(jié)果。若執(zhí)行結(jié)果表明恢復(fù)成功,則進行恢復(fù)下一數(shù)據(jù)項;循環(huán)執(zhí)行上述步驟對保存數(shù)據(jù)進行恢復(fù)。當(dāng)查詢到已保存的數(shù)據(jù)全部成功恢復(fù)后,清空已保存的數(shù)據(jù)。
本實施例存儲系統(tǒng)掉電保護方法,在存儲系統(tǒng)出現(xiàn)異常掉電時,將內(nèi)存單元中需要保存的數(shù)據(jù)進行保存,保存對應(yīng)的數(shù)據(jù)單元信息及數(shù)據(jù)項;在存儲系統(tǒng)重新上電時能夠?qū)Ρ4娴臄?shù)據(jù)進行數(shù)據(jù)恢復(fù),保證了內(nèi)存中數(shù)據(jù)的完整,可提高存儲系統(tǒng)數(shù)據(jù)的可靠性,不至于因為系統(tǒng)掉電而丟失緩存中業(yè)務(wù)數(shù)據(jù),導(dǎo)致數(shù)據(jù)不一致。使系統(tǒng)不需支持接管掉電前內(nèi)存數(shù)據(jù)。
相應(yīng)的,本發(fā)明實施例還提供一種存儲系統(tǒng)掉電保護系統(tǒng),包括:
掉電檢測模塊,用于在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制所述功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù);
數(shù)據(jù)保存模塊,用于從所述內(nèi)存單元的各所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并生成掉電保護總體信息,所述掉電保護總體信息記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。
可以看出,本實施例存儲系統(tǒng)掉電保護系統(tǒng)包括掉電檢測模塊和數(shù)據(jù)保存模塊,在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù);從內(nèi)存單元的各功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并相應(yīng)生成掉電保護總體信息,記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。在系統(tǒng)重新上電時,可以根據(jù)保存的數(shù)據(jù)單元信息及數(shù)據(jù)項恢復(fù)數(shù)據(jù)。因此本實施例存儲系統(tǒng)掉電保護系統(tǒng),在存儲系統(tǒng)出現(xiàn)掉電時將緩存單元中的數(shù)據(jù)保存,使系統(tǒng)重新上電時能夠?qū)?shù)據(jù)恢復(fù),從而保證數(shù)據(jù)的一致。
下面結(jié)合具體實施方式對本實施例存儲系統(tǒng)掉電保護系統(tǒng)進行詳細說明。本實施例存儲系統(tǒng)掉電保護系統(tǒng)包括:
掉電檢測模塊30,用于在檢測到存儲系統(tǒng)出現(xiàn)掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,以控制所述功能模塊停止運行業(yè)務(wù),并整理出需要保存的數(shù)據(jù)。
具體的,可采用可編程邏輯器件(Complex Programmable Logic Device,CPLD)檢測系統(tǒng)是否出現(xiàn)異常掉電,在系統(tǒng)發(fā)生異常掉電時,可編程邏輯器件通過拉低CPU的GPIO引腳告知異常掉電事件。掉電檢測模塊30將會捕捉到GPIO引腳發(fā)生從1到0的跳變,表明系統(tǒng)發(fā)生異常掉電。
掉電檢測模塊30在檢測到存儲系統(tǒng)出現(xiàn)異常掉電時,向內(nèi)存單元中的功能模塊發(fā)送掉電通知,功能模塊根據(jù)掉電通知,執(zhí)行必要的準備工作,停止運行業(yè)務(wù),包括停止前端業(yè)務(wù)以及后端磁盤的訪問,并整理出需要保存的數(shù)據(jù)。
具體的,掉電檢測模塊30的掉電檢測功能可由用戶空間進程控制進行,可通過配置接口向系統(tǒng)內(nèi)存單元中的功能模塊傳送掉電通知。
掉電檢測模塊30向內(nèi)存單元中的各功能模塊發(fā)送掉電通知后,并通知數(shù)據(jù)保存模塊31啟動數(shù)據(jù)保存流程。
數(shù)據(jù)保存模塊31,用于從所述內(nèi)存單元的各所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,并生成掉電保護總體信息,所述掉電保護總體信息記錄已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及保存位置。
本實施例中,所述數(shù)據(jù)保存模塊31包括:
信息更新子模塊,用于初始化掉電保護總體信息,并在從所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存后,更新所述掉電保護總體信息;
數(shù)據(jù)保存子模塊,用于循環(huán)查詢所述內(nèi)存單元的功能模塊中是否存在需要保存的數(shù)據(jù),若所述功能模塊存在需要保存的數(shù)據(jù),則從所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存。
當(dāng)數(shù)據(jù)保存模塊31開啟數(shù)據(jù)保存流程,信息更新子模塊首先初始化掉電保護總體信息,數(shù)據(jù)保存子模塊循環(huán)查詢所述內(nèi)存單元的各所述功能模塊中是否存在需要保存的數(shù)據(jù),若功能模塊存在需要保存的數(shù)據(jù),則從所述功能模塊中獲取需要保存數(shù)據(jù)的數(shù)據(jù)單元信息以及數(shù)據(jù)單元的數(shù)據(jù)項,進行保存,同時信息更新子模塊更新所述掉電保護總體信息,更新掉電保護總體信息是指在掉電保護總體信息中記錄保存數(shù)據(jù)對應(yīng)的數(shù)據(jù)單元信息以及保存位置。
本實施例中,數(shù)據(jù)保存模塊31包括存儲單元,獲取的需要保存數(shù)據(jù)的數(shù)據(jù)單元信息、數(shù)據(jù)項以及掉電保護總體信息保存在存儲單元中。所述存儲單元可采用固態(tài)硬盤。
在本實施例存儲系統(tǒng)掉電保護系統(tǒng)另一具體實施方式中,在上述實施例內(nèi)容的基礎(chǔ)上,所述存儲系統(tǒng)掉電保護系統(tǒng)還具有上電自動恢復(fù)數(shù)據(jù)的功能,請參考圖4,所述系統(tǒng)還包括:
查詢模塊32,用于當(dāng)所述存儲系統(tǒng)上電后,查詢是否存在需要恢復(fù)的數(shù)據(jù)。
在存儲系統(tǒng)重新上電重啟運行時,查詢模塊32根據(jù)多種條件綜合判斷由哪些控制器需要恢復(fù)哪些存儲池的數(shù)據(jù),將需要恢復(fù)數(shù)據(jù)的存儲池和功能模塊在當(dāng)前控制器啟動起來。
數(shù)據(jù)恢復(fù)模塊33,用于若存在需要恢復(fù)的數(shù)據(jù),則獲取掉電保護總體信息,從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,從所述數(shù)據(jù)單元信息解析獲得數(shù)據(jù)單元所屬的功能模塊,并將所述數(shù)據(jù)單元信息傳送給所述功能模塊,控制所述功能模塊執(zhí)行數(shù)據(jù)恢復(fù)。
其中優(yōu)選的,所述數(shù)據(jù)恢復(fù)模塊33用于從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,包括:
所述數(shù)據(jù)恢復(fù)模塊33具體用于校驗所述掉電保護總體信息的校驗值是否正確,若是,則從所述掉電保護總體信息中解析出已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置。
若查詢到系統(tǒng)存在需要恢復(fù)的數(shù)據(jù),則數(shù)據(jù)恢復(fù)模塊從存儲單元中獲取到掉電保護總體信息后,首先校驗所述掉電保護總體信息的校驗值是否正確,示例性的,可對掉電保護信息進行循環(huán)冗余查錯校驗。若校驗錯誤,表明該掉電保護總體信息對應(yīng)的保存數(shù)據(jù)中不存在有效數(shù)據(jù),則停止。若校驗正確,則從掉電保護總體信息中解析已保存數(shù)據(jù)的數(shù)據(jù)單元信息以及對應(yīng)的保存位置,并進行后續(xù)流程。
具體的,所述數(shù)據(jù)恢復(fù)模塊從掉電保護總體信息中首先解析出第一個數(shù)據(jù)單元信息及對應(yīng)的保存位置,從獲得的數(shù)據(jù)單元信息解析出數(shù)據(jù)單元所屬的功能模塊,將數(shù)據(jù)單元信息傳送給所述功能模塊,所述功能模塊從保存位置中讀取數(shù)據(jù)項,執(zhí)行數(shù)據(jù)恢復(fù),并返回執(zhí)行結(jié)果。若執(zhí)行結(jié)果表明恢復(fù)成功,則進行恢復(fù)下一數(shù)據(jù)項;循環(huán)執(zhí)行上述步驟對保存數(shù)據(jù)進行恢復(fù)。
所述查詢模塊32還用于當(dāng)查詢到已保存的數(shù)據(jù)全部被成功恢復(fù)后,控制清空已保存的數(shù)據(jù)。
本實施例中,在存儲系統(tǒng)出現(xiàn)掉電時,會將系統(tǒng)供電切換到備用電源,由備用電源為存儲系統(tǒng)及所述掉電保護系統(tǒng)供電,以進行掉電保護流程。
本實施例存儲系統(tǒng)掉電保護系統(tǒng),在存儲系統(tǒng)出現(xiàn)異常掉電時,將內(nèi)存單元中需要保存的數(shù)據(jù)進行保存,保存對應(yīng)的數(shù)據(jù)單元信息及數(shù)據(jù)項;在存儲系統(tǒng)重新上電時能夠?qū)Ρ4娴臄?shù)據(jù)進行數(shù)據(jù)恢復(fù),保證了系統(tǒng)內(nèi)存單元中數(shù)據(jù)的完整,可提高存儲系統(tǒng)數(shù)據(jù)的可靠性,不至于因為系統(tǒng)掉電而丟失緩存中業(yè)務(wù)數(shù)據(jù),導(dǎo)致數(shù)據(jù)不一致。
以上對本發(fā)明所提供的一種存儲系統(tǒng)掉電保護方法及系統(tǒng)進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。