系統(tǒng)中的故障處理的制作方法
【專利摘要】提供關(guān)于第一子系統(tǒng)的操作的狀況指示。檢測第一子系統(tǒng)的故障。響應(yīng)于檢測到故障,更新狀況指示,并且釋放由第一子系統(tǒng)使用的資源。
【專利說明】系統(tǒng)中的故障處理
【背景技術(shù)】
[0001]系統(tǒng)能夠具有用于執(zhí)行各種任務(wù)的不同子系統(tǒng)。系統(tǒng)的示例包括存儲系統(tǒng)、處理系統(tǒng)或其它類型的系統(tǒng)。在系統(tǒng)操作期間,一些子系統(tǒng)可能經(jīng)歷故障,故障會導(dǎo)致該系統(tǒng)中的錯誤。
【專利附圖】
【附圖說明】
[0002]一些實(shí)施例是關(guān)于以下附圖描述的:
[0003]圖1和圖2是根據(jù)各實(shí)現(xiàn)方式的示例布置的框圖;
[0004]圖3是根據(jù)一些實(shí)現(xiàn)方式的處理的流程圖;
[0005]圖4和圖5圖示根據(jù)一些實(shí)現(xiàn)方式的示例狀況指示;以及
[0006]圖6是根據(jù)一些實(shí)現(xiàn)方式的監(jiān)視子系統(tǒng)的框圖。
【具體實(shí)施方式】
[0007]系統(tǒng)內(nèi)的子系統(tǒng)能夠提供關(guān)于相應(yīng)子系統(tǒng)的?呆作的狀況指不?!白酉到y(tǒng)”能夠指在物理機(jī)器內(nèi)運(yùn)行的進(jìn)程(例如機(jī)器可讀指令),或者可替代地,“子系統(tǒng)”能夠指機(jī)器(包括硬件組件和機(jī)器可讀指令)或該機(jī)器的任何部分。在一些示例中,狀況指示能夠指示子系統(tǒng)的各種狀態(tài),如“啟動”(子系統(tǒng)正在啟動)、運(yùn)行(子系統(tǒng)目前正在運(yùn)行)等等(其它示例狀態(tài)在下面進(jìn)一步介紹)。
[0008]子系統(tǒng)會經(jīng)歷故障(如子系統(tǒng)失效或子系統(tǒng)的組件未正確操作)。當(dāng)子系統(tǒng)經(jīng)歷故障時,子系統(tǒng)可能不能更新其狀況指示,這能夠?qū)е略谧酉到y(tǒng)已經(jīng)經(jīng)歷故障以后狀況指示不再準(zhǔn)確。由子系統(tǒng)提供的不正確的狀況指示能夠造成整體系統(tǒng)中的錯誤。例如,一組子系統(tǒng)可能對有序的或順序的約束敏感,在該有序的或順序的約束中,一個這樣的子系統(tǒng)的特定操作會在另一子系統(tǒng)的相應(yīng)操作以后發(fā)生(例如一個子系統(tǒng)會在另一子系統(tǒng)已經(jīng)啟動以后啟動)。該組子系統(tǒng)可能是一堆子系統(tǒng)的一部分,其中該堆對該堆內(nèi)的子系統(tǒng)施加有序的或順序的約束。因此,如果該堆中的第一子系統(tǒng)表示其正在正確地操作(即便第一子系統(tǒng)未正在正確地操作),那么跟隨第一子系統(tǒng)后的第二子系統(tǒng)可能基于第一子系統(tǒng)已經(jīng)成功地完成其操作的不正確假設(shè)而不正確地進(jìn)行第二子系統(tǒng)的操作。作為另一示例,第一子系統(tǒng)可以嘗試訪問第二子系統(tǒng),第二子系統(tǒng)的狀況指示表示第二子系統(tǒng)正在正常地操作,但是此時實(shí)際上第二子系統(tǒng)已經(jīng)失效。無法訪問第二子系統(tǒng)能夠造成第一子系統(tǒng)以及整體系統(tǒng)的其它部分處的錯誤。而且,當(dāng)特定子系統(tǒng)已經(jīng)失效但其狀況指示表示其正在正常地操作時,由該失效的子系統(tǒng)使用的資源可能繼續(xù)被分配給該失效的子系統(tǒng),這使得被分配的資源無法由其它子系統(tǒng)利用。
[0009]圖1圖示根據(jù)一些實(shí)現(xiàn)方式的示例系統(tǒng)100。該系統(tǒng)能夠具有按層次布置的多個子系統(tǒng)。圖1所示的多個子系統(tǒng)能夠是一個物理機(jī)器(例如計(jì)算機(jī)系統(tǒng)、存儲系統(tǒng)、通信系統(tǒng)等)的一部分或者能夠是物理機(jī)器的分布式布置的一部分。該層次的頂層包括監(jiān)視子系統(tǒng)102,該層次的中間層包括中間子系統(tǒng)104和106,并且該層次的低層包括子系統(tǒng)108、110,112 和 114。
[0010]盡管圖1示出具有三個層次的系統(tǒng),但應(yīng)當(dāng)注意,在其它實(shí)現(xiàn)方式中能夠采用其它示例布置,這包括僅采用兩個層次或多于三個層次的布置。低層子系統(tǒng)108和110與中間子系統(tǒng)104關(guān)聯(lián)(例如低層子系統(tǒng)108和110能夠是在中間子系統(tǒng)104中運(yùn)行的進(jìn)程)。類似地,低層子系統(tǒng)112和114與中間子系統(tǒng)106關(guān)聯(lián)。
[0011]如圖1所示,每個子系統(tǒng)包括狀態(tài)報(bào)告模塊(在每個子系統(tǒng)中標(biāo)記為“SRM”),該狀態(tài)報(bào)告模塊能夠提供相應(yīng)的狀況指示。一些實(shí)現(xiàn)方式中的狀況指示能夠以狀態(tài)文件的形式,如根據(jù)XML (可擴(kuò)展標(biāo)記語言)格式或其它格式的文件。
[0012]由中間層子系統(tǒng)和低層子系統(tǒng)(104、106、108、110、112、114)中任何子系統(tǒng)的狀態(tài)報(bào)告模塊提供的狀況指示,能夠由監(jiān)視子系統(tǒng)102監(jiān)視。在一些示例中,監(jiān)視子系統(tǒng)102能夠提供“監(jiān)視狗”活動。監(jiān)視狗活動能夠包括對系統(tǒng)中各個子系統(tǒng)的狀態(tài)進(jìn)行監(jiān)視,并且在檢測各個子系統(tǒng)中任何子系統(tǒng)中的某故障時,能夠執(zhí)行任務(wù)來解決這樣的故障。
[0013]監(jiān)視子系統(tǒng)102能夠是與實(shí)現(xiàn)中間層子系統(tǒng)和低層子系統(tǒng)的機(jī)器分離的機(jī)器的一部分??商娲兀O(jiān)視子系統(tǒng)102能夠是在與中間層子系統(tǒng)和低層子系統(tǒng)中一個或多個子系統(tǒng)相同的機(jī)器上運(yùn)行的監(jiān)視進(jìn)程。
[0014]除了中間層子系統(tǒng)和低層子系統(tǒng)的狀況指示可由監(jiān)視子系統(tǒng)102訪問以外,應(yīng)當(dāng)注意,特定子系統(tǒng)的狀況指示也可由與該特定子系統(tǒng)關(guān)聯(lián)的更高層子系統(tǒng)訪問。例如,由低層子系統(tǒng)112或114的狀態(tài)報(bào)告模塊報(bào)告的狀況指示可由中間子系統(tǒng)106訪問。
[0015]監(jiān)視子系統(tǒng)102還包括能夠?qū)顩r指示提供給可管理性接口 116的狀態(tài)報(bào)告模塊,可管理性接口 116能夠包括用戶接口系統(tǒng)(如管理控制臺,像管理員這樣的用戶能夠通過該管理控制臺確定系統(tǒng)100的各個子系統(tǒng)的狀態(tài))??商娲鼗虼送?,可管理性接口 116能夠包括不同類型的系統(tǒng),如能夠響應(yīng)于由監(jiān)視子系統(tǒng)102提供的狀況指示而采取自動補(bǔ)救行動的自動化系統(tǒng)。
[0016]根據(jù)一些實(shí)現(xiàn)方式,較高層子系統(tǒng)能夠監(jiān)視較低層子系統(tǒng)的操作,以確定由較低層子系統(tǒng)提供的狀況指示是否是準(zhǔn)確的。例如,監(jiān)視子系統(tǒng)102能夠間歇性地輪詢中間層子系統(tǒng)和低層子系統(tǒng)(104、106、108、110、112和114)中每個子系統(tǒng),以確定相應(yīng)的子系統(tǒng)是否可操作。在可替代示例中,代替監(jiān)視子系統(tǒng)102輪詢較低層子系統(tǒng),能夠采用心跳機(jī)制,其中較低層子系統(tǒng)間歇性地向監(jiān)視子系統(tǒng)102發(fā)送心跳消息。在預(yù)限定的時間間隔內(nèi)未能收到心跳消息是較低層子系統(tǒng)已經(jīng)經(jīng)歷故障的指示。能夠定期地或根據(jù)某些其它準(zhǔn)則執(zhí)行心跳消息的輪詢或通信。
[0017]在其它實(shí)現(xiàn)方式中,代替監(jiān)視子系統(tǒng)102執(zhí)行心跳消息的輪詢或接收,中間子系統(tǒng)104或106能夠執(zhí)行分別每個低層子系統(tǒng)108、110、112或114的輪詢或從各個低層子系統(tǒng)的心跳消息的接收。在這樣的實(shí)現(xiàn)方式中,正是中間系統(tǒng)能夠識別低層子系統(tǒng)的故障狀態(tài)。
[0018]在一些示例中,如果檢測到特定子系統(tǒng)的狀況指示是不正確的(例如,特定子系統(tǒng)的狀況指示表示特定子系統(tǒng)的正常操作,雖然該特定子系統(tǒng)已經(jīng)經(jīng)歷故障),則能夠更新由監(jiān)視子系統(tǒng)102輸出的狀況指示來表示已經(jīng)發(fā)生故障。在示例中,由低層子系統(tǒng)108輸出的狀況指示可以表示正常操作,雖然低層子系統(tǒng)108已經(jīng)經(jīng)歷故障。表示子系統(tǒng)的“正常操作”的狀況指示能夠指該子系統(tǒng)正在以期望的方式操作(例如,該子系統(tǒng)正以成功指示對輪詢請求做出響應(yīng),或者該子系統(tǒng)正以期望的時間間隔發(fā)送心跳消息)的指示。當(dāng)監(jiān)視子系統(tǒng)102檢測低層子系統(tǒng)108的故障狀態(tài)(如通過上面提到的輪詢機(jī)制或心跳機(jī)制)時,監(jiān)視子系統(tǒng)102能夠更新其狀況指示(被輸出至可管理性接口 116)來反映該故障。
[0019]此外,監(jiān)視子系統(tǒng)102能夠更新由故障的低層子系統(tǒng)108輸出的狀況指示來反映低層子系統(tǒng)108的故障狀態(tài)。
[0020]在其它示例中,當(dāng)檢測低層子系統(tǒng)108的故障狀態(tài)時,能夠更新由中間子系統(tǒng)104報(bào)告的狀況指示來反映中間子系統(tǒng)104與已經(jīng)經(jīng)歷故障的低層子系統(tǒng)關(guān)聯(lián)。在一些實(shí)現(xiàn)方式中,中間子系統(tǒng)104的狀況指示的更新能夠由監(jiān)視子系統(tǒng)102執(zhí)行。在其它實(shí)現(xiàn)方式中,中間子系統(tǒng)104的狀況指示能夠由中間子系統(tǒng)104自身更新。
[0021]圖2是另一示例系統(tǒng)200的框圖,其能夠是根據(jù)一些實(shí)現(xiàn)方式的存儲系統(tǒng)。存儲系統(tǒng)200包括應(yīng)用管理器202以及各個虛擬磁帶庫(VTL)管理器204和206。此外,能夠存在由VTL管理器204和206管理的多個VTL進(jìn)程,這些VTL進(jìn)程包括VTL進(jìn)程208、210、212、214和216。VTL (或虛擬磁帶庫)能夠指數(shù)據(jù)存儲子系統(tǒng),該數(shù)據(jù)存儲子系統(tǒng)能夠利用(磁帶存儲介質(zhì)之外的)存儲組件來對包括磁帶存儲介質(zhì)的磁帶庫進(jìn)行虛擬化。VTL能夠用多種分離的VTL進(jìn)程(如圖2所示的那些進(jìn)程)實(shí)現(xiàn)。VTL進(jìn)程是VTL內(nèi)控制該VTL內(nèi)的數(shù)據(jù)傳輸(在讀訪問或?qū)懺L問期間)的進(jìn)程。各種分離的VTL進(jìn)程能夠模擬物理磁帶庫以及其相應(yīng)的行為或任務(wù)(注意,VTL進(jìn)程208、210、212、214和216中不同VTL進(jìn)程能夠模擬不同的物理磁帶庫行為或任務(wù))。VTL管理器負(fù)責(zé)管理一個或多個VTL進(jìn)程一應(yīng)當(dāng)注意,VTL管理器不牽涉VTL中的數(shù)據(jù)傳輸。
[0022]在圖2的示例中,VTL管理器204管理VTL進(jìn)程208和210,而VTL管理器206管理VTL進(jìn)程212、214和216。在一些示例中,VTL管理器204和關(guān)聯(lián)的VTL進(jìn)程208和210能夠是對應(yīng)的機(jī)器(如存儲服務(wù)器)的一部分。類似地,VTL管理器206和其VTL進(jìn)程212、214和216能夠是另一對應(yīng)的機(jī)器(如存儲服務(wù)器)的一部分。在其它不例中,VTL管理器204和206 (以及它們各自的VTL進(jìn)程)能夠是相同機(jī)器的一部分。
[0023]存儲系統(tǒng)200還包括盤存儲介質(zhì)220,盤存儲介質(zhì)220能夠用一個或多個存儲設(shè)備(如存儲設(shè)備的陣列)實(shí)現(xiàn)。各個VTL進(jìn)程能夠訪問(讀或?qū)?盤存儲介質(zhì)220上的數(shù)據(jù)。
[0024]應(yīng)用管理器202能夠執(zhí)行用于存儲系統(tǒng)200的預(yù)限定的管理任務(wù)。在一些示例中,應(yīng)用管理器202能夠管理客戶設(shè)備或主設(shè)備(圖2中未示出)的數(shù)據(jù)向圖2的存儲系統(tǒng)200中的盤存儲介質(zhì)220上的“盤到盤”存儲。在不同實(shí)現(xiàn)方式中,應(yīng)用管理器202能夠執(zhí)行其它管理任務(wù)。
[0025]應(yīng)用管理器202、VTL管理器204和206以及VTL進(jìn)程208、210、212、214和216被
認(rèn)為是存儲系統(tǒng)200的子系統(tǒng)。應(yīng)用管理器、VTL管理器和VTL進(jìn)程中每個均能夠包括用于報(bào)告相應(yīng)狀況指不的狀態(tài)報(bào)告模塊(SRM)。存儲系統(tǒng)200的各個子系統(tǒng)能夠?qū)?yīng)于圖1所示的各子系統(tǒng)。雖然圖2中示出三個層次的子系統(tǒng),但應(yīng)當(dāng)注意,在可替代示例中存儲系統(tǒng)200能夠包括具有不同數(shù)量層次的不同層次管理。
[0026]應(yīng)用管理器202能夠?qū)⒂善錉顟B(tài)報(bào)告模塊生成的狀況指示報(bào)告至可管理性接口222,可管理性接口 222類似于圖1的可管理性接口 116。
[0027]圖3是根據(jù)一些實(shí)現(xiàn)方式的處理的流程圖。該處理能夠分別在圖1或圖2的系統(tǒng)100或存儲系統(tǒng)200中執(zhí)行。根據(jù)圖3,第一子系統(tǒng)提供(在302處)關(guān)于第一子系統(tǒng)的操作的狀況指示。在圖1的情境中,第一子系統(tǒng)能夠指中間子系統(tǒng)或低層子系統(tǒng)中的任何子系統(tǒng)。在圖2的情境中,第一子系統(tǒng)能夠指VTL管理器或VTL進(jìn)程中的任何管理器或進(jìn)程。第二子系統(tǒng)檢測(在304處)第一子系統(tǒng)的故障。在圖1的情境中,第二子系統(tǒng)能夠指監(jiān)視子系統(tǒng)102,在圖2的情境中,第二子系統(tǒng)能夠指應(yīng)用管理器202??商娲兀绻谝蛔酉到y(tǒng)是低層子系統(tǒng)(例如圖1的108、110、112或114,或圖2的208、210、212、214或216),則第二子系統(tǒng)能夠指中間子系統(tǒng)(例如圖1的104或106或圖2的204或206)。
[0028]響應(yīng)于檢測第一子系統(tǒng)的故障,第二子系統(tǒng)更新(在306處)在系統(tǒng)中提供的狀況指示來反映所檢測的故障。所更新的狀況指示能夠是第二子系統(tǒng)(例如監(jiān)視子系統(tǒng)102或應(yīng)用管理器202)的狀況指示。可替代地,所更新的狀況指示能夠是比監(jiān)視子系統(tǒng)更低層的子系統(tǒng)(如圖1的中間子系統(tǒng)104或106或者圖2的VTL管理器204或206)的狀況指示。此外,第二子系統(tǒng)能夠更新故障的第一子系統(tǒng)的狀況指示,來表示第一子系統(tǒng)的故障狀態(tài)。
[0029]而且,響應(yīng)于檢測第一子系統(tǒng)的故障,圖3的進(jìn)程還釋放(在308處)由已經(jīng)經(jīng)歷故障的第一子系統(tǒng)使用的資源?!搬尫拧辟Y源指對該資源進(jìn)行解除分配,使得資源不再被標(biāo)記為分配給特定子系統(tǒng),使得該資源可被其它子系統(tǒng)利用。釋放資源還能夠指放棄由特定子系統(tǒng)對該資源的獨(dú)占訪問(例如,特定文件或數(shù)據(jù)庫表的獨(dú)占訪問),使得別的子系統(tǒng)能夠訪問該資源。所使用的資源的示例能夠包括從存儲器、文件、硬件設(shè)備、軟件模塊(包括機(jī)器可讀指令)、數(shù)據(jù)庫連接(包括通信資源和數(shù)據(jù)庫引擎資源)和會話(由向在該會話的通信中涉及的各個實(shí)體分配的標(biāo)識符(如地址)限定)中選擇的至少一種。
[0030]圖4示出能夠由圖2的存儲系統(tǒng)200的各個子系統(tǒng)提供的示例狀況指示。在圖4中,VTL進(jìn)程208提供狀況指示402,狀況指示402能夠呈例如XML文件的形式。
[0031]在根據(jù)圖4的示例中,狀況指示通常具有根據(jù)XML文件400的格式。XML文件400具有多個字段,這些字段包括識別各個子系統(tǒng)的狀態(tài)的“進(jìn)程狀態(tài)(ProcessState) ”字段、識別各個子系統(tǒng)的PID (進(jìn)程標(biāo)識符)字段、識別各個子系統(tǒng)的健康水平的“健康狀況水平(HealthStatusLevel)”字段、表示各個子系統(tǒng)正在如何良好地運(yùn)行的“健康狀況(HealthStatus)”字段以及包含能夠由各個子系統(tǒng)輸入的文本的“文本(Text)”字段。注意,僅繪出一些字段,因?yàn)閄ML文件400能夠包括更多字段。在其它示例中,XML文件400能夠包括可替代字段。
[0032]在狀況指示402中,“進(jìn)程狀態(tài)”字段具有值“正在運(yùn)行(Running)”(表示VTL進(jìn)程208正在正常運(yùn)行),PID字段具有值“87 ”(VTL進(jìn)程208的進(jìn)程ID),“健康狀況水平”字段具有值“好(0K)”(表示VTL進(jìn)程208具有可接受的健康水平),“健康狀況”字段具有值“聯(lián)機(jī)(Online)”(表示VTL進(jìn)程208是聯(lián)機(jī)的),并且“文本”字段具有對應(yīng)的文本。狀況指示402的“進(jìn)程狀態(tài)”字段能夠潛在地具有其它狀態(tài),這些狀態(tài)包括“正在啟動(Starting)”(表示子系統(tǒng)正在啟動)、“未能啟動(Failed to start)”(表示子系統(tǒng)未能啟動)、“故障(Fault)”(表示子系統(tǒng)已經(jīng)經(jīng)歷故障)、“正在停止(Stopping)”(表示子系統(tǒng)正在停止)以及“已停止(Stopped)”(表示子系統(tǒng)已停止)。提供上面的潛在狀態(tài)來用作示例,因?yàn)樵谄渌鼘?shí)現(xiàn)方式中能夠使用其它或可替代狀態(tài)。
[0033]“健康狀況水平”字段能夠具有不同于“好”的程度,如“信息(Information)”(表示各個子系統(tǒng)具有應(yīng)當(dāng)由監(jiān)視子系統(tǒng)檢索的信息)、“警報(bào)(Warning)”(表示可能存在能夠引起故障的問題)以及“危急(Critical)”(表示在報(bào)告子系統(tǒng)中或在低層子系統(tǒng)中已經(jīng)發(fā)生故障)。盡管上面提供多個健康水平,但應(yīng)注意,在其它示例中,能夠報(bào)告附加的或可替代的健康水平。
[0034]“健康狀況”字段還能夠具有不同于“聯(lián)機(jī)”的值,如“正在運(yùn)行”(表示各個子系統(tǒng)正在操作)以及“錯誤(Error)”(表示已經(jīng)發(fā)生故障)。在其它示例中能夠使用其它的或可替代的“健康狀況”字段值。
[0035]在一些實(shí)現(xiàn)方式中,“健康狀況”字段用于表示各個子系統(tǒng)正在如何良好地執(zhí)行,而“進(jìn)程狀態(tài)”字段用于管理各個子系統(tǒng)的啟動和子系統(tǒng)間相依性的關(guān)聯(lián)排序。“進(jìn)程狀態(tài)”字段還能夠用于監(jiān)視子系統(tǒng)(例如圖1的102或圖2的202)的監(jiān)視。
[0036]在其它示例實(shí)現(xiàn)方式中,僅“進(jìn)程狀態(tài)”字段和“健康狀況”字段之一能夠出現(xiàn)在狀況指示中。
[0037]如圖4中進(jìn)一步示出的,能夠?qū)⒂蒝TL進(jìn)程208輸出的狀況指示402提供至VTL管理器204。然后,VTL管理器204輸出狀況指示404,狀況指示404具有用于XML文件400的各個字段的對應(yīng)值。
[0038]將由VTL管理器204輸出的狀況指示404提供至應(yīng)用管理器202,然后應(yīng)用管理器202還輸出其各自的狀況指示406。能夠?qū)顩r指示406提供至GUI模塊408和/或另一可管理性接口 410。在一些示例中,由VTL管理器204輸出的狀況指示404還能夠由⑶I模塊408接收。因此,GUI模塊408能夠用來將與各個子系統(tǒng)(作為示例,包括應(yīng)用管理器202和VTL管理器204)關(guān)聯(lián)的狀況指示提供至用戶(如管理員)。
[0039]圖5示出VTL管理器204已經(jīng)失效的示例。VTL管理器204的失效意味著下面的VTL進(jìn)程208也已經(jīng)失效。注意到,在圖4的示例中由VTL管理器204輸出的狀況指示404在圖5中還未被更新,即便VTL管理器204已經(jīng)失效。因此,狀況指示404不正確地表示:VTL管理器204的“進(jìn)程狀態(tài)”字段具有值“正在運(yùn)行”,其“健康狀況水平”具有值“好”,并且其“健康狀況”字段具有值“正在運(yùn)行”。
[0040]應(yīng)用管理器202能夠間歇性地輪詢VTL管理器204來確定VTL管理器204是否仍正在運(yùn)行??商娲?,能夠采用心跳機(jī)制,其中VTL管理器204將心跳消息間歇性地發(fā)送至應(yīng)用管理器202。在某一預(yù)限定的時間間隔以后未能收到心跳消息,代表應(yīng)當(dāng)已經(jīng)發(fā)送該心跳消息的組件的失效。
[0041 ] 響應(yīng)于檢測VTL管理器204的失效,應(yīng)用管理器202更新其狀況指示406’,來反映其“健康狀況水平”是“危急的”并且其“健康狀況”是“錯誤”。注意,狀況指示406’的“進(jìn)程狀態(tài)”字段仍具有值“正在運(yùn)行”來反映應(yīng)用管理器202仍能夠成功地運(yùn)行,即便應(yīng)用管理器202正在報(bào)告其“健康狀況水平”是“危急的”并且其“健康狀況”是“錯誤”。
[0042]盡管圖5中未示出,但應(yīng)注意,應(yīng)用管理器202還能夠更新狀況指示404 (前面由失效的VTL管理器204輸出的狀況指示)來表示VTL管理器204的故障狀態(tài)。
[0043]除了能夠響應(yīng)于檢測子系統(tǒng)的故障而更新狀況指示以外,根據(jù)一些實(shí)現(xiàn)方式的監(jiān)視子系統(tǒng)(如圖1中的102或圖2中的202)還能夠監(jiān)視由各個子系統(tǒng)使用的資源。由子系統(tǒng)使用的資源能夠由監(jiān)視子系統(tǒng)跟蹤(tracked)在各自的資源利用列表中,其中資源利用列表能夠與子系統(tǒng)的標(biāo)識符關(guān)聯(lián)。因此,第一子系統(tǒng)能夠與第一資源利用列表關(guān)聯(lián),第二子系統(tǒng)能夠與第二資源利用列表關(guān)聯(lián),以此類推。每個資源利用列表識別由各個子系統(tǒng)使用的(被分配給各個子系統(tǒng)的)資源(多個資源)。[0044]在一些示例中,資源的跟蹤能夠牽涉到使用IPC (進(jìn)程間通信狀態(tài))工具、LSOF (列表打開文件)工具、NETSTAT (網(wǎng)絡(luò)統(tǒng)計(jì)信息)工具或任何其它機(jī)制(包括特定賣方工具等)。在一些實(shí)現(xiàn)方式中,監(jiān)視子系統(tǒng)能夠提供由該監(jiān)視子系統(tǒng)正在監(jiān)視的子系統(tǒng)使用的所有資源的聚集查看。當(dāng)檢測特定子系統(tǒng)的故障時,監(jiān)視子系統(tǒng)能夠檢索相應(yīng)的資源利用列表來識別在故障時該特定子系統(tǒng)使用的資源。監(jiān)視子系統(tǒng)能夠釋放(圖3中的任務(wù)308)由該資源利用列表識別的資源,這能夠牽涉對前面向該特定子系統(tǒng)分配的任何資源進(jìn)行解除分配或者放棄資源的獨(dú)占訪問。
[0045]當(dāng)檢測子系統(tǒng)的故障時,監(jiān)視子系統(tǒng)能夠?qū)嵤┭a(bǔ)救行動。一種這樣的補(bǔ)救行動是向諸如用戶或自動化實(shí)體之類的另一實(shí)體提供消息??商娲?,監(jiān)視子系統(tǒng)能夠引起已經(jīng)經(jīng)歷故障的子系統(tǒng)的重啟動。在一些情況中,已經(jīng)經(jīng)歷故障的子系統(tǒng)實(shí)際上也許未失效——該子系統(tǒng)可以繼續(xù)運(yùn)行的,但是可能正在故障狀態(tài)下運(yùn)行(這里該子系統(tǒng)未正確地操作)。在這樣的場景中,監(jiān)視子系統(tǒng)能夠引起故障的子系統(tǒng)的強(qiáng)迫失效,使得能夠在該子系統(tǒng)已經(jīng)實(shí)際失效以后采取進(jìn)一步的補(bǔ)救行動(例如重啟動)。
[0046]通過能夠檢測故障的子系統(tǒng)以及響應(yīng)于檢測故障的子系統(tǒng)而采取補(bǔ)救行動,能夠在錯誤在系統(tǒng)中傳播以前解決這樣的故障。此外,通過能夠釋放前面向故障的子系統(tǒng)分配的資源,能夠使重新分配的資源可用于其它子系統(tǒng)。此外,通過使用監(jiān)視子系統(tǒng)來釋放與故障的子系統(tǒng)關(guān)聯(lián)的資源,該子系統(tǒng)不必需具有用于在該子系統(tǒng)重啟動時整理之前分配的資源的代碼。
[0047]圖6是根據(jù)一些實(shí)現(xiàn)方式的示例監(jiān)視子系統(tǒng)600的框圖。監(jiān)視子系統(tǒng)600能夠被實(shí)現(xiàn)為計(jì)算機(jī)系統(tǒng),或者能夠被實(shí)現(xiàn)為計(jì)算機(jī)系統(tǒng)的分布式布置。監(jiān)視子系統(tǒng)600包括監(jiān)視進(jìn)程602和狀態(tài)報(bào)告模塊604。監(jiān)視進(jìn)程602能夠執(zhí)行上面介紹的各種任務(wù),這些任務(wù)包括例如圖3的進(jìn)程。狀態(tài)報(bào)告模塊604用于生成狀況指示,如分別在圖4或圖5示出的狀況指示406或406,ο
[0048]監(jiān)視進(jìn)程602和狀態(tài)報(bào)告模塊604能夠被實(shí)現(xiàn)為可在一個或多個處理器606上運(yùn)行的機(jī)器可讀指令。處理器能夠包括微處理器、微控制器、處理器模塊或子系統(tǒng)、可編程的集成電路、可編程的門陣列或者別的控制設(shè)備或計(jì)算設(shè)備。
[0049]監(jiān)視子系統(tǒng)600還包括網(wǎng)絡(luò)接口 608,以允許監(jiān)視子系統(tǒng)600經(jīng)由網(wǎng)絡(luò)通信。此夕卜,監(jiān)視子系統(tǒng)600包括用于存儲各種信息的存儲介質(zhì)(或存儲媒介)610,信息包括正由監(jiān)視子系統(tǒng)600監(jiān)視的各個子系統(tǒng)使用的資源的列表612。監(jiān)視子系統(tǒng)600還能夠?qū)⒏鞣N狀況指示614 (包括由監(jiān)視子系統(tǒng)600輸出的狀況指示以及從其它子系統(tǒng)接收的狀況指示)存儲在存儲介質(zhì)或存儲媒介610內(nèi)。
[0050]盡管圖6示出監(jiān)視子系統(tǒng)的組件,但應(yīng)注意,其它子系統(tǒng)(如圖1或圖2繪出的那些子系統(tǒng))能夠具有類似布置。
[0051]存儲介質(zhì)或存儲媒介610能夠被實(shí)現(xiàn)為一個或多個計(jì)算機(jī)可讀存儲介質(zhì)或機(jī)器可讀存儲介質(zhì)。存儲介質(zhì)包括不同形式的存儲器,包括諸如動態(tài)隨機(jī)存取存儲器或靜態(tài)隨機(jī)存取存儲器(DRAM或SRAM)、可擦可編程只讀存儲器(EPROM)、電可擦可編程只讀存儲器(EEPROM)和閃存之類的半導(dǎo)體存儲器設(shè)備,諸如硬盤、軟盤和可換式盤之類的磁盤;包括磁帶的其它磁性介質(zhì);諸如光盤(CD)或數(shù)字視頻盤(DVD)之類的光學(xué)介質(zhì);或其它類型的存儲設(shè)備。注意,上面論述的軟件的指令能夠提供在一個計(jì)算機(jī)可讀存儲媒介或機(jī)器可讀存儲媒介上,或者可替代地,可以提供在分布于可能具有多個節(jié)點(diǎn)的大型系統(tǒng)中的多個計(jì)算機(jī)可讀存儲介質(zhì)或機(jī)器可讀存儲介質(zhì)上。這種計(jì)算機(jī)可讀存儲媒介或介質(zhì)或機(jī)器可讀存儲媒介或介質(zhì)被認(rèn)為是物品(或制品)的一部分。物品或制品能夠指任意被制造的單個組件或多個組件。存儲介質(zhì)或存儲媒介能夠位于運(yùn)行該機(jī)器可讀指令的機(jī)器內(nèi)或者位于能夠通過網(wǎng)絡(luò)下載用于運(yùn)行的機(jī)器可讀指令的遠(yuǎn)程位置。
[0052]在以上描述中,闡述大量細(xì)節(jié),以提供對本文公開的主題的理解。然而,實(shí)現(xiàn)方式可以在沒有這些細(xì)節(jié)中的一些細(xì)節(jié)或全部細(xì)節(jié)的條件下實(shí)踐。其它實(shí)現(xiàn)方式可以包括上面介紹的細(xì)節(jié)的改變和變型。希望所附權(quán)利要求覆蓋上述改變和變型。
【權(quán)利要求】
1.一種用于具有處理器的系統(tǒng)中的故障處理的方法,包括: 由第一子系統(tǒng)提供關(guān)于所述第一子系統(tǒng)的操作的狀況指示; 由第二子系統(tǒng)檢測所述第一子系統(tǒng)的故障;并且 響應(yīng)于檢測第一子系統(tǒng)的故障, 所述第二子系統(tǒng)更新狀況指示來反映被檢測的故障,以及 釋放由已經(jīng)經(jīng)歷所述故障的所述第一子系統(tǒng)使用的資源。
2.根據(jù)權(quán)利要求1所述的方法,其中所述第二子系統(tǒng)是監(jiān)視子系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的方法,其中釋放資源由跟蹤由所述系統(tǒng)中的子系統(tǒng)使用的資源的監(jiān)視子系統(tǒng)執(zhí)行。
4.根據(jù)權(quán)利要求3所述的方法,其中跟蹤由子系統(tǒng)使用的資源包括跟蹤從存儲器、文件、硬件設(shè)備、軟件模塊、數(shù)據(jù)庫連接和會話中選擇的資源。
5.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括: 保持用于所述系統(tǒng)中各個子系統(tǒng)的資源的列表,該列表與子系統(tǒng)的各自的標(biāo)識符關(guān)聯(lián);以及 檢索與所述第一子系統(tǒng)的標(biāo)識符關(guān)聯(lián)的列表來識別由所述第一子系統(tǒng)使用的資源。
6.根據(jù)權(quán)利要求1所述的方法,其中所述狀況指示包括對應(yīng)的XML(可擴(kuò)展標(biāo)記語言)文件。
7.根據(jù)權(quán)利要求1所述的方法`,進(jìn)一步包括響應(yīng)于由所述第二子系統(tǒng)更新的所述狀況指示,執(zhí)行補(bǔ)救行動。
8.根據(jù)權(quán)利要求7所述的方法,其中執(zhí)行補(bǔ)救行動包括重啟動所述第一子系統(tǒng)。
9.根據(jù)權(quán)利要求7所述的方法,其中執(zhí)行補(bǔ)救行動包括引起所述第一子系統(tǒng)的失效來允許對所述第一子系統(tǒng)采取進(jìn)一步的補(bǔ)救行動。
10.根據(jù)權(quán)利要求1所述的方法,其中所述系統(tǒng)具有處于層次化布置中的子系統(tǒng),所述第二子系統(tǒng)位于該層次化布置的頂層,所述第一子系統(tǒng)位于該層次化布置的低層,并且其中所述系統(tǒng)進(jìn)一步包括位于所述頂層和所述低層之間的中間層的子系統(tǒng)。
11.一種物品,包括存儲用于系統(tǒng)中的故障處理的指令的至少一種機(jī)器可讀存儲介質(zhì),所述指令在運(yùn)行時引起所述系統(tǒng)執(zhí)行以下步驟: 接收關(guān)于第一子系統(tǒng)的操作的狀況指示; 檢測所述第一子系統(tǒng)的故障,其中所述狀況指示不正確地指示所述第一系統(tǒng)正常操作,即便所述第一子系統(tǒng)已經(jīng)經(jīng)歷故障; 響應(yīng)于檢測所述故障,更新由第二子系統(tǒng)提供的狀況指示;以及 響應(yīng)于檢測所述故障,釋放由所述第一子系統(tǒng)使用的資源。
12.根據(jù)權(quán)利要求11所述的物品,其中檢測所述故障包括輪詢所述第一子系統(tǒng)或?qū)λ龅谝蛔酉到y(tǒng)使用心跳機(jī)制中之一。
13.根據(jù)權(quán)利要求11所述的物品,其中所述指令在運(yùn)行時引起所述系統(tǒng)進(jìn)一步: 響應(yīng)于檢測所述故障,更新所述第一子系統(tǒng)的狀況指示。
14.根據(jù)權(quán)利要求11所述的物品,其中所述指令在運(yùn)行時引起所述系統(tǒng)進(jìn)一步: 跟蹤由所述系統(tǒng)的子系統(tǒng)使用的資源;以及 提供被跟蹤的資源的列表,其中該列表與子系統(tǒng)的對應(yīng)標(biāo)識符關(guān)聯(lián)。
15.一種能夠執(zhí)行故障處理的系統(tǒng),包括: 至少一個處理器,用于: 接收關(guān)于第一子系統(tǒng)的操作的狀況指示; 檢測所述第一子系統(tǒng)的故障,其中所述狀況指示不正確地指示所述第一子系統(tǒng)正常操作,即便所述第一子系統(tǒng)已經(jīng)經(jīng)歷所述故障; 響應(yīng)于檢測所述故障,更新由第二子系統(tǒng)提供的狀況指示;以及 響應(yīng)于檢測所述故障,釋放由所述第一子系統(tǒng)使用的資源。
【文檔編號】G06F11/30GK103733181SQ201180072863
【公開日】2014年4月16日 申請日期:2011年11月4日 優(yōu)先權(quán)日:2011年11月4日
【發(fā)明者】西蒙·佩利, 阿拉斯泰爾·斯萊特 申請人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)