服務(wù)器虛擬化領(lǐng)域的ARM處理器與RISC技術(shù)
RISC一直是移動設(shè)備的主流技術(shù),但是現(xiàn)在其準備在數(shù)據(jù)中心服務(wù)器以及服務(wù)器虛擬化領(lǐng)域承擔(dān)重要角色。最新的RISC處理器支持虛擬化而且將改變計算資源擴展的方式以滿足工作負載要求。
虛擬化是為復(fù)雜指令集計算(CISC)而定制的,虛擬化使x86以及其他CISC處理器能夠達到了在沒有使用hypervisor的情況下幾乎不可能達到的使用率級別。但是RISC以及RISC芯片現(xiàn)在在服務(wù)器中承擔(dān)了更為重要的角色,這在很大程度上歸功于ARM及其參考架構(gòu)。64位ARM處理器的出現(xiàn)意味著管理員必須采用虛擬化戰(zhàn)略以最大限度地提高系統(tǒng)的利用率和可擴展性。
64位ARM處理器提供虛擬化支持
為使虛擬化發(fā)揮優(yōu)化資源以及硬件性能優(yōu)勢,服務(wù)器需要支持一些核心的處理器技術(shù)。
首先,處理器必須提供允許hypervisor管理并分配計算資源的指令集,沒有資源重疊影響工作負載安全性。早期的部署依賴軟件進行管理與分配,但是軟件實際上影響了性能而且對在舊系統(tǒng)上進行虛擬化進行了嚴格的限制。傳統(tǒng)的x86處理器采用虛擬化擴展,ARM也采用了這一方式,在ARMv7中針對虛擬化引入了硬件加速。
其次,在虛擬化環(huán)境中內(nèi)存是一個主要關(guān)注點。傳統(tǒng)的32位處理器只能訪問4GB的系統(tǒng)內(nèi)存,這限制了系統(tǒng)能夠支持的虛擬機的總數(shù)。這一限制提醒我們遷移到64位處理器,64位處理器在理論上能夠訪問16艾字節(jié)的內(nèi)存,遠遠大于在目前的服務(wù)器系統(tǒng)中實際配置的內(nèi)存大小。
大型物理地址擴展通過將32位地址映射到40位地址范圍,使舊有的ARM處理器克服了32位內(nèi)存限制。但是為了支持數(shù)據(jù)中心工作負載并運行企業(yè)級操作系統(tǒng),ARM處理器還必須遷移到64位平臺。ARMv8架構(gòu)比如ARM的Cortex-A50系列是一款真正的能夠進行64位尋址的64位處理器。
什么時候使用ARM處理器進行服務(wù)器虛擬化
Intel至強、AMD酷龍以及其他x86處理器能夠處理大量指令,而且包含數(shù)十億個在2-3GHz頻率下運行的晶體管。這一數(shù)量巨大的晶體管處理復(fù)雜指令的擴展集合,但是將消耗大量的電力,而且會影響處理效率。
RISC技術(shù)的目標是通過精簡指令集降低功耗并提升性能。RISC減少了指令的數(shù)量,因此減少了晶體管的總數(shù)。晶體管的數(shù)量更少降低了功耗,這是通過處理器提升性能的最快方式。這一精簡的處理器使用1GHz或者更低的時鐘頻率能夠達到更好的性能。
相比部署在x86服務(wù)器上的工作負載,RISC應(yīng)用以及底層的操作系統(tǒng)通常更加簡單和具體,。例如,Web服務(wù)器工作負載主要是通過存儲向網(wǎng)絡(luò)交換數(shù)據(jù)并提供Web頁面服務(wù)。這些任務(wù)需要相對少的指令集合,更適合用于RISC技術(shù)以及以及互補服務(wù)比如Java和ActiveX。ARM處理器帶來的性能提升同樣能夠加速Web頁面交付并提升用戶體驗。
相反,具有高處理請求或多樣化處理請求的應(yīng)用,或者是具有高內(nèi)存要求的應(yīng)用通常不適合采用RISC技術(shù)。這意味著業(yè)務(wù)必須實現(xiàn)服務(wù)器與任務(wù)的匹配。
RISC服務(wù)器必須有ARMv8或者類似包含虛擬化擴展的處理器。硬件還具備使服務(wù)器虛擬化更有效率的加速功能。服務(wù)器還需要足夠多的處理器和內(nèi)存來支持預(yù)期的工作負載。主要的虛擬化廠商提供了運行在ARM處理器之上的hypervisor軟件以及操作性系統(tǒng),比如Ubuntu Server以及Ubuntu Desktop 12.04。
考慮到RISC在服務(wù)器領(lǐng)域羽翼未豐,部署ARM服務(wù)器并使用虛擬化比如HP Moonshot平臺,應(yīng)該參考實驗室測試以及內(nèi)部的概念驗證項目。
使用64位ARM處理器分配資源
64位ARM系統(tǒng)的虛擬資源分配和傳統(tǒng)的x86系統(tǒng)的工作原理類似:必須對資源進行調(diào)整以優(yōu)化工作負載的性能。然而計算資源擴展的方式是不同的。
在傳統(tǒng)的x86系統(tǒng)中,處理器可擴展性受限是因為操作系統(tǒng)以及工作負載通常沒有設(shè)計為在多個處理器之間進行擴展。單個x86處理器通常提供了足夠多的計算周期,工作負載在多個處理器核心之間擴展的情況很少。
在RISC處理系統(tǒng)中,單個RISC核心沒有提供像x86處理器那樣充分的處理功能。RISC處理器在速度以及復(fù)雜性方面的特性降低了功耗而且能夠高效運行。然而,管理員仍舊需要改變他們感知RISC處理器核心的方式。例如,Intel至強處理器可能提供了10個核,而64位的Tilera TILEGx-8072提供了72個核。完整的RISC服務(wù)器S2Q多模云服務(wù)器在2U的服務(wù)器空間內(nèi)提供了8顆64核的處理器,共計512個核。
這意味著相對于傳統(tǒng)的x86平臺,RISC應(yīng)用能夠在核心和處理器之間進行更平滑擴展。這打開了更大工作負載計算可擴展性的大門,對于某些基于云的應(yīng)用,當用戶需要很大的可擴展性時RISC可能是更適宜的平臺。
類似HP Project Moonshot這樣的項目強調(diào)了RISC以及RISC處理器架構(gòu)的重要性。RISC在服務(wù)器虛擬化領(lǐng)域的增長將推動64位架構(gòu)的采用以及虛擬化部署,最終實現(xiàn)最佳的工作負載靈活性及可擴展性。