專利名稱:基于特定于應(yīng)用的冗余特征的自動功率控制策勵的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集群計算系統(tǒng)以及其它集群信息處理系統(tǒng)。
背景技術(shù):
為了滿足大負(fù)載的因特網(wǎng)應(yīng)用服務(wù)的需求,應(yīng)用服務(wù)的提供商已經(jīng)轉(zhuǎn)向利用冗余來改進應(yīng)用服務(wù)的響應(yīng)時間。冗余通常向應(yīng)用服務(wù)的添加一個或多個功能上相同的服務(wù)器。當(dāng)單個物理服務(wù)器邏輯上充當(dāng)多個服務(wù)器時,該多個服務(wù)器通常稱為虛擬服務(wù)器。當(dāng)在一個冗余服務(wù)器環(huán)境中添加服務(wù)器時,所加入的服務(wù)器既可以是物理的,也可以是虛擬的。
在大負(fù)載因特網(wǎng)應(yīng)用服務(wù)中部署的網(wǎng)絡(luò)通常包括有限個網(wǎng)絡(luò)節(jié)點。在每個節(jié)點處安置有一個或多個服務(wù)器。不論一個還是多個服務(wù)器都可以是虛擬或物理的服務(wù)器,或者是它們的任意組合。
服務(wù)提供商通常具有大量可以在多個用戶之中分配的節(jié)點,以及時地在各點提供應(yīng)用服務(wù)。由于所要求的工作負(fù)載可能隨時間而變化,因此會存在設(shè)施中的節(jié)點數(shù)超過提供服務(wù)所需要的節(jié)點數(shù)的情況。由于過剩的服務(wù)器消耗電能和其它資源,因此這就給服務(wù)提供商提出了一個問題。非活動的且保持通電狀態(tài)的服務(wù)器不僅消耗更多的電能,而且也容易降低那些與總通電時間有關(guān)的可靠部件的可靠性。
因此,本發(fā)明提供了一種程序產(chǎn)品,包括一個計算機可用介質(zhì),其中體現(xiàn)有計算機可讀程序代碼,所述程序產(chǎn)品的計算機可讀程序代碼能夠?qū)е聢?zhí)行如下步驟(a)確定提供應(yīng)用服務(wù)的服務(wù)器集群中每個服務(wù)器的工作負(fù)載;(b)確定該應(yīng)用服務(wù)的拓?fù)?,其中所述拓?fù)浯_定包括應(yīng)用服務(wù)的第一部件和在其上執(zhí)行該第一部件的服務(wù)器之間的對應(yīng);以及(c)基于所述工作負(fù)載確定以及所述拓?fù)浯_定,設(shè)置所述服務(wù)器集群中一個服務(wù)器的功率狀態(tài)。
為了最大化地節(jié)省開銷,盡可能多地關(guān)閉服務(wù)器看來是有益的。然而,關(guān)閉服務(wù)器使服務(wù)提供商面臨在高峰負(fù)載時間段內(nèi)或在提供應(yīng)用服務(wù)的服務(wù)器失效時不能足夠快地供應(yīng)服務(wù)器的風(fēng)險。
發(fā)明內(nèi)容
因此,提供了一種計算機程序,包括當(dāng)在計算機上執(zhí)行時,適于執(zhí)行下述方法步驟的程序代碼裝置(a)確定提供應(yīng)用服務(wù)的服務(wù)器集群的每個服務(wù)器的工作負(fù)載;(b)確定應(yīng)用服務(wù)的拓?fù)洌渲兴鐾負(fù)浯_定包括應(yīng)用服務(wù)的第一部件和在其上執(zhí)行該第一部件的服務(wù)器之間的對應(yīng);以及(c)基于所述工作負(fù)載確定以及所述拓?fù)浯_定,設(shè)置所述服務(wù)器集群中至少一個服務(wù)器的功率狀態(tài)。
優(yōu)選地,提供一種減少冗余服務(wù)器集群消耗的電能的方法。
優(yōu)選地,本發(fā)明為因特網(wǎng)應(yīng)用服務(wù)的提供商提供一種解決方案,其尋求關(guān)閉非活動的服務(wù)器,同時避免在高峰負(fù)載或服務(wù)器失效時不能足夠迅速地提供服務(wù)器的風(fēng)險。在一個實施例中,確定提供應(yīng)用服務(wù)的服務(wù)器集群的每個服務(wù)器的工作負(fù)載。而后,確定應(yīng)用服務(wù)的拓?fù)?。該拓?fù)湫畔☉?yīng)用服務(wù)的部件和在其上運行該部件的服務(wù)器之間的對應(yīng)。并且基于該工作負(fù)載和拓?fù)湫畔?,改變一個或多個服務(wù)器的功率狀態(tài)。
在優(yōu)選實施例中,以計算機程序產(chǎn)品的形式提供本發(fā)明的構(gòu)思。該產(chǎn)品分布于諸如軟盤或CD-ROM的計算機可讀介質(zhì)上,并且為了方便用戶,被安裝到事先存在的(或提供的)計算機系統(tǒng)中。
在一不同的實施例中,以設(shè)備的形式提供本發(fā)明的構(gòu)思,并且其可以包括服務(wù)器本身。
在又一不同實施例中,以設(shè)備和程序產(chǎn)品或方法以及它們的任意組合的形式提供本發(fā)明的構(gòu)思,并且其可以包括所管理的服務(wù)器。
在一個實施例中,當(dāng)工作負(fù)載確定出低于一個預(yù)定閾值的工作負(fù)載時,設(shè)置步驟(c)設(shè)置到低功率狀態(tài)。
在一個實施例中,所述設(shè)置步驟(c)進一步基于服務(wù)器資源被完全利用的程度。
優(yōu)選地,低功率狀態(tài)是從由等待、睡眠、休眠和關(guān)閉狀態(tài)組成的組中選擇出來的狀態(tài)。
優(yōu)選地,拓?fù)浯_定包括活動服務(wù)器的總數(shù)的第一計數(shù),并且其中所述設(shè)置步驟(c)進一步為通電的非活動服務(wù)器和該第一計數(shù)的比率的函數(shù),并且包括規(guī)定用于設(shè)置通電的非活動服務(wù)器的最小數(shù)目。
優(yōu)選地,當(dāng)所述工作負(fù)載確定確定出表示從一個服務(wù)器上次被重置時起所經(jīng)歷的時間的工作負(fù)載時,所述設(shè)置步驟(c)設(shè)置到低功率狀態(tài)。
優(yōu)選地,當(dāng)所述工作負(fù)載確定確定出大于一個預(yù)定閾值的工作負(fù)載時,所述設(shè)置步驟(c)設(shè)置到通電狀態(tài)。
根據(jù)優(yōu)選的實施例,提供一種計算機程序,包括當(dāng)在計算機上執(zhí)行時適于執(zhí)行下述方法步驟的程序代碼裝置確定提供應(yīng)用服務(wù)的可伸縮冗余服務(wù)器的第一層的每個服務(wù)器的工作負(fù)載;確定應(yīng)用服務(wù)的拓?fù)?,其中拓?fù)浯_定包括活動第一層服務(wù)器的總數(shù)的第一計數(shù),以及應(yīng)用服務(wù)的第一部件和在其上執(zhí)行第一部件的第一層服務(wù)器之間的對應(yīng);基于所述工作負(fù)載確定使第一層服務(wù)器在應(yīng)用服務(wù)和第一層服務(wù)器的空閑池之間轉(zhuǎn)變;以及根據(jù)第一預(yù)定功率管理策略并基于所述拓?fù)浯_定控制施加給第一層服務(wù)器的空閑池中的每個服務(wù)器的功率。
根據(jù)優(yōu)選的實施例,確定服務(wù)器集群中的每個服務(wù)器的工作負(fù)載的步驟包括確定提供應(yīng)用服務(wù)的可伸縮冗余服務(wù)器的第一層中每個服務(wù)器的工作負(fù)載,其中拓?fù)浯_定包括活動第一層服務(wù)器的總數(shù)的第一計數(shù),以及應(yīng)用服務(wù)的第一部件和在其上執(zhí)行第一部件的第一層服務(wù)器之間的對應(yīng),所述計算機程序裝置還適于當(dāng)在計算機上執(zhí)行時執(zhí)行下述步驟(e)基于所述工作負(fù)載確定使第一層服務(wù)器在應(yīng)用服務(wù)和第一層服務(wù)器的空閑池之間轉(zhuǎn)變,并且其中設(shè)置步驟(c)包括(f)基于所述拓?fù)浯_定并根據(jù)基于該工作負(fù)載確定的第一預(yù)定功率管理策略控制施加給第一層服務(wù)器的空閑池中的每個服務(wù)器的功率。
優(yōu)選地,當(dāng)所述程序裝置在一個計算機上執(zhí)行時,它還用于執(zhí)行如下的方法步驟(g)確定提供應(yīng)用服務(wù)的可伸縮冗余服務(wù)器的第二層中每個服務(wù)器的工作負(fù)載,其中來自可伸縮冗余服務(wù)器的第二層的應(yīng)答依賴來自可伸縮冗余服務(wù)器的第一層的應(yīng)答;(h)在應(yīng)用服務(wù)和第二層服務(wù)器的空閑池之間轉(zhuǎn)變第二層服務(wù)器;以及其中所述拓?fù)浯_定進一步包括活動第二層服務(wù)器的總數(shù)的第二計數(shù),以及(i)根據(jù)第二預(yù)定功率管理策略并基于所述拓?fù)浯_定控制施加給第二層服務(wù)器的空閑池中的每個服務(wù)器的功率;其中所述第二功率管理策略是從由第一功率管理策略和獨立于第一功率管理策略的策略所構(gòu)成的組中選擇出來的策略。
根據(jù)本發(fā)明的一個實施例,當(dāng)所述工作負(fù)載確定確定出低于一個預(yù)定閾值的工作負(fù)載時,所述轉(zhuǎn)變?yōu)閺膽?yīng)用服務(wù)到第一層服務(wù)器的空閑池。
優(yōu)選地,所述轉(zhuǎn)變進一步基于進行轉(zhuǎn)變的該第一層服務(wù)器的服務(wù)器資源被完全利用的程度。
根據(jù)一個實施例,當(dāng)所述工作負(fù)載確定確定出大于一個預(yù)定閾值的工作負(fù)載時,所述轉(zhuǎn)變?yōu)閺牡谝粚臃?wù)器的空閑池到應(yīng)用服務(wù)。
優(yōu)選地,第一層服務(wù)器的空閑池中的服務(wù)器所應(yīng)用的第一預(yù)定功率管理策略保持第一數(shù)目的通電非活動服務(wù)器,同時將剩余的服務(wù)器設(shè)置為低功率狀態(tài)。
優(yōu)選地,第一層服務(wù)器的空閑池中的服務(wù)器所應(yīng)用的第一預(yù)定功率管理策略是通電的非活動服務(wù)器和該第一計數(shù)的比率的函數(shù),并且包括規(guī)定用于設(shè)置通電非活動服務(wù)器的最小數(shù)目。
優(yōu)選地,低功率狀態(tài)是一個從由等待、睡眠、休眠和關(guān)閉狀態(tài)組成的組中選擇出來的狀態(tài)。
根據(jù)本發(fā)明的另一方面,本發(fā)明提供一種方法,包括(a)確定提供應(yīng)用服務(wù)的服務(wù)器集群的每個服務(wù)器的工作負(fù)載;(b)確定應(yīng)用服務(wù)的拓?fù)洌渲兴鐾負(fù)浯_定包括應(yīng)用服務(wù)的第一部件和在其上執(zhí)行該第一部件的服務(wù)器之間的對應(yīng);以及(c)基于所述工作負(fù)載確定以及所述拓?fù)浯_定,設(shè)置所述服務(wù)器集群中至少一個服務(wù)器的功率狀態(tài)。
根據(jù)本發(fā)明優(yōu)選的實施例,提供一種方法,包括(a)確定提供應(yīng)用服務(wù)的可伸縮冗余服務(wù)器的第一層中每個服務(wù)器的工作負(fù)載;(b)確定應(yīng)用服務(wù)的拓?fù)?,所述拓?fù)浯_定包括第一層活動服務(wù)器的總數(shù)的第一計數(shù),以及應(yīng)用服務(wù)的第一部件和在其上執(zhí)行第一部件的第一層服務(wù)器之間的對應(yīng);(c)基于所述工作負(fù)載確定使第一層服務(wù)器在應(yīng)用服務(wù)和第一層服務(wù)器的空閑池之間轉(zhuǎn)變;以及(d)根據(jù)第一預(yù)定功率管理策略并基于所述拓?fù)浯_定,控制施加給第一層服務(wù)器的空閑池中的每個服務(wù)器的功率。
根據(jù)本發(fā)明的另一方面,提供一種設(shè)備,包括工作負(fù)載監(jiān)視器,用于檢測提供應(yīng)用服務(wù)的服務(wù)器集群的每個服務(wù)器的工作負(fù)載;拓?fù)錂z測器,用于確定應(yīng)用服務(wù)的拓?fù)洌☉?yīng)用服務(wù)的第一部件和在其上執(zhí)行該第一部件的服務(wù)器之間的對應(yīng);以及功率控制器,用于基于由所述工作負(fù)載監(jiān)視器確定的工作負(fù)載以及由所述拓?fù)錂z測器確定的拓?fù)?,設(shè)置所述服務(wù)器集群中一個服務(wù)器的功率狀態(tài)。
優(yōu)選地,該設(shè)備包括提供應(yīng)用服務(wù)的服務(wù)器集群的每一個服務(wù)器。
根據(jù)優(yōu)選的實施例,提供一種設(shè)備,包括工作負(fù)載監(jiān)視器,用于檢測提供應(yīng)用服務(wù)的可伸縮冗余服務(wù)器的第一層中每個服務(wù)器的工作負(fù)載;拓?fù)錂z測器,用于確定應(yīng)用服務(wù)的拓?fù)?,包括活動第一層服?wù)器的總數(shù)的第一計數(shù),以及應(yīng)用服務(wù)的第一部件和在其上執(zhí)行第一部件的第一層服務(wù)器之間的對應(yīng);遷移模塊,用于基于由所述工作負(fù)載監(jiān)視器確定的工作負(fù)載,使第一層服務(wù)器在應(yīng)用服務(wù)和第一層服務(wù)器的空閑池之間轉(zhuǎn)變;以及功率控制器,用于根據(jù)所述拓?fù)錂z測器確定的拓?fù)洳⒏鶕?jù)第一預(yù)定功率管理策略,設(shè)置第一層服務(wù)器的空閑池中的每個服務(wù)器的功率狀態(tài)。
在優(yōu)選的實施例中,所述設(shè)備包括提供應(yīng)用服務(wù)的可伸縮服務(wù)器的第一層中每一個服務(wù)器。
下面,將通過舉例的方式,參考下面的附圖描述本發(fā)明的優(yōu)選實施例圖1是其中根據(jù)本發(fā)明優(yōu)選實施例的運用節(jié)電構(gòu)思的示范性應(yīng)用服務(wù)的拓?fù)鋱D。
圖2圖示了根據(jù)本發(fā)明優(yōu)選實施例的圖1所示應(yīng)用服務(wù)的服務(wù)器的供應(yīng),包括在應(yīng)用服務(wù)和空閑池之間遷移服務(wù)器。所述空閑池的服務(wù)器保持在熱等待狀態(tài)和低功率狀態(tài)。
圖3是根據(jù)本發(fā)明優(yōu)選實施例的教導(dǎo)的功率和冗余管理策略的流程圖。
圖4是以設(shè)備形式實施的本發(fā)明另一實施例的方框圖。
具體實施例方式
現(xiàn)在具體參考附圖,圖1描述了示范性應(yīng)用服務(wù)的拓?fù)洌渲袘?yīng)用本發(fā)明的節(jié)電構(gòu)思。圖1所示的應(yīng)用服務(wù)包括web服務(wù)器100和網(wǎng)絡(luò)分配器101和102。網(wǎng)絡(luò)分配器101和102擔(dān)當(dāng)負(fù)載平衡部件,它向web服務(wù)器分配web請求。圖1示出一個單獨的熱等待網(wǎng)絡(luò)分配器102,然而,一個應(yīng)用服務(wù)可以有任意數(shù)目個網(wǎng)絡(luò)分配器,其任何的子集都可以處于熱等待狀態(tài)。所述網(wǎng)絡(luò)分配器的功能的具體細(xì)節(jié)將在后文描述。術(shù)語熱等待也將隨著優(yōu)選實施例部分描述的進展而加以說明。web服務(wù)器100執(zhí)行為web頁提供服務(wù)的功能,并且它們在功能上是相同的。網(wǎng)絡(luò)分配器101從因特網(wǎng)接收web頁請求并將請求轉(zhuǎn)發(fā)給web服務(wù)器100。web服務(wù)器100處理各個請求并向因特網(wǎng)上的客戶端發(fā)回各應(yīng)答。熱等待網(wǎng)絡(luò)分配器102用于在部分網(wǎng)絡(luò)分配器101失效的情況下接過網(wǎng)絡(luò)分配器101的角色。圖1所示的應(yīng)用服務(wù)被示出為具有3個服務(wù)器和2個網(wǎng)絡(luò)分配器。然而,通常應(yīng)用服務(wù)可以包含任意數(shù)量的web服務(wù)器和任意數(shù)量的網(wǎng)絡(luò)分配器。此外,所示出的應(yīng)用服務(wù)具有兩層服務(wù)器組,第一層用于web服務(wù)器,第二層用于網(wǎng)絡(luò)分配器。然而,應(yīng)用服務(wù)可以包括任意層的冗余服務(wù)器。每一層在應(yīng)用服務(wù)中執(zhí)行一個不同的功能。舉例來說,對于執(zhí)行向web服務(wù)器100供給信息的web或數(shù)據(jù)庫應(yīng)用的服務(wù)器可以添加另一層。實際上,能夠從可縮放的冗余體系結(jié)構(gòu)中獲得有益效果的任何服務(wù)器功能同樣可以從本發(fā)明的構(gòu)思中受益。這些功能,舉例來說,包括代理高速緩存、FTP、DNS、Gopher、FrontPageTM以及認(rèn)證功能。數(shù)據(jù)庫應(yīng)用可以是任何數(shù)據(jù)庫應(yīng)用,包括諸如IBM的SQLTM的關(guān)系數(shù)據(jù)庫。
術(shù)語負(fù)載可以定義為單位時間內(nèi)到達網(wǎng)絡(luò)分配器101的請求的數(shù)目。根據(jù)優(yōu)選的實施例,在應(yīng)用服務(wù)的負(fù)載很低的情況下,通過從應(yīng)用服務(wù)中移除特定服務(wù)器來減少用于應(yīng)用服務(wù)的服務(wù)器的數(shù)目。接著,通過控制從應(yīng)用服務(wù)中移除的服務(wù)器子集所消耗的電量來減少電能。此外,針對任何給出的層的服務(wù)器實現(xiàn)冗余管理策略,使得應(yīng)用服有足夠的在線通電容量來滿足工作負(fù)載,以及一個或多個附加服務(wù)器的形式的特定量的空閑在線通電容量。對于如圖1所示的實例,當(dāng)應(yīng)用服務(wù)的負(fù)載很低時,通過舉例來說,通過關(guān)閉其中的1個web服務(wù)器,應(yīng)用服務(wù)的web服務(wù)器100的數(shù)量能被減少,比如從3個減少到2個。此外,如果不完全關(guān)閉web服務(wù)器,通過將功率狀態(tài)設(shè)置為行業(yè)標(biāo)準(zhǔn)的半通電或超低功率狀態(tài),例如等待、睡眠、休眠和其它節(jié)電狀態(tài)和模式之一,也可以節(jié)省電能。注意,等待狀態(tài)是一種獨立于且不同于下面將要描述的熱等待狀態(tài)的狀態(tài)。
圖2圖示了在應(yīng)用服務(wù)中執(zhí)行相同功能的冗余服務(wù)器層中的服務(wù)器的供應(yīng)和操作狀態(tài)?;谒龇?wù)器所經(jīng)歷的工作負(fù)載,將服務(wù)器在應(yīng)用服務(wù)的活動狀態(tài)201和空閑池202之間遷移?;顒訝顟B(tài)201是完全通電狀態(tài),其中服務(wù)器正在進行應(yīng)用服務(wù)。在空閑池202中的服務(wù)器在所涉及的特定應(yīng)用服務(wù)中是非活動的。如前所述,實施冗余管理策略,其保證足夠的在線通電容量來滿足應(yīng)用服務(wù)的工作負(fù)載需要,以及一個或多個附加服務(wù)器的形式的特定量的空閑在線通電容量。這些空閑在線通電服務(wù)器被稱為熱等待服務(wù)器。根據(jù)冗余管理策略,空閑池202中特定數(shù)目的服務(wù)器保持在熱等待狀態(tài)203。雖然這些熱等待服務(wù)器在應(yīng)用服務(wù)中是非活動的,但在對應(yīng)用服務(wù)的工作負(fù)載要求超出預(yù)定閾值的情況下,它們可以被迅速供應(yīng)到活動狀態(tài)201。為了減少電能,空閑池202中那些不會保持在熱等待狀態(tài)的服務(wù)器可以設(shè)置為低功率狀態(tài)205。
在優(yōu)選的實施例中,當(dāng)在活動狀態(tài)201和空閑池202之間,以及在空閑池中的熱等待狀態(tài)203和低功率狀態(tài)205之間轉(zhuǎn)變服務(wù)器的時候,同樣考慮應(yīng)用服務(wù)的拓?fù)?。拓?fù)浯_定可以具有許多形式,并且這里將給出各種例子。然而,這些例子并不作為對本發(fā)明范圍的限制。作為第一實例,拓?fù)浯_定可以具有確定應(yīng)用服務(wù)中當(dāng)前活動的服務(wù)器的總數(shù)的形式。在另一實例中,拓?fù)浯_定可以具有確定每個服務(wù)器的個體健康狀況(health)的形式。在確定健康狀況時,拓?fù)浯_定可以關(guān)注于剩余存儲器量或者存儲器、CPU、I/O或任何其它系統(tǒng)資源已經(jīng)用盡的程度。在確定健康狀況時,眾所周知,特定操作系統(tǒng)需要很頻繁的重置(重啟/再啟動);這樣,拓?fù)浯_定關(guān)注于自從任何給定服務(wù)器已經(jīng)重置開始所經(jīng)過的時間的總量。也可以考慮任何種類的系統(tǒng)瓶頸。
在另一實例中,應(yīng)用服務(wù)工作于虛擬服務(wù)器環(huán)境中。在虛擬服務(wù)器環(huán)境中,虛擬服務(wù)器與物理服務(wù)器之間不必有一一對應(yīng)。在這一環(huán)境中,拓?fù)浯_定將考慮物理服務(wù)器是否正在執(zhí)行多于1個的功能,或者物理服務(wù)器是否涉入多于1個層的冗余服務(wù)器。例如,物理服務(wù)器可以正運行幾百個虛擬Apache服務(wù)器。在這個實例中,所有Apache服務(wù)器都在同一層中工作,并且是冗余的。在另一實例中,物理服務(wù)器可以正運行若干諸如代理高速緩存的層、或網(wǎng)絡(luò)分配器層的虛擬應(yīng)用。在這一虛擬服務(wù)器環(huán)境中,在服務(wù)被設(shè)置為低功率狀態(tài)205之前,考慮在任何給定物理服務(wù)器中的所有虛擬服務(wù)器的拓?fù)洌⑶页撬杏晌锢矸?wù)器所執(zhí)行的虛擬功能被確定為在空閑池202中和處于熱等待狀態(tài)203,否則將該物理服務(wù)器關(guān)閉。一旦確定了適當(dāng)?shù)墓ぷ髫?fù)載和拓?fù)洌约耙坏┐_定在空閑池中有足夠數(shù)目的熱等待服務(wù)器來滿足應(yīng)用服務(wù)的需要,則將且僅將一物理服務(wù)器設(shè)置為低功率狀態(tài)或完全關(guān)閉。
現(xiàn)在將給出拓?fù)浜凸ぷ髫?fù)載確定的更具體的實例。在本實例中,由下述參數(shù)定義對于每個功能類型將保持在熱等待狀態(tài)203的服務(wù)器的數(shù)目。在此,功能類型是指由該層冗余服務(wù)器執(zhí)行的功能。
minHotInFreePool-該參數(shù)規(guī)定提供用于設(shè)置空閑池中該功能類型的熱等待服務(wù)器的最小數(shù)量。
addOnlineRatio-該參數(shù)表示活動地參與應(yīng)用服務(wù)的該功能類型的服務(wù)器的數(shù)目和將保持在熱等待狀態(tài)203的該功能類型的附加服務(wù)器的數(shù)目之間的期望的比率。例如,如果有100個服務(wù)器活動地參與應(yīng)用服務(wù),且addOnlineRatio的值是20,則該特定應(yīng)用服務(wù)需要100/20=5個在空閑池202中的熱等待服務(wù)器。如果總共有15個服務(wù)器在空閑池202中,則剩余的15-5=10個服務(wù)器可以被關(guān)閉,或者設(shè)置為低功率操作模式。
deployedInAllApplicationServices-該參數(shù)表示當(dāng)前參與在服務(wù)提供商的環(huán)境中的該功能類型的服務(wù)器的總數(shù)。
hotServersInFreePool-該參數(shù)表示將在空閑池202中的服務(wù)器的數(shù)目。
現(xiàn)在,將保持在熱等待狀態(tài)203的某一特定功能類型的服務(wù)器的數(shù)量被確定如下。
hotServersInFreePool=minHotInFreePool+(deployedInApplicationServices/addOnlineRatio)在可替代的實施例中,hotServersInFreePool可以計算如下。
hotServersInFreePool=(minHotInFreePool>(deployedInApplicationServices/addOnlineRatio)?minHotInFreePoolminHotInFreePool+(deployedInApplicationServices/addOnlineRatio)本例的功率管理系統(tǒng)將試圖使空閑池202中的特定類型的熱服務(wù)器的數(shù)目保持和hotServersInFreePool相等。在空閑池202中剩余的服務(wù)器可以置為低功率狀態(tài)205。
在本發(fā)明優(yōu)選的實施例中,同時參考圖1和2,針對冗余服務(wù)器的每一層分別應(yīng)用冗余和功率管理策略。這些層由圖1的第一層和第二層示出,并且置于虛線圈內(nèi)。該策略被分別應(yīng)用,因為每一功能類型可能都有特定的需求。例如,被保持在熱等待狀態(tài)203中的服務(wù)器的最小數(shù)量可能隨功能類型而變化。雖然web服務(wù)器100的最小數(shù)量可以是任意數(shù),然而熱等待網(wǎng)絡(luò)分配器102的最小數(shù)量可以是特定的。雖然不是一直需要使用熱等待網(wǎng)絡(luò)分配器102,然而它不能被關(guān)閉,因為在當(dāng)前網(wǎng)絡(luò)分配器101失效的情況下,它需要接過活動角色。對于網(wǎng)絡(luò)分配器,可以指定功率和冗余管理策略,使得(1)至少2個網(wǎng)絡(luò)分配器服務(wù)器必須總是在線,(2)為滿足附加工作負(fù)載,可以為網(wǎng)絡(luò)分配器通電,以及(3)隨工作負(fù)載的下降可以關(guān)閉網(wǎng)絡(luò)分配器,只要至少兩個分配器總是在線。作為選擇,用于應(yīng)用服務(wù)的各個層的功率和冗余管理策略可以是相同的。
圖3是根據(jù)優(yōu)選實施例的教導(dǎo)的功率和冗余管理策略的流程圖。在步驟301,確定一個冗余服務(wù)器層的每個服務(wù)器的工作負(fù)載。任何給定服務(wù)器的工作負(fù)載直接與整個應(yīng)用服務(wù)的負(fù)載相關(guān),并且還進一步依賴特定于服務(wù)器的屬性。服務(wù)器工作負(fù)載的確定方法對本領(lǐng)域的普通技術(shù)人員而言是公知的,因此不再進行進一步的描述。一旦確定了工作負(fù)載,流程進行到步驟302。在步驟302,根據(jù)上述對拓?fù)浯_定的討論確定應(yīng)用服務(wù)的拓?fù)?。拓?fù)浯_定包括對應(yīng)用服務(wù)的部件和在其上執(zhí)行這些部件的服務(wù)器的計數(shù)。并且,如果應(yīng)用服務(wù)使用虛擬服務(wù)器,將就虛擬服務(wù)器和相應(yīng)的物理服務(wù)器進行進一步的拓?fù)浯_定。一旦根據(jù)步驟301和302確定了工作負(fù)載和拓?fù)?,流程進行到步驟304,在其中確定是否需要對任何特定服務(wù)器進行轉(zhuǎn)變。
當(dāng)應(yīng)用服務(wù)的負(fù)載超出或不滿足預(yù)定高和低負(fù)載閾值時,需要對服務(wù)器進行轉(zhuǎn)變。如果兩個閾值都不滿足,則流程進行到步驟301。另一方面,如果任一閾值得到滿足,則流程進行到步驟305,其中根據(jù)下述準(zhǔn)則遷移服務(wù)器。在步驟305,在如步驟301所確定的低負(fù)載的期間,將應(yīng)用服務(wù)中的服務(wù)器從應(yīng)用服務(wù)中移出并移入到空閑池202中。相反,在如步驟301所確定的高負(fù)載的期間,將服務(wù)器從空閑池202中移回到應(yīng)用服務(wù)中。
接著流程進行到步驟307和308,其中應(yīng)用上述的功率管理策略。在步驟307,根據(jù)在步驟305中對服務(wù)器所作的轉(zhuǎn)變(一個或多個)對施加給空閑池202中的服務(wù)器的功率進行確定。如果確定當(dāng)前施加于空閑池202的服務(wù)器的功率水平是令人滿意的,而且不需要任何變化,則流程進行到步驟301。另一方面,如果確定需要更多的服務(wù)器處于熱等待模式,或者需要更少的服務(wù)器,則流程進行到步驟308,其中設(shè)置一個或多個服務(wù)器的功率操作水平。在步驟308,應(yīng)用上述功率管理策略。如所討論的那樣,這些策略考慮到步驟301和302中所確定的工作負(fù)載和拓?fù)?。如果這些功率管理策略根據(jù)預(yù)定閾值確定在空閑池202中處于熱等待狀態(tài)203的服務(wù)器的數(shù)目能夠增加,則處于低功率狀態(tài)205的空閑池服務(wù)器可以設(shè)置為熱等待狀態(tài)203。如果功率管理策略根據(jù)另一預(yù)定閾值確定在空閑池202中處于熱等待狀態(tài)203的服務(wù)器的數(shù)目能夠減少,則處在熱等待狀態(tài)203的空閑池服務(wù)器可以設(shè)置為低功率狀態(tài)205。功率閾值可以是相同或不同的,并且可以彼此相關(guān)或無關(guān)。一旦設(shè)定了功率水平,流程進行到步驟301,由此重復(fù)該流程。
圖4圖示了以硬件設(shè)備400實現(xiàn)的本發(fā)明的另一實施例。根據(jù)如上所述且如下進一步的描述,設(shè)備400監(jiān)視、檢測、遷移并且控制服務(wù)器409的功率。服務(wù)器409可以是至今所討論的任何服務(wù)器或服務(wù)器層。設(shè)備400包括工作負(fù)載監(jiān)視器401、拓?fù)錂z測器402、遷移模塊405以及功率控制器408,并且實現(xiàn)在此所述的功率和冗余管理策略。工作負(fù)載監(jiān)視器401確定每個服務(wù)器409的工作負(fù)載并且類似地執(zhí)行圖3所示的步驟301所述的功能。拓?fù)錂z測器402確定每個服務(wù)器409的拓?fù)洳⑾嗨频貓?zhí)行圖3所示的步驟302所述的功能。遷移模塊405執(zhí)行對服務(wù)器409進行類似圖3所討論的步驟304和305的操作。功率控制器408控制每個服務(wù)器409的功率設(shè)置并類似地執(zhí)行圖3中步驟307和308所示的功能。此外,設(shè)備400可以被實現(xiàn)為單個的單元,當(dāng)連接到服務(wù)器409時,它執(zhí)行在此所述的功能。
作為選擇,設(shè)備400可實現(xiàn)為分布的一系列單元401、402、405和408。設(shè)備400可以以本領(lǐng)域所公知的各種硬件實施方法的任何一種來構(gòu)造;諸如,門陣列、微處理器、微計算機、定制VLSI模塊、體現(xiàn)式網(wǎng)絡(luò)處理器,等等。
權(quán)利要求
1.一種計算機程序,包括當(dāng)在計算機上執(zhí)行時,適于執(zhí)行下述方法步驟的程序代碼裝置(a)確定提供應(yīng)用服務(wù)的服務(wù)器集群的每個服務(wù)器的工作負(fù)載;(b)確定應(yīng)用服務(wù)的拓?fù)?,其中所述拓?fù)浯_定包括應(yīng)用服務(wù)的第一部件和在其上執(zhí)行該第一部件的服務(wù)器之間的對應(yīng);以及(c)基于所述工作負(fù)載確定以及所述拓?fù)浯_定,設(shè)置所述服務(wù)器集群中至少一個服務(wù)器的功率狀態(tài)。
2.根據(jù)權(quán)利要求1所述的計算機程序,其中當(dāng)工作負(fù)載確定出低于一個預(yù)定閾值的工作負(fù)載時,設(shè)置步驟(c)設(shè)置到低功率狀態(tài)。
3.根據(jù)權(quán)利要求2所述的計算機程序,其中所述設(shè)置步驟(c)進一步基于服務(wù)器資源被完全利用的程度。
4.根據(jù)權(quán)利要求2所述的計算機程序,其中所述拓?fù)浯_定包括活動服務(wù)器的總數(shù)的第一計數(shù),并且其中所述設(shè)置步驟(c)進一步為通電的非活動服務(wù)器和該第一計數(shù)的比率的函數(shù),并且包括規(guī)定用于設(shè)置通電的非活動服務(wù)器的最小數(shù)目。
5.根據(jù)權(quán)利要求1所述的計算機程序,其中當(dāng)所述工作負(fù)載確定確定出表示從一個服務(wù)器上次被重置時起所經(jīng)歷的時間的工作負(fù)載時,所述設(shè)置步驟(c)設(shè)置到低功率狀態(tài)。
6.根據(jù)權(quán)利要求1所述的計算機程序,其中當(dāng)所述工作負(fù)載確定確定出大于一個預(yù)定閾值的工作負(fù)載時,所述設(shè)置步驟(c)設(shè)置到通電狀態(tài)。
7.根據(jù)權(quán)利要求1所述的計算機程序,其中確定服務(wù)器集群的每個服務(wù)器的工作負(fù)載的步驟包括確定提供應(yīng)用服務(wù)的可伸縮冗余服務(wù)器的第一層中每個服務(wù)器的工作負(fù)載,其中拓?fù)浯_定包括活動第一層服務(wù)器的總數(shù)的第一計數(shù),以及應(yīng)用服務(wù)的第一部件和在其上執(zhí)行第一部件的第一層服務(wù)器之間的對應(yīng),所述計算機程序裝置還適于當(dāng)在計算機上執(zhí)行時執(zhí)行下述步驟(e)基于所述工作負(fù)載確定使第一層服務(wù)器在應(yīng)用服務(wù)和第一層服務(wù)器的空閑池之間轉(zhuǎn)變,并且其中設(shè)置步驟(c)包括(f)基于所述拓?fù)浯_定并根據(jù)基于該工作負(fù)載確定的第一預(yù)定功率管理策略控制施加給第一層服務(wù)器的空閑池中的每個服務(wù)器的功率。
8根據(jù)權(quán)利要求7所述的計算機程序,進一步包括(g)確定提供應(yīng)用服務(wù)的可伸縮冗余服務(wù)器的第二層中每個服務(wù)器的工作負(fù)載,其中來自可伸縮冗余服務(wù)器的第二層的應(yīng)答依賴來自可伸縮冗余服務(wù)器的第一層的應(yīng)答;(h)在應(yīng)用服務(wù)和第二層服務(wù)器的空閑池之間轉(zhuǎn)變第二層服務(wù)器;以及其中所述拓?fù)浯_定進一步包括活動第二層服務(wù)器的總數(shù)的第二計數(shù),以及(i)根據(jù)第二預(yù)定功率管理策略并基于所述拓?fù)浯_定控制施加給第二層服務(wù)器的空閑池中的每個服務(wù)器的功率;其中所述第二功率管理策略是從由第一功率管理策略和獨立于第一功率管理策略的策略所構(gòu)成的組中選擇出來的策略。
9.根據(jù)權(quán)利要求7所述的計算機程序,其中當(dāng)所述工作負(fù)載確定確定出低于一個預(yù)定閾值的工作負(fù)載時,所述轉(zhuǎn)變?yōu)閺膽?yīng)用服務(wù)到第一層服務(wù)器的空閑池。
10.根據(jù)權(quán)利要求9所述的計算機程序,其中所述轉(zhuǎn)變進一步基于進行轉(zhuǎn)變的該第一層服務(wù)器的服務(wù)器資源被完全利用的程度。
11.根據(jù)權(quán)利要求7所述的計算機程序,其中當(dāng)所述工作負(fù)載確定確定出大于一個預(yù)定閾值的工作負(fù)載時,所述轉(zhuǎn)變?yōu)閺牡谝粚臃?wù)器的空閑池到應(yīng)用服務(wù)。
12.根據(jù)權(quán)利要求7所述的計算機程序,其中第一層服務(wù)器的空閑池中的服務(wù)器所應(yīng)用的第一預(yù)定功率管理策略保持第一數(shù)目的通電非活動服務(wù)器,同時將剩余的服務(wù)器設(shè)置為低功率狀態(tài)。
13.一種方法,包括(a)確定提供應(yīng)用服務(wù)的服務(wù)器集群的每個服務(wù)器的工作負(fù)載;(b)確定應(yīng)用服務(wù)的拓?fù)?,其中所述拓?fù)浯_定包括應(yīng)用服務(wù)的第一部件和在其上執(zhí)行該第一部件的服務(wù)器之間的對應(yīng);以及(c)基于所述工作負(fù)載確定以及所述拓?fù)浯_定,設(shè)置所述服務(wù)器集群中至少一個服務(wù)器的功率狀態(tài)。
14.一種設(shè)備,包括工作負(fù)載監(jiān)視器,用于檢測提供應(yīng)用服務(wù)的服務(wù)器集群的每個服務(wù)器的工作負(fù)載;拓?fù)錂z測器,用于確定應(yīng)用服務(wù)的拓?fù)?,包括?yīng)用服務(wù)的第一部件和在其上執(zhí)行該第一部件的服務(wù)器之間的對應(yīng);以及功率控制器,用于基于由所述工作負(fù)載監(jiān)視器確定的工作負(fù)載以及由所述拓?fù)錂z測器確定的拓?fù)?,設(shè)置所述服務(wù)器集群中一個服務(wù)器的功率狀態(tài)。
全文摘要
功率和冗余管理策略被分別應(yīng)用于應(yīng)用服務(wù)的冗余服務(wù)器的各層,使得在保持高度系統(tǒng)可用性的同時降低功率。被確定為相對不活動的服務(wù)器被遷移到空閑池??臻e池的某些服務(wù)器保持在熱等待狀態(tài),而其它服務(wù)器被保持為關(guān)閉狀態(tài)或設(shè)置為工作于低功率模式。在高負(fù)載期間,能夠迅速為應(yīng)用服務(wù)供應(yīng)熱等待狀態(tài)的服務(wù)器。
文檔編號G06F1/32GK1717657SQ200380104167
公開日2006年1月4日 申請日期2003年10月27日 優(yōu)先權(quán)日2002年11月27日
發(fā)明者奧弗·比拉恩, 理查德·埃德溫·哈珀, 斯里拉瑪·曼德雅姆·克里施納庫瑪, 布魯斯·肯尼思·馬克肯澤爾, 格里高里·布賴恩·普魯特, 本-阿米·雅索爾 申請人:國際商業(yè)機器公司