本申請涉及計算機,尤其涉及一種內(nèi)存故障管理系統(tǒng)、方法、服務器及電子設備。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)、云計算、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)等技術(shù)的發(fā)展,數(shù)據(jù)呈快速增長,存儲節(jié)點、計算節(jié)點的數(shù)量越來越多,隨著內(nèi)存訪問的規(guī)模越來越大,故障率也越來越高。內(nèi)存故障容易直接導致系統(tǒng)崩潰,服務器宕機。
2、相關技術(shù)中故障大多是通過mce(machine?check?exception,機器檢測異常)log和bmc(baseboard?management?controller,基板管理控制器)記錄的sel?(system?errorlog,系統(tǒng)錯誤日志)日志結(jié)合去發(fā)現(xiàn)定位故障的,而這些最大的問題是不能夠提前發(fā)現(xiàn)內(nèi)存問題,往往是服務器宕機重啟后才被動發(fā)現(xiàn)的。
技術(shù)實現(xiàn)思路
1、本申請?zhí)峁┝艘环N內(nèi)存故障管理系統(tǒng)、方法、服務器及電子設備,以至少解決相關技術(shù)中通過記錄日志定位內(nèi)存故障的方式無法提前發(fā)現(xiàn)并規(guī)避內(nèi)存問題,容易導致服務器宕機的問題。
2、本申請?zhí)峁┝艘环N內(nèi)存故障管理系統(tǒng),包括:硬件內(nèi)存的處理電路,處理電路上設置有硬件層和處理器;硬件層檢測硬件內(nèi)存的第一錯誤數(shù)據(jù)和第二錯誤數(shù)據(jù),第一錯誤數(shù)據(jù)為可恢復數(shù)據(jù),第二錯誤數(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ù)上報至內(nèi)核層;內(nèi)核層集成多個驅(qū)動組件,利用內(nèi)核態(tài)的保護處理機制對第一類型數(shù)據(jù)進行處理,并將第一錯誤數(shù)據(jù)和處理后第一類型數(shù)據(jù)上報至用戶層;用戶層對第一錯誤數(shù)據(jù)進行可視化展示,并在用戶態(tài)對處理后第一類型數(shù)據(jù)進行隔離。
3、本申請還提供了一種服務器,包括:上述實施例的內(nèi)存故障管理系統(tǒng)。
4、本申請還提供了一種內(nèi)存故障管理方法,方法用于上述實施例的內(nèi)存故障管理系統(tǒng)的處理器,該處理器被配置執(zhí)行如下步驟:從硬件層獲取硬件內(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ù)為致命數(shù)據(jù),對第二類型數(shù)據(jù)進行隔離,并將第一類型數(shù)據(jù)和第一錯誤數(shù)據(jù)上報至內(nèi)核層;在內(nèi)核層,利用內(nèi)核態(tài)的保護處理機制對第一類型數(shù)據(jù)進行處理,并將第一錯誤數(shù)據(jù)和處理后第一類型數(shù)據(jù)上報至用戶層;在用戶層,對第一錯誤數(shù)據(jù)進行可視化展示,并在用戶態(tài)對處理后第一類型數(shù)據(jù)進行隔離。
5、本申請還提供了一種電子設備,包括:存儲器,用于存儲計算機程序;處理器,用于執(zhí)行計算機程序時實現(xiàn)上述任一種內(nèi)存故障管理方法的步驟。
6、本申請的內(nèi)存故障管理系統(tǒng)包括硬件內(nèi)存的處理電路,其上設有硬件層和處理器,處理器進一步劃分為內(nèi)核層、用戶層和輸入輸出層。通過硬件層檢測內(nèi)存中的第一錯誤數(shù)據(jù)和第二錯誤數(shù)據(jù),輸入輸出層對第二錯誤數(shù)據(jù)進行分類,將其劃分為非致命的第一類型數(shù)據(jù)和致命的第二類型數(shù)據(jù),并對致命數(shù)據(jù)進行隔離,同時將非致命數(shù)據(jù)及可恢復數(shù)據(jù)上報至內(nèi)核層。內(nèi)核層通過集成的驅(qū)動組件在內(nèi)核態(tài)對非致命的錯誤數(shù)據(jù)進行保護處理,并將第一錯誤數(shù)據(jù)和處理后的非致命的錯誤數(shù)據(jù)上報至用戶層。用戶層負責對可恢復錯誤進行可視化展示,并在用戶態(tài)對處理后的非致命的錯誤數(shù)據(jù)進行進一步隔離。由此,通過硬件層與各軟件層的協(xié)同工作,實現(xiàn)了對內(nèi)存錯誤的分級檢測、分類處理與自動隔離,不僅提升了系統(tǒng)的穩(wěn)定性與可靠性,還有效防止了因內(nèi)存故障導致的系統(tǒng)崩潰。同時,通過內(nèi)核態(tài)與用戶態(tài)的聯(lián)動機制,結(jié)合可視化展示,增強了內(nèi)存錯誤的可監(jiān)控性和可維護性,便于運維人員快速定位和修復問題,降低了系統(tǒng)運維成本。由此,解決了相關技術(shù)中通過記錄日志定位內(nèi)存故障的方式無法提前發(fā)現(xiàn)并規(guī)避內(nèi)存問題,容易導致服務器宕機的問題。
1.一種內(nèi)存故障管理系統(tǒng),其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的內(nèi)存故障管理系統(tǒng),其特征在于,所述驅(qū)動組件將所述第一類型數(shù)據(jù)從用戶地址空間拷貝至內(nèi)核地址空間,返回錯誤碼或者已拷貝長度。
3.根據(jù)權(quán)利要求1或2所述的內(nèi)存故障管理系統(tǒng),其特征在于,所述驅(qū)動組件用于所述硬件層執(zhí)行內(nèi)存巡檢操作檢測到所述第一類型數(shù)據(jù)的錯誤時,識別所述第一類型數(shù)據(jù)所在的內(nèi)存頁,標記所述內(nèi)存頁為異常頁,解除所述異常頁對應虛擬地址空間的映射。
4.根據(jù)權(quán)利要求1所述的內(nèi)存故障管理系統(tǒng),其特征在于,所述用戶層設置有守護進程、監(jiān)控進程和主進程中的至少一個,其中,所述守護進程用于記錄所述第一錯誤數(shù)據(jù)和所述第二錯誤數(shù)據(jù)的物理地址信息,所述監(jiān)控進程在操作系統(tǒng)的啟動階段完成初始化后,為所述主進程分配內(nèi)存區(qū)域,并啟動所述主進程。
5.根據(jù)權(quán)利要求4所述的內(nèi)存故障管理系統(tǒng),其特征在于,所述主進程設置有多個內(nèi)存管理模塊,其中,所述內(nèi)存管理模塊用于在所述第一類型數(shù)據(jù)發(fā)生在所述內(nèi)存區(qū)域內(nèi)時,對所述第一類型數(shù)據(jù)對應內(nèi)存頁進行隔離。
6.根據(jù)權(quán)利要求1所述的內(nèi)存故障管理系統(tǒng),其特征在于,還包括:
7.根據(jù)權(quán)利要求6所述的內(nèi)存故障管理系統(tǒng),其特征在于,所述驅(qū)動組件用于:通過目標映射文件定位所述第一錯誤數(shù)據(jù)和所述第二錯誤數(shù)據(jù)的對應內(nèi)存物理插槽,其中,所述目標映射文件為操作系統(tǒng)啟動階段由所述適配組件生成的配置文件,存儲內(nèi)存物理插槽與錯誤數(shù)據(jù)對應硬件標識之間的映射關系,所述硬件標識包括內(nèi)存控制器編號、片選行編號、通道編號及內(nèi)存條編號的至少一個。
8.一種服務器,其特征在于,包括:權(quán)利要求1-7任意一項所述的內(nèi)存故障管理系統(tǒng)。
9.一種內(nèi)存故障管理方法,其特征在于,所述方法用于上述權(quán)利要求1-7任意一項所述的內(nèi)存故障管理系統(tǒng)的處理器,所述處理器被配置執(zhí)行如下步驟:
10.一種電子設備,其特征在于,包括: