新四季網

作為服務的故障檢測與恢復的製作方法

2023-10-10 17:52:44

專利名稱:作為服務的故障檢測與恢復的製作方法
作為服務的故障檢測與恢復
背景技術:
在計算領域,許多情形涉及計算機系統中的故障檢測,比如幹擾進程;進程所利用的資源的不可用性,比如唯一地被另一個進程鎖定的空閒存儲器或資源的耗盡;進程無能力完成任務;進程的邏輯故障,其導致資源的消耗、無窮盡的循環或應用崩潰;或設備的硬體故障,其中斷進程的執行。這樣的故障的嚴重程度為從好奇到不便到嚴重的問題(例如在實時進程或正常運行時間用戶所依賴的進程中的故障)。在這些和其他情形中,管理員可以努力監控該進程,比如利用在同一個設備或另一個設備上運行的監控進程來監控被監控進程的實現(instrumentation),驗證被監控進程繼續按預期運行、提供可接受性能以及對用戶而言是可訪問的。如果被監控進程顯示出故障的指示或變得不可及,則監控進程可以在日誌中記錄這些指示或者可以通知管理員
發明內容
通過簡化形式提供該發明內容以引入概念的選擇,在下文的具體實施方式
中對其進一步描述。該發明內容不旨在標識要求保護的主題的關鍵因素或必要特徵,也不旨在用於限制要求保護的主題的範圍。監控進程和被監控進程的接口經常是高度專用且專有的。例如,要被監控的進程可以報告指示其狀況(status)的一組專用度量,並且/或者可以以專用方式報告這樣的度量,比如特定類型的日誌或事件模型或特定位置。該監控進程還可以特別地被設計成與被監控進程耦合(例如,以便評估日誌,預訂事件和/或查詢被監控進程)。該監控進程和被監 控進程可以一起表示一對緊密耦合的互操作進程。然而,該監控進程和被監控進程的專用化(specialization)可能在某些方面是低效的。作為第一實例,每個被監控進程可以具有對應的監控進程,並且對許多被監控進程的監控可涉及許多監控進程的部署,其中每個監控進程監控一個進程。該耦合可以降低監控設備的再使用(例如,可能難以配置一組機器來監控一組進程)。作為第二實例,可能罕見的是建立對正在監控第二進程的第一進程的監控(在同一個機器或另一個機器上)。作為第三實例,監控的每種情形可能有輕微不同或顯著不同(例如向管理員通知故障指示符的方式,被不同進程使用的故障指示符的類型,以及日誌文件的位置、格式和語義使用),導致在系統的管理方面複雜性增加。本文提出了用於將故障監控實現為標準化服務的技術。根據這些技術,可以提供一組一個或多個監控節點,其被配置成執行對執行要被監控的一個或多個進程的各個被監控節點的監控。一個或多個被監控節點可以向監控節點註冊(register)以便監控,並且可以發起對這些進程的狀況(可能包括這些進程的狀態(例如不僅僅包括進程是否正在運行,而且還包括該進程的內部狀態))的周期性報告。監控節點可以記錄該信息,並且可以在接收到進程或被監控節點正在遭遇困難或已經停止報告的指示時採取行動。例如,該監控節點可以請求重啟不再報告的進程,包括重啟處於由被監控節點最後報告的狀態的該進程,並且還可以請求在不同的被監控節點上重啟該進程。如果被監控節點完全停止響應,則監控節點可以選擇替代的被監控節點,並且可以請求在該替代的被監控節點上重啟所有這些進程(可能處於最後報告的狀態)。而且,在涉及一組兩個或更多監控節點的情形中,監控節點還可以相互監控。例如,被監控節點可以被指派(as s i gn )向特定監控節點報告。而且,監控節點可以周期性地使其中的監控信息同步(例如每個監控節點可以告知其他監控節點分配給它的被監控節點、在其上執行的被監控進程和每個這樣的被監控進程的狀況和/或可能地狀態)。如果監控節點故障(例如停止向其他監控節點報告),則其他監控節點可以選擇替代的監控節點,該故障監控節點的所有被監控節點可以被重新分配給該替代的監控節點。根據這些技術的故障檢測和故障恢復的實現方式可以呈現一些優點。作為第一實例,這些技術可以使得故障容忍能夠被作為非專用的、非專有的、基於預訂的服務提供,其中一組監控節點可以合作來監控一組被監控節點上的任意參與進程,而不管被監控的進程的類型或被監控節點的作用如何。作為第二實例,這些技術可以促進監控資源的高效使用;例如,執行少量監控進程的單組監控節點可以被配置成監控大且多樣的一組被監控節點和被監控進程。作為第三實例,這些技術使得監控節點能夠承擔故障監控節點的角色(例如,通過接納(adopt)先前分配給該故障監控節點的被監控節點),並且使得被監控節點能夠承 擔故障被監控節點的角色(例如在故障時刻重啟由被監控節點執行的進程)。節點的這種冗餘和可替代性可以通過在減少被監控進程和/或監控服務的中斷的同時從故障中恢復來促進高可用性。作為第四實例,這些技術可以促進監控服務的可擴展性;例如,被監控節點和進程可以容易地註冊以便監控,並且監控能力可以簡單地通過添加更多的監控節點來擴展。這些和其他優點可以通過根據本文所提供的技術實現監控情形來實現。為了實現前述和相關目的,下面的描述和附圖闡述了某些說明性方面和實現方式。這些僅僅指示可以使用一個或多個方面的各種方式中的一些。本公開的其他方面、優點和新穎特徵將根據下面在結合附圖考慮時的詳細描述而變得清楚明白。


