一種集群應用的故障遷移方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及計算機軟件領域,具體涉及一種集群應用的故障迀移方法和系統(tǒng)。
【背景技術】
[0002]隨著計算機技術和互聯(lián)網的快速發(fā)展,集群系統(tǒng)以其低廉的成本、強大的運算能力和健壯的容錯機制逐漸成為了計算機行業(yè)的焦點。集群應用可以運行在上千臺普通的服務器上,伴隨業(yè)務增長動態(tài)擴大集群規(guī)模,但也要承受普通計算機較高的故障率,這要求系統(tǒng)在發(fā)生軟硬件故障的時候仍能保證高度的可用性。目前,對于集群的故障迀移,通常采用的是Failover (失效轉移)集群的方法,將應用轉移到另外一臺完全一樣的物理設備上。傳統(tǒng)的Failover集群方法有很多局限性,比如有些要求應用必須是IP協(xié)議,如果有數據共享,則要求數據必須是在共享底盤資源上如iSCSI LUN, Serial Attached SCSI,或FibreChannel,在物理設備上也對CPU,網絡,帶寬和操作系統(tǒng)有要求。因此,這種方法對應用的故障迀移有一定的局限性。
【發(fā)明內容】
[0003]為了解決上述問題,本發(fā)明提出了一種集群應用的故障迀移方法和系統(tǒng),能夠解決傳統(tǒng)故障迀移對應用的局限性,減少對物理設備的依賴,提高物理設備的利用率。
[0004]為了達到上述目的,本發(fā)明提出了一種集群應用的故障迀移方法,該方法包括:
[0005]通過cAdvisor對運行在不同的Docker容器內的不同應用的進程進行監(jiān)控,并對運行中的應用的性能進行分析。
[0006]根據分析結果生成帶有特殊標志的性能信息;其中,帶有特殊標志的性能信息中包含Docker容器內的應用是否出現(xiàn)故障的信息。
[0007]通過各個集群應用服務器上的Agent以第一時間周期周期性地收集Agent所在的集群應用服務器上的不同應用的性能信息,并以心跳的形式將該性能信息作為心跳信息發(fā)送給中央處理中心;其中,Agent所在的集群應用服務器上的不同應用是預先使用Docker容器將不同應用以及不同應用的運行環(huán)境打包為不同的鏡像并存儲在鏡像服務器上,通過鏡像服務器預先部署到集群應用服務器上的。
[0008]當中央處理中心接收到的心跳信息中標志出Docker容器內的應用出現(xiàn)故障時,通過鏡像服務器創(chuàng)建與出現(xiàn)故障的應用相對應的可用的應用,并通過預設的備份策略為該可用的應用分配備份的集群應用服務器,并將創(chuàng)建的該可用的應用部署到備份的集群應用服務器上。
[0009]優(yōu)選地,該方法還包括:
[0010]通過鏡像服務器將創(chuàng)建的可用的應用部署到集群應用服務器上以后,更新中央處理中心中預存的位置映射關系表;其中,該位置映射關系表包括不同的應用進程的標志與應用進程所在位置的映射關系。
[0011]優(yōu)選地,該方法還包括:
[0012]將部署到各個集群應用服務器上的全部Docker容器的信息均注冊到中央處理中心中;并且通過各個集群應用服務器上的Agent以第二時間周期周期性地對Agent所在的應用服務器中的Docker容器進行掃描;當發(fā)現(xiàn)Agent所在的應用服務器上出現(xiàn)新的Docker容器時,將該新的Docker容器的信息注冊到中央處理中心中,并更新位置映射關系表。
[0013]優(yōu)選地,該方法還包括:
[0014]在預設的時間周期內,當中央處理中心沒有接收到任何集群應用服務器上的Agent發(fā)送的心跳信息時,通過中央處理中心在預設的資源池中尋找可用的物理資源,重新在各個集群應用服務器上部署不同的應用,并更新位置映射關系表。
[0015]優(yōu)選地,預設的時間周期為nX第一時間周期,其中,η為正整數。
[0016]為了達到上述目的,本發(fā)明還提出了一種集群應用的故障迀移系統(tǒng),該系統(tǒng)包括:監(jiān)控模塊、生成模塊、采集模塊、部署模塊和創(chuàng)建模塊。
[0017]監(jiān)控模塊,用于對運行在不同的Docker容器內的不同應用的進程進行監(jiān)控,并對運行中的應用的性能進行分析。
[0018]生成模塊,用于根據分析結果生成帶有特殊標志的性能信息;其中,帶有特殊標志的性能信息中包含Docker容器內的應用是否出現(xiàn)故障的信息。
[0019]采集模塊,用于以第一時間周期周期性地收集Agent所在的集群應用服務器上的不同應用的性能信息,并以心跳的形式將該性能信息作為心跳信息發(fā)送給中央處理中心;其中,Agent所在的集群應用服務器上的不同應用是預先使用Docker容器將不同應用以及不同應用的運行環(huán)境打包為不同的鏡像并存儲在鏡像服務器上,通過部署模塊預先部署到集群應用服務器上的。
[0020]創(chuàng)建模塊,用于當中央處理中心接收到的心跳信息中標志Docker容器內的應用出現(xiàn)故障時,創(chuàng)建與出現(xiàn)故障的應用相對應的可用的應用,并通過預設的備份策略為該可用的應用分配備份的集群應用服務器,并將創(chuàng)建的該可用的應用部署到備份的集群應用服務器上。
[0021]優(yōu)選地,該系統(tǒng)還包括:更新模塊。
[0022]更新模塊,用于將創(chuàng)建的可用的應用部署到集群應用服務器上以后,更新中央處理中心中預存的位置映射關系表;其中,該位置映射關系表包括不同的應用進程的標志與應用進程所在位置的映射關系。
[0023]優(yōu)選地,該系統(tǒng)還包括:注冊模塊。
[0024]注冊模塊,用于將部署到各個集群應用服務器上的全部Docker容器的信息均注冊到中央處理中心中;并且以第二時間周期周期性地對Agent所在的應用服務器中的Docker容器進行掃描;當發(fā)現(xiàn)Agent所在的應用服務器上出現(xiàn)新的Docker容器時,將該新的Docker容器的信息注冊到中央處理中心中,并更新位置映射關系表。
[0025]優(yōu)選地,
[0026]部署模塊還用于,在預設的時間周期內,當中央處理中心沒有接收到任何集群應用服務器上的Agent發(fā)送的心跳信息時,通過中央處理中心在預設的資源池中尋找可用的物理資源,重新在各個集群應用服務器上部署不同的應用。
[0027]優(yōu)選地,預設的時間周期為nX第一時間周期,其中,η為正整數。
[0028]與現(xiàn)有技術相比,本發(fā)明包括:通過cAdvisor對運行在不同的Docker容器內的不同應用的進程進行監(jiān)控,并對運行中的應用的性能進行分析。根據分析結果生成帶有特殊標志的性能信息;其中,帶有特殊標志的性能信息中包含Docker容器內的應用是否出現(xiàn)故障的信息。通過各個集群應用服務器上的Agent以第一時間周期周期性地收集Agent所在的集群應用服務器上的不同應用的性能信息,并以心跳的形式將性能信息作為心跳信息發(fā)送給中央處理中心;其中,Agent所在的集群應用服務器上的不同應用是預先使用Docker容器將不同應用以及不同應用的運行環(huán)境打包為不同的鏡像并存儲在鏡像服務器上,通過鏡像服務器預先部署到集群應用服務器上的。當中央處理中心接收到的心跳信息中標志出Docker容器內的應用出現(xiàn)故障時,通過所述鏡像服務器創(chuàng)建與出現(xiàn)故障的應用相對應的可用的應用,并通過預設的備份策略為可用的應用分配備份的集群應用服務器,并將創(chuàng)建的該可用的應用部署到備份的集群應用服務器上。通過本發(fā)明的方案,能夠能夠解決傳統(tǒng)故障迀移對應用的局限性,減少對物理設備的依賴,提高物理設備的利用率。
【附圖說明】
[0029]下面對本發(fā)明實施例中的附圖進行說明,實施例中的附圖是用于對本發(fā)明的進一步理解,與說明書一起用于解釋本發(fā)明,并不構成對