服务器虚拟化是将物理服务器划分为多个小型虚拟服务器,每个虚拟服务器运行自己的操作系统。这些操作系统称为来宾操作系统。它们在另一个称为主机操作系统的操作系统上运行。以这种方式运行的每个来宾均不知道在同一主机上运行的任何其他来宾。采用了不同的虚拟化技术来实现这种透明性。
服务器虚拟化的类型:
- 系统管理程序–
虚拟机监控程序或VMM(虚拟机监视器)是在操作系统和硬件之间存在的一层。它提供了必要的服务和功能,以确保多个操作系统的平稳运行。
它识别陷阱,响应特权的CPU指令并处理排队,调度和返回硬件请求。主机操作系统还运行在虚拟机管理程序之上,以管理和管理虚拟机。
- 半虚拟化–
它基于Hypervisor。在此模型中处理了软件实现的虚拟化中的许多仿真和陷阱开销。在将客户机操作系统安装到虚拟机之前,将对其进行修改和重新编译。
由于来宾操作系统中的修改,由于修改后的来宾操作系统直接与虚拟机管理程序进行通信并消除了仿真开销,因此性能得到了增强。
示例:Xen主要使用Para虚拟化,其中使用定制的Linux环境来支持称为域0的管理环境。好处:
- 更轻松
- 增强的性能
- 没有仿真开销
局限性:
- 需要修改客户操作系统
- 全面虚拟化–
它与Para虚拟化非常相似。必要时,它可以模拟基础硬件。系统管理程序会捕获操作系统用于执行I / O或修改系统状态的计算机操作。捕获后,这些操作将在软件中进行仿真,并且返回的状态码与实际硬件将交付的状态非常一致。这就是为什么未修改的操作系统能够在虚拟机管理程序之上运行的原因。
示例:VMWare ESX服务器使用此方法。一个称为Service Console的定制Linux版本用作管理操作系统。它不如Para虚拟化那么快。好处:
- 无需修改来宾操作系统。
局限性:
- 复杂的
- 由于仿真而变慢
- 安装新设备驱动程序很困难。
- 硬件辅助虚拟化–
在操作方面,它与完全虚拟化和Para虚拟化类似,不同之处在于它需要硬件支持。依靠x86体系结构的硬件扩展来处理由于捕获和模拟来宾OS中执行的I / O操作和状态指令而导致的虚拟机管理程序的大部分开销。
可以运行未修改的OS,因为对虚拟化的硬件支持将用于处理硬件访问请求,特权和受保护的操作以及与虚拟机进行通信。
示例:AMD – V Pacifica和Intel VT Vanderpool为虚拟化提供硬件支持。好处:
- 无需修改来宾操作系统。
- 虚拟机监控程序的开销非常少
局限性:
- 所需的硬件支持
- 内核级虚拟化–
它运行Linux内核的单独版本,而不是使用管理程序,而是将关联的虚拟机视为物理主机上的用户空间进程。这使得在单个主机上运行多个虚拟机变得容易。设备驱动程序用于Linux主内核与虚拟机之间的通信。
虚拟化需要处理器支持(Intel VT或AMD – v)。略微修改的QEMU流程用作虚拟机的显示和执行容器。在许多方面,内核级虚拟化是服务器虚拟化的一种特殊形式。示例:用户模式Linux(UML)和内核虚拟机(KVM)
好处:
- 无需特殊的管理软件。
- 开销少
局限性:
- 所需的硬件支持
- 系统级或操作系统虚拟化–
在单个操作系统内核实例上运行多个但在逻辑上截然不同的环境。由于所有虚拟机共享主机操作系统的公共内核,因此也称为共享内核方法。基于更改根概念“ chroot”。
chroot在启动过程中启动。内核使用根文件系统来加载驱动程序并执行其他早期系统初始化任务。然后,它使用chroot命令切换到另一个根文件系统,以将磁盘上的文件系统挂载为其最终的根文件系统,并在该文件系统内继续进行系统初始化和配置。
系统级虚拟化的chroot机制是该概念的扩展。它使系统能够使用它们自己的一组进程启动虚拟服务器,这些进程相对于它们自己的文件系统根目录执行。
系统级别和服务器虚拟化之间的主要区别在于,不同的操作系统可以在不同的虚拟系统上运行。如果所有虚拟服务器必须共享相同的操作系统副本,则为系统级虚拟化;如果不同的服务器可以具有不同的操作系统(包括单个操作系统的不同版本),则为服务器虚拟化。示例:FreeVPS,Linux Vserver和OpenVZ是一些示例。
好处:
- 比完整的机器(包括内核)轻得多
- 可以托管更多虚拟服务器
- 增强的安全性和隔离性
局限性:
- 内核或驱动程序问题可能会导致所有虚拟服务器瘫痪。
参考:
服务器虚拟化的类型