什么是虚拟化,为什么?
虚拟化是一种在单个物理服务器上运行多个独立虚拟操作系统的方法。这是一种通过最大化物理资源来最大化投资的方式。由于摩尔定律准确预测了计算能力的指数级增长,对于同样的计算任务,大部分硬件要求没有变化,现在将一台极其便宜的双槽双核1U机架式服务器拆分为8台甚至16台虚拟服务器是可行的。虚拟化技术是实现更高服务器密度的一种方式。然而,事实上,它并没有提高整体计算能力;事实上,由于额外的成本,计算能力略有下降。然而,由于一台价值3000美元的现代双插槽四核服务器比四年前价值30000美元的八插槽八核服务器更强大,因此我们可以通过在这款新硬件上增加逻辑操作系统的数量来开发其功能。这样可以降低主要的硬件购买和维护成本,从而最终显著节约公司或组织的成本。
我们应该什么时候虚拟化?
虚拟化是中小型应用程序的完美解决方案。虚拟化不应用于需要一台或多台服务器群集以满足需求的高性能应用程序,因为增加的开销和复杂性只会降低性能。基本上,我们是拿一台12GHz3GHz四核CPU)服务器拆解成16台750MHz服务器。但是,一旦8台这样的服务器不忙或空闲,剩下的8台服务器将获得1.5GHz左右的主频。
虽然虚拟化行业有人喜欢提倡高CPU利用率作为硬件优化的指标,但是这个建议不应该走极端,即使在应用的响应能力超过极限的情况下也应该使用。一个简单的经验法则是,永远不要让服务器的CPU利用率在峰值负载时超过50%;更重要的是,永远不要让应用程序响应时间超过合理的服务级别协议。大多数内部使用的高级服务器的任务是将CPU利用率控制在1-5%之间。在单个物理服务器上运行八个操作系统会将峰值CPU利用率提高到近50%,但平均水平要低得多,因为虚拟操作系统的峰值和谷值或多或少会相互抵消。
尽管当今大多数虚拟化解决方案中很少出现CPU过载,但存储和网络吞吐量的I/O输入/输出)过载是另一回事。对于具有极高存储或硬件I/O要求的服务器,更明智的做法是在裸机上运行,即使在虚拟环境中可以满足CPU要求。
如何避免“一篮子鸡蛋”综合症
虚拟化最大的隐忧是“鸡蛋放在一个篮子里”综合症。将所有关键服务器放在一台物理服务器上是否明智?当然不是!避免这种趋势的最简单方法是确保单个服务不驻留在单个服务器上。让我们以下列服务器类型为例:
HTTPFTPDNSDHCPRADIUSLDAP使用光纤通道FC)或iSCSI存储文件服务存储活动目录服务。我们可以将每种类型的服务器放置在至少2台物理服务器上,以获得冗余。这种类型的服务相对容易集群,因为当单个服务器出现故障时,可以轻松切换。当一台物理服务器出现故障或需要服务时,其他物理服务器上的另一台虚拟服务器将自动接管。通过跨越多个物理服务器,这些关键服务永远不会因为一个硬件故障而停止运行。
对于更复杂的服务,如Exchange Server、Microsoft SQL、MySQL或Oracle,集群技术可以应用于两台物理服务器上的两台逻辑服务器的同步。这种方法通常会导致转换过程中约5分钟的停机时间。但这并不是因为虚拟化,而是因为集群的复杂性往往需要时间来转化。处理这些复杂服务的另一种方法是将虚拟服务器从主物理服务器迁移到另一个物理服务器。为了使这种方法有效,需要不断地将内存从一个物理服务器同步到另一个物理服务器,这样故障转移时间就可以在毫秒内完成,这样所有服务都可以保持正常运行。
从物理服务器迁移到虚拟服务器
任何合适的虚拟化解决方案都将提供某种P2V物理到虚拟)迁移工具。P2V工具会对现有物理服务器的驱动器栈进行一些必要的修改,对硬盘镜像进行虚拟化,使服务器能够以虚拟服务器的形式启动运行。这样做的好处是,您不必重新构建服务器并手动将其配置为虚拟服务器-您只需要完整地接收服务器即可!
因此,如果您的数据中心充满了主频率低于千兆赫的老化服务器,它们是P2V迁移的绝佳选择。既然你已经支付了这些授权,你甚至不必担心获得它们的成本。您几乎可以腾出128台主频低于GHz的传统服务器的空间,为8台1U高双插槽四核服务器腾出空间,这些服务器具有双千兆以太网卡和两个独立的iSCSI磁盘阵列,所有这些都通过千兆以太网交换机互连。每年花在旧系统上的硬件维护费用足够支付这里所有的新硬件!想象一下,在这样的迁移之后,您的服务器空间将会多么整洁。所有新硬件都可以放在一个机架中,这为您提供了很大的扩展空间。
虚拟化的另一个好处是,您可以获得一个灾难恢复计划,因为虚拟化映像很遗憾地被用来实时恢复所有服务器。问问你自己,如果传统服务器死了会怎么样?你还记得如何从潦草的记录中重建和重新配置所有的服务器吗?我想你现在要哭了。)利用虚拟
拟化,通过P2V镜像重建虚拟服务器,你可以在1个小时之内恢复Active Directory和Exchange Server。
虚拟服务器的补丁管理
虚拟服务器的补丁管理与正常服务器的并没有什么不同,因为每个虚拟操作系统就是自己独立的虚拟硬盘。你仍需要一个补丁管理系统来对所有服务器进行打补丁,不过未来可能会出现有趣的发展,如果服务器共享某些公共的操作系统或应用二进制代码的话,也许可以对多个操作系统同时打补丁。理想情况下,你可以为独立的或一组类似的服务器分配一种补丁级别。目前,还还需要像在其他操作系统上做过那样对虚拟操作系统进行打补丁,不过在虚拟化领域将有所创新,而你在物理服务器上是做不到这些的。
授权与支持方面的考虑
软件的许可是虚拟化的一大担忧。 谁都不想为运行于单台服务器上的16个虚拟会话支付16份许可。(高昂的)软件许可通常会令硬件开销相形见绌,因此在共享的硬件上运行一份许可为2万美元的软件是愚蠢的。这种情况下,最好是在速度最快的物理服务器上跑软件,不要进行任何虚拟化,以便增加开销。
对于像Windows Server 2003标准版这类的软件,需要为运行在物理服务器上的每个虚拟会话支付费用。此规则的例外是企业版,允许运行在1台物理机器上以1份许可分费用运行Windows Server 2003的4分虚拟拷贝。微软的这项许可策略应用于以Windows Server 2003为操作系统的任何虚拟技术上。
如果你用的是开源软件,就不必担心许可问题,因为它一直就是免费的 — 你所需要关心的是支持合同。如果你在考虑开源的虚拟化操作系统或软件,确保你已计算了支持方面的开销。如果支持费用与该软件的虚拟化实例数量有关,最好是把花费最大的部分放到专用服务器上运行以节省费用。记住,硬件相对于软件许可及/或服务支持费用而言那是相当小,这一点很重要。计算硬件成本的时候,确保也计算了硬件的维护、耗电、制冷和机架空间所需的费用。
虚拟化技术本身也需要考虑许可和支持。好消息是所有的主流的虚拟化玩家都有某些免费的方案供你起步。即便在一年前,由于VMware几乎是仅有的玩家,免费的虚拟化还是不可能的,不过现在VMware, Microsoft, Xen Source, 和Virtual Iron都有了免费的解决方案了。