细数虚拟化的得与失
最近我的一位同事大放厥词,说什么x86虚拟化对于任何机构在成本意识方面都没有什么意义可言。作为一位涉足虚拟化甚早的职业人士,我当然希望了解他的真正想法。
“使用虚拟化的时候,我们需要为各类软件授权许可支付大量费用。实际上如果能把时间和精力用在为物理设备部署各种必要组件上,绝对可以节省不少开支,”他解释道。
这种观点我实在不敢苟同。虚拟化带来的最为显著的成本优势,是使得我们既能够批量运行应用程序,又无需为此购买专用硬件。
但说到成本,另有两大因素不得不提,也就是停机成本与升级造成的停机。
重启也是大问题
有不少更新,在安装过程中都会导致相关服务暂时不可用(例如Exchange与IIS),另有一些则要求对整套系统进行重启。这在开源系统中问题倒是不大,但仍然也是一个需要慎重对待的因素。
特定行业的专用应用程序总是以烫手山芋的形象出现。它们不仅要求严格,还经常因为其自身存在着的一些编写上的糟烂问题引发崩溃。有时候它们的崩溃如此华丽,甚至连操作系统都会跟着一起挂掉。
一旦上述情况发生,我们需要重启底层服务器以获取应用程序的备份信息——但这时问题就来了,同一台设备上运行的除了真正崩溃掉的程序,往往还会连带影响其它一些关键性应用。
感染之忧不可小觑
恶意软件是另一大威胁。我最近在一台既用作应用程序服务器又用作文件服务器的Linux主机上就遭遇了这一问题。某种颇为讨厌的恶意软件通过FTP系统被上传到系统当中,而某个应用程序权限提升漏洞又误把其标记为可执行文件。
系统本身是相当稳定的,但由于那些敏感信息已然存入了系统,坏事无疑必将接踵而至。
Windows系统相比之下则更加脆弱
内存泄漏以及缓存算法方面的瑕疵导致了其特有的问题。某个单独应用程序的内存泄漏足以拖垮系统中的一切其它任务。而糟糕的缓存算法——想想Vista的早期版本——则往往会对硬盘造成损害,进而严重威胁系统中的各类内容。
有些应用程序则仅仅是对运行环境有着不同的要求。我手头的一些老软件就需要微软JVM以及其它四款软件程序,而这些与Sun的特定版本及甲骨文JVM又密不可分。
它们彼此之间完全不兼容,并各自要求独立的执行环境。在这种情况下,要想对Java加以修补可谓困难重重。
这类直接性应用程序兼容问题并不是惟一的麻烦。在我的环境中,Exchange需要一套UC证书才能正常工作,而我运行着的其它应用程序又有着不同的证书要求。有些应用程序无法在UAC开启的状态下运行;而一旦将其关闭,又会有其它几个程序出于安全原因拒绝执行。
假如这套基于服务器的操作系统在安装成本上大约为10万美元。如果我们将每个站点的全部内容在不使用虚拟化的前提下压缩到一个单独的主/从集群中,总成本将变成1万美元左右。就直观角度来看,这为企业节约了9万美元的开销。
虚拟扩张趋势并不完全是坏事
然而,实际情况是,我可能需要拿出两年的宝贵青春时光来找出实现上述想法的方案。考虑到停机成本因素,再加上为了实现每款应用程序的升级而进行彻底测试重新认证单设备环境,我还得投入大量时间添加相关的必要技术。
突然,这省下来的9万美元似乎不再像看上去那么美好。
x86虚拟化令虚拟技术的使用范畴不断扩张,但虚拟扩张趋势并不完全是坏事。运行在单一操作系统中的单一应用程序比起将所有东西塞进一台固有设备来,在管理方面要容易得多。
与虚拟化相关的具体许可计费方案也许暗藏玄机,更可能带来相当不菲的运营开销。
尽管如此,如果我们不考虑系统停机及IT专业团队所带来的成本,那么单设备方案无疑是众多解决举措当中最为廉价的处理方式。
英文原文链接:http://www.theregister.co.uk/2011/11/16/virtualisation_licences/
原文链接:http://virtual.51cto.com/art/201111/303474_1.htm