未来十大IT技术——虚拟化技术大盘点
虚拟化这三个字,近两年频繁出现在IT网站和杂志上,一些媒体还建立了专栏进行报道。从去年到现在,不断有“未来十大IT技术”的评选出炉,网上报道最广泛的当属Gartner(高德纳咨询公司 - 全球最具权威的IT研究与顾问咨询公司)发布的“未来十大IT技术趋势”,将虚拟化技术置于首位。
但网上的相关文章,较为专业,叙述生涩,又经常与其他概念参杂,如云计算,企业信息化,绿色IT,服务器节能等,让人一惑不解,又添数问,更加云里雾里,看不清虚实。本人一介IT草民,平时喜欢捣鼓VMware、sandboxIE、SVS这些稍微大众些的虚拟化软件。在此,就借着自己有限的IT知识,将网上所学和自身琢磨,转换为通俗的语言,来介绍下虚拟化技术。小白、菜鸟们可以驻足,IT和虚拟化专业人士可以绕过。有不对的地方,请大家指正。
一 虚拟化的概念和分类
顾名思义,虚拟化就是在计算上虚拟出一些实际计算机里真实存在的东西,以达到更方便、简单、成本低、安全性高的目的。比如,虚拟计算机硬件,可以安装操作系统;以现有操作系统为蓝本,再虚拟出几个一摸一样的;虚拟一个操作系统环境,可以安装应用软件。这个解释,是本人很通俗的说法,严格精准的定义,至今还未看到。
虚拟化技术,经过数年的发展,已经成为一个庞大的技术家族,其技术形式种类繁多,实现的应用也一大箩筐了。但对其分类,网上的介绍比较含糊,分类属性不一。如将服务器虚拟化、硬件虚拟化、cpu虚拟化相提并论,但其实它们都属一个类别,只是按不同属性分类得出的不同名称。打个最简单的类比,就是把人分为:科学家(按职业分)、灵长类(按生物种分)、男人(按性别分)...
言归正传,现在按照不同属性,对虚拟化做一个分类:
以实现层次来分:硬件虚拟化,操作系统虚拟化,应用程序虚拟化。
以被应用的领域来划分:服务器虚拟化、存储虚拟化、网络虚拟化、桌面虚拟化。
还有从以某类里衍生出来的,无法归类,比如CPU虚拟化,文件虚拟化。
这些不用属性的类别之间的关系又是交错联系的,下面逐一简单介绍一下。
二 虚拟化分类之硬件虚拟化
硬件虚拟化,应该是中国IT人员最熟悉的技术了,其代表产品VMware,可能每个程序员都有使用。还有更多一些类似本人这样的IT爱好者,天天在捣鼓。其过程就是用软件来虚拟一台标准电脑的硬件配置,如CPU、内存、硬盘、声显卡、光驱等,成为一台虚拟的裸机,然后就可以在上面安装操作系统了。
使用时,先在操作系统里安装一个硬件虚拟化软件,用其虚拟出一台电脑,再安装系统,做到系统里运行系统,并可虚拟出多台电脑,安装多个相同或不同的系统。
其代表产品为VMware,其余几个知名的有:微软的Virtual PC,开源免费的VirtualBox。
为虚拟机分配的硬件资源要占用实际硬件的资源,对性能损耗也较大。因为是在系统里安装虚拟化软件,再在虚拟的电脑上装系统,所以就有原系统和虚拟化软件两层消耗,为了提高性能,出现了另外一种硬件虚拟化形式:直接在裸机上安装虚拟化软件,然后安装多个系统,并同时运行。跳过原系统这一环节,性能大大提高。这种虚拟化又叫做准虚拟化。VMware推出的相关产品叫VMware ESXi,微软的该类产品为Hyper-V。主要应用于服务器领域。
三 虚拟化分类之操作系统虚拟化
操作系统虚拟化就是以一个系统为母体,克隆出多个系统。它比硬件虚拟化要灵活方便,因为只需在系统里装一个虚拟化软件,就能以原系统为样本,很快克隆出系统,克隆出的系统与原系统除去一些ID标识外,其余都一样。其代表产品为SWSoft公司的Virtuozzo。
看似与硬件虚拟化一样,都是虚拟多个操作系统出来,但与硬件虚拟化还是很多不同之处:
1. 操作系统虚拟化是以原系统为样本,虚拟出一个近乎一摸一样的系统;硬件虚拟化是虚拟硬件环境,然后真实的安装系统。它们虚拟的东西不一样。
2. 操作系统虚拟化,虚拟的系统都只能为同样的系统;硬件虚拟化,虚拟的系统可以为不同的系统,如Linux、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很类似。但其最大特别之处在于,不是应用于企业市场,而是针对个人用户使用软件时的诸多问题和烦恼的解决方案。
其最大特色,本人理解集中于两点:一是,让软件使用变得更方便快捷;二是,让软件使用不影响系统,保持系统干净、稳定,真正的绿色。
云端与其他应用虚拟化软件不同,它自带了打包好的软件资源,使用时无需安装,一点就用,不写注册表、不写系统;无用软件可以一键删除,快速干净不残留。而且最省事的一点莫过于重装系统后,所有软件不用重装。因为在云端使用的软件都在云端的缓存目录里,重装系统后只要安装云端,再次指定这个目录,所有软件就可以立即恢复使用,并且无需重配置,就跟重装前的一摸一样。
它还有四个一键操作,非常方便:一键使用、一键删除、一键重置到完好状态、一键备份服务器,是使用软件的全能帮手。完全可以系统里只装杀软、云端,其余软件都在云端里,非常好的体验。
五 其他几种虚拟化技术简介
1. 服务器虚拟化
服务器虚拟化的应用实现,依靠的是硬件虚拟化和操作系统虚拟化。服务器虚拟化就是将一台服务器变为多台服务器使用,提高服务器的使用率。以前,一台服务器主机装一个操作系统,只能作为一台服务器使用,使用率较低。通过虚拟化,一台服务器主机上装多个操作系统,并且可以同时运行,就相当于多台服务器同时运行了,利用率大大提高。
2. 存储虚拟化
存储虚拟化是将一堆独立的硬盘虚拟的整合在一起,让人看起来是一块硬盘。比如网络上分布了10台服务器,每台服务器的硬盘是500G,那存储虚拟化就可以让这10块硬盘虚拟为一块5T的硬盘。存储虚拟化的目的是方便管理和有效利用存储空间。
3. 网络虚拟化
网络虚拟化一般是指VPN,这个应用在企业已经是必不可少了。它是将两个异地的局域网,虚拟成一个局域网,这样一些企业的OA、B/S软件,就可以在跑在这个虚拟的局域网里了,也可以像真实局域网一样进行电脑互访了。比如,一家企业在总部在上海,分公司在北京、深圳、广州,每个公司都有自己的局域网,这四个局域网就分布在四个地方。使用了VPN,就可以把这四个局域网虚拟为一个局域网,其中的好处不再多说,地球人都知道。
4. 桌面虚拟化
桌面虚拟化是近年来,企业领域比较热门的应用,其主流实现方式是:服务器上部署好桌面环境,传输到客户端电脑上,用户看到的就像本地真实环境一样,所有的使用其实是对服务器上的桌面进行操作。当然,程序运行也实际在服务器上。比如,一个企业有1000台电脑,管理每台电脑、给每台电脑安装软件、维护电脑正常运行是件苦差事。用了桌面虚拟化后,只需在服务器上部署几套标准桌面环境(桌面、应用软件、存储空间等),所有员工登陆服务器后,桌面就被传输到本地,然后办公,本地电脑实际只是接受远程桌面的信息。这样,本地电脑不用安装和运行任何程序,也就无需过多的管理和维护,只要把服务器上那几套标准桌面环境维护好就行了。
管理1000台电脑与管理几套标准桌面相比,IT成本是大大的降低。这里不得不提一个关联的概念:胖瘦客户机。通俗的讲,胖客户机就是一般的电脑应用方式,每台电脑上都装上了操作系统、所有必须的应用程序和组件。瘦客户机就是前面说道的那种,本地只有操作系统,其余什么都不要,只接受服务器传输来的虚拟桌面。这样电脑的软环境非常的轻薄,硬件要求也非常低,而且容易标准化。
5. CPU虚拟化
CPU虚拟化其实是对硬件虚拟化方案的优化和加强。以前是用虚拟化软件把一个CPU虚拟成多个CPU,而CPU虚拟化直接从硬件层面实现,这样大大提高的性能。Intel和AMD都已经生产了支持虚拟化的CPU,配置了这种CPU的电脑,运行VMware,性能会大大提高。所以,经常要跑VMware的朋友,在攒电脑时,可以选择支持虚拟化的CPU型号。
6. 文件虚拟化
文件虚拟化与存储虚拟化有些相似,存储虚拟化是将分布的硬盘虚拟成一块硬盘,而文件虚拟化是将分布在多台电脑的文件数据虚拟成一台电脑上的,这样以前找文件要去不同的机器上查找,而现在则像在一台电脑上操作一样。比如,分布在局域网上的10台电脑,每台上都有很多文档资料,相当一个个小的图书馆;存储虚拟化,把这10台电脑的文档资料虚拟成一个大的图书馆,方便文档的集中查找、浏览和管理。
以上对虚拟化技术做了一个走马观花式的介绍,意在给广大小白和菜鸟朋友们解惑。从以上的介绍里,可以看出虚拟化技术的意义就是高效、方便,正是真实的东西达不到这两点,才催生了虚拟化。而这两点是所有IT产品永远追求的目标,所以虚拟化的脚步不会停止,会不断大步向前的。虚拟化也不愧为未来十大IT技术之首!
本人水平有限,除去VMware和应用虚拟化软件经常捣鼓外,其他的虚拟化技术也都是网上看文学来,再加上个人理解,解释的较为通俗(专业的俺也不会),有不对之处请大家指正和多包涵。本文的介绍较为粗略,如果想看专业、详细的介绍,可以搜索,相关文章很多。也希望在我这篇文章的基础上,再去看其他专业文章,会轻松一些!■<