前两天,我在网上看到有人购买了一台MacBook Pro笔记本电脑并且试验一款新的桌面虚拟化软件。这个桌面虚拟化软件能够让她在一台机器上运行Windows和OS X操作系统。看来,虚拟化技术发展真是日新月异,到现在已经可以做到让多单CPU模式多CPU,允许让一个平台上同时运行多个操作系统。
这早已不是前几年,我们以前提到的“并发”、“多线程”等概念了。如果你是学计算机专业科班出身的老程序员,你可能还记得前些年一些介绍操作系统多线程编程技术的书上提到的“并发让生活变得更美好”的概念,但它们并不是独立运行的,而是会相互干扰,它们只是让同一个进程的多个线程同时运行。其实,也是执行一个线程而已,只是处理器可以将原有线程的相关信息及变量暂时搁摆,然后去执行其它的线程,执行完后在切换回原来执行到一半的线程,甚至没执行完也可以切换回来。但使用这种多线程技术,不是象真正的多个CPU那样,每个CPU都具有独立的资源。如果当两个线程都同时请求某一个资源,那么它们之间必须协调好,一个使用的时候,另一个就必须让出,否则,就会出现“死锁”现象。
更严重的是,多线程在安全性方面也存在隐患。因为多个线程之间是一体多面无法分割,它们之间共享同一组内存管理组态和机制。倘若,其中一个线程遭受黑客入侵或者执行时发生错误,其它同一个进程的每个线程都会遭受影响、波及,更严重的是同一个进程内的一切线程都会错乱、毁坏,比如,如果一个线程运行完毕后其占用的内存资源无法释放(比如出现野指针问题),将有可能造成整个系统瘫痪。由此可见,这种机制在安全性方面存在严重不足。而现在的虚拟化技术已经可以做到一台服务器上运行多个虚拟机,它们之间是相互独立的,则一般不会出现类似的问题。虚拟服务器通常被认为是可以加强IT架构安全性的,因为虚拟服务器将独立的操作系统和应用相互分离,虚拟化机之间没有任何相互影响,因此将木马入侵的几率降至最低。因此,即使其中一个虚拟机崩溃,其它的虚拟机依然可以运行。
其次,虚拟机可以移动,当你发现问题时,可以将虚拟机移离当前环境,从而避免更大的损坏。你也可以将虚拟机保存在USB设备上,在接入服务器之前将它放在数据中心之外。你还可以将虚拟机从一个位置复制到另一个位置,就像复制其它任何文件一样。理论上,你可以对虚拟机进行备份,这样即使其中一个虚拟机受到损坏,你可以用早已准备好的备份代替。由于虚拟机具有可移动性,并且可以独立于底层的硬件,也让它更具灵活性和安全性。
现在基于多个虚拟机互联的虚拟化解决方案越来越流行。不知你有没有察觉到虚拟化解决方案正在不知不觉地改变我们的世界,影响我们的生活,小到我们现在使用的一些电脑就装了桌面虚拟化软件,大到世界500强企业的服务器架构,就可能采用了最前沿的微软虚拟化解决方案。通过采用虚拟化解决方案,可以让大型企业的服务器架构不再象恐龙一样臃肿,而是更具灵活性,安全性和可管理性。它早已经不是传统的“一台服务器一个应用程序”的模式,而是“多个虚拟机共享单台物理机资源以实现更高的效率”。显然通过这种方式可以帮企业大幅度地降低成本。2009年2月10日,微软公司宣布,通过在IT方面使用微软虚拟化软件,微软公司已成功地帮助其部分用户平均每年节省47万美元。据中国石油天然气集团公司的曾萍博士所说, “中国石油全面采用微软虚拟化技术及产品,我们大幅度减少了物理服务器的数量,提高服务器的使用效率和共享程度,减少了系统恢复时间,提升了系统的可用性,同时,其易于管理,减轻了IT运维人员的工作强度和工作量。”
看来,虚拟化将引发一场服务器架构革命。数年前,我们在介绍操作系统多线程编程技术有关书上学到的“并发让生活变得更美好”的观念现在该更新成“虚拟化让生活变得更美好”了。