国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      心跳檢測方法和心跳檢測設備的制作方法

      文檔序號:7696157閱讀:227來源:國知局
      專利名稱:心跳檢測方法和心跳檢測設備的制作方法
      技術領域
      本發(fā)明涉及信號檢測技術,具體涉及心跳檢測方法和心跳檢測設備。
      背景技術
      目前,為了保證業(yè)務連續(xù)性,通常會為處理業(yè)務的關鍵設備配置備用設 備,而該關鍵設備稱為主用設備。備用設備通過向主用設備發(fā)送心跳消息, 并接收主用設備返回的心跳響應,來檢測主用設備是否故障,并在主用設備 故障時,接管主用設備的業(yè)務,從而保證了業(yè)務連續(xù)性。
      主、備設備的設計思想在很多網(wǎng)絡系統(tǒng)中得到廣泛應用。以網(wǎng)絡存儲存 儲系統(tǒng)為例,圖1為現(xiàn)有技術中一種網(wǎng)絡存儲系統(tǒng)的組網(wǎng)結構示意圖。如圖 l所示,網(wǎng)絡存儲系統(tǒng)包括存儲控制器和存儲陣列??蛻舳嗽谠L問存儲系統(tǒng) 時,與存儲控制器建立連接,從而通過存儲控制器訪問存儲陣列中的存儲資 源??梢?,存儲控制器是實現(xiàn)網(wǎng)絡存儲的關鍵設備。圖l示出的網(wǎng)絡存儲系
      統(tǒng)中,設置了互為主備的存儲控制器A和存儲控制器B,這兩個存儲控制器 可以同時為客戶端提供存儲業(yè)務處理服務。
      存儲控制器A和存儲控制器B通過交互心跳消息,判斷對方是否故障, 如果是,則重啟對方。具體來說,存儲控制器A和存儲控制器B中分別設 置用于心跳檢測的網(wǎng)口,稱為心跳檢測網(wǎng)口。每個存儲控制器作為本端分別 通過心跳檢測網(wǎng)口周期性地向對端發(fā)送心跳消息,如果在心跳超時時間到達 之前接收到對端的心跳響應,則判定對端正常;否則,判定對端異常。在判 定對端異常時,接管對端業(yè)務,然后重啟對端。
      但在實際中可能出現(xiàn)這樣一種情況,即對端處理業(yè)務功能是正常的,只 是本端心跳網(wǎng)口和對端心跳網(wǎng)口之間的傳輸鏈路發(fā)生故障,或者本端和/或 對端的心跳網(wǎng)口發(fā)生故障,或者對端業(yè)務繁忙無暇處理心跳消息,則本端也 會接收不到心跳響應,從而錯誤的判定對端異常,并重啟對端。而重啟對端 的操作會導致對端的業(yè)務中斷。
      可見,現(xiàn)有的心跳檢測方案,不能準確的判斷對端狀態(tài),當判斷失誤時, 會出現(xiàn)對端在非異常情況下被重啟,導致對端非異常情況下的業(yè)務中斷。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明提供了一種心跳檢測方法,能夠提高對被檢測方狀態(tài) 的判斷準確程度。
      該方法應用于具有業(yè)務網(wǎng)口的網(wǎng)絡i殳備中,該方法包括
      所述網(wǎng)絡設備周期性地通過心跳檢測端口向檢測對端發(fā)送心跳消息,接收 所述檢測對端返回的心跳響應;
      當所述心跳檢測端口未收到檢測對端的心跳響應時,選擇一個當前沒有業(yè) 務的業(yè)務網(wǎng)口 ,通過選定的業(yè)務網(wǎng)口向所述^全測對端發(fā)送心跳消息;
      判斷所述選定的業(yè)務網(wǎng)口是否收到檢測對端的心跳響應;如果是,則確 定;f全測對端正常;否則,確定4全測對端異常。
      其中,所述心跳檢測端口包括心跳檢測網(wǎng)口和串口 ;
      所述周期性地通過心跳檢測端口向檢測對端發(fā)送心跳消息為通過所述心 跳才企測網(wǎng)口和所述串口同時發(fā)送;
      判定所述心跳檢測端口未收到檢測對端的心跳響應為當所述心跳檢測網(wǎng) 口未收到檢測對端的心跳響應時,判斷所述串口的心跳檢測是否正常,如果所 述串口的心跳檢測不正常,則判定所述心跳檢測端口未收到檢測對端的心跳響應。
      其中,所述心跳檢測網(wǎng)口未收到檢測對端的心跳響應的確定操作包括 當判定心跳檢測端口在當前心跳超時時間內(nèi)未收到檢測對端的心跳響應
      時,判定心跳超時;當心跳超時次數(shù)達到預設次數(shù)閾值,確定心跳檢測網(wǎng)口未
      收到檢測對端的心跳響應;
      所述當前心跳超時時間的設置為每次判定在當前心跳超時時間內(nèi)收到檢 測對端的心跳響應時,將預設心跳超時時間作為下一次判斷是否心跳超時的當
      前心跳超時時間;每次出現(xiàn)心跳超時,選擇不同于當前心跳超時時間的自定義 心跳超時時間,作為下一次判斷是否心跳超時的當前心跳超時時間。
      其中,所述選4奪不同于當前心跳超時時間的自定義心跳超時時間為在預 設范圍內(nèi)隨機選擇自定義心跳超時時間;
      或者為在當前心跳超時時間基礎上遞增,將遞增后的心跳超時時間作為 自定義心跳超時時間。
      其中,所述選擇一個當前沒有業(yè)務的業(yè)務網(wǎng)口包括判斷是否存在當前無 業(yè)務的業(yè)務網(wǎng)口,如果是,則從當前無業(yè)務的業(yè)務網(wǎng)口中選擇一個,作為選定 的業(yè)務網(wǎng)口;否則,將預先選定的業(yè)務網(wǎng)口作為選定的業(yè)務網(wǎng)口,將選定的業(yè) 務網(wǎng)口上的業(yè)務遷移到自身的其他業(yè)務網(wǎng)口上。
      較佳地,所述確定纟企測對端異常之后,該方法進一步包括
      判斷自身當前是否有業(yè)務存在,如果是,則重啟檢測對端,接管所述檢測 對端的業(yè)務;否則,等待一,殳預設時間后,重啟檢測對端,接管所述檢測對端 的業(yè)務。
      其中,所述重啟^f企測對端,接管所述^r測對端的業(yè)務為先觸發(fā)重啟對 端操作,再接管所述檢測對端的業(yè)務。
      本發(fā)明還提供了 一種心跳檢測設備,能夠提高對被檢測方狀態(tài)的判斷準 確程度。
      該設備包括心跳檢測單元、心跳檢測端口單元和業(yè)務網(wǎng)口 ; 所述心跳檢測單元,周期性地通過心跳檢測端口單元向檢測對端發(fā)送心跳 消息,接收^r測對端的心跳響應;當未通過所述心跳檢測端口單元收到檢測對 端的心跳響應時,選擇一個當前沒有業(yè)務的業(yè)務網(wǎng)口,通過選定的業(yè)務網(wǎng)口向 所述一企測對端發(fā)送心跳消息;判斷是否通過選定的業(yè)務網(wǎng)口收到;f企測對端的心 跳響應,如果是,則確定纟企測對端正常;否則,確定4企測對端異常。
      所述心跳檢測端口單元,用于在所述心跳檢測單元的控制下,向檢測對端
      發(fā)送心跳消息;將檢測對端返回的心跳響應發(fā)送給所述心跳檢測單元;
      所述業(yè)務網(wǎng)口,用于在所述心跳;險測單元的控制下,向片企測對端發(fā)送心
      跳消息;將檢測對端返回的心跳響應發(fā)送給所述心跳檢測單元。 其中,所述心跳^r測端口單元包括心跳^r測網(wǎng)口和串口 ; 所述心跳檢測單元包括心跳檢測網(wǎng)口控制模塊、串口控制模塊、業(yè)務網(wǎng)口
      控制模塊和對端狀態(tài)判斷模塊;
      所述心跳檢測網(wǎng)口控制模塊,用于控制所述心跳檢測網(wǎng)口周期性地向檢測
      對端發(fā)送心跳消息,判斷是否從心跳檢測網(wǎng)口收到檢測對端的心跳響應,將判
      斷結果發(fā)送給所述對端狀態(tài)判斷模塊;
      所述串口控制模塊,用于在心跳檢測網(wǎng)口發(fā)送心跳消息的同時,控制所述
      串口周期性地向檢測對端發(fā)送心跳消息,判斷是否從串口收到檢測對端的心跳 響應,將判斷結果發(fā)送給所述對端狀態(tài)判斷模塊;
      所述對端狀態(tài)判斷模塊,用于在根據(jù)接收自心跳檢測網(wǎng)口控制模塊和串口 控制模塊的判斷結果,確定所述心跳檢測網(wǎng)口和所述串口均未收到檢測對端的 心跳響應時,通知業(yè)務網(wǎng)口控制模塊進行心跳檢測;接收業(yè)務網(wǎng)口控制模塊發(fā) 來的判斷結果,當判斷結果顯示業(yè)務網(wǎng)口能夠收到檢測對端的心跳響應時,確 定牙企測對端正常;否則,確定4全測對端異常;
      所述業(yè)務網(wǎng)口控制模塊,用于在接收到通知時,選擇一個當前沒有業(yè)務的 業(yè)務網(wǎng)口 ,控制選定的業(yè)務網(wǎng)口向所述4企測對端發(fā)送心跳消息;判斷業(yè)務網(wǎng)口 是否收到檢測對端的心跳響應,將判斷結果發(fā)送給所述對端狀態(tài)判斷模塊。
      其中,所述心跳檢測網(wǎng)口控制模塊包括心跳消息收發(fā)子模塊和判斷子模塊;
      所述心跳消息收發(fā)子模塊,用于控制心跳檢測網(wǎng)口周期性地向檢測對端發(fā) 送心跳消息,從心跳一企測網(wǎng)口接收4企測對端返回的心跳響應;
      所述判斷子模塊,當所述心跳消息收發(fā)子模塊在當前心跳超時時間內(nèi)未收 到心跳響應時,判定心跳超時;當心跳超時次數(shù)達到預設次數(shù)閾值,確定心跳 檢測網(wǎng)口未收到檢測對端的心跳響應,此時將未收到檢測對端的心跳響應作為 所述判斷結果發(fā)送給所述對端狀態(tài)判斷模塊;每次判定在當前心跳超時時間到
      達之前收到檢測對端的心跳響應時,將預設心跳超時時間作為下一次判斷是否 心跳超時的當前心跳超時時間;每次出現(xiàn)心跳超時,選擇不同于當前心跳超時 時間的自定義心跳超時時間,作為下一次判斷是否心跳超時的當前心跳超時時 間。
      較佳地,判斷子模塊進一步用于,在預設范圍內(nèi)隨機選擇自定義心跳超時 時間,或者,在當前心跳超時時間基礎上遞增,將遞增后的心跳超時時間作為 自定義心跳超時時間。
      其中,所述業(yè)務網(wǎng)口控制模塊包括選擇子模塊、業(yè)務暫停子模塊和控制子
      模塊;
      所述選擇子模塊,用于判斷所在設備是否存在當前無業(yè)務的業(yè)務網(wǎng)口,如 果是,則從當前無業(yè)務的業(yè)務網(wǎng)口中選擇一個,將選定的業(yè)務網(wǎng)口通知給所述 控制字模塊;否則,通知業(yè)務暫停子模塊;
      所述業(yè)務暫停子模塊,用于在接收到通知時,將預選選定的業(yè)務網(wǎng)口作為 選定的業(yè)務網(wǎng)口 ,將該選定的業(yè)務網(wǎng)口上的業(yè)務遷移到所在設備的其他業(yè)務網(wǎng) 口上,將選定的業(yè)務網(wǎng)口通知給所述控制字模塊;
      所述控制子模塊,用于在接收到通知時,控制選定的業(yè)務網(wǎng)口向檢測對 端發(fā)送心跳消息;判斷是否從選定的業(yè)務網(wǎng)口收到檢測對端的心跳響應,將 判斷結果發(fā)送給所述對端狀態(tài)判斷模塊。
      較佳地,該設備進一步包括異常處理單元,用于在所述心跳4全測單元確定 檢測對端異常時,判斷所在設備當前是否有業(yè)務存在,如果是,則重啟檢測對 端,接管所述檢測對端的業(yè)務;否則,等待一段預設時間后,重啟檢測對端, 接管所述4企測對端的業(yè)務。
      根據(jù)以上技術方案可見,應用本發(fā)明的心跳檢測方案設置了多重檢測, 當心跳檢測端口接收不到心跳響應時,不立刻判定對端異常,而是通過業(yè)務 網(wǎng)口繼續(xù)進行檢測。而且,所釆用的業(yè)務網(wǎng)口是沒有業(yè)務的業(yè)務網(wǎng)口,即使 所有業(yè)務網(wǎng)口都有業(yè)務也會將某一選定的業(yè)務網(wǎng)口的業(yè)務遷移到其他業(yè)務 網(wǎng)口 ,將該選定的業(yè)務網(wǎng)口專門用于心跳檢測,保證心跳消息和/或心跳響
      應不會因為業(yè)務網(wǎng)口業(yè)務繁忙而被丟棄,提高了成功接收到心跳響應的成功 率,從而提高了對對端狀態(tài)的判斷準確程度,進而降低了因判斷失誤導致對 端在非異常情況下被中斷業(yè)務的概率。
      其次,采用心跳檢測網(wǎng)口和串口同時發(fā)送心跳消息和接收心跳響應,保 證在心跳檢測網(wǎng)口異常的情況下,能迅速從串口的檢測情況判斷出對端的狀 態(tài)。這與先用心跳檢測網(wǎng)口檢測,待心跳檢測網(wǎng)口異常再用串口檢測的實現(xiàn) 方式相比,串口和網(wǎng)口的同時沖企測可以減少兩口切換時不必要的等^f寺時間, 起到迅速判斷的效果。
      另外,在心跳才企測網(wǎng)口進行心跳4企測時,如果出現(xiàn)接收不到心跳響應的 情況,開始使用隨機選擇的心跳超時時間,這樣,可以減少相互備份的檢測 雙方同時重啟對端的扭X率。
      此外,當判定對端異常,不直接重啟對端,而是判斷自身是否有業(yè)務, 如果有則重啟對端,如果沒有等待一段時間再重啟對端,這樣可以進一步減 少相互備4分的^全測雙方同時重啟對端導致雙方業(yè)務均#皮中斷的扭無率。


      圖1為現(xiàn)有技術中一種網(wǎng)絡存儲系統(tǒng)的組網(wǎng)結構示意圖。
      圖2為本發(fā)明實施例中存儲控制器A對存儲控制器B進行心跳檢測的 方法流程圖。
      圖3為本發(fā)明實施例中心跳檢測設備的結構示意圖。 圖4為圖3中心跳檢測單元31的結構示意圖。
      具體實施例方式
      本發(fā)明為一種心跳檢測方案,應用于具有業(yè)務網(wǎng)口的網(wǎng)絡設備中,其基 本思想為網(wǎng)絡設備周期性地通過心跳檢測端口向檢測對端發(fā)送心跳消息, 接收檢測對端返回的心跳響應;當心跳檢測端口未收到檢測對端的心跳響應 時,選4爭一個當前沒有業(yè)務的業(yè)務網(wǎng)口 ,通過選定的業(yè)務網(wǎng)口向4企測對端發(fā)送心跳消息;判斷業(yè)務網(wǎng)口是否收到檢測對端的心跳響應;如果是,則確定 檢測對端正常;否則,確定檢測對端異常。在檢測對端異常的情況下,可以 接管一企測對端業(yè)務并重啟4企測對端。
      可見,本發(fā)明的心跳檢測方案設置了多重檢測,當心跳檢測端口接收不 到心跳響應時,不立刻判定對端異常,而是通過業(yè)務網(wǎng)口繼續(xù)進行4全測。而 且,所釆用的業(yè)務網(wǎng)口是沒有業(yè)務的業(yè)務網(wǎng)口 ,即使所有業(yè)務網(wǎng)口都有業(yè)務 也會將某一選定的業(yè)務網(wǎng)口的業(yè)務遷移到其他業(yè)務網(wǎng)口 ,將該選定的業(yè)務網(wǎng) 口專門用于心跳檢測,保證心跳消息和/或心跳響應不會因為業(yè)務網(wǎng)口業(yè)務 繁忙而被丟棄,提高了成功接收到心跳響應的成功率,從而提高了對對端狀 態(tài)的判斷準確程度,進而降低了因判斷失誤導致對端在非異常情況下被中斷 業(yè)務的概率。
      較佳地,心跳4企測端口包括本發(fā)明實施例設置的專門用于心跳;險測的心 跳#:測網(wǎng)口和串口 ,且同時通過心跳^全測網(wǎng)口和串口向4全測對端發(fā)送心跳消 息;當心跳檢測網(wǎng)口未收到檢測對端的心跳響應時,判斷串口的心跳檢測是 否正常;只有在心跳才企測網(wǎng)口和串口均未收到檢測對端的心跳響應的情況 下,才確定檢測對端異常。從而保證在心跳檢測網(wǎng)口異常的情況下,能迅速 從串口的檢測情況判斷出對端的狀態(tài)。這與先用心跳檢測網(wǎng)口檢測,待網(wǎng)口 異常再用串口才企測的實現(xiàn)方式相比,串口和網(wǎng)口的同時4企測可以減少兩口切 換時不必要的等待時間,起到迅速判斷的效果。
      本發(fā)明的技術方案可以適用于主用設備和備用設備之間的心跳才企測。下 面在描述本發(fā)明的技術方案時,以本發(fā)明的心跳檢測方案應用于圖l示出的 網(wǎng)絡存儲系統(tǒng)為例進行描述,該網(wǎng)絡存儲系統(tǒng)中的雙存儲控制器互為主備。
      下面結合附圖并舉實施例,對本發(fā)明進行詳細描述。
      圖2示出了本發(fā)明實施例中存儲控制器A對存儲控制器B進行心跳檢 測的方法流程圖。存儲控制器B對存儲控制器A進行心跳檢測的方法原理 相同。如圖2所示,該流程包括以下步驟
      步驟201:存儲控制器A實時對自身是否存在業(yè)務進行監(jiān)測,并記錄業(yè)
      務監(jiān)測結果。
      本步驟中,判斷一個固定時間段內(nèi)是否存在數(shù)據(jù)業(yè)務,如果是,則判定 自身存在業(yè)務,否則,判定自身沒有業(yè)務。其中,固定時間段可以為一個心 跳周期。心跳周期是指連續(xù)兩次發(fā)送心跳消息的時間間隔。 該步驟不斷地循環(huán)執(zhí)行。
      步驟202:以心跳周期為循環(huán)單位,周期性地通過心跳沖企測網(wǎng)口和串口 同時向存儲控制器B發(fā)送心跳消息。
      本實施例與現(xiàn)有技術的區(qū)別不僅在于同時通過心跳斗企測網(wǎng)口和串口發(fā) 送心跳消息,而且本實施例發(fā)送心跳消息是以心跳周期為循環(huán)單位的,與接 收到心跳響應的時間無關。因此,無需像現(xiàn)有技術一樣待接收到心跳響應后,
      需要等待一個心跳周期才能發(fā)送下一個心跳消息。由于本實施例需要多次判 斷心跳檢測網(wǎng)口超時才判定心跳檢測網(wǎng)口異常,那么這樣的設計可以縮短判 斷時間。
      步驟203:每次在心跳消息被發(fā)送后,采用預設心跳超時時間作為當前 心跳超時時間,判斷在當前心跳超時時間內(nèi)心跳檢測網(wǎng)口是否收到存儲控制 器B反饋的心跳響應;如果是,則在下一次發(fā)送心跳消息后,繼續(xù)執(zhí)行步驟 203的判斷;否則,執(zhí)行步驟204。
      在通過心跳檢測網(wǎng)口進行心跳4全測的同時,同步判斷當前心跳超時時間 內(nèi)串口是否收到心跳響應,如果是,則確定串口 4全測正常,記錄串口 ^r測狀 態(tài),否則,確定串口^r測異常,記錄串口4企測狀態(tài)。記錄的串口才企測狀態(tài)作 為步驟207的判斷依據(jù)。
      步驟204:判定心跳超時,累計連續(xù)心跳超時次數(shù);選擇不同于當前心 跳超時時間的自定義心跳超時時間,作為下 一 次心跳超時判斷的當前心跳超 時時間。
      其中,累計的連續(xù)心跳超時次數(shù)在心跳檢測網(wǎng)口接收到心跳響應后被清令。
      本步驟中,選擇不同于當前心跳超時時間的自定義心跳超時時間可以有
      多種方式,本實施例介紹兩種較佳地選擇方式
      方式一、隨機方式。在預設范圍內(nèi)隨機選擇自定義心跳超時時間。例如,
      自定義心跳超時時間為基礎值加0秒(s) -2s之間的隨機值,隨機值的粒 度為O.ls。如果基礎值為1.5s,則隨機選擇自定義心跳超時時間的預設范圍 就是1.5s-3.5s。
      采用隨機方式可以減少相互備份的存儲控制器同時重啟對端的概率,原 因在于本實施例中,相互備份的存儲控制器在物理上設置在同一硬件框架 內(nèi),因此可以通過硬件重啟對端。當存儲控制器A和存儲控制器B之間的 心跳通路(包括所述心跳;險測網(wǎng)口 、串口和業(yè)務網(wǎng)口所連接的通^各)故障, 導致檢測不到對端心跳響應時,存儲控制器A和存儲控制器B均會在本流 程步驟210中同時判定對端異常,進而重啟對端。但是,存儲控制器A和 存儲控制器B可能都在正常處理業(yè)務,屬于非異常下的重啟,那么存儲控制 器A和存儲控制器B的業(yè)務均被中斷。為了盡量減少這種情況的發(fā)生概率,
      和存儲控制器B選擇的自定義心跳超時時間不同,二者判定對端異常的時刻 也不同,大大降低了同時重啟對端的概率。如果隨機選4奪自定義心跳超時時 間的范圍跨度為2s,且隨機粒度為O.ls,且設置3次心跳超時認為心跳異常, 那么存儲控制器A和存儲控制器B同時重啟對端的概率將降低到1/400。
      本實施例中,當?shù)谝淮闻卸ㄐ奶鴻z測網(wǎng)口心跳超時,則隨機選擇自定義 心跳超時時間,在實際中,可以在前m-1次判斷是否心跳超時時均采用預 設心跳超時時間,而在判定連續(xù)出現(xiàn)m-1次心跳超時,進行隨機選4奪,保 證最后一次判斷使用的超時時間為隨機值,同樣可以達到降低同時重啟對端 概率的目的。其中,m為超時次數(shù)閾值。但是,多次采用隨機值可以進一步 降低同時重啟對端的概率。
      方式二、退避方式。在當前心跳超時時間基礎上遞增,將遞增后的心跳 超時時間作為自定義心跳超時時間。例如,設置自定義心跳超時時間的計算 公式為第n次心跳超時后的自定義心跳超時時間=預設心跳超時時間
      +n+n*n*0.1,其中,n為正整數(shù),O.l為調整因子。假設預設心跳超時時間為 1.5秒(s),則發(fā)生第一次心跳超時后,自定義心跳超時時間為1.5 +1+ 0.1 =2.6s;發(fā)生第二次心跳超時后,自定義心跳超時時間為1.5 + 2 + 2x2x0.1 =3.9s。
      采用退避方式,可以在第一次未收到對端心跳響應后,逐級遞增心跳超 時時間,從而避免因心跳超時時間過短,導致接收不到心跳響應所帶來的弊 端。如果存儲控制器A和存儲控制器B選用不同的調整因子,那么二者選 擇的自定義心跳超時時間將不同,也可以像隨機方式一樣減少同時重啟對端 的概率。選擇不同的調整因子實際上就是為不同存儲控制器設置不同的遞增 粒度,在實際中,也可以隨機選擇遞增粒度。
      步驟205:判斷累計的連續(xù)心跳超時次數(shù)是否大于或等于預設次數(shù)閾值; 如果是,則執(zhí)行步驟207;否則,執(zhí)行步驟206。
      例如,預設次數(shù)閾值可以設置為2或3 。
      步驟206:在心跳消息被發(fā)送后,判斷是否在當前超時時間內(nèi)收到心跳 響應;如果是,則執(zhí)行步驟203;否則,執(zhí)行步驟204。
      步驟207:判斷串口檢測是否正常;如果是,則執(zhí)行步驟211;否則, 執(zhí)行步驟208。
      其中,判斷串口檢測是否正常的依據(jù)是步驟203記錄的串口檢測狀態(tài)。
      步驟208:選擇一個當前沒有業(yè)務的業(yè)務網(wǎng)口 ,通過選定的業(yè)務網(wǎng)口向 存儲控制器B發(fā)送心跳消息。
      本步驟中,判斷自身是否存在處于沒有業(yè)務狀態(tài)的業(yè)務網(wǎng)口,如果是, 則從處于沒有業(yè)務狀態(tài)的業(yè)務網(wǎng)口中選擇一個,作為選定的業(yè)務網(wǎng)口 ;否則, 將預先選定的業(yè)務網(wǎng)口作為選定的業(yè)務網(wǎng)口 ,并且暫停選定的業(yè)務網(wǎng)口的業(yè) 務。在暫停選定的業(yè)務網(wǎng)口的業(yè)務之前,將待暫停的業(yè)務端口的IP地址配 置給其他業(yè)務網(wǎng)口,這樣,被暫停的業(yè)務網(wǎng)口的業(yè)務被遷移到其他業(yè)務網(wǎng)口 上,保證業(yè)務的連續(xù)性。
      通過選定的業(yè)務網(wǎng)口向存儲控制器B發(fā)送心跳消息時,采用預先配置
      的與存儲控制器B的業(yè)務網(wǎng)口處于同一網(wǎng)段的IP地址,向存儲控制器B發(fā) 送心跳消息。
      步驟209:判斷業(yè)務網(wǎng)口是否收到存儲控制器B的心跳響應,如果是, 則執(zhí)行步驟212;否則,執(zhí)行步驟210。
      步驟210:確定存儲控制器B異常,根據(jù)步驟201的業(yè)務監(jiān)測結果重啟 存儲控制器B。本流程結束。
      本步驟中,根據(jù)步驟201的業(yè)務監(jiān)測結果重啟存儲控制器B包括
      根據(jù)步驟201的業(yè)務監(jiān)測結果判斷自身當前是否有業(yè)務存在,如果是, 則重啟存儲控制器B,接管存儲控制器B的業(yè)務;否則,等待一段時間后, 重啟存儲控制器B,接管存儲控制器B的業(yè)務。等待時間可以預先設置,例 如設置為3.5s。
      本實施例在自身有業(yè)務的情況下,假設對端沒有業(yè)務,重啟對端;而在 自身沒有業(yè)務的情況下,假設對端有沒有業(yè)務,等待對端重啟自身,對方?jīng)] 有重啟自身,再重啟對端。這樣做的目的是,進一步減少檢測雙方同時重啟 對端導致雙方的業(yè)務均^皮中斷的概率。
      在重啟存儲控制器B和接管存儲控制器B的業(yè)務的操作中,本實施例 先重啟存儲控制器B,再接管存儲控制器B的業(yè)務,這兩個操作的間隔時間 可以很短暫。由于接管業(yè)務在重啟對端之后,那么,當雙方同時確定重啟對 端時,可以避免這樣一種情況雙方在重啟對端前爭奪接管對端資源造成的 混亂。
      步驟211:告警,并在后續(xù)心跳^r測中通過串口;f全測心跳。 告警的目的是,通知管理員檢查心跳檢測網(wǎng)口 ,以解除心跳檢測網(wǎng)口的
      故障。故障解除后恢復心跳檢測網(wǎng)口的檢測。
      在后續(xù)通過串口^企測心跳的過程中,同時嘗試用心跳4企測網(wǎng)口進行心跳
      檢測,如果通過心跳檢測網(wǎng)口接收到心跳響應,則如圖2中虛線所示,返回
      執(zhí)行步驟203。
      步驟212:告警,并在后續(xù)心跳^r測中通過業(yè)務網(wǎng)口;f全測心跳。告警的目的是,通知管理員檢查心跳檢測網(wǎng)口和串口 ,以解除心跳檢測 網(wǎng)口的故障和串口的故障。故障解除后恢復心跳檢測網(wǎng)口和串口的檢測。
      在后續(xù)通過業(yè)務網(wǎng)口檢測心跳的過程中,同時嘗試用心跳檢測網(wǎng)口進行 心跳檢測,如果通過心跳檢測網(wǎng)口接收到心跳響應,則如圖2中虛線所示, 返回執(zhí)行步驟203。
      至此,本流程結束。
      為了實現(xiàn)本發(fā)明的心跳檢測方法,本發(fā)明實施例還提出了一種心跳檢測
      設備。心跳檢測設備可以應用在圖1的存儲控制器A和存儲控制器B中。
      圖3為本發(fā)明實施例中心跳檢測設備的結構示意圖。如圖3所示,該心 跳檢測設備包括心跳檢測單元31 、心跳檢測端口單元32和n個業(yè)務網(wǎng)口 33, n為大于或等于l的整數(shù);其中,
      心跳檢測單元31 ,用于周期性地通過心跳檢測端口單元32向檢測對端 發(fā)送心跳消息,接收檢測對端返回的心跳響應;當未通過心跳檢測端口單元 收到檢測對端的心跳響應時,從n個業(yè)務網(wǎng)口 33中選4奪一個當前沒有業(yè)務 的業(yè)務網(wǎng)口33,通過選定的業(yè)務網(wǎng)口 33向4企測對端發(fā)送心跳消息;判斷是 否通過選定的業(yè)務網(wǎng)口 33收到檢測對端的心跳響應,如果是,則確定檢測 對端正常,否則,確定4企測對端異常。
      心跳檢測端口單元32,用于在心跳檢測單元31的控制下,向檢測對端發(fā) 送心跳消息;接收來自檢測對端的心跳響應,并發(fā)送給心跳檢測單元31 。
      業(yè)務網(wǎng)口 33,用于在心跳檢測單元31的控制下,向檢測對端發(fā)送心跳消 息;接收來自檢測對端的心跳響應,并發(fā)送給心跳檢測單元31。當該心跳檢測 設備應用于存儲控制器時,業(yè)務網(wǎng)口為存儲控制器中負責存儲業(yè)務的網(wǎng)口 。
      該心跳檢測設備進一步包括異常處理單元34,用于在心跳檢測單元31確 定檢測對端異常時,判斷所在設備的各業(yè)務網(wǎng)口 33當前是否有業(yè)務存在,如果 是,則直接重啟檢測對端,接管檢測對端的業(yè)務;否則,等待一段預定時間后, 重啟纟企測對端,接管一企測對端的業(yè)務。
      下面對心跳檢測端口單元32中的組成模塊進行詳細描述。 心跳4企測端口單元32包括心跳4企測網(wǎng)口 321和串口 322。心跳4企測網(wǎng)口 321 和串口 322均為檢測心跳設置。在這種情況下,如圖4所示,心跳檢測單元31 具體包括心跳檢測網(wǎng)口控制模塊41、串口控制模塊42、業(yè)務網(wǎng)口控制模塊43 和對端狀態(tài)判斷模塊44,其中,
      心跳檢測網(wǎng)口控制模塊41 ,用于控制心跳檢測網(wǎng)口 321周期性地向檢測對 端發(fā)送心跳消息,判斷是否從心跳檢測網(wǎng)口 321收到檢測對端的心跳響應,將 判斷結果發(fā)送給對端狀態(tài)判斷模塊44。
      具體來說,該心跳檢測網(wǎng)口控制模塊41包括心跳消息收發(fā)子模塊和判斷子 模塊;這2個子模塊在圖4中未示出;其中,
      心跳消息收發(fā)子模塊,用于控制心跳檢測網(wǎng)口 321周期性地向檢測對端發(fā) 送心跳消息,從心跳檢測網(wǎng)口 321接收檢測對端返回的心跳響應。
      判斷子模塊,當判定在當前心跳超時時間內(nèi)未收到檢測對端的心跳響應時, 判定心跳超時,此時不發(fā)送判斷結果;當心跳超時次數(shù)達到預設次數(shù)閾值,則 將心跳檢測網(wǎng)口 321未收到檢測對端的心跳響應作為判斷結果發(fā)送給對端狀態(tài) 判斷模塊44。當判定在當前心跳超時時間內(nèi)收到檢測對端的心跳響應時,直接 向對端狀態(tài)判斷模塊44發(fā)送判斷結果。
      其中,當前心跳超時時間的設置為每次判定在當前心跳超時時間內(nèi)收到 檢測對端的心跳響應時,將預設心跳超時時間作為下一次判斷是否心跳超時的 當前心跳超時時間;每次出現(xiàn)心跳超時,選擇不同于當前心跳超時時間的自定 義心跳超時時間,作為下一次判斷是否心跳超時的當前心跳超時時間。
      判斷子模塊在選擇自定義心跳超時時間時,在預設范圍內(nèi)隨機選擇自定義 心跳超時時間,或者,在當前心跳超時時間基礎上遞增,將遞增后的心跳超時 時間作為自定義心跳超時時間。不同存儲控制器可以設置不同的遞增粒度,或 者隨機選擇遞增粒度。
      串口控制模塊42,用于在心跳檢測網(wǎng)口 321發(fā)送心跳消息的同時,控制串 口 322周期性地向檢測對端發(fā)送心跳消息,判斷是否從串口 322收到檢測對端 的心跳響應,將判斷結果發(fā)送給對端狀態(tài)判斷模塊44。
      對端狀態(tài)判斷模塊44,用于在根據(jù)接收自心跳檢測網(wǎng)口控制模塊41和串 口控制模塊42的判斷結果,確定心跳檢測網(wǎng)口 321和串口 322均未收到檢測對 端的心跳響應時,通知業(yè)務網(wǎng)口控制才莫塊43進行心跳4全測;接收業(yè)務網(wǎng)口控制 模塊43發(fā)來的判斷結果,當判斷結果顯示業(yè)務網(wǎng)口 33能夠收到4企測對端的心 跳響應時,確定^r測對端正常;否則,確定纟全測對端異常。
      業(yè)務網(wǎng)口控制模塊43,用于在接收到進行心跳檢測的通知時,從n個業(yè)務 網(wǎng)口中33選擇一個當前沒有業(yè)務的業(yè)務網(wǎng)口 33,控制選定的業(yè)務網(wǎng)口 33向檢 測對端發(fā)送心跳消息;判斷是否從選定的業(yè)務網(wǎng)口 33收到檢測對端的心跳響 應,將判斷結果發(fā)送給對端狀態(tài)判斷模塊44。
      具體來說,該業(yè)務網(wǎng)口控制模塊43包括選擇子模塊、業(yè)務暫停子模塊和控 制子模塊;這3個子模塊在圖4中未示出。其中,
      選擇子模塊,用于判斷所在設備是否存在處于沒有業(yè)務狀態(tài)的業(yè)務網(wǎng)口 33, 如果是,則從處于沒有業(yè)務狀態(tài)的業(yè)務網(wǎng)口 33中選擇一個,作為選定的業(yè)務網(wǎng) 口,并通知控制子模塊;否則,將預先選定的業(yè)務網(wǎng)口 33作為選定的業(yè)務網(wǎng)口 33,并通知業(yè)務暫停子模塊;
      業(yè)務暫停子模塊,用于在接收到通知時,將選定的業(yè)務網(wǎng)口 33上的業(yè)務遷 移到所在i殳備的其他業(yè)務網(wǎng)口上,同時停止選定的業(yè)務網(wǎng)口上的業(yè)務,然后通 知控制子模塊。
      控制子模塊,用于在接收到通知時,控制選定的業(yè)務網(wǎng)口 33向檢測對端發(fā) 送心跳消息;判斷是否從選定的業(yè)務網(wǎng)口 33收到檢測對端的心跳響應,將判斷 結果發(fā)送給對端狀態(tài)判斷模塊44。
      本實施例中,為了響應心跳消息,在接收心跳消息的設備端中進行心跳響 應配置,當設備接收到心跳消息后,無論該心跳消息來自心跳4企測網(wǎng)口、串口 或業(yè)務網(wǎng)口,均需要返回心跳響應。
      由以上所述可以看出,本發(fā)明所提供的心跳檢測方案能夠提高對被檢測 方狀態(tài)的判斷準確程度,減少被檢測方在非異常情況下被重啟的概率,從而 降低被檢測方在非異常情況下的業(yè)務中斷概率。
      綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的 保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改 進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      權利要求
      1、一種心跳檢測方法,應用于具有業(yè)務網(wǎng)口的網(wǎng)絡設備中,其特征在于,該方法包括所述網(wǎng)絡設備周期性地通過心跳檢測端口向檢測對端發(fā)送心跳消息,接收所述檢測對端返回的心跳響應;當所述心跳檢測端口未收到檢測對端的心跳響應時,選擇一個當前沒有業(yè)務的業(yè)務網(wǎng)口,通過選定的業(yè)務網(wǎng)口向所述檢測對端發(fā)送心跳消息;判斷所述選定的業(yè)務網(wǎng)口是否收到檢測對端的心跳響應;如果是,則確定檢測對端正常;否則,確定檢測對端異常。
      2、 如權利要求l所述的方法,其特征在于,所述心跳檢測端口包括心跳檢 觀'J網(wǎng)口和串口 ;所述周期性地通過心跳檢測端口向檢測對端發(fā)送心跳消息為通過所述心 跳4企測網(wǎng)口和所述串口同時發(fā)送;判定所述心跳檢測端口未收到檢測對端的心跳響應為當所述心跳檢測網(wǎng) 口未收到4企測對端的心跳響應時,判斷所述串口的心跳4全測是否正常,如果所 述串口的心跳檢測不正常,則判定所述心跳檢測端口未收到檢測對端的心跳響 應。
      3、 如權利要求2所述的方法,其特征在于,所述心跳檢測網(wǎng)口未收到檢測 對端的心跳響應的確定操作包括當判定心跳檢測端口在當前心跳超時時間內(nèi)未收到檢測對端的心跳響應 時,判定心跳超時;當心跳超時次數(shù)達到預設次數(shù)闊值,確定心跳檢測網(wǎng)口未 收到檢測對端的心跳響應;所述當前心跳超時時間的設置為每次判定在當前心跳超時時間內(nèi)收到檢 測對端的心跳響應時,將預設心跳超時時間作為下一次判斷是否心跳超時的當 前心跳超時時間;每次出現(xiàn)心跳超時,選擇不同于當前心跳超時時間的自定義 心跳超時時間,作為下一次判斷是否心跳超時的當前心跳超時時間。
      4、 如權利要求3所述的方法,其特征在于,所述選擇不同于當前心跳超時時間的自定義心跳超時時間為在預i殳范圍內(nèi)隨機選4奪自定義心跳超時時間;或者為在當前心跳超時時間基礎上遞增,將遞增后的心跳超時時間作為 自定義心跳超時時間。
      5、 如權利要求l所述的方法,其特征在于,所述選擇一個當前沒有業(yè)務的 業(yè)務網(wǎng)口包括判斷是否存在當前無業(yè)務的業(yè)務網(wǎng)口,如果是,則從當前無業(yè) 務的業(yè)務網(wǎng)口中選擇一個,作為選定的業(yè)務網(wǎng)口;否則,將預先選定的業(yè)務網(wǎng) 口作為選定的業(yè)務網(wǎng)口,將選定的業(yè)務網(wǎng)口上的業(yè)務遷移到自身的其他業(yè)務網(wǎng) 口上。
      6、 如權利要求l所述的方法,其特征在于,所述確定檢測對端異常之后, 該方法進一步包括判斷自身當前是否有業(yè)務存在,如果是,則重啟檢測對端,接管所述檢測 對端的業(yè)務;否則,等待一段預設時間后,重啟檢測對端,接管所述檢測對端 的業(yè)務。
      7、 如權利要求6所述的方法,其特征在于,所述重啟檢測對端,接管所述 ;險測對端的業(yè)務為先觸發(fā)重啟對端4乘作,再接管所述檢測對端的業(yè)務。
      8、 一種心跳檢測設備,其特征在于,該設備包括心跳檢測單元、心跳檢測 端口單元和業(yè)務網(wǎng)口;所述心跳檢測單元,周期性地通過心跳檢測端口單元向檢測對端發(fā)送心跳 消息,.接收檢測對端的心跳響應;當未通過所述心跳檢測端口單元收到檢測對 端的心跳響應時,選擇一個當前沒有業(yè)務的業(yè)務網(wǎng)口,通過選定的業(yè)務網(wǎng)口向 所述檢測對端發(fā)送心跳消息;判斷是否通過選定的業(yè)務網(wǎng)口收到^r測對端的心 跳響應,如果是,則確定4全測對端正常;否則,確定4全測對端異常。所述心跳檢測端口單元,用于在所述心跳檢測單元的控制下,向檢測對端 發(fā)送心跳消息;將檢測對端返回的心跳響應發(fā)送給所述心跳檢測單元;所述業(yè)務網(wǎng)口,用于在所述心跳片企測單元的控制下,向檢測對端發(fā)送心跳 消息;將檢測對端返回的心跳響應發(fā)送給所述心跳檢測單元。
      9、 如權利要求8所述的設備,其特征在于,所述心跳檢測端口單元包括心 跳沖全測網(wǎng)口和串口 ;所述心跳檢測單元包括心跳檢測網(wǎng)口控制模塊、串口控制模塊、業(yè)務網(wǎng)口控制模塊和對端狀態(tài)判斷模塊;所述心跳檢測網(wǎng)口控制模塊,用于控制所述心跳檢測網(wǎng)口周期性地向檢測對端發(fā)送心跳消息,判斷是否從心跳;險測網(wǎng)口收到檢測對端的心跳響應,將判 斷結果發(fā)送給所述對端狀態(tài)判斷纟莫塊;所述串口控制模塊,用于在心跳檢測網(wǎng)口發(fā)送心跳消息的同時,控制所述串口周期性地向檢測對端發(fā)送心跳消息,判斷是否從串口收到檢測對端的心跳 響應,將判斷結果發(fā)送給所述對端狀態(tài)判斷模塊;所述對端狀態(tài)判斷模塊,用于在根據(jù)接收自心跳檢測網(wǎng)口控制模塊和串口 控制才莫塊的判斷結果,確定所述心跳;f企測網(wǎng)口和所述串口均未收到才全測對端的 心跳響應時,通知業(yè)務網(wǎng)口控制模塊進行心跳檢測;接收業(yè)務網(wǎng)口控制模塊發(fā) 來的判斷結果,當判斷結果顯示業(yè)務網(wǎng)口能夠收到檢測對端的心跳響應時,確 定檢測對端正常;否則,確定檢測對端異常;所述業(yè)務網(wǎng)口控制模塊,用于在接收到通知時,選擇一個當前沒有業(yè)務的 業(yè)務網(wǎng)口 ,控制選定的業(yè)務網(wǎng)口向所述檢測對端發(fā)送心跳消息;判斷業(yè)務網(wǎng)口 是否收到檢測對端的心跳響應,將判斷結果發(fā)送給所述對端狀態(tài)判斷模塊。
      10、 如權利要求9所述的設備,其特征在于,所述心跳檢測網(wǎng)口控制模塊 包括心跳消息收發(fā)子模塊和判斷子模塊;所述心跳消息收發(fā)子模塊,用于控制心跳檢測網(wǎng)口周期性地向檢測對端發(fā) 送心跳消息,從心跳檢測網(wǎng)口接收檢測對端返回的心跳響應;所述判斷子模塊,當所述心跳消息收發(fā)子模塊在當前心跳超時時間內(nèi)未收 到心跳響應時,判定心跳超時;當心跳超時次數(shù)達到預設次數(shù)閾值,確定心跳 檢測網(wǎng)口未收到檢測對端的心跳響應,此時將未收到檢測對端的心跳響應作為 所述判斷結果發(fā)送給所述對端狀態(tài)判斷模塊;每次判定在當前心跳超時時間到 達之前收到檢測對端的心跳響應時,將預設心跳超時時間作為下一次判斷是否心跳超時的當前心跳超時時間;每次出現(xiàn)心跳超時,選擇不同于當前心跳超時 時間的自定義心跳超時時間,作為下一次判斷是否心;兆超時的當前心跳超時時 間。
      11、 如權利要求10所述的設備,其特征在于,判斷子模塊進一步用于,在 預設范圍內(nèi)隨機選擇自定義心跳超時時間,或者,在當前心跳超時時間基礎上 遞增,將遞增后的心跳超時時間作為自定義心跳超時時間。
      12、 如權利要求9所述的設備,其特征在于,所述業(yè)務網(wǎng)口控制模塊包括 選擇子模塊、業(yè)務暫停子模塊和控制子模塊;所述選擇子模塊,用于判斷所在設備是否存在當前無業(yè)務的業(yè)務網(wǎng)口,如 果是,則從當前無業(yè)務的業(yè)務網(wǎng)口中選擇一個,將選定的業(yè)務網(wǎng)口通知給所述 控制字模塊;否則,通知業(yè)務暫停子模塊;所述業(yè)務暫停子模塊,用于在接收到通知時,將預選選定的業(yè)務網(wǎng)口作為 選定的業(yè)務網(wǎng)口 ,將該選定的業(yè)務網(wǎng)口上的業(yè)務遷移到所在設備的其他業(yè)務網(wǎng) 口上,將選定的業(yè)務網(wǎng)口通知給所述控制字模塊;所述控制子模塊,用于在接收到通知時,控制選定的業(yè)務網(wǎng)口向檢測對端 發(fā)送心跳消息;判斷是否從選定的業(yè)務網(wǎng)口收到檢測對端的心跳響應,將判斷 結果發(fā)送給所述對端狀態(tài)判斷模塊。
      13、 如權利要求8所述的設備,其特征在于,該設備進一步包括異常處理 單元,用于在所述心跳檢測單元確定片企測對端異常時,判斷所在設備當前是否 有業(yè)務存在,如果是,則重啟檢測對端,接管所述纟全測對端的業(yè)務;否則,等 待一段預設時間后,重啟檢測對端,接管所述檢測對端的業(yè)務。
      全文摘要
      本發(fā)明公開了一種心跳檢測方法,應用于具有業(yè)務網(wǎng)口的網(wǎng)絡設備中,該方法包括所述網(wǎng)絡設備周期性地通過心跳檢測端口向檢測對端發(fā)送心跳消息,接收所述檢測對端返回的心跳響應;當所述心跳檢測端口未收到檢測對端的心跳響應時,選擇一個當前沒有業(yè)務的業(yè)務網(wǎng)口,通過選定的業(yè)務網(wǎng)口向所述檢測對端發(fā)送心跳消息;判斷所述選定的業(yè)務網(wǎng)口是否收到檢測對端的心跳響應;如果是,則確定檢測對端正常;否則,確定檢測對端異常。本發(fā)明還公開了一種心跳檢測設備。使用本發(fā)明能夠提高對被檢測方狀態(tài)的判斷準確程度。
      文檔編號H04L12/26GK101345663SQ20081011845
      公開日2009年1月14日 申請日期2008年8月22日 優(yōu)先權日2008年8月22日
      發(fā)明者景冬生 申請人:杭州華三通信技術有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1