进退两难?对症下药! 企业服务器虚拟化应用思辨

标签:重磅推荐技术前沿虚拟化服务器IT存储

访客:29244  发表于:2012-02-29 13:56:17

Gartner的一份统计数据显示,2009年下半年至少有16%的企业级工作负载运行在虚拟服务器上,而且这个比例到了2012年有望增长到50%,这也就意味着以x86为基础的虚拟机将达到大概5800万兆。

来自厂商、用户、市场调研机构的多方评论,无不说明服务器虚拟化已成为企业计算市场的热门话题。而与此同时,仍有相当

部分企业用户对虚拟化抱着敬而远之的态度。他们总是觉得“真实的”、“硬件的”、“物理的”要比“虚拟的”、“软件的”、“逻辑的”更为可靠,他们听到虚拟化后即觉得兴奋、惊喜、好奇,同时也有疑惑与担心。另

方面,当他们开始深入了解虚拟化时,又发现有更多的疑惑与困难在等着他们。当他们在实施虚拟化之前和实施过程中遇到以下问题和挑战时,应该怎样面对呢?

[问题一]如何界定适合实施虚拟化技术的服务器及应用?

某大型制造企业的信息主管表示:“虚拟化能带来的好处我们很清楚,但‘最后一公里’却难住了我。”所谓“最后一公里”问题,就是他不知道自己企业现有的服务器系统和应用中,哪些适合实施虚拟化,哪些不需要实施。由于所在企业的IT基础设施较为庞大复杂,企业的部门及应用种类也较多,服务器有上百台,所以当想去部署虚拟化时不知道如何下手。

从严格意义上讲,对于哪些应用适合实施虚拟化并没有明确的定义,但是通过相应的原则我们可以进行过滤。这个原则就是应用对系统资源的需求情况:有些企业级应用对资源占用率很大,可能还需要多台物理服务器来支持,这就不太适合实施虚拟化。因为虚拟化本身就是

种追求资源复用的技术,它适用于整合那些平均资源占用率略低的应用。比如某些应用平时只需要20%左右的资源,那么合物理服务器就可以整合4个这样的应用,再留出20%的资源应对突发需求。

当然,资源占用情况与用于承载应用的服务器的性能也是密切相关的。在计划实施虚拟化时,不光要考虑应用对服务器的处理器、内存等资源的占用,还要考虑其在I/O方面的需求。根据这原则,用户应该选择具备相应能力的服务器:因为它要承载多台虚拟服务器,所以处理器与内存资源首当其冲,其次是平台内I/O与网络互联的能力。总之,资源占用率与占用倾向(占用处理器资源、内存资源还是I/O资源)是我们根据应用界定服务器是否有必要应用虚拟化技术的重要依据,也是我们做服务器选型时的重点参考。

[问题二]实施虚拟化应该选RISC小型机还是xB6架构服务器?

某证券公司由于业务拓展迅速,对IT基础架构的需求越来越强烈。其信息主管计划通过虚拟化技术整合IT基础设施,不过在具体选型时遇到了难题:“证券交易是我们的核心应用,它要求系统绝对稳定可靠,否则对客户的交易和公司的信誉都将造成极大的隐患。x86服务器的成本优势很明显,但虚拟化技术是源于大型机、小型机上的,小型机的可靠性与可用性似乎更高,是不是选用小型机虚拟化解决方案会更合适?”

在虚拟化技术方面,x86架构的服务器阵营的确是后来者,但这并不代表它们在虚拟化应用上就是弱者。随着技术的进步,特别是随着x86架构硬件辅助虚拟化技术对性能和功能的强化,并降低了虚拟化的性能开销,x86服务器的虚拟化能力已经不存在疑问了。事实上,现在所有的基于虚拟化技术的公共(如Google、Amazon等)都是建立在x86平台上的,而且与小型机平台相比,x86架构的服务器在加入了众多增强可靠性、可用性和可维护性的功能之后,已经能够提供与小型机相当的关键业务承载能力,也能为虚拟化提供坚实的硬件基础,足以应付金融、电信等高端核心业务的虚拟化需求。因此,对于那些没有小型机应用遗留与兼容问题困扰的用户,现在完全可以考虑使用x86平台作为核心应用的虚拟化平台;只有那些需要保留原有小型机应用的客户,才有必要认真思考两者间的取舍。

[问题三]在服务器虚拟化管理层,即虚拟化平台或虚拟机管理器应该选哪家的产品?

