本發(fā)明應用于硬件設備通訊領域,主要應用在傳統的電話線主分機的連接,并可應用到計算機集群設備的連接。
背景技術:
集群(cluster)是一組相互獨立的、通過高速網絡互聯的計算機,它們構成了一個組,并以單一系統的模式加以管理。一個客戶與集群相互作用時,集群像是一個獨立的服務器。集群配置是用于提高可用性和可縮放性。
當集群中的一個系統發(fā)生故障時,集群軟件迅速做出反應,將該系統的任務分配到集群中其它正在工作的系統上執(zhí)行。考慮到計算機硬件和軟件的易錯性,高可用性集群的主要目的是為了使集群的整體服務盡可能可用。如果高可用性集群中的主節(jié)點發(fā)生了故障,那么這段時間內將由次節(jié)點代替它。次節(jié)點通常是主節(jié)點的鏡像。當它代替主節(jié)點時,它可以完全接管其身份,因此使系統環(huán)境對于用戶是一致的。
ha(highavailable),高可用性集群,是保證業(yè)務連續(xù)性的有效解決方案,一般有兩個或兩個以上的節(jié)點,且分為活動節(jié)點及備用節(jié)點。通常把正在執(zhí)行業(yè)務的稱為活動節(jié)點,而作為活動節(jié)點的一個備份的則稱為備用節(jié)點。當活動節(jié)點出現問題,導致正在運行的業(yè)務(任務)不能正常運行時,備用節(jié)點此時就會偵測到,并立即接續(xù)活動節(jié)點來執(zhí)行業(yè)務。從而實現業(yè)務的不中斷或短暫中斷。
目前很多主從設備的連接方式是通過ha(highavailable)來管理,ha一般又是基于fail-over-switch來實現的,例如傳統的電話線等pstn物理接口的ha是基于一臺fos來實現的,集群中的主從設備均需要與這臺fos進行心跳連接,線路的切換由fos來進行,并且每增加一個設備節(jié)點就導致更高的維護成本及故障風險,這樣的設計成本較高,后期可維護性較差,有較大的故障風險。
技術實現要素:
本發(fā)明提供目的在于提供一種通訊設備物理接口的連接方法,用于連接集群網絡中的主設備和從設備,并通過實時更新接口的狀態(tài),可以保證線路的信號同一時刻只會被主設備處理。
為了實現上述發(fā)明目的,本發(fā)明的一種通訊設備物理接口的連接方法,主要包括以下操作:通過物理線路的分插頭將主設備和從設備連接;通過高可用性物理接口兩端的驅動使能狀態(tài)來確保同一時刻線路信號來源只會被主設備使用;當該主設備異常無法繼續(xù)服役時,集群中的從設備通過獲取該主設備異常狀態(tài)做相應處理,重新確認網絡集群中的新主設備。
優(yōu)選的,所述高可用性物理接口存儲有四個狀態(tài)標志位:
(1)供電狀態(tài):1表示正常,0表示異常
(2)主芯片正常與否:1表示正常,0表示異常
(3)主從設備的角色狀態(tài):1表示主設備,0表示從設備
(4)高可用性物理接口的使能狀態(tài):1表示使能,0表示未使能。
同時,主設備定期掃描自身的功能狀態(tài),維護這些狀態(tài)標志位,并定期向集群網絡中發(fā)送自身狀態(tài)。
優(yōu)選的,當主設備和從設備通過物理線路分插頭連接好后,接上電源供電,當初始狀態(tài)為1100,則確定為所述從設備,高可用性物理接口未使能狀態(tài);通過選舉機制確定為所述主設備,此時,所述角色狀態(tài)標志位置為1,所述高可用性物理接口使能并置1,所述集群網絡中的其他從設備會保持起機狀態(tài)。
優(yōu)選的,主設備的高可用性物理接口會定期向從設備發(fā)送自身狀態(tài),從設備會接收并解析該狀態(tài)命令:
(1)若主設備的狀態(tài)是:1111,則表明一切正常并可繼續(xù)進行服役,從設備會依然保持待準備狀態(tài);
(2)若主設備的狀態(tài)是:1110,則會重新觸發(fā)選舉機制確定網絡設備中的主從角色;
(3)若主設備的狀態(tài)是:1101,則集群網絡中的主從角色混亂,會觸發(fā)選舉機制重新確定主從關系;
(4)若主設備的狀態(tài)是:1011,則主設備的芯片功能異常,但此時高可用物理接口依然處于使能狀態(tài),但是明顯不能繼續(xù)服役,此時從設備會發(fā)送命令將主設備的高可用性物理接口關閉,并重新觸發(fā)選舉機制重新確定網絡中主從角色。
優(yōu)選的,若主設備異常宕機,從設備在一定的時間期限收不到主設備的狀態(tài)更新,就會發(fā)送命令向主設備獲取狀態(tài),若此時無響應則確認主設備已經宕機會觸發(fā)選舉機制重新選舉正常的設備充當新主設備繼續(xù)服役。
優(yōu)選的,實現方法還包括:當主設備在正常服役時,從設備會實時獲取主設備的狀態(tài),實時檢查主設備的狀態(tài)并更新自己的狀態(tài),主設備還會發(fā)送notifydatastatus命令更新網絡中的從設備的數據信息,以便保證從設備隨時做好進入服役狀態(tài)。
優(yōu)選的,當主設備宕機后也就是心跳超時后,集群網絡中最先發(fā)現這一情況的從設備會發(fā)起新一次選舉,其余從設備只需要更新自己當前的狀態(tài)。
優(yōu)選的,高可用性物理接口可進行命令交互,狀態(tài)獲取、檢查并實時更新,可以保證同一時刻網絡集群中只有一個高可用性物理接口處于使能狀態(tài),保證只有一臺設備真正處于服役功能。
優(yōu)選的,該連接方法還包括:設備起機時高可用性物理接口的功能寄存器默認是0即不開啟,則該設備不會利用該高可用性物理接口接收線路的信號,與該線路的連接是無效的,所以起機時該高可用性物理接口的四個狀態(tài)標志位是1100。
優(yōu)選的,上述網絡集群中的選舉模塊確認某一設備為主設備時,會通知該設備,其高可用性物理接口功能模塊的寄存器值將置1即開啟高可用性物理接口的功能,此時的連接是成功并且該設備是可以利用高可用性物理接口接收信號并且處理信號。
本發(fā)明方案摒棄了目前市面上的fos設計,當發(fā)現設備異常時可及時重新確認主從設備關系,保證可以正確維護集群網絡中的主從關系。同時,有了這種高可用性物理接口,可以減少網絡集群中的設備連接成本,并且降低故障風險。
附圖說明
圖1為現有技術中主從設備fos設計連接圖;
圖2為本發(fā)明具體實施例中高可用性物理接口的連接方式圖;
圖3為本發(fā)明具體實施例中選舉模塊工作的功能示意圖。
具體實施方式
本發(fā)明的基本原理:目前主從設備的連接是通過ha(highavailable)來管理,ha一般又是基于fail-over-switch(簡稱fos)來實現的,所有的主從設備都需要與fos進行心跳連接,線路的切換都是通過fos來進行,每增加一個設備節(jié)點,需要增加維護成本并提高故障風險,這樣的方案成本較高。本發(fā)明方案就是在設備上實現一個高可用性的物理接口,主從設備間連接可以直接去除fos,使用物理線路的分插頭,將主從設備直接連接,由主從設備兩端的相應物理接口驅動是否使能來保證線路同時僅會被主設備使用,這樣的設計成本及其低廉,風險性較低,拓展性較高,并且可以應用到很多領域。
為了更清楚地說明本發(fā)明實例的技術方案,下面將結合示例圖對本發(fā)明的實施進行詳細的介紹,下面的描述僅僅是本發(fā)明的一些實施例。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些實施例獲得本發(fā)明的其他實施方式。
在本發(fā)明具體實施例中,集群網絡中一般先是通過選舉模塊通過選舉機制確認某一臺設備是主設備,其他設備是從設備,主設備的高可用性物理接口會使能,從設備的高可用性物理接口不進行使能,此時會保證該網絡集群中只有主設備會在服役。
選舉機制是通過考量各設備的cpu,內存,磁盤空間,當前連接數等等因素計算出一個權重,各個設備會傳遞這些權重值進行對比,直到比出最大值的設備,則該設備會變成主設備。
設備的高可用性物理接口一般會存儲四個狀態(tài)標志位:電源的供電情況、主芯片的功能是否正常、設備的角色,以及設備的高可用性物理接口是否使能。集群中的設備會通過維護這些狀態(tài)來保證網絡中只會有主設備處理線路的來源信號。從設備會從主設備獲取數據信息更新自己的數據庫。
設備起機時高可用性物理接口的功能寄存器默認是0即不開啟,則該設備不會利用該高可用性物理接口接收線路的信號,與該線路的連接是無效的,所以起機時該高可用性物理接口的四個狀態(tài)標志位是1100。當網絡集群中的選舉模塊確認某一設備是主設備時,會通知該設備,該設備會將高可用性物理接口功能模塊的寄存器值置1即開啟高可用性物理接口的功能,此時的連接是成功并且該設備是可以利用高可用性物理接口接收信號并且處理信號。
主設備在正常服役時會向集群網絡中更新自己的各個功能模塊的狀態(tài),以及自身的數據狀態(tài)。網絡中的其他從設備會通過主設備的狀態(tài)來監(jiān)測和判斷主設備是否可以正常服役。若主設備的狀態(tài)一切正常,從設備會根據主設備的數據信息更新自己的數據狀態(tài)。若主設備異常,處于非normal狀態(tài),此時需要進行新的選擇,從設備也需要計算最近一段時間內自己的狀態(tài)值以便為下一次選舉做準備。同時將主設備放入冷卻池,等它恢復到normal級別,再放入可用池。
設備的異常有很多種,通過高可用性物理接口都可以采取相應措施進行解除。若主設備的高可用性物理接口異常關閉,從設備通過可用性物理接口觸發(fā)選舉機制進行喚醒,若喚醒失敗會將主設備殺死放入冷卻池,選舉模塊會重新選舉確認主設備。若主設備的主芯片功能異常,從設備會直接將主設備殺死,選舉模塊會重新選舉確認主設備。若主設備異常宕機,從設備也會觸發(fā)選舉模塊重新進行選舉。通過對主設備的狀態(tài)監(jiān)測,保證主設備可以處于正常服役。
圖2為本發(fā)明具體實施例中高可用性物理接口的連接方式圖,如圖可知,使用物理線路的分插頭將信號來源的線路直接連接到多個設備的高可用性物理接口上。各個設備供電之后,初始狀態(tài)是:1100,集群網絡中的選舉模塊會首先選出主設備,主設備首先會修改自己的角色為主設備并讓自己的高可用性物理接口的功能模塊的寄存器寫1,主設備的狀態(tài)變?yōu)椋?111,表明設備各個模塊一切正常,集群網絡中的其他設備都會保持起機狀態(tài)并作為從設備隨時準備服役。
圖3為本發(fā)明具體實施例中選舉模塊工作的功能示意圖。由圖所示,選舉模塊是通過與網絡集群中的各個設備進行連接,實時獲取各個設備的數據信息包括設備的cpu資源,磁盤使用資源以及高可用性物理接口的使能狀態(tài)等等,選舉模塊會通過這些信息進行權重計算,選出網絡集群中性能最優(yōu)的設備進行服役。
主從角色確定之后,集群網絡中的主設備會正常進行服役,并通過高可用性網絡接口定時向集群中發(fā)送當前各個模塊的功能狀態(tài)及數據信息:
發(fā)送各個功能模塊的狀態(tài)消息命令如下:
<xmlversion="1.0"encoding="utf-8">
<request>
<request_type>self_status</request_type>
<status_flag>1111</status_id>
</request>
發(fā)送主設備的數據信息命令如下:
<xmlversion="1.0"encoding="utf-8">
<request>
<request_type>data_information</request_type>
<encode_method>base64</encode_method>
<data>..............</data>
</request>
集群網絡中的從設備會接收并解析該數據信息命令,解析數據信息之后并更新自己的數據庫。
從設備接收并解析主設備的功能狀態(tài)命令,隨時監(jiān)測主設備的功能是否異常。
若解析到主設備的狀態(tài)是:1111,則表明主設備的狀態(tài)一切正常。
若解析到主設備的狀態(tài)是:1110,則表明主設備的高可用性物理接口異常關閉,則此時集群網絡中是沒有設備處理信號的,此時是主設備異常,網絡中的從設備會觸發(fā)選舉機制喚醒主設備的高可用性物理接口,一般是由集群中最先發(fā)現主設備心跳timeout的從設備發(fā)起,在喚醒過程中由選舉模塊同時告知其他從設備,已經有設備正在進行喚醒。若喚醒成功,主設備會繼續(xù)服役,若喚醒失敗,由該從設備發(fā)起新的選舉。
kill命令:
<xmlversion="1.0"encoding="utf-8">
<request>
<request_type>abnormal_notify</request_type>
<attribute>kill</attribute>
</request>
若解析到主設備的狀態(tài)是:1101,則表明主設備的角色異常,需要重新確認角色,從設備會觸發(fā)選舉機制重新確認集群網絡中的主從角色。
若解析到主設備的狀態(tài)是:1011,則表明主設備的功能模塊異常,此時主設備的高可用性物理接口雖然正常進行,但明顯是不能再繼續(xù)服役的。此時會發(fā)送kill命令將主設備殺死,主設備會被放入冷卻池。選舉機制會重新確認集群網絡中的主從設備。
當主設備異常宕機,網絡中的從設備會在定時時間之內沒有收到主設備的狀態(tài)更新。則會主動發(fā)送getstatus命令獲取主設備的狀態(tài):
getstatus命令如下:
<xmlversion="1.0"encoding="utf-8">
<request>
<request_type>get_status</request_type>
<need_response>true</need_response>
</request>
此命令是需要主設備響應的,主設備由于宕機而無法響應,此時選舉機制會將主設備放入冷卻池,重新選角確認網絡中的主設備。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。