專(zhuān)利名稱(chēng):面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高可靠計(jì)算機(jī)系統(tǒng)領(lǐng)域,具體涉及一種用于高端服務(wù)器中的面向硬件故障的系統(tǒng)關(guān)鍵文件實(shí)時(shí)動(dòng)態(tài)糾正方法。
背景技術(shù):
隨著存儲(chǔ)設(shè)備容量的不斷攀升,存儲(chǔ)設(shè)備發(fā)生故障的概率越來(lái)越高,這對(duì)計(jì)算機(jī)用戶(hù),特別是高端服務(wù)器用戶(hù)來(lái)說(shuō)是一個(gè)巨大的挑戰(zhàn)。為了應(yīng)對(duì)存儲(chǔ)設(shè)備的越來(lái)高的故障率,硬件廠商包括一些系統(tǒng)軟件提供商對(duì)此都提供了很多措施,如構(gòu)建磁盤(pán)冗余陣列等,但不管怎么說(shuō),不管采取什么措施,都避免不了存儲(chǔ)設(shè)備故障的發(fā)生。存儲(chǔ)設(shè)備發(fā)生故障對(duì)上層系統(tǒng)軟件和應(yīng)用軟件來(lái)說(shuō)影響是巨大的,例如當(dāng)存儲(chǔ)設(shè)備發(fā)生故障,導(dǎo)致操作系統(tǒng)關(guān)鍵文件不能夠訪問(wèn)時(shí),就會(huì)導(dǎo)致系統(tǒng)崩潰、數(shù)據(jù)丟失,這是 誰(shuí)都不愿意看到的,特別是對(duì)于大型服務(wù)器來(lái)說(shuō),系統(tǒng)的宕機(jī)將導(dǎo)致巨大的損失;當(dāng)存儲(chǔ)設(shè)備發(fā)生故障,導(dǎo)致應(yīng)用程序關(guān)鍵文件損壞、不能訪問(wèn)時(shí),就可能導(dǎo)致該應(yīng)用程序錯(cuò)誤退出,如果該應(yīng)用程序正在對(duì)外提供重要服務(wù),就會(huì)導(dǎo)致服務(wù)中斷,對(duì)用戶(hù)造成不良影響,對(duì)服務(wù)提供者造成重大損失。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種能夠防止由于文件訪問(wèn)失敗而導(dǎo)致系統(tǒng)宕機(jī)或者服務(wù)崩潰的問(wèn)題,容錯(cuò)特性好、健壯性高、故障恢復(fù)實(shí)時(shí)、對(duì)用戶(hù)透明、可擴(kuò)展性強(qiáng)、通用性好的面向硬件故障的系統(tǒng)關(guān)鍵文件實(shí)時(shí)動(dòng)態(tài)糾正方法。為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為
一種面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其實(shí)施步驟如下
1)建立包含系統(tǒng)關(guān)鍵文件信息的備份文件表,為所述備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件在存儲(chǔ)系統(tǒng)中建立副本文件,并將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同步;
2)實(shí)時(shí)檢測(cè)操作系統(tǒng)的文件操作故障并診斷故障原因,當(dāng)發(fā)生文件操作故障的文件為所述備份文件表對(duì)應(yīng)的目標(biāo)文件且所述故障是由存儲(chǔ)系統(tǒng)的硬件故障引起時(shí)執(zhí)行下一
I K
少;
3)修改發(fā)生操作故障的文件的索引,使用對(duì)應(yīng)的副本文件替代所述發(fā)生文件操作故障的文件,并調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作。作為本發(fā)明面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法的進(jìn)一步改進(jìn)
所述步驟I)中建立的備份文件表還包括用戶(hù)指定文件的文件信息。所述步驟I)中建立副本文件具體是指將目標(biāo)文件在不同的物理存儲(chǔ)器或者同一物理存儲(chǔ)器的不同區(qū)域中建立目標(biāo)文件的副本文件。所述步驟I)中將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同步具體是指實(shí)時(shí)監(jiān)測(cè)所述備份文件表中的每一個(gè)目標(biāo)文件的文件變動(dòng)操作,并根據(jù)監(jiān)測(cè)結(jié)果對(duì)所述目標(biāo)文件對(duì)應(yīng)的副本文件進(jìn)行相同的文件變動(dòng)操作。
所述步驟I)還包括如下步驟實(shí)時(shí)監(jiān)測(cè)存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,如果檢測(cè)到存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,則逐一讀取所述備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件。所述步驟2)的詳細(xì)步驟如下
2.I)監(jiān)測(cè)操作系統(tǒng)中文件的軟件刪除行為并檢測(cè)操作系統(tǒng)的文件操作故障,在檢測(cè)到文件操作故障時(shí)跳轉(zhuǎn)執(zhí)行下一步;
2.2)判斷發(fā)生操作故障的文件是否為備份文件表對(duì)應(yīng)的目標(biāo)文件,如果不是備份文件表對(duì)應(yīng)的目標(biāo)文件則直接退出;如果是備份文件表對(duì)應(yīng)的目標(biāo)文件,則檢查發(fā)生操作故障的文件是否存在軟件刪除行為,如果存在軟件刪除行為則在所述備份文件表中刪除發(fā)生操作故障的文件對(duì)應(yīng)的記錄并退出,如果不存在軟件刪除行為則跳轉(zhuǎn)執(zhí)行下一步;
2.3)檢測(cè)發(fā)生文件操作故障的文件是否存在,如果所述發(fā)生文件操作故障的文件不存在,則判定所述故障是由存儲(chǔ)系統(tǒng)的硬件故障引起的并執(zhí)行下一步。 所述步驟3)的詳細(xì)步驟包括
3.I)預(yù)先設(shè)置用于限制重試文件操作次數(shù)的重試閾值、初始化用于對(duì)重試文件操作的次數(shù)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器;
3. 2)進(jìn)行重試文件操作前讀取計(jì)數(shù)器的計(jì)數(shù)值,首先將計(jì)數(shù)器的計(jì)數(shù)值與重試閾值進(jìn)行比較,如果計(jì)數(shù)器的計(jì)數(shù)值未超過(guò)重試閾值,則將計(jì)數(shù)器的計(jì)數(shù)值加I并跳轉(zhuǎn)執(zhí)行步驟3. 3);如果計(jì)數(shù)器的計(jì)數(shù)值超過(guò)重試閾值,則退出重試文件操作;
3. 3)修改發(fā)生文件操作故障的文件的索引,調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作,等待并獲取重試文件操作結(jié)果,如果重試文件操作結(jié)果為成功則退出重試文件操作,如果重試文件操作結(jié)果為失敗則繼續(xù)返回執(zhí)行步驟3. 2)。所述步驟3. 3)還包括將發(fā)生文件操作故障的故障原因和重試文件操作的結(jié)果記錄至日志文件的步驟。本發(fā)明還提供一種面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正裝置,包括
副本文件管理模塊,用于建立包含系統(tǒng)關(guān)鍵文件信息的備份文件表、為所述備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件在存儲(chǔ)系統(tǒng)中建立副本文件,并將副本文件和對(duì)應(yīng)的目標(biāo)文件保持冋步;
故障檢測(cè)模塊,用于實(shí)時(shí)檢測(cè)操作系統(tǒng)的文件操作故障;
故障診斷模塊,用于診斷故障檢測(cè)模塊檢測(cè)到文件操作故障的故障原因,并當(dāng)發(fā)生文件操作故障的文件為所述備份文件表對(duì)應(yīng)的目標(biāo)文件且所述故障是由存儲(chǔ)系統(tǒng)的硬件故障引起時(shí)向故障處理模塊輸出控制命令;
故障處理模塊,用于根據(jù)故障診斷模塊輸出的控制命令修改發(fā)生操作故障的文件的索弓I、使用對(duì)應(yīng)的副本文件替代所述發(fā)生文件操作故障的文件,并調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作。本發(fā)明面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法具有下述優(yōu)點(diǎn)
I、本發(fā)明基于文件多副本的思想,針對(duì)硬件故障采用文件實(shí)時(shí)動(dòng)態(tài)備份、通過(guò)檢測(cè)文件操作故障、診斷故障原因來(lái)實(shí)現(xiàn)對(duì)文件操作故障進(jìn)行分析,將由于系統(tǒng)硬件發(fā)生故障而導(dǎo)致文件操作故障的目標(biāo)文件的索引指向?qū)?yīng)副本文件進(jìn)行重試文件操作方法,目的不在于防止存儲(chǔ)設(shè)備發(fā)生故障,而是用于防止當(dāng)系統(tǒng)存儲(chǔ)設(shè)備發(fā)生硬件故障時(shí),可以更好的保護(hù)整個(gè)系統(tǒng)正常運(yùn)行,將硬件故障造成的影響降到最低,能夠有效的避免因系統(tǒng)硬件故障導(dǎo)致的文件無(wú)法訪問(wèn)、防止因系統(tǒng)關(guān)鍵文件不能夠訪問(wèn)導(dǎo)致的系統(tǒng)宕機(jī)或服務(wù)崩潰現(xiàn)象,使系統(tǒng)的健壯性得到了十分明顯的提高,具有容錯(cuò)特性好、健壯性高、故障恢復(fù)實(shí)時(shí)、對(duì)用戶(hù)透明、可擴(kuò)展性強(qiáng)、通用性好的優(yōu)點(diǎn)。2、本發(fā)明雖然只針對(duì)硬件故障、只針對(duì)特定的文件,但是對(duì)非硬件故障也能夠提供操作接口,系統(tǒng)關(guān)鍵文件是通過(guò)備份文件表由用戶(hù)來(lái)指定的,在集群系統(tǒng)中可以同時(shí)部署,相互之間不會(huì)相互影響,具有可擴(kuò)展性強(qiáng)的優(yōu)點(diǎn)。3、本發(fā)明的文件操作故障管理框架本身并不依賴(lài)于特定的平臺(tái),任何支持文件系統(tǒng)的操作系統(tǒng)都可以采用本發(fā)明進(jìn)行實(shí)時(shí)動(dòng)態(tài)的文件操作故障修復(fù),支持平臺(tái)的多樣性,具有通用性好的優(yōu)點(diǎn)。
本發(fā)明面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正裝置為本發(fā)明具有面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法相對(duì)應(yīng)的結(jié)構(gòu),因此也應(yīng)當(dāng)具有與面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法相同的技術(shù)效果,在此不再贅述。
圖I為本發(fā)明實(shí)施例的基本流程示意圖。圖2為本發(fā)明實(shí)施例的框架結(jié)構(gòu)示意圖。圖3為本發(fā)明實(shí)施例的副本文件管理模塊和故障處理模塊的工作流程示意圖。圖4為本發(fā)明實(shí)施例的故障檢測(cè)模塊和故障診斷模塊的工作流程示意圖。圖5為本發(fā)明實(shí)施例的目標(biāo)文件不存在的診斷及處理流程示意圖。圖6為本發(fā)明實(shí)施例的目標(biāo)文件存在的診斷及處理流程示意圖。圖7為本發(fā)明實(shí)施例的目標(biāo)文件和備份文件存位于不同磁盤(pán)的處理數(shù)據(jù)流程示意圖。圖例說(shuō)明1、副本文件管理模塊;2、故障檢測(cè)模塊;3、故障診斷模塊;4、故障處理模塊。
具體實(shí)施例方式如圖I所示,本實(shí)施例面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法的實(shí)施步驟如下
1)建立包含系統(tǒng)關(guān)鍵文件信息的備份文件表,為備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件在存儲(chǔ)系統(tǒng)中建立副本文件,并將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同步;
2)實(shí)時(shí)檢測(cè)操作系統(tǒng)的文件操作故障并診斷故障原因,當(dāng)發(fā)生文件操作故障的文件為備份文件表對(duì)應(yīng)的目標(biāo)文件且故障是由存儲(chǔ)系統(tǒng)的硬件故障引起時(shí)執(zhí)行下一步;
3 )修改發(fā)生操作故障的文件的索引,使用對(duì)應(yīng)的副本文件替代發(fā)生文件操作故障的文件,并調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作。當(dāng)一個(gè)系統(tǒng)進(jìn)程去訪問(wèn)自己必須的文件時(shí),如果該文件因硬件故障導(dǎo)致文件無(wú)法訪問(wèn),此時(shí)就會(huì)導(dǎo)致該系統(tǒng)進(jìn)程異常結(jié)束,如果該系統(tǒng)進(jìn)程為系統(tǒng)關(guān)鍵進(jìn)程,則可導(dǎo)致系統(tǒng)死機(jī),這是一個(gè)很?chē)?yán)重的問(wèn)題。而本實(shí)施例通過(guò)再次嘗試的方法來(lái)訪問(wèn)副本文件,就能夠避免因?yàn)槲募僮鞴收蠈?dǎo)致進(jìn)程退出或系統(tǒng)死機(jī),健壯性大大提高,能夠更好的保護(hù)整個(gè)系統(tǒng)正常運(yùn)行,解決因硬件故障導(dǎo)致的操作系統(tǒng)宕機(jī)、服務(wù)崩潰、應(yīng)用程序無(wú)法繼續(xù)執(zhí)行問(wèn)題,將硬件故障造成的影響降到最低,具有容錯(cuò)特性好、健壯性高、故障恢復(fù)實(shí)時(shí)、對(duì)用戶(hù)透明、可擴(kuò)展性強(qiáng)、通用性好的優(yōu)點(diǎn)。本實(shí)施例步驟I)中建立的備份文件表還包括用戶(hù)指定文件的文件信息,能夠根據(jù)用戶(hù)定義來(lái)擴(kuò)展本實(shí)施例的功能,不僅可以用于實(shí)現(xiàn)對(duì)操作系統(tǒng)關(guān)鍵文件的保護(hù),而且還可以擴(kuò)展對(duì)其他文件進(jìn)行保護(hù);此外也可以?xún)H根據(jù)系統(tǒng)關(guān)鍵文件的文件信息建立備份文件表。本實(shí)施例的備份文件表為基于用戶(hù)定義的,因此也能夠?qū)崿F(xiàn)監(jiān)控所有文件,但是監(jiān)控的文件操作對(duì)象是有限的,隨著系統(tǒng)的持續(xù)運(yùn)行和數(shù)據(jù)文件的不斷增加,會(huì)導(dǎo)致文件的數(shù)目迅速增大,對(duì)所有的文件采用此種方式的監(jiān)控和處理是很不合算的,考慮到系統(tǒng)性能及磁盤(pán)利用率的問(wèn)題,本實(shí)施例中只針對(duì)影響系統(tǒng)正常運(yùn)行的系統(tǒng)關(guān)鍵文件,和用戶(hù)自定義的用戶(hù)指定文件,從而能夠在系統(tǒng)性能、磁盤(pán)利用率和可靠性之間獲得較佳的平衡,能夠保證系統(tǒng)關(guān)鍵文件以及用戶(hù)指定文件的高可靠性訪問(wèn)當(dāng)系統(tǒng)對(duì)文件進(jìn)行操作時(shí),如果因硬件故障導(dǎo)致文件操作失敗現(xiàn)象,并且該問(wèn)題能夠通過(guò)本方法進(jìn)行修復(fù),那么本方法就能夠保證,系統(tǒng)不會(huì)發(fā)生因?qū)ο到y(tǒng)關(guān)鍵文件及用戶(hù)指定文件訪問(wèn)失敗而導(dǎo)致的系統(tǒng)崩潰現(xiàn)象。本實(shí)施例作為一種在系統(tǒng)因硬件故障而導(dǎo)致的文件操作失敗時(shí)的解決方案,通過(guò)檢測(cè)文件系 統(tǒng)操作失敗的原因來(lái)進(jìn)行相應(yīng)的處理,如果是硬件故障導(dǎo)致的文件操作失敗,那么就采用該文件的其它副本來(lái)進(jìn)行替代訪問(wèn),并且該訪問(wèn)對(duì)用戶(hù)來(lái)說(shuō)是透明的,系統(tǒng)會(huì)自動(dòng)將文件索引指向副本文件,通過(guò)采用實(shí)時(shí)備份的方法,通過(guò)更改文件索引,能夠有效解決因硬件故障導(dǎo)致的文件操作失敗問(wèn)題,進(jìn)而有效防止因文件訪問(wèn)失敗而導(dǎo)致的系統(tǒng)死機(jī)崩潰問(wèn)題,具有故障實(shí)時(shí)恢復(fù)的優(yōu)點(diǎn),文件操作故障的修復(fù)是實(shí)時(shí)進(jìn)行的,在能修復(fù)的故障情形下,對(duì)用戶(hù)來(lái)說(shuō)和正常的操作沒(méi)有兩樣,只是有時(shí)會(huì)出現(xiàn)輕微延遲的現(xiàn)象,并不影響正常的操作,因此具有對(duì)用戶(hù)透明的優(yōu)點(diǎn)。步驟I)中建立副本文件具體是指將目標(biāo)文件在不同的物理存儲(chǔ)器或者同一物理存儲(chǔ)器的不同區(qū)域(例如分區(qū))中建立目標(biāo)文件的副本文件,通過(guò)將目標(biāo)文件和副本文件分存儲(chǔ)區(qū)域進(jìn)行分開(kāi)存儲(chǔ),因此只要有一個(gè)存儲(chǔ)區(qū)域內(nèi)的文件是可以正常訪問(wèn)的,那么該文件就能夠被正常訪問(wèn),從而保證目標(biāo)文件和對(duì)應(yīng)的副本文件之間相對(duì)獨(dú)立性,可靠性高、健壯性好。一般而言,存儲(chǔ)系統(tǒng)的硬件故障導(dǎo)致文件操作故障包括兩種形式第一種形式是物理存儲(chǔ)器硬件(如SCSI盤(pán))已完全損壞,無(wú)法進(jìn)行任何操作;第二種形式只針對(duì)物理設(shè)備本身出現(xiàn)部分不能訪問(wèn)的情形。例如物理存儲(chǔ)器硬件部分損壞,SCSI盤(pán)出現(xiàn)壞塊、壞道,而其他部分是好的。因此針對(duì)第一種形式,如果目標(biāo)文件和對(duì)應(yīng)的副本文件分別存儲(chǔ)在兩個(gè)不同的物理存儲(chǔ)器,如果目標(biāo)文件所在的物理存儲(chǔ)器發(fā)生損壞,則能夠通過(guò)分布于不同物理存儲(chǔ)器的副本文件代替目標(biāo)文件進(jìn)行文件操作;針對(duì)第二種形式,如果目標(biāo)文件和對(duì)應(yīng)的副本文件分別存儲(chǔ)在同一物理存儲(chǔ)器的兩個(gè)不同的區(qū)域,如果目標(biāo)文件所在的區(qū)域發(fā)生損壞也可以通過(guò)分布于同一物理存儲(chǔ)器另一區(qū)域的副本文件代替目標(biāo)文件進(jìn)行文件操作,這兩種形式的特征在于備份文件和源文件是在不同的物理存儲(chǔ)區(qū)域里面的。步驟I)中將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同步具體是指實(shí)時(shí)監(jiān)測(cè)備份文件表中的每一個(gè)目標(biāo)文件的文件變動(dòng)操作,并根據(jù)監(jiān)測(cè)結(jié)果對(duì)目標(biāo)文件對(duì)應(yīng)的副本文件進(jìn)行相同的文件變動(dòng)操作,副本文件和目標(biāo)文件之間是實(shí)時(shí)進(jìn)行同步的,對(duì)源文件的任何操作都會(huì)實(shí)時(shí)的反映到副本文件之上,而且對(duì)存儲(chǔ)系統(tǒng)的消耗較小、對(duì)系統(tǒng)性能的影響較小。此夕卜,也可以直接采用復(fù)制的方式建立副本文件,但是相對(duì)磁盤(pán)讀寫(xiě)操作將多,系統(tǒng)性能相對(duì)較差。步驟I)還包括如下步驟實(shí)時(shí)監(jiān)測(cè)存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,如果檢測(cè)到存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,則逐一讀取備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件。因此能夠有效根據(jù)存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息來(lái)主動(dòng)觸發(fā)對(duì)備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件進(jìn)行文件操作,能夠快速及時(shí)對(duì)備份文件表對(duì)應(yīng)的目標(biāo)文件進(jìn)行處理,檢測(cè)更加快速及時(shí)。此外,也可以不監(jiān)測(cè)存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,而通過(guò)操作系統(tǒng)的正常文件操作時(shí)的文件操作故障來(lái)判斷發(fā)生文件操作故障,但是這樣由于一些系統(tǒng)關(guān)鍵文件或者用戶(hù)定義文件可能需要很長(zhǎng)的時(shí)間才會(huì)進(jìn)行文件操作,因此導(dǎo)致檢測(cè)處理周期過(guò)長(zhǎng)。本實(shí)施例中,步驟2)的詳細(xì)步驟如下
2. I)監(jiān)測(cè)操作系統(tǒng)中文件的軟件刪除行為并檢測(cè)操作系統(tǒng)的文件操作故障,在檢測(cè)到 文件操作故障時(shí)跳轉(zhuǎn)執(zhí)行下一步;
2. 2)判斷發(fā)生操作故障的文件是否為備份文件表對(duì)應(yīng)的目標(biāo)文件,如果不是備份文件表對(duì)應(yīng)的目標(biāo)文件則直接退出;如果是備份文件表對(duì)應(yīng)的目標(biāo)文件,則檢查發(fā)生操作故障的文件是否存在軟件刪除行為,如果存在軟件刪除行為則在備份文件表中刪除發(fā)生操作故障的文件對(duì)應(yīng)的記錄并退出,如果不存在軟件刪除行為則跳轉(zhuǎn)執(zhí)行下一步;
2.3)檢測(cè)發(fā)生文件操作故障的文件是否存在,如果發(fā)生文件操作故障的文件不存在,則判定故障是由存儲(chǔ)系統(tǒng)的硬件故障引起的并執(zhí)行下一步(步驟3)。本實(shí)施例中,步驟3)的詳細(xì)步驟包括
3.I)預(yù)先設(shè)置用于限制重試文件操作次數(shù)的重試閾值、初始化用于對(duì)重試文件操作的次數(shù)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器;
3.2)進(jìn)行重試文件操作前讀取計(jì)數(shù)器的計(jì)數(shù)值,首先將計(jì)數(shù)器的計(jì)數(shù)值與重試閾值進(jìn)行比較,如果計(jì)數(shù)器的計(jì)數(shù)值未超過(guò)重試閾值,則將計(jì)數(shù)器的計(jì)數(shù)值加I并跳轉(zhuǎn)執(zhí)行步驟
3.3);如果計(jì)數(shù)器的計(jì)數(shù)值超過(guò)重試閾值,則退出重試文件操作;
3.3)修改發(fā)生文件操作故障的文件的索引,調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作,等待并獲取重試文件操作結(jié)果,如果重試文件操作結(jié)果為成功則退出重試文件操作,如果重試文件操作結(jié)果為失敗則繼續(xù)返回執(zhí)行步驟3. 2)。本實(shí)施例中,步驟3. 3)還包括將發(fā)生文件操作故障的故障原因和重試文件操作的結(jié)果記錄至日志文件的步驟,以便用戶(hù)進(jìn)行后期的檢查以及維護(hù)。在調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作后,文件系統(tǒng)的重試機(jī)制會(huì)返回重試文件操作的執(zhí)行結(jié)果,如果執(zhí)行成功則返回系統(tǒng)的正常操作,如果執(zhí)行仍然失敗則返回故障原因;本實(shí)施例中只要文件操作故障是由硬件故障引起的,那么不管恢復(fù)操作的結(jié)果如何都會(huì)保存產(chǎn)生故障的相關(guān)信息以及故障修復(fù)后的結(jié)果,這些結(jié)果會(huì)保存到一個(gè)專(zhuān)門(mén)的日志文件之中。如圖2所示,本實(shí)施例面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正裝置包括
副本文件管理模塊1,用于建立包含系統(tǒng)關(guān)鍵文件信息的備份文件表、為備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件在存儲(chǔ)系統(tǒng)中建立副本文件,并將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同
I K
少;
故障檢測(cè)模塊2,用于實(shí)時(shí)檢測(cè)操作系統(tǒng)的文件操作故障;
故障診斷模塊3,用于診斷故障檢測(cè)模塊2檢測(cè)到文件操作故障的故障原因,并當(dāng)發(fā)生文件操作故障的文件為備份文件表對(duì)應(yīng)的目標(biāo)文件且故障是由存儲(chǔ)系統(tǒng)的硬件故障引起時(shí)向故障處理模塊4輸出控制命令;
故障處理模塊4,用于根據(jù)故障診斷模塊3輸出的控制命令修改發(fā)生操作故障的文件的索引、使用對(duì)應(yīng)的副本文件替代發(fā)生文件操作故障的文件,并調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作。本實(shí)施例中,副本文件管理模塊I用于建立副本文件并負(fù)責(zé)維持副本文件同步,該模塊還提供實(shí)施文件索引修改控制的操作接口,故障處理模塊4調(diào)用副本文件管理模塊I的實(shí)施文件索引修改控制的操作接口將副本文件替代發(fā)生操作故障的文件;故障檢測(cè)模塊2用于檢測(cè)故障,該模塊還提供監(jiān)視由存儲(chǔ)設(shè)備驅(qū)動(dòng)上報(bào)的故障信息;故障診斷模塊3用于診斷故障;故障處理模塊4用于發(fā)送修改文件索引操作命令和將故障原因和重試文件操作的結(jié)果記錄至日志文件。如圖3所示,本實(shí)施例中副本文件管理模塊I的工作步驟如下
獲取副本文件存放位置,本實(shí)施例的副本文件和目標(biāo)文件分別放置于不同的物理存儲(chǔ)器上;創(chuàng)建默認(rèn)文件備份;創(chuàng)建用戶(hù)指定文件備份;監(jiān)視文件變動(dòng)情況(如修改、刪除、文件屬性更改等);根據(jù)監(jiān)視結(jié)果對(duì)副本文件進(jìn)行同樣操作。副本文件管理模塊I建立副本文件并負(fù)責(zé)維持副本文件和原文件的同步,該模塊還提供實(shí)施文件索引修改控制的操作接口,當(dāng)接收到故障處理模塊4的操作請(qǐng)求時(shí),就會(huì)將相應(yīng)的文件索引更改至副本文件,它完成以下操作首先會(huì)強(qiáng)制刪除失效的文件,然后建立一個(gè)指向副本文件的鏈接,從而完成從源文件到副本文件的訪問(wèn)的過(guò)渡。本實(shí)施例中故障處理模塊4的工作步驟如下等待文件訪問(wèn)硬件故障事件;獲取故障文件名稱(chēng);清理原始文件現(xiàn)場(chǎng);更改故障文件的索引使用副本文件替代故障文件;將副本文件鏈接到原文件所在目錄;返回處理結(jié)果并將故障原因和重試文件操作的結(jié)果記錄至日志文件。故障檢測(cè)模塊2能夠檢測(cè)到文件訪問(wèn)失敗問(wèn)題,并且能夠?qū)⑾鄳?yīng)的故障信息傳遞給故障診斷模塊3進(jìn)行診斷,同時(shí)故障檢測(cè)模塊2通過(guò)監(jiān)測(cè)存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,來(lái)時(shí)刻監(jiān)視存儲(chǔ)設(shè)備硬件故障的發(fā)生,如果存儲(chǔ)設(shè)備發(fā)生硬件故障,就會(huì)去判斷在該存儲(chǔ)區(qū)域內(nèi)是否存在備份文件表對(duì)應(yīng)的目標(biāo)文件,如果存在備份文件表對(duì)應(yīng)的目標(biāo)文件,那么就直接將該信息傳遞給故障診斷模塊3,故障診斷模塊3只進(jìn)行簡(jiǎn)單的判斷就可將更改文件索引操作需求提交給故障處理模塊4,然后故障處理模塊4進(jìn)行后續(xù)的處理。故障診斷模塊3根據(jù)故障檢測(cè)模塊2提供的信息,結(jié)合已定義的相關(guān)問(wèn)題列表對(duì)文件訪問(wèn)失敗的原因進(jìn)行診斷,最后給出診斷結(jié)果,故障處理模塊4則根據(jù)故障診斷模塊3提供的診斷結(jié)果進(jìn)行操作,如果診斷結(jié)果顯示是由硬件故障導(dǎo)致的文件操作錯(cuò)誤,則故障處理模塊4就會(huì)判斷目標(biāo)文件是否存在副本,如果存在副本,就將更改原始文件索引指向副本文件的命令發(fā)送給副本文件管理模塊1,該模塊負(fù)責(zé)完成文件索引更改工作,然后故障處理模塊4調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作。本實(shí)施例中,用于限制重試文件操作次數(shù)的重試閾值取值為3,如果副本文件也不能夠正常訪問(wèn),在重試3次之后就交給系統(tǒng)處理。如圖4所示,本實(shí)施例中故障檢測(cè)模塊2的工作步驟如下獲取監(jiān)視文件信息;監(jiān)視文件讀寫(xiě)操作情況;判斷文件訪問(wèn)是否出錯(cuò);在文件訪問(wèn)出錯(cuò)時(shí)報(bào)告文件操作出錯(cuò)信息,否則返回繼續(xù)監(jiān)視文件讀寫(xiě)操作情況。本實(shí)施例中故障診斷模塊3的工作步驟如下監(jiān)測(cè)存儲(chǔ)設(shè)備驅(qū)動(dòng)上報(bào)故障信息;判斷是否為硬件故障,如果不是硬件故障則返回繼續(xù)監(jiān)測(cè)存儲(chǔ)設(shè)備驅(qū)動(dòng)上報(bào)故障信息,否則繼續(xù)下一步;判斷故障區(qū)域是否存在關(guān)鍵文件(備份文件表對(duì)應(yīng)的目標(biāo)文件),如果存在關(guān)鍵文件則報(bào)告區(qū)域文件硬件故障信息;如果不存在關(guān)鍵文件則記錄存儲(chǔ)設(shè)備故障信息。故障診斷模塊3在進(jìn)行讀目標(biāo)文件時(shí)預(yù)先判斷文件是否存在,并針對(duì)判斷結(jié)果分別進(jìn)行不同的處理。如圖5所示,如果文件不存在,故障診斷模塊3則直接進(jìn)行診斷文件不存在的原因。文件不存在既可能是軟件原因引起的,也可能是硬件故障硬件引起的。軟件原因引起的是指系統(tǒng)在運(yùn)行期間發(fā)現(xiàn)該文件已經(jīng)沒(méi)有使用價(jià)值,此時(shí)會(huì)采取刪除操作將 其刪除,或者是管理員人為的將該文件刪除;硬件故障引起的包括存儲(chǔ)設(shè)備出現(xiàn)壞塊、壞道等情況,或者是整個(gè)存儲(chǔ)設(shè)備本身故障,不可訪問(wèn),此時(shí)都會(huì)引起訪問(wèn)文件不存在的現(xiàn)象。故障的檢測(cè)在不同操作系統(tǒng)及對(duì)應(yīng)硬件平臺(tái)下有所不同,就Iinux系統(tǒng)而言,主要是通過(guò)在相應(yīng)驅(qū)動(dòng)程序中增強(qiáng)故障輸出信息,從而實(shí)時(shí)獲取存儲(chǔ)設(shè)備的健康狀態(tài),這個(gè)過(guò)程可分為以下幾個(gè)步驟來(lái)完成,首先通過(guò)內(nèi)核里的故障消息接收線程獲取由驅(qū)動(dòng)程序上報(bào)的故障信息,然后通過(guò)消息處理線程對(duì)故障消息進(jìn)行名值對(duì)化、格式化,接著打包通過(guò)消息發(fā)送線程發(fā)送給(netlink機(jī)制)核外處理程序進(jìn)行處理。故障的診斷相對(duì)來(lái)說(shuō)處理邏輯比較簡(jiǎn)單,首先判斷不存在的文件是否在關(guān)鍵文件備份表里面,如果不存在就不做進(jìn)一步處理,當(dāng)然對(duì)于那些因軟件原因而刪除的關(guān)鍵文件,在Iinux系統(tǒng)下會(huì)同過(guò)inotify機(jī)制進(jìn)行監(jiān)控,如果是軟件行為的刪除,那么就將關(guān)鍵文件備份表了面的對(duì)應(yīng)項(xiàng)刪除,此后對(duì)該文件的訪問(wèn)導(dǎo)致的文件不存在,將不做處理,只提供備份文件和訪問(wèn)失敗信息記錄,由管理員在需求的時(shí)候從備份區(qū)域進(jìn)行復(fù)制,如果不存在的文件在關(guān)鍵文件備份表里面,那么就可判斷不存在的原因是由其他原因引起的,通常情況下就是因硬件故障引起的,如果說(shuō)是因?yàn)檫B接存儲(chǔ)設(shè)備的連線導(dǎo)致的文件不可訪問(wèn),那么也認(rèn)為是存儲(chǔ)設(shè)備自身的問(wèn)題導(dǎo)致的故障,不影響故障的處理,當(dāng)然也可以對(duì)這些故障類(lèi)型進(jìn)行分類(lèi)。故障的處理處理邏輯也比較簡(jiǎn)單,當(dāng)故障診斷模塊3將要處理的故障文件信息發(fā)送給自己的時(shí)候,主要進(jìn)行兩個(gè)操作,一是將需要更改文件索引的命令發(fā)送給副本文件管理模塊I進(jìn)行處理,二是記錄相關(guān)的故障詳細(xì)信息及故障處理結(jié)果。如圖6所示,如果發(fā)生文件操作故障的文件存在,故障診斷模塊3則首先進(jìn)行文件讀操作,然后根據(jù)操作的結(jié)果進(jìn)行診斷文件不存在的原因。這種情況通常是由于文件分配表中的內(nèi)容正常,而文件數(shù)據(jù)區(qū)的內(nèi)容正好落到了如磁盤(pán)的壞塊或者壞道中所導(dǎo)致的,該處理流程和因硬件故障導(dǎo)致文件不存在時(shí)的處理流程相似,也包括故障的檢測(cè),故障診斷和故障處理幾個(gè)過(guò)程,但此時(shí)故障診斷的過(guò)程相對(duì)來(lái)說(shuō)比較復(fù)雜一定,此時(shí)在我們看來(lái)文件是存在的,但在訪問(wèn)時(shí)回報(bào)如無(wú)效的文件尾等信息,由于我們一直對(duì)關(guān)鍵文件進(jìn)行監(jiān)視,它們權(quán)限的變更、內(nèi)容的更改都實(shí)時(shí)的進(jìn)行了記錄,一種方法是在Iinux下用inotify機(jī)制對(duì)關(guān)鍵文件進(jìn)行監(jiān)控,并對(duì)關(guān)鍵文件的更改進(jìn)行實(shí)時(shí)的監(jiān)控,當(dāng)判斷文件本身可以正常訪問(wèn),但是卻無(wú)法正常訪問(wèn)的時(shí)候,就認(rèn)為此時(shí)發(fā)生了硬件故障,導(dǎo)致文件不能夠正常訪問(wèn),當(dāng)然也有可能是文件在存儲(chǔ)的過(guò)程中出現(xiàn)了問(wèn)題,而不是硬件故障本身所引進(jìn)的,這種情況下也把該情形視為硬件故障的一種,從而進(jìn)行后續(xù)的故障處理,保證整個(gè)系統(tǒng)不間斷的運(yùn)行。從本實(shí)施例中可以看出,發(fā)生文件操作故障的原因是由于硬件故障引起時(shí),硬件故障包括兩種類(lèi)型,第一種類(lèi)型是該硬件如SCSI盤(pán)已完全損壞,無(wú)法進(jìn)行任何操作;第二種類(lèi)型是該硬件部分損壞,如SCSI盤(pán)出現(xiàn)壞塊、壞道,而其他部分是好的。文件操作故障的修復(fù)是實(shí)時(shí)進(jìn)行的,在能修復(fù)的故障情形下,對(duì)用戶(hù)來(lái)說(shuō)和正常的操作沒(méi)有兩樣,只是有時(shí)會(huì)出現(xiàn)輕微延遲的現(xiàn)象,并不影響正常的操作。如果文件操作故障是由硬件故障引起的,那么不管恢復(fù)操作的結(jié)果如何,都會(huì)保存產(chǎn)生故障的相關(guān)信息以及故障修復(fù)后的結(jié)果,這些結(jié)果會(huì)保存到一個(gè)專(zhuān)門(mén)的日志文件之中,以便用戶(hù)進(jìn)行后期的維護(hù)。雖然本實(shí)施例也能夠監(jiān)控所有文件,但是由于考慮到系統(tǒng)性能及磁盤(pán)利用率的問(wèn)題,只針對(duì)影響系統(tǒng)正常運(yùn)行的關(guān)鍵文件,和用戶(hù)自定義的關(guān)鍵文件。監(jiān)控的文件操作對(duì)象是有限的,隨著系統(tǒng)的持續(xù)運(yùn)行和數(shù)據(jù)文件的不斷增加,會(huì)導(dǎo)致文件的數(shù)目迅速增大,對(duì)所有的文件采用此種方式的監(jiān)控和處理是很不合算的,本方法的目的是在于保證系統(tǒng)關(guān)鍵文件的正常訪問(wèn)和用戶(hù)自定義關(guān)鍵文件的正常訪問(wèn)。當(dāng)系統(tǒng)對(duì)文件進(jìn)行操作時(shí),如果因硬件故障導(dǎo)致文件操作失敗現(xiàn)象,并且該問(wèn)題能夠通過(guò)本方法進(jìn)行修復(fù),那么本實(shí)施例就能夠保證,系統(tǒng)不會(huì)發(fā)生因?qū)ο到y(tǒng)關(guān)鍵文件訪問(wèn)失敗而導(dǎo)致的系統(tǒng)崩潰現(xiàn)象。如圖7所示,本實(shí)施例中的目標(biāo)文件(源文件)和備份文件分別存放在不同的磁盤(pán)(物理存儲(chǔ)器)之中,當(dāng)然副本文件(備份文件)和目標(biāo)文件也可以存放在同一磁盤(pán)的不同分 區(qū),前提是在出現(xiàn)故障時(shí)副本文件可以正常訪問(wèn),此時(shí)就對(duì)用戶(hù)來(lái)說(shuō)透明的進(jìn)行操著,從而達(dá)到硬件故障下的系統(tǒng)關(guān)鍵文件實(shí)時(shí)動(dòng)態(tài)糾正。備份文件是處于不同物理位置的,其組織形式包括兩種形式,第一個(gè)形式是將文件存儲(chǔ)在不同的物理硬件上,如兩個(gè)不同的SCSI硬盤(pán)上,第二種形式是將文件存儲(chǔ)在同一個(gè)物理設(shè)備上。第一種形式針對(duì)的是整個(gè)物理設(shè)備無(wú)法進(jìn)行任何操作和物理設(shè)備本身出現(xiàn)部分不能訪問(wèn)的情形,第二種形式只針對(duì)物理設(shè)備本身出現(xiàn)部分不能訪問(wèn)的情形。這兩種形式的特征在于,備份文件和源文件是在不同的物理存儲(chǔ)區(qū)域里面的,只要有一個(gè)存儲(chǔ)區(qū)域內(nèi)的文件是可以正常訪問(wèn)的,那么該文件就能夠被正常訪問(wèn)。源文件可以有多個(gè)副本,并且這多個(gè)副本是存放在不同的物理存儲(chǔ)區(qū)域的,一種好的方式是將文件副本存儲(chǔ)在多個(gè)不同的物理存儲(chǔ)上,另外一種方式是將多個(gè)副本存儲(chǔ)在單個(gè)物理存儲(chǔ)設(shè)備的不同區(qū)域,如存放在一個(gè)物理硬盤(pán)的不同分區(qū)之中。副本文件的備份是實(shí)時(shí)進(jìn)行的,對(duì)源文件的任何操作都會(huì)實(shí)時(shí)的反映到副本文件之上。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于其實(shí)施步驟如下 1)建立包含系統(tǒng)關(guān)鍵文件信息的備份文件表,為所述備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件在存儲(chǔ)系統(tǒng)中建立副本文件,并將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同步; 2)實(shí)時(shí)檢測(cè)操作系統(tǒng)的文件操作故障并診斷故障原因,當(dāng)發(fā)生文件操作故障的文件為所述備份文件表對(duì)應(yīng)的目標(biāo)文件且所述故障是由存儲(chǔ)系統(tǒng)的硬件故障引起時(shí)執(zhí)行下一 少; 3)修改發(fā)生操作故障的文件的索引,使用對(duì)應(yīng)的副本文件替代所述發(fā)生文件操作故障的文件,并調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作。
2.根據(jù)權(quán)利要求I所述的面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于所述步驟I)中建立的備份文件表還包括用戶(hù)指定文件的文件信息。
3.根據(jù)權(quán)利要求2所述的面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于所述步驟I)中建立副本文件具體是指將目標(biāo)文件在不同的物理存儲(chǔ)器或者同一物理存儲(chǔ)器的不同區(qū)域中建立目標(biāo)文件的副本文件。
4.根據(jù)權(quán)利要求3所述的面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于所述步驟I)中將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同步具體是指實(shí)時(shí)監(jiān)測(cè)所述備份文件表中的每一個(gè)目標(biāo)文件的文件變動(dòng)操作,并根據(jù)監(jiān)測(cè)結(jié)果對(duì)所述目標(biāo)文件對(duì)應(yīng)的副本文件進(jìn)行相同的文件變動(dòng)操作。
5.根據(jù)權(quán)利要求4所述的面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于,所述步驟I)還包括如下步驟實(shí)時(shí)監(jiān)測(cè)存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,如果檢測(cè)到存儲(chǔ)設(shè)備驅(qū)動(dòng)程序上報(bào)的故障信息,則逐一讀取所述備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件。
6.根據(jù)權(quán)利要求I 5中任意一項(xiàng)所述的面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于,所述步驟2)的詳細(xì)步驟如下 2.I)監(jiān)測(cè)操作系統(tǒng)中文件的軟件刪除行為并檢測(cè)操作系統(tǒng)的文件操作故障,在檢測(cè)到文件操作故障時(shí)跳轉(zhuǎn)執(zhí)行下一步; 2.2)判斷發(fā)生操作故障的文件是否為備份文件表對(duì)應(yīng)的目標(biāo)文件,如果不是備份文件表對(duì)應(yīng)的目標(biāo)文件則直接退出;如果是備份文件表對(duì)應(yīng)的目標(biāo)文件,則檢查發(fā)生操作故障的文件是否存在軟件刪除行為,如果存在軟件刪除行為則在所述備份文件表中刪除發(fā)生操作故障的文件對(duì)應(yīng)的記錄并退出,如果不存在軟件刪除行為則跳轉(zhuǎn)執(zhí)行下一步; 2.3)檢測(cè)發(fā)生文件操作故障的文件是否存在,如果所述發(fā)生文件操作故障的文件不存在,則判定所述故障是由存儲(chǔ)系統(tǒng)的硬件故障引起的并執(zhí)行下一步。
7.根據(jù)權(quán)利要求6所述的面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于,所述步驟3)的詳細(xì)步驟包括 .3.I)預(yù)先設(shè)置用于限制重試文件操作次數(shù)的重試閾值、初始化用于對(duì)重試文件操作的次數(shù)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器; .3.2)進(jìn)行重試文件操作前讀取計(jì)數(shù)器的計(jì)數(shù)值,首先將計(jì)數(shù)器的計(jì)數(shù)值與重試閾值進(jìn)行比較,如果計(jì)數(shù)器的計(jì)數(shù)值未超過(guò)重試閾值,則將計(jì)數(shù)器的計(jì)數(shù)值加I并跳轉(zhuǎn)執(zhí)行步驟.3.3);如果計(jì)數(shù)器的計(jì)數(shù)值超過(guò)重試閾值,則退出重試文件操作; . 3.3)修改發(fā)生文件操作故障的文件的索引,調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作,等待并獲取重試文件操作結(jié)果,如果重試文件操作結(jié)果為成功則退出重試文件操作,如果重試文件操作結(jié)果為失敗則繼續(xù)返回執(zhí)行步驟3. 2)。
8.根據(jù)權(quán)利要求7所述的面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法,其特征在于所述步驟3. 3)還包括將發(fā)生文件操作故障的故障原因和重試文件操作的結(jié)果記錄至日志文件的步驟。
9.一種面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正裝置,其特征在于,包括 副本文件管理模塊(1 ),用于建立包含系統(tǒng)關(guān)鍵文件信息的備份文件表、為所述備份文件表對(duì)應(yīng)的每一個(gè)目標(biāo)文件在存儲(chǔ)系統(tǒng)中建立副本文件,并將副本文件和對(duì)應(yīng)的目標(biāo)文件保持同步; 故障檢測(cè)模塊(2),用于實(shí)時(shí)檢測(cè)操作系統(tǒng)的文件操作故障; 故障診斷模塊(3),用于診斷故障檢測(cè)模塊(2)檢測(cè)到文件操作故障的故障原因,并當(dāng)發(fā)生文件操作故障的文件為所述備份文件表對(duì)應(yīng)的目標(biāo)文件且所述故障是由存儲(chǔ)系統(tǒng)的硬件故障引起時(shí)向故障處理模塊(4)輸出控制命令; 故障處理模塊(4),用于根據(jù)故障診斷模塊(3)輸出的控制命令修改發(fā)生操作故障的文件的索引、使用對(duì)應(yīng)的副本文件替代所述發(fā)生文件操作故障的文件,并調(diào)用文件系統(tǒng)的重試機(jī)制進(jìn)行重試文件操作。
全文摘要
本發(fā)明公開(kāi)了一種面向硬件故障的系統(tǒng)關(guān)鍵文件故障糾正方法及裝置,方法步驟如下1)建立包含系統(tǒng)關(guān)鍵文件信息的備份文件表,為備份文件表的每一個(gè)目標(biāo)文件建立副本文件并保持同步;2)實(shí)時(shí)檢測(cè)操作系統(tǒng)文件操作故障并診斷故障原因,當(dāng)發(fā)生操作故障的文件為備份文件表對(duì)應(yīng)的目標(biāo)文件且故障是由存儲(chǔ)系統(tǒng)的硬件故障引起時(shí)執(zhí)行下一步;3)使用對(duì)應(yīng)的副本文件替代發(fā)生操作故障的文件并重試文件操作;裝置包括副本文件管理模塊、故障檢測(cè)模塊、故障診斷模塊和故障處理模塊。本發(fā)明能夠防止由于文件訪問(wèn)失敗而導(dǎo)致的系統(tǒng)宕機(jī)或者服務(wù)崩潰的問(wèn)題,具有容錯(cuò)特性好、健壯性高、故障恢復(fù)實(shí)時(shí)、對(duì)用戶(hù)透明、可擴(kuò)展性強(qiáng)、通用性好的優(yōu)點(diǎn)。
文檔編號(hào)G06F17/30GK102880522SQ20121035253
公開(kāi)日2013年1月16日 申請(qǐng)日期2012年9月21日 優(yōu)先權(quán)日2012年9月21日
發(fā)明者黨志強(qiáng), 劉曉建, 顏躍進(jìn), 戴華東, 孔金珠, 吳慶波, 董攀 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué), 湖南麒麟信息工程技術(shù)有限公司