目前针对x86服务器的虚拟化管理软件主要有三家厂商在推动,即微软、VMware和思杰,其他参与者还有RedHat等。这些厂商都在宣传自己的虚拟化解决方案,可用户最终的选择只能是唯一的。一家零售商的IT主管说:“各家的技术表面上给人的印象都差不多,实力似乎也相当,真不知道选择哪家会更好。”这种迷惑大大拖慢了企业实施虚拟化的进度,相信每个进入虚拟化世界的用户都经历过这样的选择。

目前主流虚拟化软件提供商的方案大体功能正在趋于致。但仍有各自的长处。简单来讲就是:VMware在数据中心级的虚拟化解决方案占据领导地位;如果基于Windows平台,那么微软的方案则是近水楼台:而在终端虚拟化方面,思杰具有传统的优势。需要注意的是,如果虚拟化解决方案能够提供对处理器硬件辅助虚拟化技术的支持,那么就能大大减少虚拟化的性能开销,并更容易实现新的应用。比如思杰的XenClient终端虚拟化方案,就是借助英特尔VT-d技术实现的,它使得PC终端也能生成全功能的虚拟机。而不会造成本地3D显卡与硬盘存储方面的性能下降。

[问题四]虚拟化之后的性能不理想怎么办?

某贸易公司的业务系统通过虚拟化进行了服务器的整合优化,却发现虚拟机性能表现并不是很理想,其IT经理表示:“观察每个虚拟机的资源占用情况,我们发现其实还有不少空闲的资源,但业务响应速度却比传统物理服务器更慢。”对于这一问题,最后通过具体的资源占用情况分析发现,虽然每个虚拟机处理器占用率很低,但经常会出现多台虚拟机并发网络访问的情况,此时的网络I/O吞吐量成为了制约虚拟机性能的瓶颈。

如果排除之前应用是否适用于虚拟化的界定问题,那么出现这现象的最大原因就是服务器的选型没有与应用的资源占用倾向相挂钩,也就是说用户在采购时考虑得不是很全面。很多人在实施虚拟化时,只关注到了处理器与内存资源的占用,而没有关注到与应用效率密切相关的I/O性能。我们不难想象当多个虚拟机共用

套物理存储或网络设备时的情况,这时就需要我们对平台进行相应的配置。通过I/O设备和网卡的硬件辅助虚拟化技术,配合吞吐量更高的SSD(固态硬盘)或者分层存储解决方案,我们就能有效解决这问题。虚拟机可以直接访问主板外设和网络,SSD百倍于传统硬盘的IOPS性能可以满足同时多个虚拟机的并发访问,网卡虚拟复用实现了多个虚拟端口的直通响应,这些都会大大提高虚拟机I/O的性能与效率。

[问题五]虚拟机实时迁移的灵活性如何保证?

对互联网企业的IT人员员来说,在IT投入增长有限的情况下保证业务的快速增长是

非常重要的课题。某快速成长的互联公司的CIO曾表示:“我们的数据中心的业务规模增长非常快,幸亏有虚拟化让我们可以整合大部分的资源。现在我们正考虑大规模更新到新一代的高性能服务器,可这么多的虚拟机如何实现平稳迁移是个大问题,它对于保证我们的业务连续性是一个非常大的考验。”

全新的处理器、全新的指令和全新的系统设计给应用开发带来了新的机遇,但也对虚拟机相对于物理服务器承载平台的兼容性提出了疑问,尤其是对于那些很早就部署了虚拟化技术,现在希望更新服务器产品的企业来说,这问题尤为明显。虚拟机的实时迁移是虚拟化的个重要优势,它为我们带来了很多的应用想象空间。但是不同CPU平台问的迁移面临着指令集不同可能造成虚拟机与新平台不兼容的情况,所以当有这需求时一定要注意平台相关技术的保障能力。例如英特尔提供的VTFlexMigration技术,可以在迁移池中的不同服务器间建立起组协调致的指令集,以确保迁移的平滑进行,不会因为虚拟机请求

个目的服务器所不支持的指令集功能而出现错误,从而让虚拟机迁移的优势发挥到最大。

[问题六]服务器虚拟化技术将多个应用集中在一台物理服务器上可靠么?

虚拟化的一个重要的优势在于可在一台物理服务器上部署多个客户操作系统,并在其上运行多个企业级应用而互不干扰,但这也往往让人产生忧虑——如果这台服务器宕机,那么上面所有的虚拟机是不是就会荡然无存了呢?这显然与企业应用,尤其是关键应用要求的高可靠性息息相关,虚拟化这种类似把所有鸡蛋都放在一个篮子的做法与传统的分担风险的意识似乎是相违背的。

