众所周知,虚拟化正在IT界掀起一场巨大的风暴。这个IT新宠给大家带来了太多的惊喜:承诺减少宕机时间、降低功耗、降低冷却成本、提高硬件使用率,而且,还使管理的难度大大降低……所有这些,使得IT企业像发现了新大陆,比赛一样地冲向虚拟化的实施之路。不过这里我要说的是,虽然大多数情况下上述的承诺都能兑现,但这个康庄大道上还是有一些陷阱–但最令人担心的是,这些可能会致命的陷阱并不为人所知!
影响虚拟化实施的第一个大麻烦就是服务器的CPU问题。
对一般企业而言,虚拟化的推进一定是首先在一个小型测试环境进行的。服务器上可能运行十几种虚拟化软件,例如VMWare、 Xen,或者VirtualIron。在大量的试用之后(当然这需要一定的时间),如果稳定性和性能令人满意,这种应用架构才会扩大到更多的服务器中去,将整个企业向虚拟化的基础架构进行迁移。这时你会做什么?当然是采购!然而,当你在兴高采烈地签下一个价值不菲的采购单时,你会发现一个大跌眼镜的情况:你需要的服务器或者CPU型号已经早就过时了,供应商会遗憾地告诉你:断货了!
这可不是个小麻烦!要知道,虚拟化环境往往要求建立在完全相同的服务器、CPU架构上,这样才能更好地发挥虚拟化的优势,特别是虚拟化迁移和高可用性。就拿动态迁移来说,如果从一个主机和另一个主机的CPU型号和配置不一样,这种动态迁移就会不稳定,甚至发生崩溃。事实证明,如果你强行在一台 SSE3 CPU的服务器和一台SSE2配置的服务器之间进行动态迁移,那么效果是无法保证的–甚至压根儿就实现不了。
面对这种意料之外的尴尬,你还能有什么选择呢?当然,我们会督促供应商,要求他们去翻翻库存,幸运的话,也许仓库的旮旯里能找到一些用得上的配件。但显然,这实在有点不保靠。更多比较聪明的企业会选择淘宝(或者ebay)去看看有没有卖过时产品的摊铺,兴许你会有意外的惊喜……
如果你嫌这两种方法都不踏实,也许你这时唯一的选择就是升级:为旧服务器升级为新型号的CPU,将整个虚拟化环境迁移到新CPU架构上–不过,你得乞求上苍保佑,今后当你需要再次扩大规模时,现在这种全新的CPU到那时还能找到!对了,还有,别忘了把那些刚刚拆下来的基本上全新的测试服务器上的 CPU拿到淘宝上去卖–兴许不少人心急火燎地在找呢!
即使是刀片服务器也会遇到同样的问题–前不久我刚刚遇到了这个麻烦。去年底我置办了当时最顶级的刀片服务器,Sun 6000 X6250刀片服务器,CPU是当时最高端的2.66GHz的四核英特尔X5355处理器。然而,6个月后,当我需要更多这样的刀片时,Sun告诉我:这种型号早就停产了。几经周折,Sun最终还是给我找到了能匹配的主板和CPU,但他们必须要将主板的BIOS降级使用,为此我还必须付每小时250美元的额外费用!但如果我不这么做,我只能将所有原有的刀片服务器升级–这花的钱更多!想想吧!我实施虚拟化可是想省钱的,这种结果,与我的初衷完全背道而驰!
虚拟化的另外一个问题就是风险,因为你在把所有的鸡蛋都放在同一个篮子里。这是因为虚拟化的优势就在于能够提升硬件的使用效率,一个运行了DRS和HA系统的服务器,能承担超出原有数倍的负载,而且能实现一台服务器宕机时系统平稳迁移。这一切都这么令人感到惬意,但前提是所有的系统都必须正常运转!但不幸的是,这一点没那么简单,就我自己而言,在过去一个月已经不止一次得被迫手工重启Windows 2003下VMWare VC(VirtualCenter)。
不只是系统死机让你烦心,想想看,如果你要对一台服务器进行内存升级,但虚拟化软件在两个ESX服务器之间迁移时卡了20多分钟,这会不会让你崩溃?要知道,这个时候你要重启的不是一个服务,而是几个、甚至十几个!谢天谢地,我还没有遇到过这么恐怖的情况,不过也遭遇过"险境",好几次我被迫按照 VMWare的应急处理流程删除了一些进程,才勉强使系统恢复正常,但我不知道什么时候还会来这么一次。
当然,随着虚拟化基础设施的成熟,我前面提到的管理和安全问题有望逐步弱化甚至消失,甚至也许有一天我们发现在不同的CPU之间进行主机迁移也没问题(当然我估计钱少不了)!所以,别因为我这些"牢骚"就停住了迈向虚拟化的脚步–不过,如果这篇文章能帮你绕过一些陷阱,那我将不胜荣幸。