專利名稱:實現機群監控系統使用多種數據庫系統的方法和裝置的制作方法
技術領域:
本發明涉及計算機機群監控,具體涉及實現機群監控系統使用多種數據庫系統的方法和裝置。
在機群的監控系統中,需要監控每個結點機的若干內容,每一項監控的內容都需要采集大量的數據,通過對這些數據的處理進行機群的狀態監控。這些數據主要包括結點機CPU溫度、風扇、電壓、利用率、機箱風扇、溫度、內存利用率、進程數目、用戶數目、機柜電壓、機柜電流和機柜功率等硬件信息和軟件信息,每類信息又存在上限和下限,每類數據都要保存歷史數據。
隨著機群內結點機數目的增多,監控系統需要處理的監控數據也非常多。如果對這些監控數據非常有效的處理,就必須需要數據庫進行支持,采用數據庫解決數據上下限的比較計算,數據排序,數據列表插入等快速的操作。總的來講,數據庫需要記錄歷史數據的有三類信息結點機和機柜的硬件信息、結點機的軟件信息、報警事件信息。即使不考慮報警事件,前兩類信息對每個結點(總共256個結點)來說有四十個左右的數據。按照保存1000條歷史數據來算,數據庫中的結點信息表需要保存的數據量為256*40*1000=1024萬個,這個量相當龐大,只有使用數據庫而且很好設計的數據庫才能解決。
在機群監控系統中,目前采用的數據庫存在主要存在以下缺陷1)數據庫單一對機群監控系統數據進行管理的數據庫采用一種數據庫,比較常用的是MySQL和Oracle,一般采用其中的一種數據庫。MySQL數據庫占用的資源比較小,處理速度比較快。當機群的結點機的數據較小時(小于64個結點),采用該數據庫效率比較高。又因為MySQL數據庫是免費的產品,這對用戶使用來講意味著低成本的投入。但是當機群的結點數目大于64結點,隨著結點機數目的增多,監控數據量的加大,該數據庫的效率不佳。Oracle數據庫主要對于大型數據庫的開發利用,是用該數據庫對用戶來講,占用的資源較大,而且用戶需要支付昂貴的版權使用費用,這意味著用戶的使用成本升高,應用于較小機群時,使用該數據庫是資源的浪費。但是Oracle數據庫性能非常好,系統穩定健壯,對于結點越多的機群,采用Oracle數據庫則更能發揮其性能。從監控系統的統一性來講,如果不考慮機群的規模而采用單一的數據庫方式總是存在著性能和價格的不平衡問題。2)多種數據庫不能有效兼容鑒于目前業界監控系統數據庫的單一,監控系統要么支持MySQL數據庫,要么支持Oracle數據庫,很難做成同時支持兩種以上的數據庫,也不能根據用戶要求的機群結點數目進行選擇方便使用,不能有效的給用戶帶來最佳的性能和價格。不同數據庫支持的監控系統,監控系統難于統一,很難從支持的一種數據庫轉換到另一種數據庫的支持。
數據庫裝置,用于根據選擇的數據庫,由所述判斷控制裝置安裝所述數據庫及數據庫接口到該數據庫裝置,實現所述選擇的數據庫的功能;機群結點數據采集命令接口裝置,耦合到基本服務提供者(BSP)裝置,用于與機群各結點進行數據和命令交互;通用控制裝置,用于執行所述至少兩種數據庫通用部分的控制和數據交互,耦合到所述數據庫裝置,使用所述確定的數據庫,所述通用控制裝置還耦合到基本服務提供者裝置,以通過機群結點數據采集命令接口裝置,用于控制與實現所述機群監控系統與機群各結點進行數據和命令交互。
可選地,所述判斷控制裝置包括比較器,用于比較所述機群中的結點數是否大于第一預定值,所述結點數通過所述基本服務提供者裝置獲得。
優選地,所述通用控制裝置包括應用程序接口(API)函數裝置,其中,包括執行所述系統要使用的至少兩種數據庫中的通用功能的裝置。
可選地,所述數據庫裝置包括執行MySQL數據庫功能的MySQL數據庫裝置或執行Oracle數據庫功能的Oracle數據庫裝置,用于由所述BSP調用。
優選地,所述裝置還包括圖形化機群監控信息顯示裝置,用于顯示所述基本服務提供者裝置采集的數據和監控命令。
可選地,所述API函數裝置包括連接數據庫裝置,用于連接所述數據庫裝置;BSP插入數據裝置,用于插入BSP采集的數據;其中,所述BSP插入數據裝置包括清空或者重置所有的數據表裝置,用于準備BSP中要使用的插入語句;結構參數裝置,用于插入靜態的配置參數數據;結構參數數組裝置,用于循環插入每個結點的采集的數據;GCM查詢數據裝置用于檢索采集的數據;其中包括查詢語句準備裝置,用于對GCM中要使用的查詢語句進行準備;檢索采集數據裝置,用于從數據庫中檢索結點最新的采集數據。
優選地,所述連接數據庫裝置在使用Oracle數據庫時,調用連接數據庫函數int ConnDb();使用MySQL數據庫時,調用數據庫連接函數EXEC SQL CONNECTusername IDENTIFIED BYpassword;(其中參數是用戶名username和用戶密碼password);所述清空或者重置所有的數據表裝置在使用Oracle數據庫時,調用準備插入函數int PrepareInsert();使用MySQL數據庫時,調用EXEC SQL PREPARE S FROMsqlstmt來獲取數據庫上下文信息。
本發明還提供一種實現機群監控系統使用多種數據庫系統的方法,包括步驟預存儲所述機群監控系統要使用的至少兩種數據庫安裝軟件與驅動程序;采集機群的狀態數據;根據所述采集的機群的狀態數據,判斷機群的結點的狀態,根據機群的結點的狀態,確定機群要采用的所述至少兩種數據庫之一的數據庫,啟動安裝所述數據庫。
可選地,所述采集的機群的狀態數據的步驟包括獲取機群的結點數;所述判斷機群的結點的狀態的步驟包括比較所述機群中的結點數是否大于第一預定值。
優選地,所述方法還包括步驟安裝所述至少兩種數據庫通用的函數和控制命令于所述機群監控系統中。
利用本發明,供應商可以生產出任意適用的機群系統,在用戶安裝時,根據用戶的機群特點,自動生成適用的數據庫,節約了人力成本,提高了系統的通用性,雖然增加了存儲器的容量要求,但目前存儲器的成本是非常低的。
為了便于本領域一般技術人員理解和實現本發明,現結合附圖描繪本發明的實施例。
參照
圖1和圖2,圖1示出了本發明的實現機群監控系統兼容多種數據庫系統的裝置的原理框圖。圖2描繪監控裝置采用Oracle數據庫的系統結構。
本發明的實施例中,實現機群監控系統兼容多種數據庫系統的裝置包括存儲裝置10,其中包括非易失性存儲器,存儲有MySQL數據庫和Oracle數據庫安裝軟件與驅動程序,以便在用戶的機群的參數變化時,選擇并安裝適用的數據庫,如果原來已有數據庫,且要安裝的數據庫與原來的不一樣,先卸載原來的數據庫。在本發明的實施例中,實現機群監控系統兼容多種數據庫系統的裝置還包括基本服務提供者(BSP)裝置15,用于實現對機群中每個結點機的數據采集。BSP裝置15定時向機群的每個結點采集數據;同時,將上層界面的控制機群結點的信息發送給各個結點機執行,比如操作系統停止、結點機的開機和關機等操作,都要BSP裝置15傳遞完成。在本發明的實施例中,監控裝置中還包括判斷裝置20,用于判斷機群的結點數,在判斷裝置20發現機群的結點數目小于64結點,系統要采用MySQL(中文)數據庫。本領域一般技術人員知道,雖然本發明用結點數判斷,實際上也可以用其它判斷準則。
實現機群監控系統兼容多種數據庫系統的裝置還包括控制裝置25,以根據判斷裝置20的結果,確定要采用的數據庫,如果判斷裝置20的結果確定采用MySQL數據庫,控制裝置25調用存儲的MySQL數據庫安裝軟件與驅動程序,將MySQL數據庫安裝在系統中的存儲裝置10中。控制裝置25還根據安裝的MySQL數據庫,在API控制裝置30中安裝調用MySQL數據庫的程序,以使API控制裝置30與MySQL數據庫40通過安裝的MySQL數據庫接口35實現信息交互。采用Oracle數據庫的方法類似,除MySQL數據庫40和MySQL數據庫接口35變為Oracle數據庫60通過安裝的Oracle數據庫接口55外,其結構與流程相似,為簡化見,不再描述。
為了做到監控系統能夠兼容不同的數據庫,不同的數據庫采用不同的數據庫接口的同時,在接口設計上盡可能采用一致的數據結構形式都采用數據庫連接函數int ConnDb()實現,使得數據庫上層的軟件改動最小。在本發明的實施例中,無論采用那種數據庫,監控裝置的BSP裝置端的接口是相同的。當監控裝置采用MySQL數據庫時,就使用MySQL數據庫的接口;當監控系統采用Oracle數據庫時,就使用Oracle數據庫接口。不同的數據接口都通過不同的存儲有API函數的API裝置進行調用。
數據庫的訪問流程是,機群提供的監控信息發送給BSP裝置,再將信息通過API裝置實現數據庫的操作。
本發明的裝置還可包括圖形化機群監控信息顯示(GraphicControl Monitor,GCM)裝置80在本發明的實施例中這是基于LINUX操作系統開發的,顯示監控系統的監控數據,便于直觀的進行數據的監控和查詢。
下面描繪具體應用數據庫時,各裝置的工作過程。監控裝置采用Oracle數據庫時,數據庫與BSP的接口如下。
本發明的數據庫的設計考慮達到如下目標數據插入盡可能快;查詢響應盡可能快;系統穩定可靠。Oracle數據庫實現機群結點采集信息的存儲,報警機制相關信息的存儲,機群狀態和配置信息的存儲,以及各裝置間大量互操作的日志紀錄。采用Oracle數據庫60,對BSP采集到的信息保存到數據庫中。GCM裝置80需要顯示數據的時候,從數據庫60中檢索記錄。
結點的采集信息對數據庫的主要操作有BSP對數據庫的插入操作,GCM對數據庫的查詢操作。這兩種操作中,首先保證BSP的插入操作高效實現,因為監控數據量很大。通過設計結點信息表來實現結點信息數據的保存。BSP插入數據到結點信息表,為了加快這一步驟,結點信息表不能加索引或加少量索引。
下面介紹BSP數據的插入接口,該接口在API函數裝置中和GCM的調用接口,接口的操作是基于數據庫Oracle。
BSP插入接口主要是快速插入新的采集數據接口函數1)int ConnDb()功能連接數據庫;在設計時,設置該函數是為了考慮在有連接斷開的時候重新調用該函數連接。
在SQL中的處理語句為EXEC SQL CONNECTusername IDENTIFIED BYpassword;變量說明username用戶名,password用戶密碼操作關鍵字EXEC SQL CONNECT,IDENTIFIED BY2)int PrepareInsert()功能清空或者重置所有的數據表;對BSP中要使用的插入語句進行prepare(準備);SQL處理語句EXEC SQL PREPARE S FROMsqlstmt;變量說明sqlstmt數據庫上下文操作關鍵字EXEC SQL PREPARE S FROM3)int InsertStaticPara(結構參數)功能插入靜態的配置參數數據SQL處理語句INSERT INTO PARA_STATICVALUES(V1,V2,V3V4,V5,V6,V7,…);參數變量V1~V7,調用參數值。4)int InsertComPara(結構參數數組,數組長度)功能循環插入每個結點的485采集的數據。說明在結構的開始有一個成員變量,可以知道是進入新的一輪采集。當發現是新的一輪采集信息的時候,就把time_id的數值加1,表示進入新的一輪采集。SQL處理語句
INSERT INTO FARA_COMVALUES(V1,V2,V3V4,V5,V6,V7,…)5)int Inser tNetPara(結構參數數組,數組長度)功能循環插入每個結點的ethenet采集的數據。
插入該機柜的采集數據;說明在結構的開始有一個成員變量,可以知道是進入新的一輪采集。當發現是新的一輪采集信息的時候,就把time_id的數值加1,表示進入新的一輪采集。SQL處理語句INSERT INTO PARA_NETVALUES(V1,V2,V3V4,V5,V6,V7)GCM查詢數據主要是快速檢索最新的采集數據。
接口函數1)int ConnDb()功能連接數據庫;說明單獨設置它是為了考慮在有連接斷開的時候重新調用該函數連接。
2)int PrepareSelect()功能對GCM中要使用的查詢語句進行prepare;SQL處理語句EXEC SQL PREPARE S FROMsqlstmt;3)int SelectNewestNodePara(結構參數數組)功能從數據庫中檢索結點最新的采集數據說明這里處理要使用游標從數據庫中檢索記錄。因為每檢索一次,都要從數據庫中得到256個結點的所有信息。這樣可以減少各種圖表或者其他顯示的窗口查詢數據庫的必要。
由于存在這樣一種可能,在檢索的瞬間,一個job把當前數據表的所有數據插入到歷史數據表中,同時立即快速truncate當前數據表。所以檢索數據的時候,必須考慮同時到當前數據表和歷史數據表中查找最新的數據。
由于把串口采集的數據和ethenet采集的數據分開在2個表中,這個檢索過程需要處理數據表的連接操作。SQL處理語句EXEC SQLSELECT PARA_STATIC.NODE_ID,CACHE_SIZE,MEMORY_SIZE,CPU_FREQUENCY,CPU_COUNT,CPU1_USAGE,CPU2_USAGE,MEMORY_USAGE,NET_USAGE,DISK_SPEED,NET_FLOW,USER_COUNT,PROCESS_COUNT,CPU1_TEMPERATURE,CPU1_VOLTAGE,CPU1_FAN_SPEED,CPU2_TEMPERATURE,CPU2_VOLTAGE,CPU2_FAN_SPEED,BOX_TEMPERATURE,MEMORY_VOLTAGE,SYS_FAN1_SPEED,SYS_FAN2_SPEED,SYS_FAN3_SPEED,HD_5VOLTAGE,HD_12VOLTAGE,NODE_33VOLTAGE,NODE_5VOLTAGE,NODE_12VOLTAGEFROM PARA_STATIC,PARA_NET,PARA_COMWHERE PARA_NET.TIME_ID=V_TIME_IDANDPARA_COM.TIME_ID=V_TIME_ID ANDPARA_STATIC.NODE_ID=PARA_NET.NODE_IDANDPARA_NET.NODE_ID=PARA_COM.NODE_ID4)int SelectNewestCabPara(結構參數數組)功能從數據庫中檢索機柜最新的采集數據說明由于機柜的采集信息是單獨保存在一個表中的,同時機柜和結點之間也不存在一一對應的關系,所以單獨設置一個檢索函數。
這個檢索函數也可以包含在上面的函數中。
同上面一樣,這里也需要使用游標來檢索數據。SQL處理語句EXEC SQLSELECT CAB_ID,CAB_VOLTAGE,CAB_IFROM PARA_CABWHERE TIME_ID=V_TIME_ID;
圖3示出本發明的實施例中實現機群監控系統兼容多種數據庫系統的方法的流程圖。其中,包括步驟預存儲所述機群監控系統要使用的至少兩種數據庫安裝軟件與驅動程序;采集的機群的狀態數據;根據所述采集的機群的狀態數據,判斷機群的結點的狀態,根據機群的結點的狀態,確定機群要采用的所述至少兩種數據庫之一的數據庫,啟動安裝所述數據庫;安裝所述至少兩種數據庫通用的函數和控制命令于所述機群監控系統中。
其中,所述采集的機群的狀態數據的步驟包括獲取機群的結點數;所述判斷機群的結點的狀態的步驟包括比較所述機群中的結點數是否大于第一預定值。
利用本發明,供應商可以生產出任意適用的機群系統,在用戶安裝時,根據用戶的機群特點,自動生成適用的數據庫,節約了人力成本,提高了系統的通用性,雖然增加了存儲器的容量要求,但目前存儲器的成本是非常低的。
雖然通過實施例描繪了本發明,本領域普通技術人員知道,本發明有許多變形和變化而不脫離本發明的精神,希望所附的權利要求包括這些變形和變化而不脫離本發明的精神。
權利要求
1.一種實現機群監控系統使用多種數據庫系統的裝置,包括存儲裝置,存儲有所述機群監控系統要使用的至少兩種數據庫安裝軟件與驅動程序,以便在用戶的機群的狀態變化時,選擇適用的數據庫;基本服務提供者(BSP)裝置,用于實現對機群中每個結點機的數據采集,并將上層界面的控制機群結點的信息發送給各個結點,其中,采集的數據存儲于選擇的數據庫中;判斷控制裝置,用于判斷機群的結點的狀態,根據機群的結點的狀態,確定機群要采用的所述至少兩種數據庫之一的數據庫,并控制安裝所述數據庫;數據庫裝置,用于根據選擇的數據庫,由所述判斷控制裝置安裝所述數據庫及數據庫接口到該數據庫裝置,實現所述選擇的數據庫的功能;機群結點數據采集命令接口裝置,耦合到基本服務提供者(BSP)裝置,用于與機群各結點進行數據和命令交互;通用控制裝置,用于執行所述至少兩種數據庫通用部分的控制和數據交互,耦合到所述數據庫裝置,使用所述確定的數據庫,所述通用控制裝置還耦合到基本服務提供者裝置,以通過機群結點數據采集命令接口裝置,用于控制與實現所述機群監控系統與機群各結點進行數據和命令交互。
2.如權利要求1所述的裝置,其中,所述判斷控制裝置包括比較器,用于比較所述機群中的結點數是否大于第一預定值,所述結點數通過所述基本服務提供者裝置獲得。
3.如權利要求1所述的裝置,其中,所述通用控制裝置包括應用程序接口(API)函數裝置,其中,包括執行所述系統要使用的至少兩種數據庫中的通用功能的裝置。
4.如權利要求1或3所述的裝置,其中,所述數據庫裝置包括執行MySQL數據庫功能的MySQL數據庫裝置或執行Oracle數據庫功能的Oracle數據庫裝置,用于由所述BSP調用。
5.如權利要求1所述的裝置,還包括圖形化機群監控信息顯示裝置,用于顯示所述基本服務提供者裝置采集的數據和監控命令。
6.如權利要求4所述的裝置,其中,所述API函數裝置包括連接數據庫裝置,用于連接所述數據庫裝置;BSP插入數據裝置,用于插入BSP采集的數據;其中,所述BSP插入數據裝置包括清空或者重置所有的數據表裝置,用于準備BSP中要使用的插入語句;結構參數裝置,用于插入靜態的配置參數數據;結構參數數組裝置,用于循環插入每個結點的采集的數據;GCM查詢數據裝置用于檢索采集的數據;其中包括查詢語句準備裝置,用于對GCM中要使用的查詢語句進行準備;檢索采集數據裝置,用于從數據庫中檢索結點最新的采集數據。
7.如權利要求6所述的裝置,其中,所述連接數據庫裝置在使用Oracle數據庫時,調用連接數據庫函數int ConnDb();使用MySQL數據庫時,調用數據庫連接函數EXEC SQL CONNECTusername IDENTIFIED BYpassword(其中參數是用戶名username和用戶密碼password);所述清空或者重置所有的數據表裝置在使用Oracle數據庫時,調用準備插入函數int PrepareInsert();使用MySQL數據庫時,調用EXEC SQL PREPARE S FROMsqlstmt來獲取數據庫上下文信息。
8.一種實現機群監控系統使用多種數據庫系統的方法,包括步驟預存儲所述機群監控系統要使用的至少兩種數據庫安裝軟件與驅動程序;采集機群的狀態數據;根據所述采集的機群的狀態數據,判斷機群的結點的狀態,根據機群的結點的狀態,確定機群要采用的所述至少兩種數據庫之一的數據庫,啟動安裝所述數據庫。
9.如權利要求8所述的方法,其中,所述采集的機群的狀態數據的步驟包括獲取機群的結點數;所述判斷機群的結點的狀態的步驟包括比較所述機群中的結點數是否大于第一預定值。
10.如權利要求8所述的方法,還包括步驟安裝所述至少兩種數據庫通用的函數和控制命令于所述機群監控系統中。
全文摘要
本發明提供一種實現機群監控系統使用多種數據庫的裝置,包括存儲裝置,存儲有所述機群監控系統要使用的至少兩種數據庫;基本服務提供者裝置,用于實現對結點機的數據采集,并發送上層界面的信息;判斷控制裝置,用于判斷機群的結點的狀態;數據庫裝置,實現所述選擇的數據庫的功能;機群結點數據采集命令接口裝置,用于與機群各結點進行數據和命令交互;通用控制裝置,用于執行所述至少兩種數據庫通用部分的控制和數據交互,控制與實現所述機群監控系統與機群各結點進行數據和命令交互。利用本發明,供應商可以生產出任意適用的機群系統,在用戶安裝時,根據用戶的機群特點,自動生成適用的數據庫,節約了人力成本,提高了系統的通用性。
文檔編號G06F11/30GK1475906SQ0314628
公開日2004年2月18日 申請日期2003年7月8日 優先權日2003年7月8日
發明者金正操, 程菊生, 蔣曉華, 崔吉順, 田宏萍, 彭濤 申請人:聯想(北京)有限公司