ZDNet至顶网服务器频道 09月03日 评论分析(文/赵效民):在网络、存储、服务器几大领域中,首先受到“软件定义”影响的无疑是服务器领域,而这一领域也无疑是数据中心最关键之所在——因为计算是数据中心处理信息的根本,而服务器就是计算的平台,也因此,“软件定义”也最早在服务器上实战——我们暂且称之为“软件定义计算”。
软件定义计算的典型案例:服务器虚拟化
由于服务器虚拟化主要由虚拟化管理器(VMM)来实现,所以传统的服务器虚拟化就是典型的“软件定义”,从它自身的发展过程中,就能很好的体现出“软件定义”的由来、优势和其与硬件之间的关系。
与所有流行的技术一样,虚拟化技术的诞生,是与用户需求密不可分的,这也从侧面印证了软件定义本身也是需求引发的产物。
在很早以前,人们就已经发现服务器内部的计算资源(CPU+内存)并不是长期处于满负载的工作状态下,很多时候CPU占用率只在10%甚至更低的水平,有的服务器长期处于5%以下的CPU利用状态。而当IT对于企业越来越重要之后,IT的投资也在逐年增长,渐渐的,对于这笔投资的回报率,也走进了企业高管的视野——我投了这么多钱买服务器,实际只用了这么点资源?但是当时的应用架构,在兼容性与可靠性方面,也决定了服务器使用方式,一个应用一个服务器,这在确保应用之间互不影响的同时,也划定了服务器的应用模式。然而,对于成本的考量,以及对资源物尽其用的要求,使得人们开始研究如何“复用”一台服务器的技术,这就是当前已成主流的虚拟化。借助于VMM,它让一台服务器上可以运行多个虚拟机,每个虚拟机再承载不同的应用,在逻辑空间上实现隔离,既保证了应用间的独立,也让服务器的资源获得最大化的利用,CPU占用率长期保持在50-70%左右,相较于原来的水平,相当一台服务器顶原来的5至10台来用,效益可观。
当前,我们已经很熟悉服务器虚拟化所带来的好处,虽然它与云计算并没有直接的联系,但谁都不否认它是实现云计算的一大捷径,尤其是云计算所强调的自动化资源配置,没有服务器虚拟化的帮助,很难想像会如此动态而灵活的计算资源调度——借助软件层对硬件抽象层的全局管理,计算资源打破了物理机箱的限制,而在数据中心级别实现汇总与融合,进而为新一代的应用诞生提供了必要的土壤与未来进一步发展的核心理念。
但是,对于当今占据数据中心主流的x86平台来说,在很长一段时间里,因为硬件性能的限制,x86服务器虚拟化都单纯依靠软件来实现,从而造成了虚拟化后的性能较物理机性能有较大幅度的下降,平均达30%左右,这足以抵消CPU换代升级所获得性能提升,也因此长期制约了服务器虚拟化的普及,直到CPU虚拟化技术的出现,才打开了服务器虚拟化在x86市场兴盛的大门,并进一步促成了x86在数据中心里的领导地位。
在这方面,英特尔可谓是先行者,也可以说是对“软件定义基础设施”(SDI)的最早实践。在2005年,英特尔率先为x86带来了首个硬件辅助虚拟化技术Intel-VT及相关的处理器产品,将虚拟化后的性能下降幅度缩减到5%以内,从而正式揭开x86架构虚拟化技术应用的新序幕。也因此相应的虚拟化平台也与其保持着紧密的联系,事实上现在每一代新的VMM研发,都不可能忽视英特尔在硬件平台上的创新功能,因为充分利用这些功能,也将让相应的VMM在全局性能上表现更好,因此它可以看作是硬件与软件定义相互优化、共同进步的典范之作。
软件定义计算的普及需要全面而高效的硬件平台
回顾完服务器虚拟化这一典型的软件定义计算案例,再放眼当前整体的计算市场,我们也会发现这种由需求引领硬件,再引发相关软件定义的“通用路径”,也就是说软件定义离不开硬件,而硬件的发展又离不开应用的需求,所以我们也不难得出“软件定义是在硬件基础上进步满足有用户需求”的一个手段,显然它要依附于最为流行的硬件平台之上,才有可能获得最大限度的普及。由此,我们可以总结出软件定义计算对于硬件平台的要求,可以归结为两点:全面、高效。
首先说全面,因为不同的软件应用,对于计算资源的需求是不同的,这里就包括了我们上文所说的计算(含内存)、I/O和网络,而在这些领域谁有更为全面的布局,也就会更获得软件定义的青睐,这个道理很明显,就如手机应用开发者会首选iOS与安卓平台一样,软件定义的生态环境也必要选择最为普及的硬件平台。
在这方面,综观全局市场,应该没有出英特尔之右者。在CPU层面,从轻负载/低能耗/高密度应用再到主流应用与关键业务应用,英特尔提供了凌动(Atom)、至强E3、至强E5、至强E7四大家族,并在平台层面上,针对不同的I/O与网络需求,配备不同的平台,也因此为软件定义提供了最为广阔的发挥空间。
不同的软件应用对于不同的计算资源有着各自的需求,不可能有一个硬件能有效(成本合理、性能出色)支撑所有的应用
英特尔为软件应用提供了完整的承载平台,也为其SDI战略打下了坚实的基础
即使对于有特殊需求的应用,英特尔也会提供相应的定制化硬件平台与以支持,而其核心战略就是围绕x86,或以其为核心来展开,比如Xeon+FPGA的定制化设计——通过整合至强处理器和兼容的FPGA到一个单独的封装里,其将与标准至强E5处理器实现插座(Socket)上的兼容,并可让FPGA直接访问主内存。而有了FPGA的可重编程能力,就能够在工作负载和计算需求发生波动的时候帮助改变算法,进一步优化软件效率。
再比如采用x86融核设计的Xeon Phi,极大的扩展了x86在高性能计算领域的能力,为用户提供了可媲美所谓GPGPU的超并行计算能力,并保持了HPC应用的底层x86兼容,大大降低了软件编程的难度。
这一切,都在扩大着x86平台在数据中心里的统治范围,而这种从底层指令集架构上的统一,也为英特尔SDI的普及与发展提供了无与伦比的强大基础,它为软件厂商提供了最诱人的生态空间,这无疑是其他处理器平台(RISC、ARM)所无法比拟的。
其次我们再说高效,当然就是指高性能与高效率,是每一个用户都非常看重的,某种角度上,它也将直接影响相关硬件平台的普及率。即使你的产品线再丰富,假如不能满足用户的需求,仍然是纸上谈兵,所以高效的硬件平台是企业IT的基础,也是软件定义效果的保证。
高效主要有两个含义,一个就是计算性能本身,另一个就是硬件平台本身的效率,这个效率可以说是是系统综合运行的体现,如果性能不是问题,那么影响系统效率的一个关键指标就是RAS(可靠性、可用性、可服务性),可以想像一台经常死机的电脑,无论性能再强,也不会有多高效率的——这一点对于虚拟化环境尤为重要。
在这两个方面,英特尔平台在合理的成本之上提供了理想的选择。对于性能来说,英特尔至强处理器的表现有目共睹,已经基本上与传统的RISC小型机平起平坐,主流的E5平台,已经成为数据中心的绝对主流。也在RAS方面,至强也与RISC系统基本看齐、而在虚拟化的使用中,用户最担心的无疑是稳定性的问题,这是因为服务器虚拟化的结果是一台服务器上会跑多个虚拟机,如果物理机不可用,也就将影响到其上面的多台虚拟机。虽然可以借助虚拟机热备的技术来保证业务连续性,但在很多场合,仍然需要虚拟化平台本身有足够的健壮性(比如数据库、ERP等企业核心业务应用),这方面至强E7平台则做出了足够了的表率,在x86平台中可谓鹤立鸡群。
因此,我们可以看出在软件定义计算领域中,英特尔的强势不是没有道理的,它提供了最为全面的硬件平台,获得了最高的市场占有率,为软件定义提供了良好的生长环境,并在此基础上,为软件定义进行了优化,也因此诞生了SDI的概念,可谓是水到渠成。在业界流行着这样一种说法:所谓的软件定义,就是在x86服务器上做各种事情。这种说法虽不严谨,但却是当今软件定义主流方式的写照。而作为x86市场绝对的领导者,英特尔SDI对于软件定义的意义已不言而喻。
进化:在更大规模硬件平台上的软件定义计算
现在我们已经了解了服务器在软件定义层面上的基本硬件形态与相互发展的逻辑,这在当前的数据中心里随处可见,一个个的传统机箱里,装着相应的计算、I/O与互联的组件,从某种角度上说这是一个不变的核心,变的只是外在的系统设计。相应的,软件定义计算的发展也随系统的进化而演变。
然而,我们必须再次强调硬件系统的演进是与业务的需求分不开的,这是一个必然的因果关系——有新的业务和应用需求,才会有相应的硬件系统与之相配,进而在其上发展出符合这一需求的软件定义。从服务器根据不同负载而有不同设计,再在其上配以相应的软件定义,以实现资源融合的历史中,就可见一斑。而现在,新的需求正在带动硬件向新的形态迈进,并引领软件定义计算的进一步发展,这就是机柜级服务器。
这一新的应用需求起源就是泛互联网化。互联网的发展正在迅速改变着我们所处的世界,从生活到工作,均带来了深远的变革。而支撑这一切变化的,最终可追溯至基础的IT架构与形态的改变。与之相伴的,就是云计算、大数据早已不绝于耳,这种更大范围内的数据、应用的集中,也造就了越来越庞大的数据中心(想想那些巨型互联网与云计算服务提供商的数据中心),其规模在10年前都不可想象。与此同时,传统的企业也因为其业务与互联网关系越来越紧密,而使其自身的IT变得越来越互联网化。在这种规模化的泛互联网化应用转型中,甚至改变了传统的IT产品设计、采购与商业服务模式。这其中,开放式硬件设计就是一个典型的趋势。
开放式硬件主张更为彻底的重构硬件,将原本放在标准化Box里的元件全拿出来,再在更大尺寸的物理框架进行重新整合,而这个新的物理框架就是原来的机柜——原本用来装载标准化Box的大型“机箱”,这样设备也将以机柜为单位进行横向扩展(Scale-Out),这显然是符合大型互联网应用与数据中心建议需求的,也因此受到了互联网巨头们的认可与关注。逐渐的,为了让相应的设计在更大范围内标准化,以保证采购效率与成本,开放式硬件联盟出现了。在国外,以Facebook主导的OCP(Open Compute Project开放式计算项目)就是著名一例,在国内与之对应的就是天蝎计划(Project Scorpio)。而在这两个计计划中,英特尔都是积极的参与者,其提供的技术参考设计——机柜级架构(RSA,Rack Scale architecture),可以说是下一代互联网数据中心基础设施的典型设计。
对于超大规模数据中心讲,部署几百万台传统的机架、刀片服务器,对于数据中心的管理与运维复杂度来讲都是一场噩梦,机柜级服务器因此应运而生
英特尔RSA服务器的基本构成,从上层的自动协同管理、开发网络平台以及存储、计算与网络组件,英特尔提供了完整的产品与技术支持
英特尔RSA服务器的内部联网拓扑设计,英特尔自己研发的硅光(SiPH)网络技术是其中的关键,只需15条线缆即可完成整体机柜模块的互联
RSA服务器可以根据不同的应用需求搭载不同的IT资源模块,比如单路至强E5、双路至强E5、双路E7、双路E5存储模块等等,OEM厂商可以自由发挥
在RSA中,英特尔运用了自己所有相关的技术与产品组合,支撑起了RSA的完整设计,这其中包括了计算、存储与网络。目前,RSA的设计方向在于模块化的IT资源组合,将计算、存储与网络单位模块根据不同的应用需求进行搭配。从组装的角度来看,这种模块化设计与传统的机架服务器上架时没有太大的区别,但是相关功能模块的管理与互联就已经有了很大不同,它让用户可以按机柜为单位管理IT资源,这对于大规模数据中心来说,无疑是非常诱人的。在未来,RSA服务器将实现各IT资源的池化聚合的功能,从而真正实现机柜服务器。
在RSA硬件平台之上,配合英特尔提供的数据中心管理软件(DCM,包括一系列数据中心与服务器节点管理组件),可以在数据中心规模里进行资源的配置,从某种意义上说已经是将数据中心变成了一个广义上的服务器,这其实也算是“软件定义”的一个极致。而如果你愿意,也完成可以实现在物理级别上的资源整合与调配,这不同于传统的虚拟化——先将硬件资源抽象,再在控制层面汇总,而是直接在硬件平台上进行物理资源的汇总,再精细化的分割调度,从而获得比虚拟化环境更好的性能表现。但这一切离不开硬件与软件的紧密配合,使资源的管理在RSA级别上实现突破传统认知的能力,这可以说是软件定义与硬件相辅相成的另一个极致。
综上所述,我们从硬件发展、硬件能力、服务器虚拟化以及未来的服务器演变来综合探讨了在服务器领域中,“软件定义计算”的发展之路,从而也看到了英特尔平台在其中的贡献与地位。
显然,在这一过程中,英特尔SDI的理念形成与其在市场的迅速渗透有其必然的原因——它源于英特尔硬件平台对应用负载全面的支持程度、在性能与RAS方面的积累与进步程度、由此带来了英特尔硬件平台在市场上广泛的普及程度,从而为软件定义提供了理想的平台,并在此基础上相互促进,共同发展。而在这一过程中,我们也清楚了其背后的演变规律与逻辑,即一切都始于用户的需求——先带动了相应硬件的诞生,再推出与之配套的软件定义解决方案,这方面,面向未来数据中心规模的RSA设计是最好的例证,并从侧面让我们看到了英特尔SDI在服务器发展历程中的根本用意——软硬兼施 为计算而优化,听起来似乎很简单,但它的确蕴含了太多的内容,也揭示了硬件与软件之间更具深意的关系!