本發(fā)明涉及計算機領(lǐng)域技術(shù)領(lǐng)域,特別是涉及一種集群系統(tǒng)的軟件升級方法和系統(tǒng)。
背景技術(shù):
隨著軟件工程的飛速發(fā)展,軟件迭代開發(fā)速度較快,交付給用戶的產(chǎn)品需要不斷的進(jìn)行升級以獲取新功能。
目前,傳統(tǒng)的升級方案是從網(wǎng)上下載升級包,升級包中包括需要更新的軟件包,對軟件包進(jìn)行替換以完成升級要求;這些方法需要不斷的打擾用戶,讓用戶判斷各種升級類型,并且升級完成后需要提示用戶重啟系統(tǒng)以重新啟動服務(wù)。在單純的單個計算機系統(tǒng)中進(jìn)行這種升級,對用戶的打擾可以忍受;但是隨著計算機集群的不斷增大,例如一個計算機集群達(dá)到上千臺計算機,這時對用戶的任何一次打擾都會倍級增長。因此,采用自動升級的方法,解決計算機集群中所有計算機的批量升級。常見的有批量部署工具如pssh、dsh和puppet,能夠批量執(zhí)行升級命令,但是需要系統(tǒng)管理員提前配置管理環(huán)境,并不適用于產(chǎn)品對外進(jìn)行推廣。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供了一種集群系統(tǒng)的軟件升級方法和系統(tǒng),減少了系統(tǒng)管理員必須實現(xiàn)的配置操作,提高了運維的效率,減少了系統(tǒng)管理員運維失誤的可能性,增加了產(chǎn)品的可靠性。
為解決上述技術(shù)問題,本發(fā)明實施例提供了一種集群系統(tǒng)的軟件升級方法,包括:
步驟1,對集群中的節(jié)點分發(fā)升級包;
步驟2,檢查所述升級包是否簽名且完整;
若是,步驟3,對所述節(jié)點進(jìn)行升級前操作,預(yù)備升級,若否,步驟4,禁止升級并返回原因;
步驟5,對完成所述升級前操作的所述節(jié)點開啟事務(wù)并進(jìn)行升級。
其中,所述步驟3,包括:
對所述節(jié)點保存數(shù)據(jù)和停止服務(wù)。
其中,在所述步驟5之后,還包括:
步驟6,判斷所述節(jié)點是否升級成功;
若是,步驟7,關(guān)閉所述事務(wù)并進(jìn)行升級后操作,若否,步驟8,關(guān)閉所述事務(wù)并返回升級失敗原因。
其中,所述步驟7,包括:
檢查并開啟所述停止的服務(wù)。
其中,在所述步驟7之后,還包括:返回升級成功的消息。
其中,在所述步驟7之后,還包括:
判斷是否在管理界面顯示所述升級成功的消息;
若否,重新登錄所述管理界面,顯示所述升級成功的消息。
除此之外,本發(fā)明實施例還提供了一種集群系統(tǒng)的軟件升級系統(tǒng),包括:
升級包檢測模塊,用于檢測升級包是否簽名和完整;
升級管理模塊,與所述升級包檢測模塊連接,用于接收驗簽成功的升級包并發(fā)送到待升級的集群的節(jié)點;
升級事務(wù)模塊,與所述升級管理模塊連接,接收所述驗簽成功的升級包,并進(jìn)行升級前操作,保存數(shù)據(jù)、停止服務(wù),開啟事務(wù)進(jìn)行升級。
其中,還包括:
驗簽失敗反饋模塊,與所述升級包檢測模塊連接,在所述升級包驗簽失敗后返回失敗原因。
其中,還包括:
升級結(jié)果判斷模塊,與所述升級事務(wù)模塊連接,判斷本次升級是否成功,若否,關(guān)閉所述事務(wù)并返回升級失敗原因,若是,關(guān)閉所述事務(wù),進(jìn)行升級后操作,檢查并開啟停止的所述服務(wù)。
其中,還包括:
升級成功反饋模塊,與所述升級結(jié)果判斷模塊連接,在所述升級結(jié)果判斷模塊判斷本次升級成功之后,返回并顯示升級成功的消息。
本發(fā)明實施例所提供的集群系統(tǒng)的軟件升級方法和系統(tǒng),與現(xiàn)有技術(shù)相比,具有以下優(yōu)點:
本發(fā)明實施例提供的集群系統(tǒng)的軟件升級方法,包括:
步驟1,對集群中的節(jié)點分發(fā)升級包;
步驟2,檢查所述升級包是否簽名且完整;
若是,步驟3,對所述節(jié)點進(jìn)行升級前操作,預(yù)備升級,若否,步驟4,禁止升級并返回原因;
步驟5,對完成所述升級前操作的所述節(jié)點開啟事務(wù)并進(jìn)行升級。
本發(fā)明實施例還提供的集群系統(tǒng)的軟件升級系統(tǒng),包括:
升級包檢測模塊,用于檢測升級包是否簽名和完整;
升級管理模塊,與所述升級包檢測模塊連接,用于接收驗簽成功的升級包并發(fā)送到待升級的集群的節(jié)點;
升級事務(wù)模塊,與所述升級管理模塊連接,接收所述驗簽成功的升級包,并進(jìn)行升級前操作,保存數(shù)據(jù)、停止服務(wù),開啟事務(wù)進(jìn)行升級。
所述集群系統(tǒng)的軟件升級方法和系統(tǒng),通過采用分發(fā)機制將升級包分發(fā)到各個節(jié)點中單獨進(jìn)行升級,并通過驗證簽名保證了升級包的可靠性,與現(xiàn)有技術(shù)相比較,減少了系統(tǒng)管理員必須實現(xiàn)的配置操作,提高了運維的效率,減少了系統(tǒng)管理員運維失敗的可能性,增加了產(chǎn)品的可靠性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級方法的一種具體實施方式的步驟流程示意圖;
圖2為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級方法的另一種具體實施方式的步驟流程示意圖;
圖3為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級系統(tǒng)的一種具體實施方式的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級系統(tǒng)的另一種具體實施方式的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參考圖1~4,圖1為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級方法的一種具體實施方式的步驟流程示意圖;圖2為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級方法的另一種具體實施方式的步驟流程示意圖;圖3為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級系統(tǒng)的一種具體實施方式的結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例提供的集群系統(tǒng)的軟件升級系統(tǒng)的另一種具體實施方式的結(jié)構(gòu)示意圖。
在一種具體實施方式中,所述集群系統(tǒng)的軟件升級方法,包括:
步驟1,對集群中的節(jié)點分發(fā)升級包;系統(tǒng)管理員通過管理界面查詢升級包進(jìn)行升級,選擇特定的需要升級節(jié)點進(jìn)行升級包的分發(fā),這一步驟通過管理員完成。
步驟2,檢查所述升級包是否簽名且完整;通過節(jié)點內(nèi)部自動調(diào)用系統(tǒng)命令,驗證升級包的可靠性,保證整個升級過程的可靠性,按照升級包中規(guī)范進(jìn)行升級操作。
若是,步驟3,對所述節(jié)點進(jìn)行升級前操作,預(yù)備升級,若否,步驟4,禁止升級并返回原因;在升級包到達(dá)節(jié)點之后,升級之前,需要進(jìn)行升級前操作,需要暫停當(dāng)前的一些服務(wù),保證升級過程快速高效進(jìn)行,保證本次升級不會出現(xiàn)數(shù)據(jù)丟失。只有升級包簽名且完整,才會進(jìn)行升級,保證了升級的可靠性,否則需要返回禁止升級的原因,找到不能升級的原因,以供管理員判斷。
步驟5,對完成所述升級前操作的所述節(jié)點開啟事務(wù)并進(jìn)行升級。在完整升級前操作,保證系統(tǒng)數(shù)據(jù)完整之后,開啟事務(wù)進(jìn)行升級,檢查并安裝升級包中的rpm包,進(jìn)行升級。
主要適用于類unix操作系統(tǒng),如linux系統(tǒng)的各個發(fā)行版。
本發(fā)明中,對于檢查所述升級包是否簽名且完整,可以是在講升級包分發(fā)到節(jié)點之后,由節(jié)點獨立完整,也可以在分發(fā)之前,進(jìn)行操作,本發(fā)明對其不作限定。本發(fā)明中的各個升級節(jié)點在升級過程中是互相獨立不干擾的,提升了升級速度和效率。
通過采用分發(fā)機制將升級包分發(fā)到各個節(jié)點中單獨進(jìn)行升級,并通過驗證簽名保證了升級包的可靠性,與現(xiàn)有技術(shù)相比較,減少了系統(tǒng)管理員必須實現(xiàn)的配置操作,提高了運維的效率,減少了系統(tǒng)管理員運維失敗的可能性,增加了產(chǎn)品的可靠性。
本發(fā)明中,在判斷升級包可靠之后,需要保證此次升級過程,不會使得節(jié)點中的數(shù)據(jù)發(fā)生丟失,保證升級的可靠性,更近一步,為了提高升級效率,減少升級時間,停止節(jié)點中的服務(wù),因此在本發(fā)明的一個實施例中,所述步驟3,包括:
對所述節(jié)點保存數(shù)據(jù)和停止服務(wù)。
需要指出的是,在本發(fā)明中的升級前操作,是節(jié)點進(jìn)行升級自保護的措施,包括但不局限于保存數(shù)據(jù)和停止服務(wù)。
而在升級之后,為了進(jìn)一步獲取節(jié)點的升級是否有效,在本發(fā)明的一個實施例中,在所述步驟5之后,還包括:
步驟6,判斷所述節(jié)點是否升級成功;
若是,步驟7,關(guān)閉所述事務(wù)并進(jìn)行升級后操作,若否,步驟8,關(guān)閉所述事務(wù)并返回升級失敗原因。
本發(fā)明中的事務(wù),專指升級對應(yīng)的事務(wù),由系統(tǒng)內(nèi)部自動操作完成。在需要升級時,自動開啟,在完成升級后,自動關(guān)閉。
通過判斷節(jié)點的升級是否成功,判斷本次升級是否可靠、有效,由系統(tǒng)內(nèi)部自動操作完成,無需管理員人工檢查,提高了升級的質(zhì)量。如果升級失敗,節(jié)點會返回升級失敗原因,使得管理員可以有針對性的進(jìn)行二次升級,而無需管理員進(jìn)行分析升級失敗的原因,提高了升級效率。
在一實施例中,所述步驟7,包括:
檢查并開啟所述停止的服務(wù)。
需要指出的是,本發(fā)明中通過在升級后自動重啟升級前關(guān)停的服務(wù),使得生個升級過程中,升級優(yōu)先,將正在運行的服務(wù)停止,提高了升級的效率,在升級之后再次重啟服務(wù),保證了升級不會使得原油的服務(wù)消失,避免了管理員需要人工重啟服務(wù)的操作,減少了升級帶來的負(fù)面影響。
為進(jìn)一步快速判斷升級是否成功,在本發(fā)明的一個實施例中,在所述步驟7之后,還包括:返回升級成功的消息。
通過直接觀察是有升級成功的消息,判斷升級是否完成和成功,需要指出的是,本發(fā)明對于升級成功的消息不作具體限定。
在本發(fā)明中,管理界面中集群中節(jié)點返回的消息,判斷是否可以升級,以及升級是否成功。而在有些情況中,成功升級后,能夠在管理界面看到返回的升級成功的消息,而在有些情況下是看不到的,但是管理界面沒有馬上返回任何的關(guān)于升級的消息,但是有可能也是升級成功,為此,在本發(fā)明一個實施例中,在所述步驟7之后,還包括:
判斷是否在管理界面顯示所述升級成功的消息;
若否,重新登錄所述管理界面,顯示所述升級成功的消息。
通過在升級后,判斷是否在管理界面顯示所述升級成功的消息,如果是,說明升級成功,如果否,再次重新登錄所述管理界面,顯示所述升級成功的消息,否則本次升級就存在異常,管理需要進(jìn)一步進(jìn)行檢測。
除此之外,本發(fā)明實施例還提供了一種集群系統(tǒng)的軟件升級系統(tǒng),包括:
升級包檢測模塊10,用于檢測升級包是否簽名和完整;
升級管理模塊20,與所述升級包檢測模塊10連接,用于接收驗簽成功的升級包并發(fā)送到待升級的集群的節(jié)點;
升級事務(wù)模塊30,與所述升級管理模塊20連接,接收所述驗簽成功的升級包,并進(jìn)行升級前操作,保存數(shù)據(jù)、停止服務(wù),開啟事務(wù)進(jìn)行升級。
在集群中需要安裝一個管理界面節(jié)點和兩個功能節(jié)點,登錄管理界面,查詢官網(wǎng)是否發(fā)布升級包,若是選擇安裝即可,然后管理界面會自動分發(fā)升級包給各個功能節(jié)點,并命令節(jié)點進(jìn)行升級操作。升級包檢測模塊10,用于檢測升級包是否簽名和完整,保證升級的可靠性,有效性。在執(zhí)行升級前,需要進(jìn)行一些升級前操作,由升級事務(wù)模塊30完成,如保存重要的數(shù)據(jù)庫文件,停止受影響的服務(wù)等,然后開啟事務(wù),進(jìn)行升級,減少并安裝升級包中的rpm包,然后關(guān)閉事務(wù)。升級過程中,各個節(jié)點互不干擾,提高了升級速度。
在升級的過程中,可能存在驗簽失敗,不能夠允許升級的情況,為了保證正常升級,快速獲取禁止升級原因,所述集群系統(tǒng)的軟件升級系統(tǒng)還包括:
驗簽失敗反饋模塊40,與所述升級包檢測模塊10連接,在所述升級包驗簽失敗后返回失敗原因。
而在升級結(jié)束后,可能是升級成功,也可能是升級失敗,操作人員如果人工判斷,需要浪費操作時間,而且效率也非常低,為了解決這一問題,所述集群系統(tǒng)的軟件升級系統(tǒng)還包括:
升級結(jié)果判斷模塊50,與所述升級事務(wù)模塊30連接,判斷本次升級是否成功,若否,關(guān)閉所述事務(wù)并返回升級失敗原因,若是,關(guān)閉所述事務(wù),進(jìn)行升級后操作,檢查并開啟停止的所述服務(wù)。
通過在判斷升級是否成功,如果失敗,返回失敗的原因,以便后續(xù)再次升級中減少升級失敗的可能,提高升級效率和質(zhì)量,如果升級成功,關(guān)閉所述事務(wù),進(jìn)行升級后操作,檢查并開啟停止的所述服務(wù),使得整個升級過程,在升級成功后,節(jié)點恢復(fù)原有的服務(wù),即整個升級過程,只是暫停原有服務(wù),而在升級后與升級前運行的服務(wù)是不變的,減少了升級帶來的負(fù)面影響。
為了進(jìn)一步快速判斷升級是否成功,所述集群系統(tǒng)的軟件升級系統(tǒng),還包括:
升級成功反饋模塊60,與所述升級結(jié)果判斷模塊50連接,在所述升級結(jié)果判斷模塊50判斷本次升級成功之后,返回并顯示升級成功的消息。
通過直接反饋和顯示升級成功的消息,使得管理員明確該節(jié)點已經(jīng)升級成功,保證了升級的可靠性和有效性。
綜上所述,本發(fā)明實施例提供的集群系統(tǒng)的軟件升級方法和系統(tǒng),通過采用分發(fā)機制將升級包分發(fā)到各個節(jié)點中單獨進(jìn)行升級,并通過驗證簽名保證了升級包的可靠性,與現(xiàn)有技術(shù)相比較,減少了系統(tǒng)管理員必須實現(xiàn)的配置操作,提高了運維的效率,減少了系統(tǒng)管理員運維失敗的可能性,增加了產(chǎn)品的可靠性。
以上對本發(fā)明所提供的集群系統(tǒng)的軟件升級方法和系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。