虚拟化技术概念及分类(1)
虚拟化技术经过数年的发展,已经成为一个庞大的技术家族,其技术形式种类繁多,实现的应用也有一个体系。但对其分类,一般的介绍比较含糊,分类属性不一。如将服务器虚拟化、硬件虚拟化、CPU虚拟化相提并论,但其实它们都属一个类别,只是按不同属性分类得出的不同名称。下面按照不同属性,对虚拟化做一个分类。
以实现层次来划分:硬件虚拟化、操作系统虚拟化、应用程序虚拟化;以被应用的领域来划分:服务器虚拟化、存储虚拟化、应用虚拟化、平台虚拟化、桌面虚拟化。
1.从实现层次来划分
(1)基于硬件的虚拟化
硬件虚拟化,应该是中国IT人员最熟悉的技术了,其代表产品VMware可能每个程序员都有使用。硬件虚拟化就是用软件来虚拟一台标准计算机的硬件配置,如CPU、内存、硬盘、声卡、显卡、光驱等,成为一台虚拟的裸机,然后就可以在上面安装操作系统了。
使用时,先在操作系统里安装一个硬件虚拟化软件,用其虚拟出一台计算机,再安装系统,做到系统里运行系统,并可虚拟出多台计算机,安装多个相同或不同的系统。
其代表产品为VMware,其余几个知名的有微软的Virtual PC、开源免费的VirtualBox。
为虚拟机分配的硬件资源要占用实际硬件的资源,对性能损耗也较大。因为是在系统里安装虚拟化软件,再在虚拟的计算机上装系统,所以就有原系统和虚拟化软件两层消耗,为了提高性能,出现了另外一种硬件虚拟化形式:直接在裸机上安装虚拟化软件,然后安装多个系统,并同时运行。跳过原系统这一环节,性能大大提高,这种虚拟化又叫做准虚拟化。VMware推出的相关产品叫VMware ESXi,微软的该类产品为Hyper-V,主要应用于服务器领域。
(2)基于操作系统的虚拟化
操作系统虚拟化就是以一个系统为母体,克隆出多个系统。它比硬件虚拟化要灵活方便,因为只需在系统里装一个虚拟化软件,就能以原系统为样本很快克隆出系统,克隆出的系统与原系统除一些ID标识外,其余都一样。
看似与硬件虚拟化一样,都是虚拟多个操作系统出来,但与硬件虚拟化还是有很多不同之处。
① 操作系统虚拟化是以原系统为样本,虚拟出一个近乎一模一样的系统;硬件虚拟化是虚拟硬件环境,然后真实地安装系统。它们虚拟的东西不一样。
② 操作系统虚拟化虚拟的系统都只能为同样的系统;硬件虚拟化虚拟的系统可以为不同的系统,如Linux、Mac、Windows家族。
③ 操作系统虚拟化虚拟的多个系统有较强的联系,体现在:①可以为多个虚拟系统同时进行配置,更改了原系统就改了所有;②如果原系统损坏,会殃及所有虚拟系统。硬件虚拟化虚拟的多个系统是相互独立的,与原系统也无联系,原系统的损坏不会殃及虚拟的系统。
④ 操作系统虚拟化的性能损耗低,它们都是虚拟的系统,而非硬件虚拟化那样真实安装的实体,没有硬件虚拟化的虚拟硬件层,也大大降低了性能损耗。
(3)基于应用程序的虚拟化
前两种虚拟化技术大多应用于企业、服务器和一些IT专业工作领域。随着虚拟化技术的发展,逐渐从企业往个人、往大众应用的趋势发展,便出现了应用程序虚拟化技术,简称应用虚拟化,它是近年虚拟化的新贵和热门领域。
前两种虚拟化的目的是虚拟完整的真实的操作系统,应用虚拟化的目的也是虚拟操作系统,但只是为保证应用程序的正常运行虚拟系统的某些关键部分,如注册表、C盘环境等,所以较为轻量、小巧。
应用虚拟化技术的兴起最早也是从企业市场而来。一个软件被打包后,通过局域网很方便地分发到企业的几千台计算机上去,不用安装,直接使用,大大降低了企业的IT成本。
应用虚拟化技术应用到个人领域,可以实现很多非绿色软件的移动使用,如CAD、3ds Max、Office等;可以让软件免去重装烦恼,不怕系统重装,很有绿色软件的优点,但又在应用范围和体验上超越绿色软件。
使用方法大体为:先安装虚拟化软件,此时已经搭建了一个虚拟化环境,然后接收来自网络的应用软件或安装应用软件到虚拟化环境里,最后使用应用软件。
应用虚拟化领域比较可喜的是也有国产产品参与其中,下面简单介绍几个有代表性的。
① Microsoft Application Virtualization(App-V)。前身是Softgrid,被微软收购,主要针对企业内部的软件分发,方便了企业桌面的统一配置和管理,支持同时使用同一程序的不同版本,在客户端第一次运行程序时可以实现边用边下载等。但是对Windows外壳扩展程序的支持不够好,并且安装实施非常复杂,不是专业的管理员是很难部署起来的。
② VMware ThinApp。前身是Thinstall,被VMware收购。它不需要第三方平台,直接把虚拟引擎(重写了几百个Windows的API)和软件打包成单文件,分发简单,支持同时运行一个软件的多个版本;但是和系统的结合不够紧密,比如说文件关联、类似于winrar等的右键菜单、无法封装环境包(.NET框架、Java环境)、无法封装服务。它主要用于企业软件分发。
③ Symantec Software Virtualization Solution(SVS)。SVS于2006年左右被Symantec收购,它的虚拟引擎和虚拟软件包是分离的,能做到对应用程序的完美支持,包括支持Windows外壳扩展的程序,支持封装环境包(.NET框架、Java环境)、支持封装服务。但是无法同时运行同一个软件的不同版本。它主要用于企业软件分发。
④ Installfree。Installfree是后起之秀,其最大特色在于,无须在干净的环境下打包软件,也可以做到很好的兼容性。打包软件是应用虚拟化技术的一大难题。要实现一个软件的随处免安装使用,就必须把软件正常安装后的文件都打成包,但如果系统不干净,就会造成打包文件的不完整,分发到其他计算机上时无法使用。它主要用于企业软件分发。
⑤ SandboxIE。俗称沙盘,这个是IT爱好者家喻户晓的东西了。它主要用于软件测试和安全使用领域。它像个软件的囚笼,你可以把软件安装在沙盘里,并运行在其中,软件所有行为都不会影响到系统。如果软件带毒或被感染病毒,可以一下扫光,就像把一个真实的沙盘里的各种沙造物体打碎,并下一次重来。
⑥ 云端软件平台(Softcloud)。这是应用虚拟化领域的优秀国产软件,面市不久,其实现原理与SVS很类似。但其最大特别之处在于,不是应用于企业市场,而是针对个人用户使用软件时的诸多问题和烦恼的解决 方案。
其最大特色:一是让软件使用变得更方便快捷;二是让软件使用不影响系统,保持系统干净、稳定,真正的绿色。
云端与其他应用虚拟化软件不同,它自带了打包好的软件资源,使用时无须安装,一点就用,不写注册表、不写系统;无用软件可以一键删除,快速干净不残留。而且最省事的一点莫过于重装系统后,所有软件不用重装。因为在云端使用的软件都在云端的缓存目录里,重装系统后只要安装云端,再次指定这个目录,所有软件就可以立即恢复使用,并且无须重配置,就跟重装前的一模一样。