虚拟化技术目前真的已经做好了万全准备应对你的关键任务应用程序?或者这只是种美好却愚蠢的一厢情愿?这个悬而未决的问题相当重要,因为当前虚拟化颇有铺天盖地席卷而来的趋势。关键任务的虚拟化似乎已经成为历史的必然。
正如我们所预期的,VMware公司正摩拳擦掌,意欲向对虚拟化技术有兴趣的潜在客户群体开展新一轮宣传攻势。在本月早些时候于伦敦举办的VMware 2011论坛上,VMware公司的解决方案架构师David Burgess谈到,将虚拟化引入关键性任务的处理不只是可行的,更是必要的。在非虚拟化的物理服务器上运行关键业务应用程序无疑是种失误,这是他在发言中所传达的主要思想。而且我们得承认,他说得很有道理。
关键任务引入虚拟化可行性分析
当然,Burgess是Vmware公司的一份子,当然会抛出这类对公司有利的观点。但这并不代表该观点不值得关注及深入探讨。他发言中的关键点之一,是提到95%的关键任务应用程序无法完全利用物理服务器的资源。“如果大家认真查看,就会发现大多数这类应用程序都无法利用到四核心甚至双核心之外的系统资源,”Burgess说道。他随即指出,既然应用程序在虚拟机中的运行性能表现与在物理服务器上相差无几,那为什么还要对服务器虚拟化如此抗拒呢?“况且将关键性业务应用运行于物理环境中同时还面临着可持续发展方面的问题,”他如是说。
Burgess的发言还包含着更多其它信息。他指出,在物理部署方案中,我们需要为自己的每一套关键性任务应用程序栈分配自定义的解决方案,以提供高可用性、灾难恢复及数据保护等功能。整个流程不仅难于部署且成本高昂,此外还需要雇佣专门的熟练人员对配置及管理中的每个细节进行监控。
Burgess认为,上述困扰对于服务器虚拟化来说则不是问题——至少对于VMware公司的管理程序来说不是问题。“高可用性、容错性以及数据恢复——这些都包含在虚拟化解决方案当中,”他说。区别于单独的应用程序库,他将一套把数种关键性任务应用程序运行于两到三台物理服务器上的vSphere中的体系通过上述表述加以形容。本地可用性由VMware High Availability(用以在某台服务器或操作系统出现故障时,于新服务器上重启虚拟机)以及Fault Tolerance(用以实现即时故障转移)共同保证,当然必要时还要加上VMotion以及Storage VMotion。此外还有VMware Data Recovery 及vStorage API数据维护体系,用以提供数据恢复及备份功能,加上vCenter Site Recovery Manager来实现基于阵列的站点复制保护机制。
即使上述论点能够被大家所接受,目前大多数企业仍然不愿意在自己的关键性任务处理中引入虚拟化技术,因为他们担心技术支持方面会产生问题。Burgess对此的回答归纳起来可以理解为:如果我们的应用程序供应商不支持应用产品运行于虚拟环境之下,这种状况本身才是最大的失误。
他是如何得出这一看似武断的结论的呢?因为诸如SAP、甲骨文、微软、IBM等大型软件公司以及约1400家其它独立软件开发商都对VMware公司所推出的虚拟化技术提供支持。此外,我们也不能忽略许多企业正是在虚拟机上开发自己的产品。对一款应用程序是否能够运行在VMware的虚拟机上进行认证,事实上比对其是否能够运行在多种不同的物理服务器上进行认证要方便得多。最后,Burgess引用了虚拟机领域已经得到广泛认同的观点:在2009年,虚拟机上所负载的工作量已经超过了物理主机上的工作量。“如果大家的独立软件供应商迄今为止仍未打算向虚拟化迈出决定性的一步,那么他们恐怕也不具备在日后的发展中随时提供必要支持的前瞻性。”换句话来说,让他们哪凉快哪待着去吧。
那么认证许可方面的费用呢?这看似是个问题,但却不必太过担忧,Burgess这样认为。“在业内,认证许可事实上一直饱受诟病,而不少独立软件供应商也的确在尝试利用虚拟基础设施来保障由认证许可所带来的营收提升。但无论如何,这些都在可以洽谈的范畴之内,而且随着时间的推移,我认为这个问题终究会消失,”他充满信心地如此表态。总体来说,下列表述还是比较客观的,即:虚拟化技术使工作负荷运行于更少的处理器核心之上,而像vSphere的DRS(即分布式资源调度)虚拟机及Host Affinity Fules(即主机接驳规则)所提供的功能则使虚拟机在与集群中具备许可的特定主机交互时,能够保证其运作方式得到有效控制。这就消除了专用集群存在的必要性,同时可以确保某个许可规定应该运行于单CPU服务器的应用程序不会因为被发往双CPU的服务器而产生故障。
结论
服务器虚拟化目前已经是门较为成熟的技术,而且其所带来的挑战及益处也是有目共睹的。在最近的赛门铁克2011虚拟化向云平台演变研讨会上,关于这一点已经给出了确切的结论。随着各个具体环节的现实需求,对虚拟化的支持(例如安全保障或管理方面)正迅速摆上议程,所以当前我们所面临的最重要问题可能已经不再是讨论是否要把虚拟化引入关键性任务应用程序上,而是这一计划应该何时付诸实践。