- 相關推薦
集群組管理原理與系統的實現
歡迎瀏覽,以下是YJBYS求職網給您推薦一篇關于集群組管理原理與系統的實現的計算機應用畢業論文
摘要:集群系統的出現允許用戶把普通商用硬件系統組成集群,并根據需要隨時在集群中增加新的硬件,提高了系統的伸縮性和可用性,從而能夠在價格相對低廉的中低端平臺上享用過去只有高端系統才具備的高可伸縮性和高可用性,既提高了系統的性能,同時也降低了成本。因此,集群成為了高性能計算領域矚目的焦點。
引言
隨著Internet商業服務的飛速發展,服務系統的可用性程度對服務提供者的商業利益具有重大的影響。同時,由于通過計算機服務系統提供的服務內容和服務范圍都在不斷擴大,計算機服務系統的規模也需不斷擴大,現有的小規模的高可用系統己經難以滿足這樣大規模計算機系統對高可用性支持的需求。因此研究可擴展的高可用集群系統十分重要。
1、心跳技術
失效監測是所有高可用性的基礎,如何才能做到盡快、盡可能準確地對節點的失效進行監測,這需要有一個好的模型。
心跳模型被廣泛應用于2~8個節點的小規模集群中。相對于上百個節點的大規模集群來說,小規模的集群使用心跳模型監測,對系統造成的負荷較小,并且小規模集群的網絡帶寬大、速度較快、延遲較小,這樣心跳模型可以作出較為精確的判斷。當心跳模型應用于兩個服務器的集群時,兩個服務器采用活動/備份,或者活動/活動集群模型工作,它們之間使用心跳模型進程相互監測,這個框架應用得相當普遍。但是當集群的節點數大于2的時候,心跳模型同樣也能較好的保證準確、迅速地對失效節點作出判斷。
2、集群組管理原理
(1)節點加入:每一個節點在啟動的時候,會讀取自身的配置文件,配置文件中包括節點ID號,自身IP地址,多播IP地址和端口號,初始化消息和自身節點。接著會周期性地發送
加入請求消息,直到收到其他節點的加入確認消息。
(2)節點的離開/故障:首先需要監控節點的狀態,是通過對方發送的心跳消息來監測的,即如果在三個周期內沒有收到某節點的心跳消息,則認為它離開了或出現故障了。這里有兩種情況:一是備份節點的離開/故障,直接將該節點從節點列表中刪除即可。二是主節點的離開/故障,那么需要重新從剩余的節點中選擇一個新的主節點,選擇策略很簡單,即從剩余節點中選擇一個ID號最小的為新主節點,并刪除離開或出現故障的主節點。
(3)正常運行:由于節點正常運行,它會周期性的發送心跳消息,標識自己的存在,那么其他節點會周期性的收到該節點的心跳消息,從而維護著一個集群節點列表。
3、集群組管理系統的實現
3.1 節點加入前的準備工作
每一個節點都有一個配置文件configure.file,存放在./config目錄下。前面定義了節點類型,消息類型,在節點啟動的時候,首先讀取配置文件(主要由函數read_profile( )實現),將配置信息:節點ID號,自身IP地址,多播IP地址和端口號等初始化自身節點和待發送的消息,并將自身節點首先加入到節點列表中。
3.2線程同步的實現
一個進程中的所有線程共享相同的全局內存,這使得線程很容易共享信息,但是這種簡易性也帶來了同步(synchronization)問題。一個進程中的所有線程不僅共享全局變量,而且共享:進程指令、大多數數據、打開的文件(如描述字)、信號處理程序和信號設置、當前工作目錄、用戶ID和組ID。現實中,涉及到多個線程同時運行,比如gm_listener線程,它負責監控接收到的多播消息,并作相應的處理,比如收到加入消息判斷是否在節點列表中,不在則將之加入,并發送加入確認消息,收到加入確認消息,判斷是否在節點列表中,不在則將之加入,收到心跳信息,則將對應節點標志變量加一。heartbeater線程,通過對狀態的查詢每隔一個心跳周期發送加入請求消息或心跳消息,add_flag線程對標識每個節點的狀態的標志變量flag作周期性的減一操作,而test線程周期性的對每個列表中的節點檢測標志變量是否小于0,也即是列表中的節點是否失效或離開。
4、結果測試與分析
為了跟蹤消息來源,每次都將收到的消息、類型、發送節點的IP地址、角色、狀態都在控制臺顯示出來,以便分析程序中的問題。而且也在每次test線程執行一次檢測后輸出整個節點列表,這樣有助于了解哪些節點加入進來了,哪些節點離開或失效了。
實驗的過程主要通過結束集群管理進程來模擬節點的失效或離開,通過啟動某節點的集群管理進程來模擬節點的加入,正常運行的進程來模擬節點正常運行。為此設計了以下幾個測試用例:
(1)第一個啟動的節點的確立。在集群組中還沒有成員的情況下,第一個啟動的節點自動成為主節點,后來啟動的節點為備份節點。實驗過程為:啟動其中任何一個節點集群管理程序,接著啟動其他節點集群管理程序。實驗結果與預期一致。
第一個啟動4號節點,實驗截圖如圖1:
圖 1 第一個啟動的節點默認為主節點
(2)節點的加入。其實這個過程已經在上述測試用例中達到了目的。新加入的節點按預期的要求加入到集群組中,并維護著統一的成員列表。
6、總結
在商業和科學領域,集群管理還涉及到許多其他的內容,因此針對一些具體的應用,還有很多的不足。我覺得可以從以下方面來考慮:
(1) 建立一個對集群節點信息的詳細監控。比如針對機柜系統環境、每節點硬件配置情況、每節點電壓、各部件溫度、風扇轉速等硬件狀態、系統CPU、內存、網絡使用情況等,可指定節點,也可以圖形方式對各節點的單項數據進行對比。以便針對具體故障進行處理。
(2) 事件服務。系統管理員應該能夠通過事件服務設置系統對事件的自動響應。
(3)基于網絡的管理:重起,關機;基于串口的管理:開電源、關電源、硬件重監測、控制臺重定向。
(4)實現任務分發,負載均衡,高可用性。
(5)開發友好的管理界面,提高管理的安全性和方便性。
參考文獻:
[1] 胡慶平.新型心跳監測技術的研究與實現.華中科技大學.2004:31~44
[2 萬春.基于linux數據庫集群系統的研究.華中科技大學.2004
[3] 李英壯,李先毅等.基于linux的集群管理系統設計與實現[J].大連理工大學學報.2003,12:168~170
【集群組管理原理與系統的實現】相關文章:
工資管理系統設計與實現論文11-30
學生成績管理系統的設計與實現03-18
科研項目管理系統的設計與實現03-06
論科研項目管理系統的設計與實現03-02
淺析物流倉儲管理系統的設計與實現論文11-28
物流企業管理系統的設計與實現11-17
關于設計管理系統信息需求的分析與實現03-03
學習管理系統及其標準化實現03-18
供應鏈系統管理原理研究12-07