RISC(Reduced Instruction Set Computer)即精简指令集,一直是移动设备的主流技术。而CISC (Complex Instruction Set Computer)即复杂指令集,已经在虚拟化环境下发展壮大。二者都是设计制造微处理器的两种典型技术,但是 RISC以及RISC芯片现在在服务器中承担了更为重要的角色。这主要归功于ARM及其参考架构,而64位ARM处理器的出现意味着管理员必须采用虚拟化战略以最大限度地提高系统的利用率和可扩展性。
64位ARM处理器提供虚拟化支持
为使虚拟化发挥优化资源以及硬件性能优势,服务器需要支持一些核心的处理器技术。
首 先,处理器必须提供允许hypervisor管理并分配计算资源的指令集,没有资源重叠影响工作负载安全性。早期的部署依赖软件进行管理与分配,但是软件 实际上影响了性能而且对在旧系统上进行虚拟化进行了严格的限制。传统的x86处理器采用虚拟化扩展,ARM也采用了这一方式,在ARMv7中针对虚拟化引 入了硬件加速。
其次,在虚拟化环境中内存是一个主要关注点。传统的32位处理器只能访问4GB的系统内存,这限制了系统能够支持的虚拟机的总数。这一限制提醒我们迁移到64位处理器,64位处理器在理论上能够访问16艾字节的内存,远远大于在目前的服务器系统中实际配置的内存大小。
大 型物理地址扩展通过将32位地址映射到40位地址范围,使旧有的ARM处理器克服了32位内存限制。但是为了支持数据中心工作负载并运行企业级操作系 统,ARM处理器还必须迁移到64位平台。ARMv8架构比如ARM的Cortex-A50系列是一款真正的能够进行64位寻址的64位处理器。
什么时候使用ARM处理器进行服务器虚拟化
Intel至强、AMD酷龙以及其他x86处理器能够处理大量指令,而且包含数十亿个在2-3GHz频率下运行的晶体管。这一数量巨大的晶体管处理复杂指令的扩展集合,但是将消耗大量的电力,而且会影响处理效率。
RISC技术的目标是通过精简指令集降低功耗并提升性能。RISC减少了指令的数量,因此减少了晶体管的总数。晶体管的数量更少降低了功耗,这是通过处理器提升性能的最快方式。这一精简的处理器使用1GHz或者更低的时钟频率能够达到更好的性能。
相比部署在x86服务器上的工作负载,RISC应用以及底层的操作系统通常更加简单和具体,。例如,Web服务器工作负载主要是通过存储向网络交换数据并提供Web页面服务。这些任务需要相对少的指令集合,更适合用于RISC技术以及以及互补服务比如Java和ActiveX。ARM处理器带来的性能提升同样能够加速Web页面交付并提升用户体验。
相反,具有高处理请求或多样化处理请求的应用,或者是具有高内存要求的应用通常不适合采用RISC技术。这意味着业务必须实现服务器与任务的匹配。
RISC 服务器必须有ARMv8或者类似包含虚拟化扩展的处理器。硬件还具备使服务器虚拟化更有效率的加速功能。服务器还需要足够多的处理器和内存来支持预期的工 作负载。主要的虚拟化厂商提供了运行在ARM处理器之上的hypervisor软件以及操作性系统,比如Ubuntu Server以及Ubuntu Desktop 12.04。
考虑到RISC在服务器领域羽翼未丰,部署ARM服务器并使用虚拟化比如HP Moonshot平台,应该参考实验室测试以及内部的概念验证项目。
使用64位ARM处理器分配资源
64位ARM系统的虚拟资源分配和传统的x86系统的工作原理类似:必须对资源进行调整以优化工作负载的性能。然而计算资源扩展的方式是不同的。
在传统的x86系统中,处理器可扩展性受限是因为操作系统以及工作负载通常没有设计为在多个处理器之间进行扩展。单个x86处理器通常提供了足够多的计算周期,工作负载在多个处理器核心之间扩展的情况很少。
在 RISC处理系统中,单个RISC核心没有提供像x86处理器那样充分的处理功能。RISC处理器在速度以及复杂性方面的特性降低了功耗而且能够高效运 行。然而,管理员仍旧需要改变他们感知RISC处理器核心的方式。例如,Intel至强处理器可能提供了10个核,而64位的Tilera TILEGx-8072提供了72个核。完整的RISC服务器S2Q多模云服务器在2U的服务器空间内提供了8颗64核的处理器,共计512个核。
这意味着相对于传统的x86平台,RISC应用能够在核心和处理器之间进行更平滑扩展。这打开了更大工作负载计算可扩展性的大门,对于某些基于云的应用,当用户需要很大的可扩展性时RISC可能是更适宜的平台。