有人把云計(jì)算技術(shù)視為個(gè)人電腦、互聯(lián)網(wǎng)之后的第三次革新浪潮,認(rèn)為它即將甚至已經(jīng)從根本上改變整個(gè)信息產(chǎn)業(yè)的格局,改變?nèi)祟愂褂糜?jì)算機(jī)的習(xí)慣和方式,因此云計(jì)算技術(shù)得到了迅猛發(fā)展。但是,它改變世界的同時(shí),自己也需要被改變:由于云計(jì)算規(guī)模越來越大,它對(duì)能源與環(huán)境的影響已越來越突出,能效問題是云計(jì)算發(fā)展道路上必須要跨過的障礙。
在云計(jì)算出現(xiàn)之前,想要大量儲(chǔ)存和處理數(shù)據(jù)只能自己搭建服務(wù)器系統(tǒng)。這不僅需要很多IT知識(shí),還需要很高的成本,云計(jì)算技術(shù)的出現(xiàn)改變了這一切。所謂“云服務(wù)”,是指通過互聯(lián)網(wǎng),讓很多用戶共享軟硬件資源,按照用戶需求提供計(jì)算機(jī)等設(shè)備。于是,用戶不再需要了解“云”中的基礎(chǔ)設(shè)施細(xì)節(jié),也不需要擁有相關(guān)的專業(yè)知識(shí),就能隨時(shí)隨地處理和存儲(chǔ)大量數(shù)據(jù)。因?yàn)樗麄儾挥秘?fù)責(zé)控制“云”中的設(shè)備和軟件,只需要付出相對(duì)低廉的費(fèi)用,把技術(shù)細(xì)節(jié)交給云服務(wù)的提供商來處理就好。
通過互聯(lián)網(wǎng),用戶可以非常方便地使用云服務(wù),因此互聯(lián)網(wǎng)上的“云”正迅速擴(kuò)張,變得越來越龐大,甚至能把產(chǎn)業(yè)鏈的不同環(huán)節(jié)整合在一起。此外,云計(jì)算還讓一些很有想象力的應(yīng)用成為現(xiàn)實(shí)。
云服務(wù)提供商集成的大量存儲(chǔ)和計(jì)算資源能形成規(guī)模效應(yīng),用戶可以隨時(shí)根據(jù)需要購買相應(yīng)服務(wù),而不需要為了短暫的高峰需求購買大量資源。從這個(gè)意義上說,云服務(wù)比本地服務(wù)更加節(jié)約資源和能源。根據(jù)模擬軟件CLEER的估算,如果所有的美國公司都把自己的電子郵箱程序、電子表格應(yīng)用和客戶管理軟件都轉(zhuǎn)移到集中的云服務(wù)器里,就可以把計(jì)算耗能降低87%,節(jié)省下的能源足夠讓洛杉磯運(yùn)轉(zhuǎn)一年。
云計(jì)算的好處顯而易見,但隨著其規(guī)模越來越大,云計(jì)算本身的能耗越來越不可忽視。今天,云計(jì)算的耗電量已經(jīng)超過全球總耗電量的1%。而且,把資源聚集在一起形成規(guī)模效應(yīng)本身也有成本。云計(jì)算服務(wù)商需要專門建設(shè)數(shù)據(jù)中心,并在數(shù)據(jù)中心里安置成百上千臺(tái)服務(wù)器、處理器和硬盤設(shè)備。這些設(shè)備運(yùn)行時(shí)會(huì)散發(fā)大量熱,因此數(shù)據(jù)中心需要額外的支持設(shè)備(比如散熱系統(tǒng))來維護(hù)正常運(yùn)作,互聯(lián)網(wǎng)公司谷歌甚至專門成立了能源部門為自己的數(shù)據(jù)中心供能。
一般來說,一個(gè)占地500平方米的數(shù)據(jù)中心每天消耗的電力就高達(dá)38000度,這一數(shù)字超過了3500戶歐洲家庭日用電量的總和。從2000年到2007年,全世界數(shù)據(jù)中心的耗電量已從700億度增至3300億度,到2020年預(yù)計(jì)將超過1萬億度。此外,在2014年,只有8.5%的數(shù)據(jù)中心負(fù)責(zé)人預(yù)計(jì)在2015年后數(shù)據(jù)中心的容量仍然夠用,到2020年時(shí),75%的數(shù)據(jù)中心必須要擴(kuò)容。因此,到2020年,預(yù)計(jì)數(shù)據(jù)中心的建設(shè)規(guī)模幾乎將是2010年的兩倍,達(dá)到780億美元,這讓云計(jì)算的能效、對(duì)環(huán)境的影響等問題更為突出。
所以,從上述數(shù)字可以看出,為云計(jì)算設(shè)計(jì)高能效的解決方案已經(jīng)是迫在眉睫的問題。
A.能耗的根源
云計(jì)算系統(tǒng)有幾個(gè)不可或缺的部分。首先,它需要大量的硬件設(shè)備來存儲(chǔ)并處理數(shù)據(jù)。這些硬件設(shè)備包括放置在機(jī)柜內(nèi)的計(jì)算和存儲(chǔ)服務(wù)器,以及處理器、內(nèi)存、硬盤等服務(wù)器組件。其次,在服務(wù)器之間,服務(wù)器與用戶之間需要連接,所以網(wǎng)絡(luò)也必不可少,它是連接用戶與計(jì)算、存儲(chǔ)等云資源的橋梁。此外,數(shù)據(jù)中心還需要專門的軟件來監(jiān)控和管理云計(jì)算的基礎(chǔ)設(shè)施,這些軟件就是云管理系統(tǒng)(簡稱CMS)。最后,云服務(wù)商還需要安裝合適的應(yīng)用軟件,幫助用戶使用云服務(wù)。
這幾個(gè)部分都需要消耗大量的能源,也都會(huì)損失和浪費(fèi)很多能源,比如在夜間溫度較低時(shí),散熱系統(tǒng)仍在全速運(yùn)行,或者系統(tǒng)在運(yùn)行,卻沒有為用戶提供服務(wù)。2003年,單機(jī)柜服務(wù)器的功率密度在0.25千瓦到1.5千瓦之間,而到了2014年,這個(gè)數(shù)字上升至10千瓦,預(yù)計(jì)到2020年會(huì)上升至30千瓦。而且,大多數(shù)服務(wù)器空載時(shí)的功率超過峰值功率的50%,服務(wù)器的平均利用率一般只有10%到50%。因此,一部只以20%性能運(yùn)行的服務(wù)器的能耗,可能相當(dāng)于它滿載時(shí)能耗的80%??紤]到僅在2013年最后一個(gè)季度,新服務(wù)器的出貨量就超過250萬臺(tái),提高服務(wù)器的能效就成為第一要?jiǎng)?wù)。
而在網(wǎng)絡(luò)環(huán)節(jié),主要有3個(gè)地方會(huì)消耗能源:數(shù)據(jù)中心內(nèi)部的連接、不同數(shù)據(jù)中心間的網(wǎng)絡(luò)連接,以及讓外部用戶訪問的固定網(wǎng)絡(luò)和無線網(wǎng)絡(luò)。在目前的數(shù)據(jù)中心,網(wǎng)絡(luò)成本占所有運(yùn)營費(fèi)用的10%,這個(gè)數(shù)字還可能隨著互聯(lián)網(wǎng)流量的增加上漲到50%。
如果服務(wù)器空載,就會(huì)耗費(fèi)大量能源。如果網(wǎng)絡(luò)架構(gòu)不適合云應(yīng)用,信息的傳輸途徑也會(huì)發(fā)生改變,網(wǎng)絡(luò)的某些部分就無法得到充分利用,能源浪費(fèi)就會(huì)加劇。
由于信息技術(shù)的能耗越來越高,在數(shù)據(jù)中心的設(shè)備中,監(jiān)控和管理云計(jì)算的基礎(chǔ)設(shè)施就變得很重要,云管理系統(tǒng)的作用就是提高數(shù)據(jù)中心的能效。如果使用不當(dāng),云管理系統(tǒng)本身也會(huì)浪費(fèi)能源。應(yīng)用設(shè)備(如Java虛擬機(jī))的運(yùn)行通常都會(huì)產(chǎn)生日常能源消耗,如果應(yīng)用設(shè)備性能不佳,就需要更多服務(wù)器,消耗更多的能源。
B.硬件優(yōu)化之路
提高能效的第一步是升級(jí)網(wǎng)絡(luò)設(shè)備,增加節(jié)能模式,減少網(wǎng)絡(luò)設(shè)施在未被充分使用時(shí)的耗電量。如果能把未使用的端口、連接和交換機(jī)完全關(guān)閉,它們就不會(huì)因?yàn)榭辙D(zhuǎn)而耗能了。
升級(jí)后,設(shè)備的熱載荷也會(huì)下降,這又會(huì)降低散熱系統(tǒng)的能耗,提升系統(tǒng)的穩(wěn)定性。不過,只調(diào)整網(wǎng)絡(luò)設(shè)備是不夠的,因?yàn)楫?dāng)網(wǎng)絡(luò)連通性降低時(shí),系統(tǒng)性能也會(huì)下降。所以,還需要調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),讓網(wǎng)絡(luò)流量可以沿著多個(gè)路徑傳播,或只通過少數(shù)幾個(gè)高能耗的關(guān)鍵路徑發(fā)送,而網(wǎng)絡(luò)中的其他部分則進(jìn)入低能耗模式。這種方案還可用于數(shù)據(jù)中心間的網(wǎng)絡(luò),充分挖掘網(wǎng)絡(luò)帶寬,因?yàn)榕總鬏斔璧某杀颈葐为?dú)傳輸要低。
除了降低數(shù)據(jù)傳輸?shù)哪芎?,?yōu)化網(wǎng)絡(luò)結(jié)構(gòu)還可以降低基站的發(fā)射功率——基站是云端與終端之間傳輸信息的橋梁。連接手機(jī)的大型基站覆蓋面積較大,基站和手機(jī)間的距離通常也很遠(yuǎn),所以需要相當(dāng)大的發(fā)射功率,才能保證大范圍內(nèi)的手機(jī)通信,但這樣一來,能耗無疑很高。為了降低能耗,我們可以充分利用與用戶更近的小型基站?,F(xiàn)有的研究表明,在城市地區(qū)使用小型基站,可以使空載模式下的能耗降低至原來的1/46。
服務(wù)器和網(wǎng)絡(luò)設(shè)備相似,如果可以根據(jù)負(fù)載自動(dòng)調(diào)節(jié)功率和性能,就能降低能耗。今天的CPU、內(nèi)存和硬盤都可以選擇負(fù)載和空載兩種模式,并相應(yīng)調(diào)節(jié)電壓和頻率以降低能耗。為了延長硬盤空載時(shí)間,CPU會(huì)優(yōu)先從緩存中讀取信息,只有在緩存中找不到數(shù)據(jù)時(shí),服務(wù)器才會(huì)訪問硬盤。緩存本身也能優(yōu)化甚至關(guān)掉部分未用緩存。最終,新的低功耗緩存技術(shù)可以和現(xiàn)有技術(shù)相結(jié)合,在保持性能的同時(shí)降低能耗。
服務(wù)器機(jī)柜的設(shè)計(jì)也會(huì)影響散熱和供電的能效。研究人員發(fā)現(xiàn),與使用機(jī)房空調(diào)相比,能對(duì)特定組件進(jìn)行局部散熱的服務(wù)器機(jī)柜有更好的節(jié)能效果。比如,通過一些特殊的冷卻技術(shù),可消除由處理器產(chǎn)生的熱量。此外,還可以通過調(diào)節(jié)組件本身(比如調(diào)節(jié)內(nèi)存數(shù)據(jù)吞吐量),避免熱損失的發(fā)生。從供電環(huán)節(jié)開始限制能量輸入,或?qū)?shù)據(jù)中心的能耗設(shè)置一個(gè)上限,也可以降低單一組件或整個(gè)服務(wù)器機(jī)架的能耗。最后,使用緊湊的服務(wù)器配置,直接去掉未使用的組件,也是減少能量損失的好辦法。
C.云管理的秘密
使用云管理系統(tǒng)的主要目的,是對(duì)基礎(chǔ)設(shè)施(包括服務(wù)器、虛擬機(jī)和應(yīng)用程序)進(jìn)行調(diào)度以實(shí)現(xiàn)負(fù)載平衡。虛擬機(jī)是體現(xiàn)云服務(wù)優(yōu)越性的最佳范例,它借助軟件模擬出計(jì)算機(jī)系統(tǒng),具有硬件功能,可以在完全隔離的環(huán)境中運(yùn)行。有幾種虛擬機(jī)的使用方法能提高云計(jì)算的能效。首先,可以讓虛擬機(jī)根據(jù)負(fù)載情況重新調(diào)配資源;其次,可以為虛擬機(jī)的布置選擇能效最高的物理機(jī);最后,可以將未充分利用的虛擬機(jī)遷移至數(shù)量更少的主機(jī)上,并把一直未使用的虛擬機(jī)關(guān)閉。
不過,這些步驟需要CPU軟件功耗模式來實(shí)現(xiàn)。該模式下,軟件和硬件彼此協(xié)調(diào)以共同調(diào)整能耗。而且,服務(wù)器本身也可以通過調(diào)整實(shí)際負(fù)載來降低能耗。研究表明,即便使用簡單的試探法(比如在服務(wù)器持續(xù)空載一段時(shí)間后關(guān)閉服務(wù)器),也能節(jié)約大量能源。
下一步措施是在更宏觀的范圍內(nèi)實(shí)施管理措施,比如合并多個(gè)數(shù)據(jù)中心。但是,這會(huì)增加虛擬機(jī)遷移所需的開銷,在輸入輸出兩端都要消耗能量。為了弄清楚合并數(shù)據(jù)中心能否提高能效,我們可以借助一些模擬工具,如CloudSim,它可以評(píng)估云計(jì)算管理系統(tǒng)消耗和節(jié)約的電量,并進(jìn)一步比較服務(wù)質(zhì)量的變化。顯然,如果既能降低能耗,又不會(huì)影響用戶使用云服務(wù),這種合并就有利于降低云計(jì)算的能耗。云管理系統(tǒng)不僅可以控制服務(wù)器,還可以控制網(wǎng)絡(luò)系統(tǒng),甚至控制散熱和供電,因?yàn)樵乒芾硐到y(tǒng)“知道” 需要哪些資源,不需要哪些資源,因此可以選擇合適的虛擬技術(shù),并在服務(wù)器空載時(shí)關(guān)閉散熱設(shè)備。
云管理系統(tǒng)的建立方式也很重要,采用模塊化方式來建立云管理系統(tǒng)就很有優(yōu)勢,因?yàn)檫@允許技術(shù)人員在實(shí)際需要某個(gè)模塊時(shí)加載相應(yīng)模塊。比如,在需要監(jiān)控某些特定組件時(shí),技術(shù)人員可以在原有系統(tǒng)中添加某些插件;而在不需要監(jiān)控這些組件時(shí),技術(shù)人員也可以終止運(yùn)行這些插件。
同時(shí),研究人員也在開發(fā)高能效的軟件,降低應(yīng)用程序在空載狀態(tài)下的能耗。比如,限制用戶遠(yuǎn)程喚醒服務(wù)器可以延長空載狀態(tài)時(shí)間,盡量向用戶發(fā)送消息而非讓用戶或客戶端向云服務(wù)器主動(dòng)發(fā)起請(qǐng)求,可以讓軟件在真正需要其運(yùn)行之前保持休眠,對(duì)資源(如磁盤)的批量訪問也可以減少不必要的喚醒。
不在現(xiàn)實(shí)世界部署高能效方案并沒有看上去那么簡單。服務(wù)器組件的低能耗模式只有在服務(wù)器長期空載的情況下才有益處,而這種情況在實(shí)際使用中并不常見。而且,盡管服務(wù)器在執(zhí)行輕量級(jí)任務(wù)時(shí)的使用率很低,但為了滿足訪問高峰時(shí)的需求,仍有必要保持適當(dāng)?shù)?ldquo;彈性”。因此,可自我擴(kuò)展的服務(wù)器組件必須與軟件組件相關(guān)聯(lián),否則調(diào)節(jié)CPU模式的技術(shù)會(huì)被錯(cuò)誤應(yīng)用,導(dǎo)致CPU運(yùn)行頻率過低,應(yīng)用程序的運(yùn)行時(shí)間變長,最終導(dǎo)致CPU的整體能耗上升。另一個(gè)目標(biāo)是讓空載組件的能耗接近于零,這可以通過合并未充分利用的服務(wù)器來實(shí)現(xiàn)。
D.治標(biāo)又治本——整體解決方案
為云計(jì)算提供支持的數(shù)據(jù)中心是一套高度耦合的系統(tǒng),幾乎可以視作一臺(tái)大型計(jì)算機(jī)。因此,除了從數(shù)據(jù)中心的每個(gè)部分著手,降低能耗之外,還得把整個(gè)數(shù)據(jù)中心視作一個(gè)整體,分析各個(gè)基礎(chǔ)設(shè)施之間的相關(guān)性,進(jìn)而尋找節(jié)能方案。
應(yīng)用設(shè)備是云計(jì)算中可管理的最小單位,但它們的性能可以影響所需服務(wù)器的數(shù)量,從而產(chǎn)生多米諾效應(yīng),進(jìn)一步影響網(wǎng)絡(luò)規(guī)模和支持性的設(shè)備——比如散熱和供電設(shè)備的數(shù)量。因此,為目標(biāo)應(yīng)用程序選擇適當(dāng)?shù)挠布Y源,可能會(huì)對(duì)數(shù)據(jù)中心的總體能耗產(chǎn)生重大影響。這里的實(shí)例包括,用GPU而不是CPU運(yùn)行可以高度并行的應(yīng)用程序(有些程序可以在成千上萬個(gè)處理器上同時(shí)運(yùn)行,節(jié)省運(yùn)算時(shí)間)。和CPU相比,GPU上的計(jì)算單元非常密集,可以同時(shí)執(zhí)行很多任務(wù),更適合并行計(jì)算,同時(shí)能耗更低。
但是,使用新的硬件需要對(duì)應(yīng)用程序進(jìn)行更深的研究和更細(xì)致的分級(jí),在特定的應(yīng)用程序和潛在的硬件資源之間建立聯(lián)系。云計(jì)算的實(shí)現(xiàn)需要多種基礎(chǔ)設(shè)施的協(xié)同,這又需要建立一個(gè)靈活、全面、監(jiān)控能力出色的云管理系統(tǒng)。作為最基本的要求,云管理系統(tǒng)必須要監(jiān)測數(shù)據(jù)中心中正在運(yùn)行的進(jìn)程、硬件性能、運(yùn)行狀態(tài)、數(shù)據(jù)規(guī)模等多種信息。管理系統(tǒng)還要對(duì)分布在不同地理位置的數(shù)據(jù)系統(tǒng)進(jìn)行優(yōu)化,讓不同的云設(shè)施合并。這些方法既需要單個(gè)數(shù)據(jù)中心中的軟件和硬件實(shí)現(xiàn)良好的交互,也需要讓全球各地的數(shù)據(jù)中心互換信息、負(fù)載和數(shù)據(jù)。
要實(shí)現(xiàn)這些目標(biāo)還是要依靠網(wǎng)絡(luò),利用網(wǎng)絡(luò)可以把計(jì)算資源和數(shù)據(jù)存儲(chǔ)資源放在可以利用可再生能源或涼爽的地方,降低散熱產(chǎn)生的能耗。當(dāng)然,優(yōu)化網(wǎng)絡(luò)設(shè)備的同時(shí)也需要改進(jìn)其他設(shè)備和組件。比如,數(shù)據(jù)和處理器距離用戶很遠(yuǎn)且分布不均,會(huì)導(dǎo)致云服務(wù)的性能大打折扣,而采用好的設(shè)備和云管理系統(tǒng)能降低網(wǎng)絡(luò)流量,也就可以解決這個(gè)問題。除了改進(jìn)數(shù)據(jù)中心,將數(shù)據(jù)中心整合到云計(jì)算概念里能在更大規(guī)模上提升能效。
美國勞倫斯·伯克利國家實(shí)驗(yàn)室開發(fā)出的開源能效評(píng)估模型CLEER能對(duì)應(yīng)用轉(zhuǎn)移至云端的過程進(jìn)行節(jié)能分析。CLEER估計(jì),和現(xiàn)有的分布式使用商業(yè)軟件相比,云計(jì)算有可能把現(xiàn)在的能耗降低95%左右。此外,內(nèi)容數(shù)字化也能極大降低能耗。例如,在視頻行業(yè)中,通過云計(jì)算系統(tǒng)向用戶提供視頻的能耗比郵遞CD和DVD要低15%。
靈活的云架構(gòu)還能間接優(yōu)化能源利用。比如,數(shù)據(jù)中心中用來調(diào)整硬件負(fù)載狀態(tài)的技術(shù)還可以用來調(diào)節(jié)電網(wǎng)頻率,這樣電網(wǎng)就能保持在最優(yōu)頻率上,從而有助于能效在更宏觀層面上的提升。未來,研究人員既需要讓能效解決方案照顧到云計(jì)算系統(tǒng)里的每個(gè)單元,也要讓整個(gè)系統(tǒng)高效運(yùn)行,這樣才能解決云計(jì)算的能耗問題,云計(jì)算也才能讓我們的世界變得更好。