随着云计算技术的持续发展及其应用的日益深入,高效利用云平台资源变得越来越重要,其中服务器虚拟化技术是实现这一目标的关键。云计算的云端系统,实质上是一个先进的分布式系统。通过虚拟化技术,我们能在单一的物理平台上创建出多个虚拟平台,每个虚拟平台都可作为独立的终端加入这个分布式系统。比起直接使用物理平台,虚拟化在资源利用、动态调配和高可靠性方面具有显著优势。
一、虚拟化技术概述
服务器虚拟化技术,顾名思义,指的是在一台物理服务器上运行多台虚拟服务器的能力。这些虚拟服务器在用户、应用软件乃至操作系统的视角下,与物理服务器几乎无异。用户可在虚拟服务器上灵活安装软件。服务器虚拟化技术还需确保多个虚拟服务器之间的数据隔离和资源占用的可控性。
在X86平台虚拟化技术中,新引入的虚拟化层通常被称为虚拟机监控器(VMM),也叫做Hypervisor。Hypervisor运行在真实的物理平台上,即宿主机,而虚拟出来的平台则被称作客户机。客户机上运行的系统被称为客户机操作系统。
二、虚拟化技术详解
(1)软件虚拟化
纯软件虚拟化是用纯软件方法在现有物理平台上实现访问的截获和模拟。例如,QEMU就是通过纯软件仿真X86平台处理器的操作。虽然其性能相对较低,但可以在同一平台上模拟不同架构平台的虚拟机。
VMWare的软件虚拟化采用了动态二进制翻译(BT)技术。BT是在虚拟机监控器可控范围内允许客户机指令在物理平台上直接运行的一种技术。该技术也会扫描客户机指令,对不符合虚拟机监控器限制的指令进行动态替换或软件调用。
(2)硬件辅助虚拟化
硬件辅助虚拟化(HVM)是物理平台本身提供对特殊指令的截获和重定向的硬件支持。X86平台的虚拟化就是一个例子,支持虚拟技术的X86 CPU带有特别优化过的指令集来控制虚拟过程。通过这些指令集,VMM能轻松地将客户机置于受限制模式下运行。
硬件辅助虚拟化提供全新的架构支持,使操作系统直接在其上运行,无需进行二进制转换,从而简化了VMM设计并提高了性能。
三、虚拟化的运行模式与其他类型
Type-I虚拟化直接运行在操作系统之上,如Vmware workstations和Kvm等。而Type-II虚拟化则直接运行在硬件之上,如Vmware EXSI和Xen等。
还存在其他类型的虚拟化技术,如容器虚拟化、模拟器虚拟化和库虚拟化等。容器虚拟化基于内核的虚拟化,所有虚拟机共享一个内核但运行在硬件之上。模拟器虚拟化则通过模拟所有硬件来创建虚拟机。库虚拟化则是在操作系统之上模拟出不同系统的库。
四、总结
服务器虚拟化技术是云计算资源高效利用的关键。无论是软件虚拟化、硬件辅助虚拟化还是其他类型的虚拟化技术,都在为提高资源利用率、动态调配和高可靠性等方面发挥着重要作用。随着技术的不断发展,相信未来会有更多先进的虚拟化技术和解决方案出现。