计算机中,Virtualization是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
实际生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩的老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件。
虚拟化技术中,可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上。
虚拟化技术也与VMware Workstation等同样能达到虚拟效果的软件不同,是一个巨大的技术进步,具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面。
按虚拟的对象分类:
1.硬件虚拟化,使用硬件模拟, 你能够在基于ARM处理器的主机上模拟运行基于PowerPC未经任何修改的操作系统. 你甚至能在每个不同模拟处理器上运行多个虚拟机.
2.虚拟机(Virtual machine或VM),可以像真实机器一样运行程序的计算机的软件实现
①平台虚拟化,将操作系统和硬件平台资源分区开
a.完全虚拟化,敏感指令在操作系统和硬件之间被捕捉处理,客户操作系统无需修改,所有软件都能在虚拟机中运行,例如IBM CP/CMS,VirtualBox,VMware Workstation
b.硬件辅助虚拟化,利用硬件(主要是CPU)辅助处理敏感指令以实现完全虚拟化的功能,客户操作系统无需修改,例如VMware Workstation,Xen,KVM
c.部分虚拟化,针对部分应用程序进行虚拟,而不是整个操作系统
d.准虚拟化/超虚拟化(paravirtualization),为应用程序提供与底层硬件相似但不相同的软件接口,客户操作系统需要进行修改。例如Xen的半虚拟化模式。
e.操作系统级虚拟化,使操作系统内核支持多用户空间实体,例如Parallels Virtuozzo Containers、OpenVZ、LXC以及类Unix系统上的chroot,Solaris上的Zone
②应用程序虚拟化,在操作系统和应用程序间创建虚拟环境
a.便携式应用程序,允许程序在便携式设备中运行而不用在操作系统中安装
b.跨平台虚拟化,允许针对特定CPU或者操作系统的软件不做修改就能运行在其他平台上,例如Wine
c.虚拟设备,运行于虚拟化平台之上,面向应用的虚拟机映像
d.模拟器
3.虚拟内存,将不相邻的内存区,甚至硬盘空间虚拟成统一连续的内存地址
4.存储虚拟化,将实体存储空间(如硬盘)分隔成不同的逻辑存储空间
5.网络虚拟化,将不同网络的硬件和软件资源结合成一个虚拟的整体(请给出来源?)
①虚拟专用网络(VPN),在大型网络(通常是Internet)中的不同计算机(节点)通过加密连接而组成的虚拟网络,具有类似局域网的功能
②存储器虚拟化,将网络系统中的随机存储器聚合起来,形成统一的虚拟内存池
6.桌面虚拟化,在本地计算机显示和操作远程计算机桌面,在远程计算机执行程序和储存信息
7.数据库虚拟化
8.软件虚拟化
9.服务虚拟化
按照抽象程度的不同,常常把虚拟技术分为五个层次:
① 指令集结构层(Instruction Set Architecture Level)指令集结构层的虚拟技术是通过软件方法模拟指令的执行效果。
② 硬件抽象层(Hardware Abstraction Level)硬件抽象层的虚拟技术是有硬件支持的虚拟技术,如2005年和2006年Intel公司和AMD公司推出的大部分新款x86架构处理器都带有虚拟技术支持。两家公司都称新的带有虚拟技术支持的处理器可以大大提高虚拟机的运行效率和性能。
③ 操作系统层(OS Level)
④ 应用层(Application Level)应用层的虚拟技术是最常见的,如Java虚拟机、微软.net CLI和Parrot。
⑤ 库层(Library Level)
虚拟化技术的应用:
服务器集成
沙盒(Sandboxing)
多运行环境
多操作系统
测试和性能监视
应用集成
虚拟硬件
软件移植
系统可管理性
测试/质量保证