服务器虚拟化是一种技术,它允许在一台物理服务器上运行多个虚拟服务器。服务器虚拟化技术主要有哪些?随着互联网的不断发展,虚拟化技术越来越完善。
服务器虚拟化技术主要有哪些?
一、全虚拟化技术
全虚拟化技术是一种基于软件的虚拟化技术。在全虚拟化技术中,虚拟机与物理服务器完全分离,虚拟机所运行的操作系统和应用程序都无需对物理服务器进行任何修改即可运行。虚拟机(VM)在指定的内存、CPU、存储和网络资源上与其他VM共享硬件资源。
全虚拟化技术可分为硬件辅助虚拟化和基于二进制翻译的虚拟化两种形式。
1、硬件辅助虚拟化
硬件辅助虚拟化技术利用Intel VT和AMD-V这样的虚拟化扩展指令,来增强虚拟机监控器(VMM)对虚拟机访问物理硬件资源的支持。硬件虚拟机监视器能够保证虚拟机执行I/O等关键任务时不受整个系统的影响。
相较于全虚拟化技术的另一种形式,硬件辅助虚拟化技术不需要通过二进制翻译去支持虚拟化,因此虚拟化性能较高。但是,与其他形式的虚拟化相比,硬件虚拟机监视器有较高的延迟。硬件辅助虚拟化技术主要用于数据中心应用场景。
2、基于二进制翻译的虚拟化
基于二进制翻译的虚拟化技术是一种使用虚拟化管理程序(VMM)的软件虚拟化技术,其核心思想是把CPU的指令分为三种类型:不被修改的指令、被修改的指令、和特权指令。
通过虚拟机监视器(VM Monitor)的嵌套调用,当虚拟机对特权指令进行访问时,VMM接管CPU的控制权,从而实现对虚拟机的监视和管理。虚拟机在执行指令时,被虚拟机监视器进行二进制翻译,并进行欺骗,使其以为是在运行在安装的操作系统上而不是在VMM上运行。
由于基于二进制翻译的虚拟化技术可以不需要硬件支持实现虚拟化功能,因此被广泛应用于桌面虚拟化、移动虚拟化、云主机等虚拟化领域。
二、容器虚拟化技术
容器虚拟化技术是比全虚拟化技术更为轻量级的一种虚拟化技术,其核心是利用容器工具Docker等管理程序来创建虚拟化容器,并将应用程序及其运行所需的库等与底层操作系统共享。
容器技术最大的优势在于其运行速度较快、启动时间短,而且资源消耗相对较低。容器技术主要应用于小型应用程序、微服务和DevOps开发等领域。
三、Paravirtualization虚拟化技术
Paravirtualization虚拟化技术是一种可以提高虚拟机性能的有效技术。与全虚拟化技术不同,这种技术允许虚拟机访问虚拟化层之间的API,这样虚拟机可以直接访问虚拟化管理程序提供的资源。
Paravirtualization和全虚拟化主要的不同点是,全虚拟化技术是通过虚拟化层复制一份操作系统,并在虚拟机内运行另一个操作系统。而Paravirtualization技术是在虚拟机内部安装一个修改后的操作系统,通过虚拟化层直接与现有的操作系统通信。
Paravirtualization技术能够在不造成性能损失的情况下,提升虚拟机的性能。尤其在I/O操作方面,Paravirtualization技术的提升更为明显。
四、Network Function Virtualization虚拟化技术
Network Function Virtualization虚拟化技术是一种新型的虚拟化技术,主要是应用于网络功能,将物理服务器的网络服务虚拟化到软件无需专门硬件来完成。这种技术能够在物理架构中实现更加灵活的网络功能。
与其他虚拟化技术不同,Network Function Virtualization虚拟化技术不仅让虚拟机化应用程序可以独立运行在虚拟化环境中,而且可以让网络服务、应用程序和安全功能等转移到虚拟化架构中。
服务器虚拟化的实现方式
1、硬件虚拟化
硬件虚拟化是最为人熟知的虚拟化技术,也是企业普遍采纳的技术方案,主要产品有VMware和Microsoft 的Virtual Server。硬件虚拟化的设计原理是在单台服务器上承载多种不同系统,对硬件资源进行虚拟化,使之成为一个个单独可管理的“虚拟机”。
2、并行虚拟化
并行虚拟化设计原理与硬件虚拟化类似,同样是在一台服务器上承载多种系统,目前的产品并不多,XenSource算是其中一种。与硬件虚拟化相比,并行虚拟化的优势在于可以通过优化系统以降低额外损耗,提供比硬件虚拟化技术更高的效率,同样的开发难度也较高。
3、操作系统虚拟化
操作系统虚拟化是虚拟化技术的第三种实现方式,主要产品包括SWsoft 的Virutozzo和Sun的 Solaris Container。操作系统虚拟化的概念是基于共用操作系统,由于不包含额外的(虚拟化)处理层,所以它提供了一个更为精简的架构体系。
服务器虚拟化技术主要有哪些?