主機集群的管理方法、裝置及服務器設備的制造方法
【專利摘要】本發明實施例提供一種主機集群的管理方法、裝置及服務器設備,所述方法包括:獲取應用程序包;向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令;根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。采用本發明實施例的技術方案,實時根據主機集群中各主機的運行狀態確定的運行狀態最優的第一主機,并激活第一主機上的容器,通過保證容器所在的第一主機的運行狀態最優,進而保證容器運行的穩定性,運行容器的能力,保證容器內應用程序運行的穩定性。
【專利說明】
主機集群的管理方法、裝置及服務器設備
技術領域
[0001]本發明涉及網絡通信領域,尤其涉及一種主機集群的管理方法、裝置及服務器設備。
【背景技術】
[0002]容器是指應用代碼的運行框架,容器一般位于應用服務器之內,由應用服務器負責加載和維護。一個容器只能存在于一個應用服務器之內,一個應用服務器可以建立和維護多個容器。內置容器的主機出現故障時,出現故障的主機中的容器內的數據將不可用,使得訪問該主機的用戶將不能使用對應的應用程序。
【發明內容】
[0003]本發明的目的在于提供一種主機集群的管理方法、裝置及服務器設備,保證應用程序運行的穩定性。
[0004]根據本發明的一方面,提供一種主機集群的管理方法,所述方法包括:獲取應用程序包;向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令;根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。
[0005]根據本發明的另一方面,還提供一種主機集群的管理裝置,所述裝置包括:獲取單元,用于獲取應用程序包;命令單元,用于向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令;發送單元,用于根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。
[0006]根據本發明的另一方面,還提供一種服務器設備,所述服務器設備包括:存儲器,用于存放程序;處理器,用于執行所述存儲器存儲的程序,所述程序使得所述處理器執行如前所述的主機集群的管理方法的指令。
[0007]采用本發明實施例的技術方案,實時根據主機集群中各主機的運行狀態確定的運行狀態最優的第一主機,并激活第一主機上的容器,通過保證容器所在的第一主機的運行狀態最優,進而保證容器運行的穩定性,運行容器的能力,保證容器內應用程序運行的穩定性。
【附圖說明】
[0008]圖1示出本發明實施例一中一種主機集群的結構示意圖;
[0009]圖2示出本發明實施例一中一種主機集群的管理方法的流程示意圖;
[0010]圖3示出本發明實施例三中一種主機集群的管理裝置的結構示意圖;
[0011]圖4示出本發明實施例四提供的一種服務器設備400的結構示意圖。
【具體實施方式】
[0012]下面結合附圖(若干附圖中相同的標號表示相同的元素)和實施例,對本申請的【具體實施方式】作進一步詳細說明。以下實施例用于說明本申請,但不用來限制本申請的范圍。
[0013]本領域技術人員可以理解,本申請中的“第一”、“第二”等術語僅用于區別不同步驟、設備或模塊等,既不代表任何特定技術含義,也不表示它們之間的必然邏輯順序。
[0014]本領域技術人員可以理解,在本申請【具體實施方式】的方法中,各步驟的序號大小并不意味著執行順序的先后,各步驟的執行順序應以其功能和內在邏輯確定,而不應對本申請【具體實施方式】的實施過程構成任何限定。
[0015]實施例一
[0016]圖1示出本發明實施例一中一種主機集群的結構示意圖。本實施例提出的主機集群的管理方法可以在應用服務器上執行。參見圖1,應用服務器110管理多個主機集群120,任一主機集群120中包括多臺主機130,各主機130實時或者定期將主機的運行狀態信息上報給應用服務器,應用服務器根據獲取的應用程序激活第一主機中的容器,第一主機與應用程序對應且運行狀態最優。應用服務器根據第一主機加載該應用程序的加載請求發送應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。
[0017]圖2示出本發明實施例一中一種主機集群的管理方法的流程示意圖。參見圖2,本實施例中的一種主機集群的管理方法包括S210、S220和S230。
[0018]在S210,獲取應用程序包。
[0019]可選地,從應用程序編輯裝置中獲取應用程序包,或者從其他服務器上獲取應用程序包等等。應用程序編輯裝置作為編輯應用程序包的執行主體,可以以軟件、硬件或軟硬件結合的方式設置在用戶設備中,或者,所述應用程序編輯裝置本身就是所述用戶設備;所述用戶設備包括但不限于智能手機、個人計算機設備等。
[0020]應用程序包與特定的應用領域有關,又可分為通用包及專用包兩類。通用包根據一些共同需求開發,專用包則是根據用戶的具體需求定制的,可以為適合其特殊需要進行修改或變更。
[0021]在S220,向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令。
[0022]其中,向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令的處理包括:從主機集群當中選擇運行狀態最優的第一主機;以及向所述第一主機發送所述應用程序包的信息和激活容器的命令。
[0023]主機的運行狀態信息包括主機是否在線的信息以及內存占用量和/或中央處理器(Central Processing Unit,CPU)占用量。其中,主機是否在線的信息包括該主機當前接入應用服務器或者當前未接入應用服務器;內存占用量是指當前內存的使用率,例如一臺接入應用服務器的主機的總內存3.98GB、當前已使用內存2.9GB、當前可使用內存1.08GB,內存占用量為72% ;CPU占用量是指當前CPU的使用率,例如,一臺接入應用服務器的主機的處理器為 Intel(R)Core(TM)i3-1210M CPU02.1GHz,操作系統為 Windows 7UltimateEdit1n Service Pack I (build 7601),64_bit,當前CPU占用量為 12% ;進一步地,運行狀態信息還可以包括CPU溫度,例如,一臺接入應用服務器的主機的當前顯卡溫度為33°C,當前主板溫度為43°C,當前CPU溫度為46°C。對當前接入應用服務器的主機,根據運行狀態信息,選擇運行狀態最優的第一主機進行后續操作。
[0024]在S230,根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。
[0025]運行環境參數包中包括調用應用程序的環境變量等參數。對于容器而言,容器為置于容器中的應用程序提供運行環境,容器提供環境接口,通過容器與外部的設備的交互減輕容器中的應用程序的負擔。容器可以包括但不限于Linux容器LXC、Docker、Rocket等等。其中,Docker容器用于給處于其中的應用程序組件提供一個運行時環境,使容器內的應用程序直接與容器中的環境變量接口交互,不必關注其它系統問題;Docker容器用于提供給運行在其中的應用程序提供管理功能,置于該容器內的應用程序可以通過現成的接口來獲得系統級別的服務。
[0026]采用本發明實施例的技術方案,實時根據主機集群中各主機的運行狀態確定的運行狀態最優的第一主機,并激活第一主機上的容器,通過保證容器所在的第一主機的運行狀態最優,進而保證容器運行的穩定性,運行容器的能力,保證容器內應用程序運行的穩定性。
[0027]實施例二
[0028]舉例來說,本申請提供的主機集群的管理裝置作為本實施例的執行主體,執行實施例一中的S210?S230。具體地,所述主機集群的管理裝置可以以軟件、硬件或軟硬件結合的方式設置在應用服務器中,或者,所述主機集群的管理裝置本身就是所述應用服務器。
[0029]與實施例一的不同之處在于,本實施例中,執行S220向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令中的從主機集群當中選擇運行狀態最優的第一主機的處理包括:從多個主機集群中確定運行狀態最優的第一主機集群;從所述第一主機集群中確定運行狀態最優的第一主機。
[0030]具體地,所述從多個主機集群中確定運行狀態最優的第一主機集群的處理包括:獲取主機集群中各主機的運行狀態信息;根據各主機的運行狀態信息確定對應主機集群的剩余運行能力;根據主機集群的剩余運行能力確定所述第一主機集群。
[0031]多個是指兩個或兩個以上,在如何通過各主機的運行狀態信息確定運行狀態最優的第一主機集群時,按照主機集群中各主機的運行狀態信息計算對應的主機集群的第一性能比例;從所述第一性能比例大于等于第一運行狀態閾值的主機集群中查找性能比例最大的第一主機集群。
[0032]可選地,可以將當前接入應用服務器的主機集群中每臺主機的CPU占用量求和之后再求平均值,用100%減去CPU占用量之和的平均值,作為主機集群的第一性能比例;先將任一主機集群的第一性能比例分別與第一運行狀態閾值比較,得到第一性能比例大于等于第一運行狀態閾值的主機集群;再將第一性能比例大于等于第一運行狀態閾值的主機集群的第一性能比例從大到小進行排序,選擇排序第一的主機集群作為第一主機集群。或者,可以將當前接入應用服務器的主機集群中每臺主機的內存占用量求和之后再求平均值,用100%減去內存占用量之和的平均值,作為主機集群的第一性能比例;先將任一主機集群的第一性能比例分別與第一運行狀態閾值比較,得到第一性能比例大于等于第一運行狀態閾值的主機集群;再將第一性能比例大于等于第一運行狀態閾值的主機集群的第一性能比例從大到小進行排序,選擇排序第一的主機集群作為第一主機集群。再或者,可以將當前接入應用服務器的主機集群中每臺主機的CPU占用量和內存占用量加權求和之后再求平均值,用100%減去CPU占用量和內存占用量加權之和的平均值,作為主機集群的第一性能比例;先將任一主機集群的第一性能比例分別與第一運行狀態閾值比較,得到第一性能比例大于等于第一運行狀態閾值的主機集群;再將第一性能比例大于等于第一運行狀態閾值的主機集群的第一性能比例從大到小進行排序,選擇排序第一的主機集群作為第一主機集群。
[0033]具體地,所述從所述第一主機集群中確定運行狀態最優的第一主機的處理包括:按照所述第一主機集群中各主機的運行狀態信息計算各主機的第二性能比例;從所述第二性能比例大于等于第二運行狀態閾值的主機中查找性能比例最大的第一主機。
[0034]可選地,對于第一主機集群中任一主機,用100 %減去CPU占用量作為該主機的第二性能比例,先將任一主機的第二性能比例分別與第二運行狀態閾值比較,得到第二性能比例大于等于第二運行狀態閾值的主機;再將第二性能比例大于等于第二運行狀態閾值的主機的第二性能比例從大到小進行排序,選擇排序第一的主機作為第一主機。或者,對于第一主機集群中任一主機,用100 %減去內存占用量作為該主機的第二性能比例,先將任一主機的第二性能比例分別與第二運行狀態閾值比較,得到第二性能比例大于等于第二運行狀態閾值的主機;再將第二性能比例大于等于第二運行狀態閾值的主機的第二性能比例從大到小進行排序,選擇排序第一的主機作為第一主機。或者,對于第一主機集群中任一主機,用100%減去CPU占用量與內存占用量的加權和作為該主機的第二性能比例,先將任一主機的第二性能比例分別與第二運行狀態閾值比較,得到第二性能比例大于等于第二運行狀態閾值的主機;再將第二性能比例大于等于第二運行狀態閾值的主機的第二性能比例從大到小進行排序,選擇排序第一的主機作為第一主機。
[0035]采用本發明實施例的技術方案,實時根據主機集群中各主機的運行狀態確定的運行狀態最優的第一主機,并激活第一主機上的容器,通過保證容器所在的第一主機的運行狀態最優,進而保證容器運行的穩定性,運行容器的能力,保證容器內應用程序運行的穩定性。
[0036]實施例三
[0037]圖3示出本發明實施例三中一種主機集群的管理裝置的結構示意圖。
[0038]本實施例提供的一種主機集群的管理裝置用于執行實施例一或者實施例二中的任一種主機集群的管理方法。參見圖3,一種主機集群的管理裝置包括獲取單元310、命令單元320和發送單元330。
[0039]獲取單元310用于獲取應用程序包。
[0040]命令單元320用于向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令。
[0041]發送單元330用于根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。
[0042 ] 進一步地,所述命令單元包括選擇子單元和命令子單元。
[0043]選擇子單元(圖中未示出)用于從主機集群當中選擇運行狀態最優的第一主機。
[0044]命令子單元(圖中未示出)用于向所述選擇子單元選擇的所述第一主機發送所述應用程序包的信息和激活容器的命令。
[0045]進一步地,所述選擇子單元包括主機集群確定模塊和主機確定模塊。
[0046]主機集群確定模塊(圖中未示出)用于從多個主機集群中確定運行狀態最優的第一主機集群。
[0047]主機確定模塊(圖中未示出)用于從所述主機集群選擇模塊確定的所述第一主機集群中確定運行狀態最優的第一主機。
[0048]進一步地,所述主機集群確定模塊包括狀態獲取子模塊、運行能力確定子模塊和主機集群確定子模塊。
[0049]狀態獲取子模塊(圖中未示出)用于獲取主機集群中各主機的運行狀態信息。
[0050]運行能力確定子模塊(圖中未示出)用于根據所述狀態獲取子模塊獲取的各主機的運行狀態信息確定對應主機集群的剩余運行能力;
[0051]主機集群確定子模塊(圖中未示出)用于根據所述運行能力確定子模塊確定的主機集群的剩余運行能力確定所述第一主機集群。
[0052]進一步地,所述運行狀態信息包括主機是否在線的信息以及內存占用量和/SCPU占用量。
[0053]進一步地,所述主機集群確定子模塊具體用于按照主機集群中各主機的運行狀態信息計算對應的主機集群的第一性能比例;從所述第一性能比例大于等于第一運行狀態閾值的主機集群中查找性能比例最大的第一主機集群。
[0054]進一步地,其中,所述主機確定模塊具體用于按照所述第一主機集群中各主機的運行狀態信息計算各主機的第二性能比例;從所述第二性能比例大于等于第二運行狀態閾值的主機中查找性能比例最大的第一主機。
[0055]采用本發明實施例的技術方案,實時根據主機集群中各主機的運行狀態確定的運行狀態最優的第一主機,并激活第一主機上的容器,通過保證容器所在的第一主機的運行狀態最優,進而保證容器運行的穩定性,運行容器的能力,保證容器內應用程序運行的穩定性。
[0056]實施例四
[0057]圖4示出本發明實施例四提供的一種服務器設備400的結構示意圖。本申請具體實施例并不對服務器設備400的具體實現做限定。參見圖4,該服務器400可以包括:
[0058]處理器(processor)410、通信接口(Communicat1nsInterface)420、存儲器(memory)430以及通信總線440。其中:
[0059]處理器410、通信接口 420以及存儲器430通過通信總線440完成相互間的通信。
[0060]通信接口420,用于與比如客戶端等的網元通信。
[0061]處理器410,用于執行程序432,具體可以執行上述方法實施例中的相關步驟。
[0062]具體地,程序432可以包括程序代碼,所述程序代碼包括計算機操作指令。
[0063]處理器410可能是一個中央處理器CPU,或者是特定集成電路(Applicat1nSpecific Integrated Circuit,ASIC),或者是被配置成實施本申請實施例的一個或多個集成電路。
[0064]存儲器430,用于存放程序432。存儲器430可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。程序432具體可以用于使得所述服務器設備400執行以下操作:獲取應用程序包;向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令;根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。
[0065]程序432中所執行的操作的具體實現可以參見上述實施例中的相應步驟和單元中對應的描述,在此不贅述。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的設備和模塊的具體工作過程,可以參考前述方法實施例中的對應過程描述,在此不再贅述。
[0066]采用本發明實施例的技術方案,實時根據主機集群中各主機的運行狀態確定的運行狀態最優的第一主機,并激活第一主機上的容器,通過保證容器所在的第一主機的運行狀態最優,進而保證容器運行的穩定性,運行容器的能力,保證容器內應用程序運行的穩定性。
[0067]需要指出,根據實施的需要,可將本申請中描述的各個部件/步驟拆分為更多部件/步驟,也可將兩個或多個部件/步驟或者部件/步驟的部分操作組合成新的部件/步驟,以實現本發明的目的。
[0068]上述根據本發明的方法可在硬件、固件中實現,或者被實現為可存儲在記錄介質(諸如CD R0M、RAM、軟盤、硬盤或磁光盤)中的軟件或計算機代碼,或者被實現通過網絡下載的原始存儲在遠程記錄介質或非暫時機器可讀介質中并將被存儲在本地記錄介質中的計算機代碼,從而在此描述的方法可被存儲在使用通用計算機、專用處理器或者可編程或專用硬件(諸如ASIC或FPGA)的記錄介質上的這樣的軟件處理。可以理解,計算機、處理器、微處理器控制器或可編程硬件包括可存儲或接收軟件或計算機代碼的存儲組件(例如,RAM、ROM、閃存等),當所述軟件或計算機代碼被計算機、處理器或硬件訪問且執行時,實現在此描述的處理方法。此外,當通用計算機訪問用于實現在此示出的處理的代碼時,代碼的執行將通用計算機轉換為用于執行在此示出的處理的專用計算機。
[0069]以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以所述權利要求的保護范圍為準。
【主權項】
1.一種主機集群的管理方法,所述方法包括: 獲取應用程序包; 向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令; 根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。2.根據權利要求1所述的方法,其中,所述向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令的處理包括: 從主機集群當中選擇運行狀態最優的第一主機; 向所述第一主機發送所述應用程序包的信息和激活容器的命令。3.根據權利要求2所述的方法,其中,所述從主機集群當中選擇運行狀態最優的第一主機的處理包括: 從多個主機集群中確定運行狀態最優的第一主機集群; 從所述第一主機集群中確定運行狀態最優的第一主機。4.根據權利要求3所述的方法,其中,所述從多個主機集群中確定運行狀態最優的第一主機集群的處理包括: 獲取主機集群中各主機的運行狀態信息; 根據各主機的運行狀態信息確定對應主機集群的剩余運行能力; 根據主機集群的剩余運行能力確定所述第一主機集群。5.根據權利要求4所述的方法,其中,所述運行狀態信息包括主機是否在線的信息以及內存占用量和/或(PU占用量。6.根據權利要求5所述的方法,其中,所述根據主機集群的剩余運行能力確定所述第一主機集群的處理包括: 按照主機集群中各主機的運行狀態信息計算對應的主機集群的第一性能比例; 從所述第一性能比例大于等于第一運行狀態閾值的主機集群中查找性能比例最大的第一主機集群。7.根據權利要求6所述的方法,其中,所述從所述第一主機集群中確定運行狀態最優的第一主機的處理包括: 按照所述第一主機集群中各主機的運行狀態信息計算各主機的第二性能比例; 從所述第二性能比例大于等于第二運行狀態閾值的主機中查找性能比例最大的第一主機。8.一種主機集群的管理裝置,所述裝置包括: 獲取單元,用于獲取應用程序包; 命令單元,用于向主機集群當中運行狀態最優的第一主機發送所述應用程序包的信息和激活容器的命令; 發送單元,用于根據從所述第一主機接收到的所述應用程序包的加載請求向所述第一主機發送所述應用程序包和相應的運行環境參數包,使得被激活的容器根據所述運行環境參數包運行所述應用程序包。9.根據權利要求8所述的裝置,其中,所述命令單元包括: 選擇子單元,用于從主機集群當中選擇運行狀態最優的第一主機; 命令子單元,用于向所述選擇子單元選擇的所述第一主機發送所述應用程序包的信息和激活容器的命令。10.根據權利要求9所述的裝置,其中,所述選擇子單元包括: 主機集群確定模塊,用于從多個主機集群中確定運行狀態最優的第一主機集群; 主機確定模塊,用于從所述主機集群選擇模塊確定的所述第一主機集群中確定運行狀態最優的第一主機。11.根據權利要求10所述的裝置,其中,所述主機集群確定模塊包括: 狀態獲取子模塊,用于獲取主機集群中各主機的運行狀態信息; 運行能力確定子模塊,用于根據所述狀態獲取子模塊獲取的各主機的運行狀態信息確定對應主機集群的剩余運行能力; 主機集群確定子模塊,用于根據所述運行能力確定子模塊確定的主機集群的剩余運行能力確定所述第一主機集群。12.根據權利要求11所述的裝置,其中,所述運行狀態信息包括主機是否在線的信息以及內存占用量和/或(PU占用量。13.根據權利要求12所述的裝置,其中,所述主機集群確定子模塊具體用于按照主機集群中各主機的運行狀態信息計算對應的主機集群的第一性能比例;從所述第一性能比例大于等于第一運行狀態閾值的主機集群中查找性能比例最大的第一主機集群。14.根據權利要求13所述的裝置,其中,所述主機確定模塊具體用于按照所述第一主機集群中各主機的運行狀態信息計算各主機的第二性能比例;從所述第二性能比例大于等于第二運行狀態閾值的主機中查找性能比例最大的第一主機。15.一種服務器設備,所述服務器設備包括: 存儲器,用于存放程序; 處理器,用于執行所述存儲器存儲的程序,所述程序使得所述處理器執行如權利要求1至7任一項所述的主機集群的管理方法的指令。
【文檔編號】G06F9/445GK105893096SQ201610264207
【公開日】2016年8月24日
【申請日】2016年4月25日
【發明人】李昂, 張 杰
【申請人】樂視控股(北京)有限公司, 樂視云計算有限公司