一種基礎(chǔ)設(shè)施即服務(wù)軟件升級方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種基礎(chǔ)設(shè)施即服務(wù)軟件升級方法和裝置。
【背景技術(shù)】
[0002]基礎(chǔ)設(shè)施即服務(wù)(英文:Infrastructure as a Service,縮寫:IaaS)中,用戶可以從完善的計算機基礎(chǔ)設(shè)施獲得服務(wù)。其中,基礎(chǔ)設(shè)施供應(yīng)商購買硬件,并在硬件上安裝IaaS軟件,以向用戶提供IaaS服務(wù)。用戶向基礎(chǔ)設(shè)施供應(yīng)商購買IaaS服務(wù)后,在IaaS的宿主服務(wù)器(英文:Host Server,簡稱-Host)上申請?zhí)摂M機(英文-Virtual Machine,縮寫:VM),并在VM上部署自己的應(yīng)用程序。
[0003]在進行IaaS軟件升級時,需要實現(xiàn)IaaS軟件的無損升級,即保證用戶的VM能夠繼續(xù)正常運行,以及用戶正在運行的應(yīng)用程序不被中斷。為了實現(xiàn)IaaS軟件的無損升級,需要基礎(chǔ)設(shè)施管理員手工把Host分成多個批次滾動升級。首先,將一個批次的Host上面運行的VM通過熱迀移的方式迀移到其他Host上。如圖1,為IaaS軟件升級過程中的VM熱迀移示意圖,其中,熱迀移能夠在VMl和VM2運行的過程中將該VMl和VM2從Hostl迀移到Host2上,并保證VMl和VM2迀移前后能夠不中斷運行,業(yè)務(wù)無損。其次,對完成熱迀移的批次的Host上的IaaS軟件進行升級。當(dāng)一個批次的Host上的IaaS軟件升級完成后,再升級下一個批次的Host上的IaaS軟件,直到把所有Host上的IaaS軟件升級完成。
[0004]但是,由于通過VM熱迀移的方式實現(xiàn)IaaS軟件的升級需要基礎(chǔ)設(shè)施管理員手工進行Host分批升級,所以不能實現(xiàn)自動化的IaaS軟件升級。同時,僅僅依賴VM熱迀移技術(shù),會導(dǎo)致在基礎(chǔ)設(shè)施空閑資源不足或VM使用了不支持熱迀移的硬件特性時,無法進行熱迀移,最終無法實現(xiàn)IaaS軟件的升級。另外,由于VM熱迀移的過程耗時長,所以上述方法也會降低整個IaaS軟件升級的效率。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種基礎(chǔ)設(shè)施即服務(wù)軟件升級方法和裝置,能夠?qū)崿F(xiàn)自動化的IaaS軟件升級,同時提高IaaS軟件升級的效率。
[0006]為此,本發(fā)明提供如下技術(shù)方案:
[0007]第一方面,本發(fā)明提供了一種基礎(chǔ)設(shè)施即服務(wù)軟件升級方法,所述方法包括:
[0008]升級模塊獲取第一宿主服務(wù)器Host的虛擬機VM列表,所述VM列表包括所述第一Host上的所有VM的標(biāo)識;
[0009]所述升級模塊根據(jù)所述VM列表上的每個VM的標(biāo)識,向每個VM發(fā)送軟件升級請求,并接收來自每個VM的軟件升級響應(yīng),所述軟件升級響應(yīng)包括允許升級標(biāo)識或禁止升級標(biāo)識,所述允許升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)允許所述第一 Host進行軟件升級;所述禁止升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)禁止所述第一 Host進行軟件升級;
[0010]當(dāng)所述列表上的每個VM均返回所述允許升級標(biāo)識時,所述升級模塊控制所述第一 Host進行軟件升級。
[0011]在第一方面的第一種可能的實現(xiàn)方式中,所述方法還包括:
[0012]當(dāng)所述列表上的至少一個VM返回所述禁止升級標(biāo)識時,所述升級模塊向所述列表上返回所述允許升級標(biāo)識的VM發(fā)送停止升級通知,所述停止升級通知用于表示所述升級模塊停止進行軟件升級。
[0013]在第一方面的第二種可能的實現(xiàn)方式中,所述方法還包括:
[0014]當(dāng)所述列表上的至少一個VM返回所述禁止升級標(biāo)識時,所述升級模塊在預(yù)設(shè)時間間隔后,
[0015]重新向返回所述禁止升級標(biāo)識的VM發(fā)送軟件升級請求,或者,
[0016]重新執(zhí)行所述根據(jù)所述VM列表上的每個VM的標(biāo)識,向每個VM發(fā)送軟件升級請求的步驟。
[0017]在第一方面的第三種可能的實現(xiàn)方式中,當(dāng)所述升級模塊對至少兩個Host進行軟件升級時,所述方法還包括:
[0018]當(dāng)所述列表上的至少一個VM返回所述禁止升級標(biāo)識時,所述升級模塊獲取第二Host的VM列表,所述VM列表包括所述第二 Host上的所有VM的標(biāo)識;根據(jù)所述VM列表上的每個VM的標(biāo)識,向每個VM發(fā)送軟件升級請求,并接收來自每個VM的軟件升級響應(yīng),所述軟件升級響應(yīng)包括允許升級標(biāo)識或禁止升級標(biāo)識,所述允許升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)允許所述第二 Host進行軟件升級;所述禁止升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)禁止所述第二Host進行軟件升級;當(dāng)所述列表上的每個VM均返回所述允許升級標(biāo)識時,所述升級模塊控制所述第二 Host進行軟件升級。
[0019]第二方面,本發(fā)明提供了一種基礎(chǔ)設(shè)施即服務(wù)軟件升級方法,所述方法包括:
[0020]虛擬機VM接收第一宿主服務(wù)器Host的軟件升級請求后,判斷當(dāng)前狀態(tài)是否允許所述第一 Host進行軟件升級;
[0021]如果所述VM的當(dāng)前狀態(tài)允許所述第一 Host進行軟件升級,則所述VM發(fā)送包括允許升級標(biāo)識的軟件升級響應(yīng);
[0022]如果所述VM的當(dāng)前狀態(tài)不允許所述第一 Host進行軟件升級,則所述VM發(fā)送包括禁止升級標(biāo)識的軟件升級響應(yīng)。
[0023]在第二方面的第一種可能的實現(xiàn)方式中,所述判斷當(dāng)前狀態(tài)是否允許所述第一Host進行軟件升級,包括:
[0024]判斷與自身部署的支持主備冗余的業(yè)務(wù)應(yīng)用互為主備的業(yè)務(wù)應(yīng)用是否正在運行,和\或,
[0025]判斷重啟所述VM時,自身部署的業(yè)務(wù)應(yīng)用是否支持暫停運行,和\或,
[0026]判斷重啟所述VM時,自身部署的支持負(fù)荷分擔(dān)的業(yè)務(wù)應(yīng)用是否支持暫停運行,和\或,
[0027]當(dāng)自身分布式部署業(yè)務(wù)應(yīng)用時,判斷是否接收到來自管理中心的允許重啟通知。
[0028]第三方面,本發(fā)明提供了一種基礎(chǔ)設(shè)施即服務(wù)軟件升級裝置,所述裝置包括:
[0029]獲取單元,用于獲取第一宿主服務(wù)器Host的虛擬機VM列表,所述VM列表包括所述第一 Host上的所有VM的標(biāo)識;
[0030]第一發(fā)送單元,用于根據(jù)所述VM列表上的每個VM的標(biāo)識,向每個VM發(fā)送軟件升級請求;
[0031]接收單元,用于接收來自每個VM的軟件升級響應(yīng),所述軟件升級響應(yīng)包括允許升級標(biāo)識或禁止升級標(biāo)識,所述允許升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)允許所述第一 Host進行軟件升級;所述禁止升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)禁止所述第一 Host進行軟件升級;
[0032]升級單元,用于當(dāng)所述列表上的每個VM均返回所述允許升級標(biāo)識時,控制所述第一 Host進行軟件升級。
[0033]在第三方面的第一種可能的實現(xiàn)方式中,所述裝置還包括:
[0034]第二發(fā)送單元,用于當(dāng)所述列表上的至少一個VM返回所述禁止升級標(biāo)識時,向所述列表上返回所述允許升級標(biāo)識的VM發(fā)送停止升級通知,所述停止升級通知用于表示所述升級模塊停止進行軟件升級。
[0035]在第三方面的第二種可能的實現(xiàn)方式中,所述裝置還包括:
[0036]第三發(fā)送單元,用于當(dāng)所述列表上的至少一個VM返回所述禁止升級標(biāo)識時,在預(yù)設(shè)時間間隔后,重新向返回所述禁止升級標(biāo)識的VM發(fā)送軟件升級請求;或者,
[0037]觸發(fā)單元,用于當(dāng)所述列表上的至少一個VM返回所述禁止升級標(biāo)識時,在預(yù)設(shè)時間間隔后,觸發(fā)所述第一發(fā)送單元。
[0038]在第三方面的第三種可能的實現(xiàn)方式中,所述裝置用于對至少兩個Host進行軟件升級,
[0039]所述獲取單元,還用于當(dāng)所述列表上的至少一個VM返回所述禁止升級標(biāo)識時,獲取第二 Host的VM列表,所述VM列表包括所述第二 Host上的所有VM的標(biāo)識;
[0040]所述第一發(fā)送單元,還用于根據(jù)所述VM列表上的每個VM的標(biāo)識,向每個VM發(fā)送軟件升級請求;
[0041]所述接收單元,還用于接收來自每個VM的軟件升級響應(yīng),所述軟件升級響應(yīng)包括允許升級標(biāo)識或禁止升級標(biāo)識,所述允許升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)允許所述第二Host進行軟件升級;所述禁止升級標(biāo)識用于表示VM的當(dāng)前狀態(tài)禁止所述第二 Host進行軟件升級;
[0042]所述升級單元,還用于當(dāng)所述列表上的每個VM均返回所述允許升級標(biāo)識時,控制所述第二 Host進行軟件升級。
[0043]第四方面,本發(fā)明提供了一種基礎(chǔ)設(shè)施即服務(wù)軟件升級裝置,所述裝置包括:
[0044]接收模塊,用于接收第一宿主服務(wù)器Host的軟件升級請求;
[0045]判斷模塊,用于判斷當(dāng)前狀態(tài)是否允許所述第一 Host進行軟件升級;
[0046]第一發(fā)送模塊,用于在所述判斷模塊的結(jié)果為是時,發(fā)送包括允許升級標(biāo)識的軟件升級響應(yīng);
[0047]第二發(fā)