一、虚拟化技术的概念
什么叫虚拟化技术?
虚拟化是一种方法,本质上讲是指从逻辑角度而不是物理角度来对资源进行配置,是从单一的逻辑角度来看待不同的物理资源的方法。
这个定义首要说明的是,虚拟化是一种逻辑角度出发的资源配置技术,是物理实际的逻辑抽象。比如说,当前只有一台计算机,通过虚拟技术,在用户看来,似乎却是多台,每台都有其各自的CPU、内存、硬盘等物理资源。
对于用户,虚拟化技术实现了软件跟硬件分离,用户不需要考虑后台的具体硬件实现,而只需在虚拟层环境上运行自己的系统和软件。而这些系统和软件在运行时,也似乎跟后台的物理平台无关。
二、虚拟技术原理与发展
虚拟技术原理
所有的IT设备,不管是PC、服务器还是存储,都有一个共同点:它们被设计用来完成一组特定的指令。这些指令组成一个指令集。对于虚拟技术而言,“虚拟”实际上就是指的虚拟这些指令集。
虚拟机有许多不同的类型,但是它们有一个共同的主题就是模拟一个指令集的概念。每个虚拟机都有一个用户可以访问的指令集。虚拟机把这些虚拟指令“映射”到计算机的实际指令集。硬分区、软分区、逻辑分区、Solaris Container、VMware、Xen、微软Virtual Server2005这些虚拟技术都是运用的这个原理,只是虚拟指令集所处的层次位置不同。
虚拟技术的发展情况
1965年,IBM7044机器 ,虚拟机开端;
1967年,Djiskstra实现第一个虚拟系统;
2001年,AIX 5L v5.1发布,IBM首次在小型机上实现了逻辑分区。
2002年,AIX 5L v5.2发布,IBM在小型机上实现了动态逻辑分区。
2004年,8月,AIX 5L v5.3实现了微分区技术,最小分区粒度为1/10个CPU,且最多支持254个虚拟I/O。
同年10月,Solaris 10实现了Solaris Container功能,支持应用层面的计算资源调配。
2005年,1月,HP-UX 11i v2发布,实现了从硬分区、软分区到应用层分区,最小分区粒度为1/20颗CPU。
2005年10月,IBM发布虚拟I/O服务器,该服务器的一个组件IVM具备HMC的部分功能。即在不配置HMC的低端p系列和i系列服务器上,也可配置多个分区和操作系统。
三、虚拟化技术的类型
虚拟化技术之所以会被广泛的采用,都有其应用背景,当前虚拟化技术大致看来主要有以下几种类型:拆分、整合、迁移。
拆分
某台计算机性能较高,而工作负荷小,资源没有得到充分利用。这种情况适用于拆分虚拟技术,可以将这台计算机拆分为逻辑上的多台计算机,同时供多个用户使用。这样可以使此服务器的硬件资源得到充分的利用。
适用面:性能较好的大型机、小型机或服务器。
目的:提高计算机的资源利用率。
拆分形式的虚拟化示意图如下:
整合
当前有大量性能一般的计算机,但在气象预报、地质分析等领域,数据计算往往需要性能极高的计算机,此时可应用虚拟整合技术,将大量性能一般的计算机整合为一台计算机,以满足客户对整体性能的要求。
适用面:性能一般的计算机
目的:通过整合,获得高性能,满足特定数据计算要求。
整合形式的虚拟化示意图如下:
迁移
1、将一台逻辑服务器中的闲置的一部分资源动态的加入到另一台逻辑服务器中,提高另一方的性能。
2、通过网络将本地资源供远程计算机使用。Windows下的共享目录,Linux下的NFS等,还包括远程桌面等等。
目的:实现资源共享,实现跨系统平台应用等。
迁移形式的虚拟化示意图如下:
四、虚拟化的实现形式
硬件虚拟化
不需要操作系统支持,可直接实现对硬件资源进行划分,任一分区内的操作系统和硬件故障不影响其他分区。
代表:HP nPAR
逻辑虚拟化
不需要操作系统支持。在系统硬件和操作系统之间以软件和固件的形式存在,任一分区的操作系统故障不影响其他分区。
代表:IBM DLPARS、HP vPAR、VMware ESX Server、Xen。
相对硬件虚拟模式而言,逻辑虚拟模式会占用一定比例的系统资源。目前大型主机的虚拟效率一般在95%以上,虚拟化损耗大约为2%~3%;AIX和HP-UX上的虚拟效率在90%以上,虚拟化损耗约为5%;而x86架构上的虚拟效率则在80%左右,虚拟化损耗大约为20%。
软件虚拟化
需要主操作系统支持。在主操作系统上运行一个虚拟层软件,可以安装多种客户操作系统,任何一个客户系统的故障不影响其他用户的操作系统
代表: VMware GSX Server 和微软 Virtual Server2005
应用虚拟化
需要主操作系统支持。在单一操作系统上使用,在操作系统和应用之间运行虚拟层,任何一个应用包的故障不影响其他软件包。
代表:Solaris Container和SWsoft Virtuozzo
虚拟化的实现形式的对比
五、虚拟化技术应用现状
实际应用上,除了金融业、制造业、政府部门和科研领域的用户,许多用户对服务器整合、虚拟技术并不十分清晰。在当前国内服务器市场,虚拟化的技术趋势与实际应用还存在较大差距。以下是对虚拟化技术应用较好的行业的简要分析。
1、银行类用户
在虚拟化技术应用上最为积极。银行是国内最早使用大型主机和小型机的行业,在应用上得到的技术支持最多,对于虚拟技术较为熟悉,期待程度和应用评价也最高。特点在于对成本敏感度低,对虚拟技术的安全性和使用效率关注度高。
2、政府部门类用户
对虚拟技术的应用虽然不如银行用户那样熟悉,但通过技术人员的努力,仍能以最低的TCO(Total Cost of Ownership, 总体拥有成本 )获得最多的计算性能。他们的特点是对预算较敏感,对系统效率提高感兴趣。
3、科研单位
随着数据计算量的加大,需要使用虚拟技术来提高系统使用效率。这类用户对预算敏感度高,对虚拟技术本身倒并不是特别了解。
4、计算中心
如国家气象中心,大多采用高性能计算机集群,对计算性能和系统稳定性要求很高,对系统管理控制方面要求较多,对预算敏感度低。
总体而言,与北美和欧洲相对广泛的虚拟技术应用状况相比,国内在虚拟技术应用水平上还存在较大差距。
六、服务器虚拟化的优势
1、维护运行在早期操作系统上的业务应用
对于某些早期操作系统,发行厂商已经停止了系统的维护,不再支持新的硬件平台,而重写运行在这些系统上的业务应用又不现实。为此,可以将这些系统迁移到新硬件平台上运行的虚拟系统上,实现业务的延续。
2、提高服务器的利用率
《虚拟服务器环境》一书指出:“多数用户承认,系统平均利用率只有25%~30%之间” 。这对服务器硬件资源是一种浪费。
将多种低消耗的业务利用整合到一台服务器上,可以充分发挥服务器的性能,从而提高整个系统的整体利用效率。
3、动态资源调配,提升业务应用整体的运行质量
可在一台计算机内部的虚拟机之间或是集群系统的各个业务之间进行动态的的资源调配,进而提升业务应用的整体运行质量。在实际应用上,这一优势更偏重于集群系统。
4、提供相互隔离的,安全的应用执行环境
虚拟系统下的各个子系统相互独立,即使一个子系统遭受攻击而崩溃也不会对其他系统造成影响。而且在使用备份机制后,子系统可被快速的恢复。
5、提供软件调试环境,进行软件测试,保证软件质量
采用虚拟技术后,用户可以在一台计算机上模拟多个系统,多种不同操作系统,使调试环境搭建简单易行,大大提高工作效率,降低测试成本。
七、服务器虚拟化技术存在的问题
1、虚拟技术的认知
用户对虚拟技术不了解,不明确虚拟技术在提升用户现有系统效率和降低总体运营成本上的优势,这是阻碍虚拟技术推广的最大障碍。
2、虚拟系统的可靠性
客户采用服务器,很大程度上是为了保障业务的稳定性。如果用户在一台服务器上运行多个业务,类似于多个鸡蛋放在一只篮子,一旦出现重大硬件故障势必会影响到所有的应用,这种威胁很难消除。而对于用户,这种潜在的业务危险往往也是不可接受的。
3、虚拟系统的运行效率
使用虚拟技术的目的在于提高用户服务器的整体利用效率,如果虚拟系统的运行效率太低,也就失去了它在服务器上应用的价值。
4、平台支持
硬件支持方面,需要虚拟系统能够不断更新,以兼容新的硬件平台。
操作系统支持,需要能够支持老操作系统。这样对于某些使用早期操作系统的客户才有意义。
对于这两方面,虚拟化平台都需要不断更新,这些都依赖虚拟化提供商的维护。
5、迁移能力
高端应用需要做到零宕机,迁移成本较高,且需要SAN集中存储设备的支持;
低端应用,虽然可以使用系统备份还原的迁移模式,以降低系统迁移成本,但迁移效率低。
6、部署效率和易用性
当前虚拟化标准尚不统一,移植和管理工具还不够成熟,这也影响到虚拟化的大面积普及。特别是远程管理功能需要配合虚拟化标准工作大力发展,以使得不同的虚拟化平台可以通过网络进行统一管理。