有这种顾虑的用户不在少数,它在很大程度上成为了思想观念上对虚拟化普及的最大阻力。事实上,经过多年的发展与技术上的进步,x86服务器已经越来越可靠,正如前文所述,最新的x86服务器在RAS特性(可靠性、可用性、可维护性)上已能达到与小型机相当的水平,再配合适合的操作系统,在这点上已经无需用户太过担心,已有能力整合多个关键业务应用。当然,绝对可靠的系统并不存在,就连小型机也是如此。不过凭借类似英特尔VT-x、VT-d、VT-c这样的硬件虚拟化辅助技术,x86平台上的虚拟机甚至能够提供物理服务器比不了的功能,比如跨越物理服务器局限的多点虚拟机快速容灾功能,它在保证虚拟机可用性的同时,借助虚拟机本身的优势,为IT架构注入了强大的灵活性,形成了全新的应用模式。

除了服务器虚拟化实施前期和部署过程中的问题外,企业CIO和CTO们还可能遇到些具体的技术问题。对于服务器虚拟化有关的一些典型技术问题,我们看看现任英特尔实验室首席虚拟化架构师的RichardA.Uhlig先生如何回答:

1.虚拟化技术在高吞吐量的设备,如网络和存储设备中的应用效果如何?

目前有个值得关注的趋势,就是使I/O设备能够“对虚拟化更为友好”的新标准正在制订中。例如PCI-SIG(PCI和PCI-Express接口标准的制订推进组织)已经开发了种新的规范,使PCI-Express设备能够更加容易地在虚拟机上共享其资源。这种规范被称为“单根I/O虚拟化”(缩写为SR-IOV),它定义了种方式,以提供多重“虚拟功能”(VirtualFunction),这些功能可被独立地、直接地分配给在虚拟机上运行的客户操作系统,从而消除一些虚拟化过程中的开销。不过这种I/O设备直接分配还存在个很大的挑战,那就是它会使其他重要的虚拟化功能变得更加复杂,例如虚拟机的迁移。因为将个物理I/O接口直接分配给客户操作系统之后,当其虚拟机要迁移到另外个平台时,会很难释放这资源。

2.硬件辅助虚拟化技术如何提供更高的安全特性?

硬件辅助虚拟化技术使虚拟机提供了一个从基础上来说更强的、可使代码分离的形式,因为它运行的层级比运行操作系统内核和设备驱动程序的Ring O更低。这种基于硬件层的支持可以进一步增强安全防护,例如通过硬件机制来重新映射和阻止设备对系统内存的直接存储器存取,所以甚至连拥有特权、运行在Ring O级别的某个虚拟机中的设备驱动程序,也不能访问属于另一个虚拟机的内存空间。另外,硬件辅助虚拟化技术还能通过减少与虚拟化工作相关的代码来简化虚拟机的执行,最终减少可信计算的总体规模,从而减少其相对于恶意软件的“受攻击面”。

3.如何在一台运行着数以百计虚拟机的服务器出现故障后最大程度地限制负面影响?

有两个办法可以用于解决这类难题:第种是在服务器发生错误时纠正其故障并恢复它的运行,或者包容错误以限制错误造成的影响。ECC内存就采用了内存错误检测与校正功能,它是第

种办法的典型应用。相同的故障恢复原则也适用于其他的资源,比如在系统互联和I/O过程中检测

致性,使用CRC来检测连接级别的错误和触发包重发就属于这种情况。

当错误不能被纠正时,包容它们就是后备的解决方案,因为其可支持更高级别的恢复算法。这一过程可通过将无法修正的数据标注“Poison”位标签,然后在系统中跟踪这个数据来实现。如果有这个标签的数据在系统中被再次利用,硬件会在操作系统或虚拟机监视器之外再进行机器检测,从而提供有关错误本质的信息。理想的情况就是,这种硬件在回应错误时,能够支持虚拟机监视器执行一个保护性措施,例如仅仅关闭有故障的虚拟机,而不是整个平台及其他正在正常运行的虚拟机。

除了这些致力于提高某特定服务器的可靠性的解决方案外,当整个平台遭遇灾难(比如断电)时,我们还可以利用虚拟化技术,在另一个平台上维持虚拟机状态的副本,工作负载的执行可以在其他平台上通过这种虚拟机复制得到恢复和继续。同时,虚拟化还可以和其他已有的提高可用性的方法很好地配合,如基于集群的故障解决方案。在这种情况下,出现故障的集群中,备用机器可以由虚拟机提供,而不需要动用物理设备,这是可用性和低成本的完美结合。

上一篇:拥抱虚拟化3.0
下一篇:虚拟化有多火?

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");