圖I是以由監控節點對被監控節點所執行的進程進行監控為特徵的示範性情況的圖示。圖2是以一組監控節點為特徵的示範性情況的圖示,其中該組監控節點被配置成根據本文所提出的技術監控由一組被監控節點執行的一個或多個進程。圖3是圖示配置監控節點以監控一個或多個被監控節點上的一個或多個進程的示範性方法的流程圖。圖4是圖示配置被監控節點參與由一個或多個被監控節點進行的監控的示範性方法的流程圖。圖5是包括被配置成體現本文所提及的一個或多個指配(provisions)的處理器可執行指令的示範性計算機可讀介質的圖示。圖6是以被配置成監控被監控節點的進程的狀態且處理進程或被監控節點的故障的監控節點為特徵的示範性情況的圖示。圖7是以被配置成在檢測到由被監控節點執行的相應進程已經進入特定狀態時執行邏輯的監控節點為特徵的示範性情況的圖示。圖8是以被配置成彼此相互監控並處理監控節點的故障的一組監控節點為特徵的示範性情況的圖示。圖9圖示了可實現本文所提及的一個或多個指配的示範性計算環境。
具體實施例方式現在參考附圖描述要求保護的主題,其中相同的附圖標記始終用於指代相同的元件。在下面的描述中,為了解釋的目的,許多特定細節被闡述,以便提供對要求保護的主題的徹底理解。然而,可 能顯然的是,要求保護的主題可以在沒有這些特定細節的情況下被實施。在其他情況中,以框圖形式示出結構和設備,以便便於描述要求保護的主題。在計算領域內,許多情形涉及對由在故障情況下要被監控的一個或多個節點(例如,各種類型的設備和計算機,和/或在其上運行的模擬運行環境)執行的一個或多個進程的監控。進程可以由於各種原因(例如,幹擾進程;進程所利用的資源的不可用性,比如唯一地被另一個進程鎖定的空閒存儲器或資源的耗盡;進程未能完成任務;進程中導致資源消耗的邏輯故障,無窮盡的循環或應用崩潰)發生故障。此外,整個節點可能經歷軟體或硬體故障(例如,處理器過熱、供電或網絡訪問停止、硬碟故障或作業系統崩潰)。這樣的故障的結果可以覆蓋某個範圍的嚴重程度,比如好奇、不便或受挫,以及嚴重的問題(例如,實時進程可以在具有嚴格的定時參數的情況內執行,比如在裝配線上操作機器人的運動的進程,或可以被大量的其他進程利用的進程,比如將存儲在資料庫中的數據提供給一系列數據驅動的應用的資料庫伺服器,或響應於從許多用戶接收的大量請求同時接收和生成網頁的網絡伺服器)。在這樣的情況內,可能期望配置執行進程的計算機或設備以便被另一個計算機或設備監控。例如,執行特定進程的被監控節點可以由監控節點來監控,其可以周期性地檢測度量或接收報告,該報告指示被監控節點和/或進程的狀況(比如該進程和節點是否保持操作並正在以可接受方式執行)。在檢測到新出現的、即將發生的或現有的問題(比如進程或被監控節點的故障)時,監控節點可以執行各種動作,比如記錄檢測的信息或通知管理員以進行進一步的動作。由監控節點對被監控節點的進程的監控可以以各種方式實現。圖I呈現示範性情況10的圖示,其以用於配置被監控節點14和監控節點18進行互操作來實現對被監控節點14所執行的進程16的監控的兩種示範性技術為特徵。在該示範性情況10中,第一被監控節點14執行被第一監控節點18監控的第一進程16,並且第二被監控節點14執行被第二監控節點18監控的第二進程16。然而,在這兩種實現方式之間監控的環境可能明顯不同。例如,第一監控進程14可以利用包括為監控所述進程16所寫的專用應用的第一監控進程20,其實現與進程16的專用接口 24通信的專用接口 22 (例如監控進程20可以接收由進程16的專用接口 24發送的度量,和/或可以通過專用接口 24查詢進程16以請求狀況信息)。第一監控進程20還可以將重要的信息寫到第一日誌28上,該第一日誌可以被管理員12瀏覽以確定被監控節點14和進程16的狀況。第二監控進程14可以利用包括為監控所述進程16所寫的專用應用的第二(不同的)監控進程20。然而,該進程16可以不被配置成與監控進程20通信,但是可以向客戶端32提供服務30,並且監控進程20可以利用客戶端32監控34進程16的服務30 (例如,監控從進程16向客戶端32的數據提供)。第二監控進程20還可以將重要信息寫到第二 (不同的)日誌28,該日誌可以被管理員12瀏覽以確定被監控節點14和進程16的狀況。以此方式,第一監控節點18和第一被監控節點14可以互操作以實現對第一進程16的監控,並且第二監控節點18和第二被監控節點14可以互操作以實現對第二進程16的監控。因此圖I的示範性情況10圖示了用於監控每個進程16的專用技術,涉及各監控節點18和被監控節點16的緊密耦合以實現狀況和故障的監控和報告。然而,該示範性情況10還圖示了一些缺點,這些缺點可能隨著基於這種緊密耦合的專用技術而出現。作為第一實例,每個監控節點18執行對對應的被監控節點14和進程16的監控,但是不參與對其他被監控節點14和/或進程16的監控。因此,監控節點18在一個被監控節點14故障情況下可能不利用另一個被監控節點14的資源。作為第二實例,監控節點18不相互通信,並且任一監控節點18的故障可能未被其他監控節點18檢測到或被其響應;事實上,監控節點18的故障可能不被報告給管理員12或被管理員注意到。作為第三實例,監控節點18以不同方式(例如利用不同日誌28)向管理員12報告關於監控的信息,並且管理員12可能不得不檢查每個日誌28並繼而關注對每個進程16的監控細節。作為第四實例,管理員12可能難以將要被監控的新進程16、執行進程16的新的被監控節點14或新監控節點20引入到示 範性情況10中,這是由於其中已經包括資源的專用化和緊密耦合。而且,在記錄信息和報告故障的方式方面的差異可以降低報告進程的一致性。相反,對新進程16和/或被監控節點14的監控可以僅通過引入新監控節點18 (可能包括專用監控進程20)來實現,從而進一步增加圖I的示範性情況10中監控管理的複雜性。本文提出了用於實現一個或多個監控節點18以標準化方式監控由一個或多個監控節點14執行的一個或多個進程16的技術,該標準化方式促進了這種監控的互操作、故障檢測和故障恢復能力、靈活性、可擴展性和一致性。根據這些技術,監控節點18可以被配置成接受一個或多個被監控節點14的註冊,並且可以執行對其上執行的進程的監控。被監控節點14可以向監控節點18註冊以便監控,並且可以指示在被監控節點14上執行的一個或多個進程16。然後,被監控節點14可以通知監控節點18各個進程16的狀況。在進程16故障的情況下(例如指示問題的發展的度量、故障狀況的報告或報告的狀況的停止),監控節點18可以請求被監控節點14重啟進程16。可替代地,在檢測到整個被監控節點14故障(例如,來自被監控節點14的報告的停止或缺乏響應性)時,監控節點18可以從被監控節點組選擇替代的被監控節點14,並且可以請求該替代的被監控節點14重啟曾經正在發生故障的被監控節點14上執行的每一個進程16。而且,監控節點18可以被配置成相互監控;例如,如果監控節點18停止向其他監控節點18報告其狀況,則所述其他監控節點18可以為故障監控節點18共同地選擇替代的監控節點18,並且可以將已被分配給故障監控節點18的被監控節點14重新分配給替代的監控節點18。圖2呈現以對一組進程16的監控為特徵的示範性情況40,其中所述一組進程16由一組被監控節點14執行且由一組監控節點18監控。在該示範性情況40中,一組監控節點18互操作以執行對被監控節點14和進程16的監控。被監控節點14可以被配置成在加入監控情況時註冊以便監控,並且所述監控節點18可以協商(confer)以選擇要向其分配被監控節點14的監控節點18。被監控節點14可以接收分配的通知,並且可以開始向監控節點18上的監控進程20報告相應進程16的一組狀況42。監控節點18因此可以確定被監控節點14和由其執行的進程16的狀況。如果進程16故障(如由向其報告的狀況42所指示),監控節點18可以請求被監控節點14重啟進程16 ;但是如果整個被監控節點14故障,則監控節點18可以與其他監控節點18協商選擇替代的被監控節點14,並且在故障的被監控節點14上執行的進程16可以在替代的被監控節點14上被重啟。而且,如果監控節點18故障,則其他監控節點18可以協商選擇替代的監控節點,並且可以將所有已被分配給故障的監控節點18的被監控節點14重新分配給替代的監控節點18。所有這些動作可以由管理員12瀏覽,管理員可以查看監控節點18共享的日誌並且管理監控網絡(例如通過添加更多的被監控節點14、進程16和/或監控節點18來擴展監控網絡) 。本文所提出的技術(包括在圖2的示範性情況40中)相對於其他監控技術(比如圖I的示範性情況10中所示的監控技術)可以呈現出一些優點。作為第一實例,本文所提出的技術可以表示標準化監控框架,其中任何進程16可以通過向監控節點18報告信息而參與監控。作為第二實例,本文所提出的技術提升了監控情況的可擴展性;例如,附加的監控節點18可以容易地被添加到監控節點組18以共享監控的計算負荷並改善其彈性,並且包括要被監控的各個進程16的被監控節點14可以容易地加入被監控節點組以預訂監控。此外,該監控框架可以使得監控能夠作為標準化服務被給予(offer)、提供和預訂;例如,監控主機可以給予一組監控節點18,可以針對其預訂任意組被監控節點14和進程16。作為第三實例,在進程16、被監控節點14和監控節點18之間的故障檢測和故障恢復被顯著改進;例如,任何組件的故障可以被檢測並被監控情況的剩餘資源所吸收。而且,通過這些技術故障恢復的簡易和迅速性可以實現被監控進程和監控服務的高可用性;例如,設備和進程故障可以被迅速檢測,並且另一個監控節點和/或被監控節點可以承擔故障設備的角色。作為第四實例,通過配置監控節點18以記錄信息並以標準化方式向管理員12報告,監控情況的一致性可被顯著提高並且其複雜性被顯著降低。例如,管理員12可以通過查看由所有監控節點18共享的一個日誌而查看所有被監控資源的狀況。這些和其他優點可以通過根據本文所提出的技術的監控的實現方式來實現。圖3呈現這些技術的第一實施例,其被圖示為配置具有處理器的監控節點18以監控執行至少一個進程16的一個或多個被監控節點14的示範性方法50。該示範性方法50可以被實現為例如一組處理器可執行指令,其存儲在監控節點18的存儲器組件(例如,存儲器電路、硬碟驅動器母板、固態存儲設備或磁碟或光碟)中並且以這樣的方式被配置當由監控節點18的處理器執行時使得監控節點18執行示範性方法50的任務。示範性方法50在52處開始並且涉及在處理器上執行54指令。特別地,這些指令被配置成當接收監控被監控節點14的請求時,將被監控節點14的至少一個進程16註冊56以便監控。這些指令還被配置成在從被監控節點14的進程16接收至少一個狀況42時,記錄58進程16的狀況42。這些指令還被配置成在檢測到被監控節點14的至少一個進程16的故障時,重啟60被監控節點14上的進程16。以此方式,示範性方法50使得監控節點18執行對一個或多個被監控節點14的進程16的故障檢測和故障恢復,因此在62處結束。圖4呈現這些技術的第一實施例,其圖示為配置具有處理器並執行要由監控節點18監控的至少一個進程16的被監控節點14的示範性方法70。示範性方法70可以被實現為例如一組處理器可執行指令,其存儲在監控節點18的存儲器組件(例如,存儲器電路、硬碟驅動器母板、固態存儲設備或磁碟或光碟)中並且以這樣的方式被配置當由被監控節點14的處理器執行時使得被監控節點14執行示範性方法50的任務。示範性方法70在72處開始並且涉及在處理器上執行74指令。特別地,這些指令被配置成向監控節點18註冊至少一個進程16。這些指令還被配置成向監控節點18 (例如周期性地)報告78至少一個進程16的至少一個狀況42。此外,這些指令還被配置成在從監控節點18接收重啟進程16的請求時,重啟80進程16。以此方式,示範性方法70使得被監控節點14登記其進程16以便由監控節點18監控並且參與根據本文所提出技術的監控情況,因此在82處結束。又一個實施例涉及計算機可讀介質,其包括被配置成應用本文所提出的技術的處理器可執行指令。這樣的計算機可讀介質可以包括例如涉及有形設備的計算機可讀存儲介質,比如存儲器半導體(例如,利用靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)和/或同步動態隨機存取存儲器(SDRAM)技術的半導體)、硬碟驅動器母板、快閃記憶體設備或磁碟或光碟(比如⑶-R、DVD-R或軟盤),其對一組計算機可讀指令編碼,該指令在被設備的處理器執行時使得設備實現本文所提出的技術。這樣的計算機可讀介質還可以包括(作為區別於計算機可讀存儲介質的一類技術)各種類型的通信介質,比如可以通過各種物理現象傳播的信號(例如,電磁信號、聲波信號或光信號)並且在各種有線情況(例如經由乙太網或光纖線纜)和/或無線情況(例如無線區域網(WLAN)(比如WiFi)、個人區域網絡、(PAN)(比如藍牙)或蜂窩或無線電網絡)中,並且其編碼一組計算機可讀指令,該指令在被設備的處理器執行時使得設備實現本文所提出的技術。圖5中圖示了可以以這些方式設計的示範性計算機可讀介質,其中實現方式90包括計算機可讀介質92 (例如CD-R、DVD-R或硬碟驅動器的母板),其上計算機可讀數據94被編碼。該計算機可讀數據94又包括被配置成根據本文所闡述的原理操作的一組計算機指令96。在一個這種實施例中,該處理器可執行指令96可以被配置成執行配置監控節點以監控在一個或多個被監控節點上的一個或多個進程的方法,比如圖3的示範性方法50。在另一個這種實施例中,處理器可執行指令96可以被配置成實現配置被監控節點以參與由一個或多個監控節點進行的監控的方法,比如圖4的示範性方法70。該計算機可讀介質的一些實施例可以包括非瞬時計算機可讀存儲介質(例如硬碟驅動器、光碟或快閃記憶體設備),其被配置成存儲以該方式配置的處理器可執行指令。許多這樣的計算機可讀介質可以被本領域技術人員設計,這些介質被配置成根據本文所提出的技術操作。本文所討論的技術可以被設計成在許多方面變形,並且一些變形可以呈現附加的優點並且/或者減少相對於這些和其他技術的其他變形的缺點。而且,一些變形可以以組合方式實現,並且一些組合可以以通過協同合作而附加的優點和/或減少的缺點為特徵。這些變形可以被併入各種實施例中(例如圖3的示範性方法50和圖4的示範性方法70)以協商在這樣的實施例上的單獨和/或協同的優點。可以在多個實施例之間變化的第一方面涉及可以利用這樣的實施例的情況。作為第一實例,本文所提出的監控技術可以被用於實現對許多類型節點的監控,比如各種形式因素的計算機(比如,伺服器、工作站、控制臺、筆記本、平板計算機、掌上設備和智慧型電話)。作為第二實例,許多類型的進程16可以根據本文所提出的技術來監控,比如服務,例如,電子郵件伺服器、文件伺服器、資料庫伺服器、傳感器、自動伺服器(比如管理控制和數據採集(SCADA)組件)和人工智慧進程。作為第三實例,許多類型的狀況42可以由這樣的進程16報告,所述狀況包括「0K」狀況、「not 0K」狀況、「遭遇困難」狀況和「鎖定」狀況。本領域技術人員可以設想許多可以利用本文所提出的技術的情況。
可以在這些技術的多個實施例之間變化的第二方面涉及對執行至少一個進程16的被監控節點14的監控的配置。作為該第二方面的第一實例,被監控節點14和/或進程16可以被配置成向監控節點18發送指示被監控節點14和/或進程16的持續功能性的一系列持久性指示符。被監控節點14和/或進程16可以被配置成在通知周期內(例如每分鐘一次)向監控節點18發送持久性指示符,並且監控節點可以被配置成隨著通知周期的流逝、在沒有接收到持久性指示符的情況下檢測被監控節點14和/或進程16的故障。作為該第二方面的第二實例,除了報告狀況42 (例如作為持久性指示符)之外,進程16可被配置成向監控節點18報告其狀態,該監控節點可被配置成記錄進程16的狀態。例如,進程16可以包括可以以各種狀態存在的狀態機和/或進程16正操作的一個或多個數據項,並且進程16可以周期性地向監控節點18報告狀態和數據項。該信息可以向進程16的報告的狀況42添加細節,並且在進程16後續故障的情況下可能是有用的。作為該第二方面的第三實例,監控節點18可以被配置成在檢測到被監控節點14 和/或進程16的故障時採取多種類型的動作。作為第一實例,監控節點18可以簡單地將故障記錄在日誌28中,或者可以用故障的通知聯繫管理員12。作為第二實例,監控節點18可以請求被監控節點14重啟已發生故障的進程16。而且,如果監控節點18正監控一組兩個或更多被監控節點14,則監控節點18可以選擇替代的被監控節點14,並且可以請求替代的被監控節點14重啟進程16。該替代可能是有利的,例如如果被監控節點14還正在執行在相同被監控節點14上重啟時可被進程16的附加故障中斷的其他進程16,和/或用於在不同的被監控節點14上重試進程16,該不同的被監控節點14可能具有避免進程16的二次故障的不同條件。而且,該替代可能是有利的,例如當整個被監控節點14故障時,以及當已被被監控節點14執行的所有進程16要在一個或多個替代的被監控節點14上被重啟時。作為該第二方面的第四實例,如果進程16被配置成向監控節點16報告其狀態,那麼在檢測到進程16的故障時,該監控節點18可以請求處於在故障之前被進程16最後報告的狀態的被監控節點14 (包括替代的被監控節點14)上重啟進程16。例如,進程16可以包括執行冗長計算(例如處理大陣列)的算法,並且可以在該算法內向監控進程18周期性報告其狀態(例如,進入當前被處理的陣列的索引)。如果進程16故障,監控進程18可以請求被監控節點14在最後報告的狀態處重啟進程16,比如在該算法內的最後報告的位置(例如開始於陣列內最後報告的陣列索引)。以此方式,進程16可以被重啟而不必執行先前執行的狀態,從而降低了完全算法部分的冗餘執行並且在進程16的執行中保存計算資源。圖6呈現了以向監控節點報告由相應被監控節點14執行的相應進程16的一組狀態102為特徵的示範性情況100的圖示。在該示範性情況100中,兩個被監控節點14分別正在執行分別被配置成向監控節點18報告進程16的狀態102的兩個被監控進程16。例如,進程16可以周期性地或者在從第一狀態102向第二狀態102轉換時向監控節點18報告狀態102。監控節點18可以在狀態日誌104中記錄進程16的狀態102。因此,如果在第一被監控節點14上執行的第二進程16經歷故障106(例如,如果第二進程16崩潰、報告問題或無法繼續報告狀態102和/或狀況42,比如性能指示符),則監控節點18可以檢測第二進程16的故障106,並且可以向被監控節點14發送重啟第二進程16的請求108。而且,監控節點18可以參考狀態日誌104,識別由第二進程16報告的最後狀態102(例如,第二進程16可能已經報告了第二狀態102並且然後崩潰),監控節點18可以在請求108中指示被監控節點14將在第二狀態102中重啟第二進程16。類似地,第二被監控節點14可能正在執行兩個進程16,但是也可能經歷故障110 (例如,可能過熱、丟失電力或網絡連接性或表現出作業系統崩潰)。監控節點18可以檢測第二被監控節點14的故障110,並且可以向第三被監控節點14發送一系列請求108以重啟第二被監控節點14在發生故障110的時候正執行的每一個進程16。而且,監控節點18可以在請求108中指示狀態102,在該狀態中第三被監控節點14要基於在故障110之前最後報告的進程16的狀態102重啟每一個進程16。以此方式,監控節點18可以命令被監控節點14根據在故障之前最後報告的狀態102重啟進程16,從而在監控情況內保存進程16的計算資源。作為該第二方面的第五實例,監控節點18可以被配置成在檢測到進程16的故障時採取其它行動以便解決該故障。例如,監控節點18可以被配置成在進程16進入特定狀態102時(例如當進程16出現特定事件時)執行特定邏輯(例如函數或指令集的調用)。而且,監控節點18可以提前從被監控節點14 (例如在被監控節點14註冊以便監控期間)和/或進程(例如當被監控節點14啟動要被監控節點18監控的進程16時)接收該邏輯。例 如,被監控節點14或進程16可以包括含有一個或多個函數的動態連結庫(DLL),並且可以向監控節點18提供該庫連同在進程16進入特定狀態102的情況下執行一個或多個所述函數的請求。以此方式,被監控節點14可以在預訂監控服務的同時向監控節點18提供要在發生故障的情況下執行的指令。圖7呈現了以被配置成在檢測到進入特定狀態102的進程16時(例如,在出現特定事件時)執行邏輯124的監控節點18為特徵的示範性情況120的圖示。在該示範性情況120中,監控節點18從被監控節點14 (例如,在被監控節點14向監控節點18註冊時)接收包括一組可執行函數的函數庫122 (比如動態連結庫(DLL)或腳本)以及在特定進程16進入特定狀態102時調用函數的規範。監控進程18可以例如在指定當特定進程16進入特定狀態102時將執行的邏輯126的邏輯表124中存儲該信息,並且可以在每當狀態102報告進入新狀態102時參考邏輯表124。因此,在圖7的示範性情況120中,當第二進程14向監控節點18報告它已經進入第二狀態時,監控節點18可以參考邏輯表102,確定它將在該事件中執行特定邏輯126 (例如調用函數庫122的第三個函數),並且可以執行該邏輯,從而導致向被監控節點14請求128以特定狀態102開始第三進程16 (例如解決由第二進程16報告的狀態102所指示的特定類型的故障的維修進程)。本領域技術人員可以在根據本文所提出的技術、由監控節點18應用到被監控節點14和由其執行的進程的監控類型方面設計許多變形。可以在這些技術的多個實施例之間變化的第三方面涉及牽涉可以通過互操作來監控被監控節點14和進程16而提供附加特徵(比如改進的故障容忍和故障恢復)的一組監控節點18的監控情況。作為第一實例,監控節點組的每一個監控節點18可以存儲從相應的被監控節點14的進程16接收的狀況42,並且可以使狀況42與至少一個其他監控節點18同步。該同步可以使得監控節點18能夠共享關於進程16的狀況42的信息且保持關於該監控情況中組件的狀況的最新信息。作為該第三方面的第二實例,當被監控節點14的故障被檢測到時,監控節點18可以協商為故障的被監控節點14選擇替代的被監控節點14。例如第一監控節點18可以檢測被監控節點14的故障,但是第二監控節點18可以與執行很少或不執行進程16的第二被監控節點14通信,以及監控節點14可以協商為發生故障的被監控節點14選擇第二被監控節點14作為替代的節點14。該協商因此可以在故障情況下在選擇替代的被監控節點14時實現負載均衡效果。作為該第三方面的第三實例,相應的被監控節點14可以被分配以便被監控節點組的特定監控節點18監控。例如,當被監控節點14註冊以便監控時,監控節點組可以協商選擇要向其分配被監控節點14的監控節點18 (例如通過選擇當前監控很少或不監控其他被監控節點14和/或進程16的監控節點18)。當被監控節點14的進程16報告狀況42或狀態102時,被監控節點14可以向監控節點18 (已向其分配被監控節點14)發送狀況42或狀態102 (而不是向許多監控節點18發送狀況42或狀態102,例如作為廣播消息)。以此方式,監控節點18可以在監控節點18之間執行負載均衡,並且可以通過減少狀況42和/或狀態102的報告的廣播來保存監控情況的網絡資源。作為該第三方面的第四實例,相應監控節點18可被配置成相互監控故障,並且以不中斷對被監控節點14和/或進程16的監控的方式從這種故障中恢復。例如,相應的監控節點18可以被配置為在通知周期內相互發送持久性指示符(例如每分鐘來自每個監控 節點18的一個持久性指示符),並且如果第一監控節點18檢測到通知周期已經流逝而第二監控節點18沒有發送持久性指示符的情況下,則第一監控節點18可以檢測第二監控節點18的故障。可替代地,該第一監控節點18可以從被監控節點14接收到關於第二監控節點(被監控節點14被分配給該第二監控節點、但被監控節點14不能聯繫)的故障指示符。所檢測到的監控節點18的故障還可以提示其他監控節點18採取各種行動;例如,剩餘監控節點18可以協商選擇替代的監控節點18,並且可以向替代監控節點18重新分配先前被分配給故障監控節點18的被監控節點14。該協商可以經由選舉或一致構建機制(例如Paxos算法)來執行,其中監控節點18可以針對故障的監控節點18指派其他監控節點18作為替代的監控節點18,並且在各監控節點18之間投票的清點可導致替代的監控節點18的一致和選舉。替代的監控節點18然後可以聯繫重新分配的被監控節點14以建立重新分配。而且,如果故障的監控節點18已經使重新分配的被監控節點14的進程16的狀況42和/或狀態102同步,則替代的監控節點18可以快速且容易地承擔故障的監控節點18的角色。以此方式所述監控情況可以在不中斷監控服務的情況下檢測監控節點18的故障並從中恢復。圖8呈現以對監控節點組的監控節點18的故障的檢測並從中恢復為特徵的示範性情況130的圖示。在該示範性情況130中,被監控節點組的相應被監控節點14具有向包括四個監控節點18的監控節點組的用於監控的分配134。該監控節點18可以以各種方式通信以識別故障,並且可以以各種方式對檢測到的故障作出響應。作為第一實例,第一監控節點18和第二監控節點18可以周期性交換持久性指示符136以指示持續的性能。然而,當第一監控節點18未能向第二監控節點18發送持久性指示符136時,第二監控節點14可以檢測第一監控節點18的故障138,並且可以發起被監控節點14向第二監控節點18的重新分配140。作為第二實例,第三監控節點18可以具有向一組被監控節點14的分配134,但是這樣的一個被監控節點14可以檢測第三監控節點18的故障142(例如,在發送狀況42或狀態102時沒有能力聯繫監控節點18)。第三監控節點18可以利用故障指示符144聯繫第四監控節點18。第四監控節點18可以與監控節點組的剩餘監控節點18 (例如第二監控節點18)協商,並且可以針對用以承擔故障的第三監控節點18的角色的替代的監控節點18達成一致146 ;並且在被選舉為替代的監控節點18時,第四監控節點18可以發起被監控節點14向第四監控節點18的重新分配140。以此方式,監控節點組的監控節點18可以在監控節點組的各監控節點18之中合作以檢測故障並從中恢復。本領域技術人員可以根據本文所提出的技術設計配置監控節點組的監控節點18的許多方式。儘管已經以特定於結構特徵和/或方法動作的語言描述了所述主題,但是應當理解所附權利要求中定義的主題不必限於上述特定特徵或動作。相反,上述特定特徵和動作作為實現權利要求的實例形式被公開。如本申請中所使用的術語「組件」、「模塊」、「系統」、「接口 」等一般地旨在意指計算機相關實體、硬體、硬體和軟體的組合、軟體或執行中的軟體。例如,組件可以是但不限於是運行在處理器上的進程、處理器、對象、可執行文件、執行的線程、程序和/或計算機。通過 圖示的方式,運行在控制器上的應用和控制器二者均可以是組件。一個或多個組件可以駐留在進程和/或執行的線程內,並且組件可以位於一個計算機上和/或分布在兩個或更多個計算機之間。而且,要求保護的主題可以被實現為使用標準的編程和/或工程技術生產軟體、固件、硬體或其任意組合以控制計算機實現所公開的主題的方法、裝置或製造品。如本文所使用的術語「製造品」旨在包含可從任何計算機可讀設備、載體或介質訪問的電腦程式。當然,本領域技術人員將認識到,可以對該配置進行許多修改而不脫離要求保護的主題的範圍或精神。圖9和下面的討論提供了對實現本文所闡述的一個或多個指配(provision)的實施例的適當計算環境的簡短、總體的描述。圖9的操作環境僅僅是適當的操作環境的一個實例並且不旨在暗示關於操作環境的使用或功能的範圍的任何限制。實例計算設備包括但不限於個人計算機、伺服器計算機、手持或膝上型設備、行動裝置(比如行動電話、個人數字助理(PDA)、媒體播放器等)、多處理器系統、消費型電子產品、迷你計算機、大型計算機、包括任何上述系統或設備的分布式計算環境等等。儘管不需要,但是在正被一個或多個計算設備執行的「計算機可讀指令」的一般環境中描述實施例。計算機可讀指令可以經由計算機可讀介質(下面討論的)來分發。計算機可讀指令可以被實現為執行特定任務或實現特定抽象數據類型的程序模塊,比如函數、對象、應用編程接口(API)、數據結構等。典型地,計算機可讀指令的功能可以如各種環境中所期望的那樣進行組合或分布。圖9圖示了包括被配置成實現本文所提供的一個或多個實施例的計算設備152的系統150的實例。在一個配置中,計算設備152包括至少一個處理單元156和存儲器158。依據計算設備的確切配置和類型,存儲器158可以是易失性的(例如,比如RAM)、非易失性的(例如,比如ROM、快閃記憶體等)或這兩種的某個組合。該配置在圖9中用虛線154圖示。在其他實施例中設備152可以包括附加特徵和/或功能。例如,設備152還可以包括附加的存儲裝置(例如可移除和/或不可移除的),其包括但不限於磁存儲裝置、光學存儲裝置等等。這種附加存儲裝置在圖9中由存儲裝置160圖示。在一個實施例中,用於實現本文所提供的一個或多個實施例的計算機可讀指令可以在存儲裝置160中。存儲裝置160還可以存儲實現作業系統、應用程式等的其他計算機可讀指令。例如,計算機可讀指令可以被加載在存儲器158中以便被處理單元156執行。
如本文所使用的術語「計算機可讀介質」包括計算機存儲介質。計算機存儲介質包括以用於存儲諸如計算機可讀指令或其他數據的任何方法或技術實現的易失性和非易失性、可移除和不可移除介質。存儲器158和存儲裝置160是計算機存儲介質的實例。計算機存儲介質包括但不限於RAM、R0M、EEPR0M、快閃記憶體或其他存儲器技術、CD-ROM、數字通用盤(DVD )或其他光學存儲裝置、盒式磁帶、磁帶、磁碟存儲裝置或其他磁存儲設備,或可以用於存儲期望的信息並且可以被設備152訪問的任何其他介質。任何這樣的計算機存儲介質可以是設備152的一部分。設備152還可以包括允許設備152與其他設備通信的通信連接166。通信連接166可以包括但不限於數據機、網絡接 口卡(NIC)、集成的網絡接口、射頻發射器/接收器、紅外埠、USB連接或用於將計算設備152連接到其他計算設備的其他接口。通信連接166可以包括有線連接或無線連接。通信連接166可以發送和/或接收通信介質。術語「計算機可讀介質」可以包括通信介質。通信介質典型地包含計算機可讀指令或在「已調製數據信號」(比如載波或其他傳輸機構)中的其他數據並且包括任何信息傳遞介質。術語「已調製數據信號」可以包括以使得在信號中編碼信息的方式來設置或改變一個或多個其特性的信號。設備152可以包括輸入設備164,比如鍵盤、滑鼠、筆、語音輸入設備、觸摸輸入設備、紅外相機、視頻輸入設備和/或任何其他輸入設備。在設備152中還可以包括輸出設備162,比如一個或多個顯不器、揚聲器、印表機和/或任何其他輸出設備。輸入設備164和輸出設備162可以經由有線連接、無線連接或其任意組合而連接到設備152。在一個實施例中,來自另一個計算設備的輸入設備或輸出設備可以被用作計算設備152的輸入設備164或輸出設備162。計算設備152的組件可以通過諸如總線之類的各種互連而連接。這樣的互連可以包括外圍組件互連(PCI)(比如高速PCI)、通用串行總線(USB)、火線(IEEE1394)、光學總線結構等。在另一個實施例中,計算設備152的各組件可以通過網絡互連。例如,存儲器158可以由多個位於不同物理位置通過網絡互連的物理存儲器單元組成。本領域技術人員將認識到,用於存儲計算機可讀指令的存儲設備可以跨越網絡分布。例如,可經由網絡168訪問的計算設備170可以存儲用於實現本文所提供的一個或多個實施例的計算機可讀指令。計算設備152可以訪問計算設備170並且下載一部分或所有計算機可讀指令以供執行。可替代地,計算設備152可以按照需要下載若干條計算機可讀指令,或者一些指令可以在計算設備152處執行,而一些在計算設備170處執行。本文提供了實施例的各種操作。在一個實施例中,所描述的一個或多個操作可以構成存儲在一個或多個可計算機可讀介質上的計算機可讀指令,如果這些指令被計算設備執行則將使得該計算設備執行所述的操作。描述一些或所有操作的順序不應當被解釋為暗示這些操作必需是順序相關的。可替代的排序將是具有本說明書的利益的本領域技術人員理解的。而且,應當理解,不是所有操作都必需存在於本文所提供的每個實施例中。而且,本文使用詞語「示範性的」來意指充當實例、例證或說明。本文描述為「示範性」的任何方面或設計不必被解釋為比其他方面或設計有利。相反,詞語示範性的使用旨在以具體方式呈現概念。如在本申請中使用的術語「或」旨在意指包含性的「或」而非排他性的「或」。即,除非另外指定或從上下文清楚,「X使用A或B」旨在意指自然包含性排列的任何一個。即,如果X使用A ;X使用B ;或X使用A和B,則「X使用A或B」在上述任何一種情況下都是滿足的。此外,本申請和所附權利要求中使用的冠詞「一」一般地可以被解釋為意指「一個或多個」,除非另外指定或從上下文清楚指向單數形式。而且,儘管已經相對於一個或多個實現方式示出並描述了本公開,但是本領域技術人員基於對本說明書和附圖的閱讀和理解將會想到等價變化和修改。本公開包括所有這樣的修改和改變並且僅受所附權利要求範圍的限制。特別地關於由上述組件(例如元件、資源等)執行的各種功能,用於描述這樣的組件的術語旨在對應於(除非另外指示)執行所述組件的指定功能的任何組件(例如其在功能上是等價的),即使在結構上不等價於執行這裡所圖示的本公開示範性實現方式的功能的公開結構。此外,儘管本公開的特定特徵可能已經相對於若干實現方式之一而被公開,但是這種特徵可以與其他實現方式的一個或多個其他特徵組合,因為這可能對於任意給定的或特定的應用是期望的和有利的。而且,就術語「包括」、「具有」、「有」或其變形被用在詳細的說明書中或權利要求中而言,這樣的術語旨在 以與術語「包括」相似的方式是包含性的。
權利要求
1.一種配置具有處理器(156)的監控節點(18)以監控執行至少一個進程(16)的被監控節點(14)的方法(50),該方法(50)包括 在處理器(156 )上執行(54 )指令(96 ),該指令(96 )被配置成 在接收監控被監控節點(14)的請求時,註冊(56)被監控節點(14)的至少一個進程(16)以便監控; 在從被監控節點(14)的進程(16)接收至少一個狀 況(42)時,記錄(58)進程(16)的狀況(42);以及 在檢測到被監控節點(14)的至少一個進程(16)的故障時,在被監控節點(14)上重啟(60)進程(16)。
2.權利要求I的方法 至少一個被監控節點被配置成在通知周期內向監控節點發送持久性指示符;以及 檢測故障包括在尚未從被監控節點接收到持久性指示符的情況下檢測通知周期的流逝。
3.權利要求I的方法 監控節點監控至少兩個被監控節點;以及 在被監控節點上重啟至少一個進程,包括 選擇替代的被監控節點,以及 在替代的被監控節點上重啟被監控節點的至少一個進程。
4.權利要求3的方法 檢測被監控節點的至少一個進程的故障包括檢測被監控節點的故障;以及在被監控節點上重啟所述至少一個進程包括在替代的被監控節點上重啟被監控節點的所有進程。
5.權利要求I的方法 被監控節點的至少一個進程被配置成向監控節點報告至少一個進程的至少一個狀態;以及 所述指令被配置成在接收到由被監控節點報告的至少一個進程的狀態的報告時,存儲該進程的狀態。
6.權利要求5的方法,在被監控節點上重啟進程包括在被監控節點上在由該進程最後報告的狀態處重啟該進程。
7.權利要求5的方法 所述監控節點包括要在進程報告特定狀態時執行的邏輯;以及 所述指令被配置成在從進程接收到特定狀態的報告時,執行該邏輯。
8.權利要求7的方法,所述指令被配置成在從被監控節點接收到要在被監控節點的進程報告特定狀態時執行的邏輯時,存儲該邏輯。
9.權利要求I的方法,所述監控節點包括在監控節點組中,該監控節點組包括至少一個其他監控節點。
10.權利要求9的方法 監控節點組的監控節點被配置成存儲至少一個被監控節點的至少一個狀況;以及 所述指令被配置成使至少一個被監控節點的所述至少一個狀況與該監控節點組的至少一個其他監控節點同步。
11.權利要求9的方法 檢測被監控節點的至少一個進程的故障包括檢測被監控節點的故障;以及在被監控節點上重啟所述至少一個進程包括與監控節點組的至少一個其他監控節點協商,為被監控節點選擇替代的被監控節點。
12.權利要求9的方法,所述指令被配置成檢測第二監控節點的故障。
13.權利要求12的方法 第二監控節點被配置成在通知周期內向監控節點發送持久性指示符;以及 檢測第二監控節點的故障包括 在尚未從第二監控節點接收到持久性指示符的情況下檢測通知周期的流逝。
14.權利要求12的方法 分配相應的被監控節點以便由監控節點組的至少一個監控節點來監控;以及 所述指令被配置成在檢測到被分配至少一個被監控節點的第二監控節點的故障時 選擇替代的監控節點,以及 將所述至少一個被監控節點重新分配給替代的監控節點。
15.一種配置在處理器(156)上執行至少一個進程(16)的被監控節點(14)以便由監控節點(18)監控的方法(70),該方法(70)包括 在處理器(156 )上執行(74 )指令(96 ),其被配置成 向監控節點(18 )註冊(76)至少一個進程(16); 向監控節點(18)報告(78)至少一個進程(16)的至少一個狀況(42);以及 在從監控節點(18)接收到重啟進程(16)的請求時,重啟(80)進程(16)。
16.一種計算機可讀存儲介質,其包括指令,當所述指令由處理器執行時,執行如權利要求I 一 15中任一項的方法。
全文摘要
由監控節點進行的對由被監控節點執行的進程的監控經常被設計為緊密耦合交互,但是這種耦合可以降低監控資源和進程的再使用並且增加了監控情況的管理複雜性。相反,故障檢測和恢復可以被設計為一種非專有服務,其中一組被監控的節點連同執行一組進程可以註冊以便由一組監控節點監控。在進程或整個被監控節點故障的情況下,監控節點可以合作來發起在相同或替代的被監控節點上重啟所述進程(可能處於由相應進程最後報告的狀態)。此外,監控節點的故障可被檢測到,並且所有被分配給故障的監控節點的被監控節點可以被重新分配給替代的監控節點。
文檔編號H04L12/26GK102739435SQ20121009000
公開日2012年10月17日 申請日期2012年3月30日 優先權日2011年3月31日
發明者A.卡蒂亞, C.B.波利納蒂 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