一種集群配置節點故障轉移的方法及系統與流程
2023-06-09 10:06:06
本發明涉及伺服器存儲領域,尤其涉及一種集群配置節點故障轉移的方法及系統。
背景技術:
當前,隨著各行各業對於數據處理能力的要求不斷增加,對於數據處理的實時性要求也在不端的提高。在當前,通常是選用多節點的集群系統對數據進行處理,所述多節點的集群系統的各個節點之間相互配合,作為一個整體為用戶提供服務。在多節點的集群系統中,通常會設置有一個配置節點對整個集群進行管理,例如將其他節點添加進所述集群,對存儲後端磁碟進行管理等等。在整個集群中,配置節點有權限對集群中的資源進行操作,而各個節點只能對自己的運行狀態進行操作。當所述配置節點出於某種原因,例如發生故障或者要下線維護等,需要離開集群時,需要選出另一個節點當作新的配置節點對整個集群進行管理。
在現有技術中,當需要更換配置節點時,通常是需要通過競爭的方式選舉出新的配置節點,例如先獲取當前在線的各個節點的id號,再比較所述各個id號的大小,從中選取id號最小的節點當作候選配置節點,最後通過所述候選配置節點進行初始化而成為新的配置節點。
但是在現有技術中,跟換配置節點時往往需要花費一定的時間,導致整個集群在處理數據時的實時性不高,經常出現卡頓的現象。
技術實現要素:
有鑑於此,本發明的主要目的在於提供一種集群配置節點故障轉移的方法,可以有效減少更換配置節點所用的時間;本發明的另一目的在於提供一種集群配置節點故障轉移的系統,可以增加集群在處理數據時的實時性。
為了解決上述技術問題,本發明提供了一種集群配置節點故障轉移的方法,所述方法包括:
當原配置節點離開集群時,所述原配置節點從集群信息資料庫中選取符合預設條件的在線節點作為候選配置節點,所述集群信息資料庫用於實時存儲所述集群中各個節點的狀態;
所述候選配置節點進行初始化以成為配置節點,對所述集群的各個所述節點進行管理。
可選的,所述原配置節點從集群信息資料庫中選取符合預設條件的並且在線的節點作為候選配置節點包括:
所述原配置節點逐個查詢所述集群信息資料庫的緩存信息;
所述原配置節點將查詢到的第一個在線節點作為候選配置節點。
可選的,所述方法進一步包括:
當所述原配置節點離開集群時,所述原配置節點將離開信息發送至所述集群的各個節點;
在所述候選配置節點進行初始化以成為配置節點之後,所述方法進一步包括:
所述配置節點將初始化完成信息發送至所述集群的各個所述節點。
可選的,在所述原配置節點將由事件管理模塊通知集群中所有節點配置節點離開集群事件,所述方法進一步包括:
所述原配置節點放棄管理集群的權限。
可選的,當所述候選配置節點進行初始化以成為配置節點之後,所述方法進一步包括:
所述配置節點將待加入所述集群的節點重新加入到所述集群中。
本發明還提供了一種集群配置節點故障轉移的系統,所述系統包括集群和集群信息資料庫,所述集群包括多個節點,其中原配置節點為從多個所述節點中選出的節點,用於對所述集群進行管理,所述集群信息資料庫用於實時存儲所述集群中各個節點的狀態;
當所述原配置節點離開所述集群時,所述原配置節點用於從所述集群信息資料庫中選取符合預設條件的在線節點作為候選配置節點;
所述候選配置節點用於進行初始化以成為配置節點,對所述集群的各個所述節點進行管理。
可選的,所述原配置節點具體用於:
逐個查詢所述集群信息資料庫的緩存信息;
將查詢到的第一個在線節點作為候選配置節點。
可選的,所述原配置節點還用於:
當所述原配置節點離開集群時,所述原配置節點用於將離開信息發送至所述集群的各個節點;
在所述候選配置節點進行初始化以成為配置節點之後,所述配置節點還用於:
將初始化完成信息發送至所述集群的各個所述節點。
可選的,所述原配置節點還用於:
在所述原配置節點將離開信息發送至所述集群的各個節點之後,放棄管理集群的權限。
可選的,所述配置節點還用於:
將待加入所述集群的節點重新加入到所述集群中。
本發明所提供的一種集群配置節點故障轉移的方法,當配置節點離開集群時,原配置節點會直接從資料庫中選取符合預設條件的在線節點作為候選配置節點,而不用通過複雜的競選方式來選擇出候選配置節點,簡化了選擇配載節點的步驟,從而減少了更換配置節點所用的時間。本發明還提供了一種集群配置節點故障轉移的系統,同樣具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚的說明本發明實施例或現有技術的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例所提供的第一種集群配置節點故障轉移方法的流程圖;
圖2為本發明實施例所提供的第二種集群配置節點故障轉移方法的流程圖;
圖3為本發明實施例所提供的一種集群配置節點故障轉移系統的結構框圖。
具體實施方式
本發明的核心是提供一種集群配置節點故障轉移的方法。在現有技術中,當需要更換配置節點時,通常是需要通過競爭的方式選舉出新的配置節點,例如先獲取當前在線的各個節點的id號,再比較所述各個id號的大小,從中選取id號最小的節點當作候選配置節點,最後通過所述候選配置節點進行初始化而成為新的配置節點。上述從原配置節點發生故障到最終推選出新的配置節點之間,需要經過大量的步驟,這同時也花費了大量的時間。而且在推選新的配置節點時,通常需要中斷整個集群正在執行的業務,這樣就會導致整個集群在處理數據時的實時性不高,經常出現卡頓的現象。
而本發明所提供的集群配置節點故障轉移的方法,當配置節點離開集群時,原配置節點會直接從資料庫中選取符合預設條件的並且在線的節點作為候選配置節點,而不用通過複雜的競選方式來選擇出候選配置節點,簡化了選擇配載節點的步驟,從而減少了更換配置節點所用的時間。從資料庫中選取符合預設條件的在線節點的過程其實是讀取當前集群中各個節點的狀態,並從中選取符合預設條件的在線節點。而讀取當前集群中各個節點的狀態相當於從資料庫中讀取靜態文件,這個過程非常快並且基本不消耗整個集群的資源。
為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
請參考圖1,圖1為本發明實施例所提供的第一種集群配置節點故障轉移方法的流程圖,該方法包括:
s101:當原配置節點離開集群時,所述原配置節點從集群信息資料庫中選取符合預設條件的在線節點作為候選配置節點。
在本步驟中,所述集群的作用是對用戶提供數據處理的業務,其中集群包括有多個節點,而原配置節點為從多個所述節點中選出的節點,其作為配置節點用於對所述集群進行管理。在整個集群中,只有配置節點有權限對整個集群的資源進行操作,例如將其他節點加入集群,對存儲後端磁碟的管理等等。而在集群中的其餘節點只能改變節點自身的狀態,例如在線或離線等等。
所述集群信息資料庫用於在所述原配置節點離開集群之前,存儲有所述集群中各個節點的狀態,其中各個節點的狀態是各個節點通過各自的同步模塊將自身當前的狀態發送至集群信息資料庫的。所述各個節點的狀態包括有各個節點的在線情況,還可以包括有各個節點的集群中的索引號,節點在集群中的id等等,在此不做具體限定。如果集群信息資料庫中僅僅儲存各個節點的在線情況,相應的各個節點只需要在上線以及下線的時候將自身的在線情況發送至集群信息資料庫;若集群信息資料庫中除了各個節點的在線情況,還儲存有各個節點的集群中的索引號,節點在集群中的id等等,相應的就需要各個節點實時的通過所述同步模塊將自身的狀態值發送至集群信息資料庫。
在本步驟中,由於所述集群信息資料庫是用於在所述原配置節點離開集群之前,存儲所述集群中各個節點的狀態,意味著當原配置節點在從集群信息資料庫中選取節點時,集群信息資料庫相當於已經提前獲取了各個節點狀態,就不用像現有技術一樣,當需要更換配置節點時再獲取各個節點的狀態,本發明從而簡化了選擇配載節點的步驟,減少了更換配置節點所用的時間。
在本發明中,為了保證整個集群的正常運行,需要保證選取的候選配置節點至少是在線的節點,這樣才能保證所述節點能儘快履行配置節點的任務,以保證整個集群流暢的運行業務。
在本步驟中,關於具體的如何從集群信息資料庫中選取符合預設條件的在線節點作為候選配置節點的過程,將在下述實施例中做詳細描述,在此不再贅述。
s102:所述候選配置節點進行初始化以成為配置節點,對所述集群的各個所述節點進行管理。
在本步驟中,所述初始化的過程相當於是獲取配置節點權限的過程,當候選配置節點進行完初始化之後,相當於獲取了配置節點的權限,此時配置節點才能在集群中履行配置節點應該履行的管理任務,對所述集群進行管理。具體的管理任務已在s101中做詳細說明,在此不再贅述。
本發明實施例所提供的一種集群配置節點故障轉移的方法,當配置節點離開集群時,原配置節點會直接從資料庫中選取符合預設條件的在線節點作為候選配置節點,而不用通過複雜的競選方式來選擇出候選配置節點,簡化了選擇配載節點的步驟,從而減少了更換配置節點所用的時間。
在本發明中,從集群信息資料庫中選取符合預設條件的在線節點作為候選配置節點的方式有很多種,將在下述實施例中做詳細描述,並添加一些技術特徵。
請參考圖2,圖2為本發明實施例所提供的第二種集群配置節點故障轉移方法的流程圖,該方法包括:
s201:當原配置節點離開集群時,集群中的在線節點都會收到配置節點離開集群的事件信息。
在本步驟中,原配置節點是通過設置在原配置節點中的同步模塊將所述離開信息發送至集群中各個節點,當集群中各個節點收到所述離開信息之後,意味著此時需要更換配置節點,而在更換配置節點的時間段裡是沒有配置節點對真箇集群進行管理的,此時為了不讓整個集群所處理的業務不發生錯誤,通常情況下會中斷各個節點所執行的業務。
在本發明實施例中,通常當集群中各個節點需要離開整個集群時,都會通過設置在各個節點中的同步模塊將離開信息發送至集群中各個節點,所以在配置節點向整個集群發送離開信息的時候,同時也給自己發送了所述離開信息,當配置節點接收到離開信息的時候,通常會先判斷所述離開信息是否為自己發送的,若是,則執行後續步驟;若否,則行駛配置節點的權限讓發送離開信息的節點離開集群。
s202:原配置節點放棄管理集群的權限。
在本步驟中,需要所述原配置節點放棄管理集群的權限。因為在本發明實施例中,所述原配置節點還可以在後續步驟中作為一個普通的節點重新加入集群,若此時該節點擁有管理集群的權限,整個集群相當於存在兩個配置節點,此時容易發生腦裂情況,會對整個集群造成極大的危害。
在通常情況下,只有當原配置節點放棄管理集群的權限之後,集群中其餘節點才有權力去爭取所述管理集群的權限。
s203:原配置節點逐個查詢集群信息資料庫的緩存信息。
在本步驟中,集群中各個節點的狀態是存儲在集群信息資料庫中的各個緩存信息中的,更具體的各個節點的狀態是以txt格式的靜態文件存儲在所述集群信息資料庫的緩存信息,當然,所述各個節點的狀態還可以是以其他形式存儲在所述集群信息資料庫的緩存信息,在此不做具體限定。
s204:原配置節點將查詢到的第一個在線節點作為候選配置節點。
在本步驟中,所述第一個在線節點是根據原配置節點的查詢順序所決定的。原配置節點在查詢所述集群信息資料庫的緩存信息的時候,不會是同時獲得所有數據,通常是按照一定的順序逐個查詢所述集群信息資料庫的緩存信息,類似於人們讀書時候的情景,只是配置節點在獲取集群中各個節點的狀態時速度會很快。
當然,除了將第一個在線節點作為候選配置節點,還可以根據查詢的順序選取其他在線節點作為候選配置節點,在此不做具體限定。除了僅僅根據查詢順序來確定候選配置節點,還可以進一步添加其他的條件,例如將查詢到的第一個負載狀態值小於預先設定的值的在線節點作為候選配置節點,由於通常情況下,管理整個集群的業務的工作量會很大,若選取了負載狀態值很高的節點作為配置節點,其很容易出現故障。相應的,在集群信息資料庫中應該儲存有集群中各個節點的負載狀態值。當然,除了上述附加條件之外,還可以添加其他條件,在此不做具體限定。
在本步驟中,與現有技術相比可以在更換配置節點的時候進一步的省略比較各個節點的參數的步驟,或者僅僅讓各個節點的參數與一個固定的參數作比較,從而進一步的簡化了選取候選配置節點的步驟,減少了更換配置節點的時間。
s205:候選配置節點進行初始化以成為配置節點,對集群的各個節點進行管理。
在本步驟中,所述初始化的過程相當於是獲取配置節點權限的過程,具體細節已在上述實施例s102中做詳細描述,在此不再展開進行描述。
s206:配置節點將初始化完成信息發送至集群的各個節點。
在本步驟中,配置節點會通過設置在配置節點中的同步模塊將初始化完成信息發送至各個節點,當集群中各個節點收到所述初始化完成信息之後,意味著初始化工作已經完成,已經有新的節點可以對整個集群進行管理,此時各個節點可以繼續之間所中斷的業務。
s207:配置節點將待加入集群的節點重新加入到集群中。
在本發明實施例中,原配置節點離開集群的原因有很多種,例如原配置節點發生故障,還可能是原配置節點需要進行維護等等原因,而集群中其他節點也可能發生類似的原因使得需要短暫的離開集群。而當節點維護好了之後,就可以重新加入集群繼續執行業務。
在本步驟中,在剛更換完配置節點之後,所述配置節點可以進一步的通過管理整個集群的權限,將待加入所述集群的節點重新加入到所述集群,使得整個集群可以更快的處理業務。
本發明實施例所提供的一種集群配置節點故障轉移的方法,可以通知整個集群在更換配置節點的時候暫定業務,以保證業務運行時不出現明顯錯誤;本發明實施例還進一步的讓原配置節點放棄管理集群的權限,以保證在後續重新將該節點加入到集群中時,不會出現腦裂的情況;本發明實施例還可以在更換配置節點的時候進一步的省略比較各個節點的參數的步驟,從而減少了更換配置節點的時間;本發明實施例還可以在剛更換完配置節點之後,將待加入所述集群的節點重新加入到所述集群,使得整個集群可以更快的處理業務。
下面對本發明實施例提供的一種集群配置節點故障轉移系統進行介紹,下文描述的集群配置節點故障轉移系統與上述描述的集群配置節點故障轉移的方法可以相互對應參照。
請參考圖3,圖3為本發明實施例所提供的一種集群配置節點故障轉移系統的結構框圖,該系統包括集群100和集群信息資料庫200,所述集群100包括多個節點,其中原配置節點101為從多個所述節點中選出的節點,用於對所述集群100進行管理,所述集群信息資料庫200用於在所述原配置節點101離開集群100之前,存儲所述集群100中各個節點的狀態。
在本發明實施例中,所述集群100的作用是對用戶提供數據處理的業務,在整個集群100中,只有配置節點有權限對整個集群100的資源進行操作,例如將其他節點加入集群100,對存儲後端磁碟的管理等等。而在集群100中的其餘節點只能改變節點自身的狀態,例如在線或離線等等。
所述集群信息資料庫200用於在所述原配置節點101離開集群100之前,存儲有所述集群100中各個節點的狀態,其中各個節點的狀態是各個節點通過各自的同步模塊將自身當前的狀態發送至集群信息資料庫200的。關於集群信息資料庫200的詳細情況已在上述實施例中做詳細描述,在此不再進行贅述。
在本發明實施例中,由於所述集群信息資料庫200是用於在所述原配置節點101離開集群100之前,存儲所述集群中各個節點的狀態,意味著當原配置節點101在從集群信息資料庫200中選取節點時,集群信息資料庫200相當於已經提前獲取了各個節點狀態,就不用像現有技術一樣,當需要更換配置節點時再獲取各個節點的狀態,本發明從而簡化了選擇配載節點的步驟,減少了更換配置節點所用的時間。
當所述原配置節點101離開集群100時,所述原配置節點101用於將離開信息發送至所述集群100的各個節點。
在本發明實施例中,原配置節點101是通過設置在原配置節點101中的同步模塊將所述離開信息發送至集群100中各個節點,當集群100中各個節點收到所述離開信息之後,意味著此時需要更換配置節點,此時為了不讓整個集群100所處理的業務發生錯誤,通常情況下會中斷各個節點所執行的業務。
在所述原配置節點101將離開信息發送至所述集群100的各個節點之後,所述原配置節點101還用於放棄管理集群100的權限。
在通常情況下,只有當原配置節點101放棄管理集群100的權限之後,集群100中其餘節點才有權力去爭取所述管理集群100的權限。
當所述原配置節點101離開所述集群100時,所述原配置節點101用於從所述集群信息資料庫200中選取符合預設條件的在線節點作為候選配置節點102。
更具體的,所述原配置節點101具體用於:
逐個查詢所述集群信息資料庫200的緩存信息。
將查詢到的第一個在線節點作為候選配置節點102。
在本發明實施例中,所述第一個在線節點是根據原配置節點101的查詢順序所決定的。當然,除了將第一個在線節點作為候選配置節點102,還可以根據查詢的順序選取其他在線節點作為候選配置節點102,在此不做具體限定。除了僅僅根據查詢順序來確定候選配置節點102,還可以進一步添加其他的條件,詳細情況請參照上述實施例,在此不再展開描述。
所述候選配置節點102用於進行初始化以成為配置節點,對所述集群100的各個所述節點進行管理。
在本發明實施例中,所述初始化的過程相當於是獲取配置節點權限的過程,具體細節已在上述實施例中做詳細描述,在此不再進行贅述。
在所述候選配置節點102進行初始化以成為配置節點之後,所述配置節點還用於將初始化完成信息發送至所述集群100的各個所述節點。
在本發明實施例中,配置節點會通過設置在配置節點中的同步模塊將初始化完成信息發送至各個節點,當集群100中各個節點收到所述初始化完成信息之後,意味著初始化工作已經完成,此時各個節點可以繼續所中斷的業務。
所述配置節點還用於將待加入所述集群100的節點重新加入到所述集群100中。
在本發明實施例中,在剛更換完配置節點之後,所述配置節點可以進一步的通過管理整個集群100的權限,將待加入所述集群100的節點重新加入到所述集群100,使得整個集群100可以更快的處理業務。
本發明實施例的集群配置節點故障轉移系統用於實現前述的集群配置節點故障轉移的方法,因此集群配置節點故障轉移系統中的具體實施方式可見前文中的集群配置節點故障轉移方法的實施例部分,在此不再贅述。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬碟、可移動磁碟、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發明所提供的集群配置節點故障轉移的方法及系統進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。