服务器虚拟化技术大致分三种:完全虚拟化、准虚拟化、操作系统层虚拟化。
虚拟化技术,用户可以动态启用虚拟服务器又叫虚拟机,每个服务器实际上可以让操作系统以及在上面运行的任何应用程序误以为虚拟机就是实际硬件。运行多个虚拟机还可以充分发挥物理服务器的计算潜能,迅速应对数据中心不断变化的需求。
如今数据中心管理人员面临的虚拟化解决方案种类繁多,有些是专有方案,而有些是开源方案。下面来了解一下这三种虚拟化:
一:完全虚拟化
虚拟化方法使用名为hypervisor的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。而基于核心的虚拟机KVM是面向linux系统的开源产品。
hypervisor可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,hypervisor给处理器带来开销。
在完全虚拟化的环境下,hypervisor运行在裸硬件上,充当主机操作系统;而由hypervisor管理的虚拟服务器运行客户端操作系统guest OS。
二:准虚拟化
减轻这种负担的一种方法就是,改动客户操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor协同工作。这种方法就叫准虚拟化para-virtualization。
Xen是开源准虚拟化技术的一个例子。操作系统作为虚拟服务器在Xen hypervisor上运行之前,它必须在核心层面进行某些改变。因此,Xen适用于BSD、Linux、Solaris及其他开源操作系统,但不适合对像Windows这些专有的操作系统进行虚拟化处理,因为它们无法改动。
准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。准虚拟化与完全虚拟化相比优点明显,以至于微软和VMware都在开发这项技术,以完善各自的产品。
三:操作系统层虚拟化
实现虚拟化还有一个方法,那就是在操作系统层面增添虚拟服务器功能。Solaris Container就是这方面的一个例子,Virtuozzo/OpenVZ是面向Linux的软件方案。
就操作系统层的虚拟化而言,没有独立的hypervisor层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统不过每个实例有各自的应用程序和用户账户。
虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。
三种虚拟化总结
每种虚拟化方法都有各自的优点,选择哪个则取决于用户的具体情况。一组服务器基于同一操作系统,这非常适用于通过操作系统层实现合并。
准虚拟化技术集两者之所长,如果与支持虚拟化技术的处理器一起部署,优点更为明显。它不但提供了良好性能,还提供了可运行多种异构客户端操作系统的功能。
在三种方法中完全虚拟化性能受到的影响虚拟化,但提供了这个优点:既能让客户端操作系统彼此完全隔离,还能让它们与主机操作系统完全隔离。它非常适用于软件质量保证及测试,另外还支持种类最广泛的客户端操作系统。
完全虚拟化解决方案提供了其他独特功能。譬如说,它们可以对虚拟服务器拍“快照snapshot”,保留状态、有助于灾难恢复。这种虚拟服务器映像可以用来迅速配置新的服务器实例。越来越多的软件公司甚至开始提供评测版产品,作为可下载、预包装的虚拟服务器映像。
就跟物理服务器一样,虚拟服务器需要不断得到支持和维护。越来越流行的服务器虚拟化已为第三方工具造就了兴旺的市场,无论是物理环境到虚拟环境的迁移实用程序,还是面向虚拟化技术的各大系统管理控制台,它们都旨在简化从传统IT环境迁移到高效、具有成本效益的虚拟环境的过程。