The invention provides a method and a device for realizing a heartbeat, among them, the method includes: a first value according to the execution of the first periodic heartbeat write operation, first write operation heartbeat count value is written in order to share storage space; to detect overload of the node, the node state switching from normal to non normal, stop the execution of the first write operation to obtain the new order of the heart, the first write operation heartbeat count M, the node of the heart cycle update for a value of second, among them, second greater than the first value; in accordance with the second values to write periodic execution of heart operation in second, and will write the order sent to count in addition to the other node node outside the second write operation heartbeat count, as the node which is written in order to start writing, the order of the counting value for M or M+1.
【技術實現步驟摘要】
心跳實現方法及裝置
本申請涉及存儲
,特別涉及一種心跳實現方法及裝置。
技術介紹
在共享文件系統中,多個節點(例如,主機)組成一個集群,該集群中的所有節點可以訪問同一存儲空間,任一節點讀寫該存儲空間中的文件時,其它節點仍可以訪問該文件,節點間通過分布式鎖協商讀寫權限。在共享文件系統中,采用讀寫心跳機制來判定節點是否在線。具體的,在如圖1所示的共享文件系統中包括節點1(節點ID為1)、節點2(節點ID為2)和節點3(節點ID為3),這3個節點可以訪問存儲空間中的同一邏輯盤(或稱為卷),從該邏輯盤的固定基地址位置開始執行讀寫心跳操作,例如,該基地址位置為該邏輯盤4M字節位置,每一個節點寫心跳的偏移地址為4字節(即寫心跳內容占用4字節),則各個節點寫心跳的方法如下:節點1在4M~(4M+4)字節位置寫入本節點的sequence(順序)計數值1,節點2在(4M+4)~(4M+8)字節位置寫入本節點的sequence計數值1,節點3在(4M+8)~(4M+12)字節位置寫入本節點的sequence計數值1;然后,節點1在4M~(4M+4)字節位置將本節點的sequence計數值更新為2,節點2在(4M+4)~(4M+8)字節位置將本節點的sequence計數值更新為2,節點3在(4M+8)~(4M+12)字節位置將本節點的sequence計數值更新為2;以此類推。每一個節點周期性的執行上述寫心跳操作,并且,周期性的執行從該邏輯盤中讀取所有節點的sequence計數值的讀心跳操作,通過讀取到的sequence計數值來判斷其它節點是否在線。具體的判斷方法是:針對任 ...
【技術保護點】
一種心跳實現方法,其特征在于,所述方法應用于共享文件系統中的節點,所述方法包括:按照第一值周期性的執行第一寫心跳操作,所述第一寫心跳操作為向共享的存儲空間中寫入順序計數值;在檢測到本節點的負載過載時,將本節點的狀態從正常切換為非正常,停止執行所述第一寫心跳操作,獲取所述第一寫心跳操作的最新順序計數值M,將本節點的心跳周期更新為第二值,其中,所述第二值大于所述第一值;按照所述第二值周期性的執行第二寫心跳操作,并將寫入的順序計數值發送給除本節點以外的其它節點,所述第二寫心跳操作為向本節點中寫入順序計數值,其中,寫入的順序計數值的起始值為M或M+1。
【技術特征摘要】
1.一種心跳實現方法,其特征在于,所述方法應用于共享文件系統中的節點,所述方法包括:按照第一值周期性的執行第一寫心跳操作,所述第一寫心跳操作為向共享的存儲空間中寫入順序計數值;在檢測到本節點的負載過載時,將本節點的狀態從正常切換為非正常,停止執行所述第一寫心跳操作,獲取所述第一寫心跳操作的最新順序計數值M,將本節點的心跳周期更新為第二值,其中,所述第二值大于所述第一值;按照所述第二值周期性的執行第二寫心跳操作,并將寫入的順序計數值發送給除本節點以外的其它節點,所述第二寫心跳操作為向本節點中寫入順序計數值,其中,寫入的順序計數值的起始值為M或M+1。2.根據權利要求1所述的方法,其特征在于,所述方法還包括:在檢測到任一其它節點的狀態從正常切換為非正常時,若本節點的心跳周期為所述第一值,則將本節點的心跳周期更新為所述第二值。3.根據權利要求1所述的方法,其特征在于,所述方法還包括:在接收到其它節點發來的順序計數值之后,保存該其它節點發來的順序計數值;在執行讀心跳操作時,判斷本節點中保存的該其它節點的順序計數值在預定時間內是否發生了改變,若是,則確定該其它節點在線,否則,確定該其它節點不在線。4.根據權利要求1所述的方法,其特征在于,所述方法還包括:在檢測到本節點的負載恢復正常時,將本節點的狀態從非正常切換為正常;當本節點的狀態為正常時,判斷所有其它節點的狀態是否均為正常;若是,則在本節點當前執行的是所述第二寫心跳操作時,停止執行所述第二寫心跳操作,獲取所述第二寫心跳操作的最新順序計數值N,將本節點的心跳周期更新為所述第一值,按照所述第一值周期性的執行所述第一寫心跳操作,其中,執行所述第一寫心跳操作時寫入的順序計數值的起始值為N或N+1;在本節點當前執行的是所述第一寫心跳操作時,若本節點的心跳周期為所述第二值,則將本節點的心跳周期更新為所述第一值。5.根據權利要求4所述的方法,其特征在于,所述方法還包括:獲取本節點的負載信息;當獲取一種負載信息時,通過以下方式檢測本節點的負載是否過載:若獲取到的負載信息的數值大于預設閾值,則確定本節點的負載過載,否則,確定本節點的負載沒有過載;通過以下方式檢測本節點是否恢復正常:若獲取到的負載信息的數值不大于所述預設閾值,則確定本節點的負載恢復正常,否則,確定本節點的負載沒有恢復正常;當獲取兩種以上負載信息時,通過以下方式檢測本節點的負載是否過載:若獲取到的每一個負載信息的數值均大于對應的預設閾值,則確定本節點的負載過載,否則,確定本節點的負載沒有過載;通過以下方式檢測本節點是否恢復正常:若獲取到的每一個負載信息的數值均不大于對應的預設閾值,則確定本節點的負載恢復正常,否則,確定本節點的負載沒有恢復正常。6.一種心跳實現裝置,其特征在于,所述裝置應用于共享文件系統中的節點中,所述裝置包括:檢測單元,用于檢測本節點的負載情況;狀態切換單元,用于在所述檢測單元檢測到本節點的負載過載時,將本節點的狀態從正常切換為非正常;寫心跳執行單元,用于按照第一值周期性的執行第一寫心跳操作,所述...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。