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