虚拟化这三个字,近两年频繁出现在IT网站和杂志上,一些媒体还建立了专栏进行报道。从去年到现在,不断有“未来十大IT技术”的评选出炉,网上报道最广泛的当属Gartner(高德纳咨询公司 - 全球最具权威的IT研究与顾问咨询公司)发布的“未来十大IT技术趋势”,将虚拟化技术置于首位。
但网上的相关文章,较为专业,叙述生涩,又经常与其他概念参杂,如云计算,企业信息化,绿色IT,服务器节能等,让人一惑不解,又添数问。作者将其转换为通俗的语言,来介绍下虚拟化技术。小白、菜鸟们可以驻足,IT和虚拟化专业人士可以绕过。
一 虚拟化的概念和分类
顾名思义,虚拟化就是在计算上虚拟出一些实际计算机里真实存在的东西,以达到更方便、简单、成本低、安全性高的目的。比如,虚拟计算机硬件,可以安装操作系统;以现有操作系统为蓝本,再虚拟出几个一摸一样的;虚拟一个操作系统环境,可以安装应用软件。这个解释,是本人很通俗的说法,严格精准的定义,至今还未看到。
虚拟化技术,经过数年的发展,已经成为一个庞大的技术家族,其技术形式种类繁多,实现的应用也一大箩筐了。但对其分类,网上的介绍比较含糊,分类属性不一。如将服务器虚拟化、硬件虚拟化、cpu虚拟化相提并论,但其实它们都属一个类别,只是按不同属性分类得出的不同名称。
言归正传,现在按照不同属性,对虚拟化做一个分类:
以实现层次来分:硬件虚拟化,操作系统虚拟化,应用程序虚拟化。
以被应用的领域来划分:服务器虚拟化、存储虚拟化、网络虚拟化、桌面虚拟化。
还有从以某类里衍生出来的,无法归类,比如cpu虚拟化,文件虚拟化。
这些不用属性的类别之间的关系又是交错联系的,下面逐一简单介绍一下。
二 虚拟化分类之硬件虚拟化
硬件虚拟化,应该是中国IT人员最熟悉的技术了,其代表产品VMware,可能每个程序员都有使用。还有更多一些类似本人这样的IT爱好者,天天在捣鼓。
硬件虚拟化,就是用软件来虚拟一台标准电脑的硬件配置,如cpu、内存、硬盘、声显卡、光驱等,成为一台虚拟的裸机,然后就可以在上面安装操作系统了。
使用时,先在操作系统里安装一个硬件虚拟化软件,用其虚拟出一台电脑,再安装系统,做到系统里运行系统,并可虚拟出多台电脑,安装多个相同或不同的系统。
其代表产品为VMware,其余几个知名的有:微软的VirtualPC,开源免费的VirtualBox。
为虚拟机分配的硬件资源要占用实际硬件的资源,对性能损耗也较大。因为是在系统里安装虚拟化软件,再在虚拟的电脑上装系统,所以就有原系统和虚拟化软件两层消耗,为了提高性能,出现了另外一种硬件虚拟化形式:直接在裸机上安装虚拟化软件,然后安装多个系统,并同时运行。跳过原系统这一环节,性能大大提高。这种虚拟化又叫做准虚拟化。VMware推出的相关产品叫VMware ESXi,微软的该类产品为Hyper-V,主要应用于服务器领域。
三 虚拟化分类之操作系统虚拟化
操作系统虚拟化就是以一个系统为母体,克隆出多个系统。它比硬件虚拟化要灵活方便,因为只需在系统里装一个虚拟化软件,就能以原系统为样本,很快克隆出系统,克隆出的系统与原系统除去一些ID标识外,其余都一样。
看似与硬件虚拟化一样,都是虚拟多个操作系统出来,但与硬件虚拟化还是很多不同之处:
1. 操作系统虚拟化是以原系统为样本,虚拟出一个近乎一摸一样的系统;硬件虚拟化是虚拟硬件环境,然后真实的安装系统。它们虚拟的东西不一样。
2. 操作系统虚拟化,虚拟的系统都只能为同样的系统;硬件虚拟化,虚拟的系统可以为不同的系统,如linnux、mac、windows家族。
3. 操作系统虚拟化,虚拟的多个系统有较强的联系,体现在:第一,可以多个虚拟系统同时进行配置,更改了原系统,就改了所有;第二,如果原系统损坏,会殃及所有虚拟系统。硬件虚拟化虚拟的多个系统,是相互独立,与原系统也无联系。原系统的损坏不会殃及虚拟的系统。
4. 操作系统虚拟化的性能损耗低,它们都是虚拟的系统,而非硬件虚拟化那样真实安装的实体;没有硬件虚拟化的虚拟硬件层,也大大降低了性能损耗。
四 虚拟化分类之应用虚拟化
前两种虚拟化技术,大多应用于企业、服务器和一些IT专业工作领域。随着虚拟化技术的发展,逐渐从企业往个人、专业往大众应用的趋势发展,便出现了应用程序虚拟化技术,简称应用虚拟化。它近年虚拟化的新贵和热门领域。
前两种虚拟化的目的是虚拟完整的真实的操作系统,应用虚拟化的目的也是虚拟操作系统,但只是为保证应用程序的正常运行虚拟系统的某些关键部分,如注册表、C盘环境等,所以较为轻量、小巧。
打一个通俗的比喻:系统是一个餐桌,软件是餐桌上各种菜品,应用虚拟化软件则是一次性桌布。铺个桌布的好处是,不会弄脏餐桌;即使桌布脏了,也好打理,比清理餐桌方便的多;桌上菜品,可以通过打包桌布,带到另一个餐桌上,铺开了就吃。
应用虚拟化技术的兴起最早也是从企业市场而来。一个软件被打包后,通过局域网很方便的分发到企业的几千台电脑上去,不用安装,直接使用,大大降低了企业的IT成本。
应用到个人领域,可以实现很多非绿色软件的移动使用,如cad、3dmax、office等;可以让软件免去重装烦恼,不怕系统重装。很有绿色软件的优点,但又在应用范围和体验上超越绿色软件。
使用方法大体为:先安装虚拟化软件,此时已经搭建了一个虚拟化环境,然后接收来自网络的应用软件或安装应用软件到虚拟化环境里,最后使用应用软件。
应用虚拟化领域比较可喜的是,也有国产产品参与其中。下面简单介绍几个有代表性的:
1.Microsoft Application Virtualization(App-V)
前身是sofgrid,被微软收购,主要针对企业内部的软件分发,方便了企业桌面的统一配置和管理,支持同时使用同一程序的不同版本、在客户端第一次运行程序时可以实现边用边下载等。但是对windows外壳扩展的程序的支持不够好,并且安装实施非常复杂,不是专业的管理员是很难部署起来的。
2.VMware ThinApp
前身是thinstall,被vmware收购。它不需要第三方平台,直接把虚拟引擎(重写了几百个windows的api)和软件打包成单文件,分发简单,支持同时运行一个软件的多个版本;但是和系统的结合不够紧密,比如说文件关联、类似于winrar等的右键菜单、无法封装环境包(.net框架、 java环境)、无法封装服务。主要用于企业软件分发。
3.Symantec Software Virtualization Solution(SVS)
SVS于2006年左右被Symantec收购,它的虚拟引擎和虚拟软件包是分离的,能做到对应用程序的完美支持,包括支持windows外壳扩展的程序,支持封装环境包(.net框架、java环境)、支持封装服务。但是无法同时运行同一个软件的不同版本。主要用于企业软件分发。
4.installfree
Installfree是后起之秀,其最大特色在于:无需在干净的环境下打包软件,也可以做到很好的兼容性。打包软件,是应用虚拟化技术的一大难题。要实现一个软件的随处免安装使用,就必须把软件正常安装后的文件都打成包,但如果系统不干净,就会造成打包文件的不完整,分发到其他电脑上时无法使用。主要用于企业软件分发。
5.sandboxIE
俗称沙盘,这个是IT爱好者家喻户晓的东东了。它主要用于软件测试和安全使用领域。因为它像个软件的囚笼,你可以把软件安装在沙盘里,并运行在其中,软件所有行为都不会影响到系统。如果软件带毒或被感染病毒,可以一下扫光,就像把一个真实的沙盘里的各种沙造物体打碎,和一下重来。
6.云端软件平台(softcloud)
这是应用虚拟化领域的优秀国产软件,面市不久,其实现原理与SVS很类似。但其最大特别之处在于,不是应用于企业市场,而是针对个人用户使用软件时的诸多问题和烦恼的解决方案。
其最大特色,本人理解集中于两点:一是,让软件使用变得更方便快捷;二是,让软件使用不影响系统,保持系统干净、稳定,真正的绿色。
云端与其他应用虚拟化软件不同,它自带了打包好的软件资源,使用时无需安装,一点就用,不写注册表、不写系统;无用软件可以一键删除,快速干净不残留。而且最省事的一点莫过于重装系统后,所有软件不用重装。因为在云端使用的软件都在云端的缓存目录里,重装系统后只要安装云端,再次指定这个目录,所有软件就可以立即恢复使用,并且无需重配置,就跟重装前的一摸一样。
它还有四个一键操作,非常方便:一键使用、一键删除、一键重置到完好状态、一键备份服务器,是使用软件的全能帮手。
完全可以系统里只装杀软、云端,其余软件都在云端里,非常好的体验。