虚拟化技术是一种资源管理技术,它将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来。通过虚拟化技术可以用与访问抽象前资源一致的方法访问抽象后的资源,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看和维护资源。虚拟化技术打破了实体结构间的不可切割的障碍,实现了架构动态化,达到了集中管理和动态使用物理资源及虚拟资源,以提高系统结构的弹性和灵活性、降低成本、改进服务、减少管理风险的目的。
计算机的虚拟化包括两个方面:一方面可以使单台计算机看起来像多台计算机或完全不同的计算机,从而可以提高资源利用率并降低IT成本;另一方面也可以使多台计算机看起来像一台计算机,以实现统一的管理、调配和监控。
在工业互联网平台上采用虚拟化技术可以为用户提供“按需使用、按使用付费”的服务模式。因为虚拟化允许将服务器、存储设备和其他硬件视为一个资源池,而不是离散系统,这样就可以根据需要来分配这些资源。
虚拟化技术主要分为以下几个大类。
1)平台虚拟化(Platform Virtualization)。针对计算机和操作系统的虚拟化,又分成服务器虚拟化和桌面虚拟化。服务器虚拟化是一种通过区分资源的优先次序,并将服务器资源分配给最需要它们的工作负载的虚拟化模式。它通过减少为单个工作负载峰值而储备的资源来简化管理和提高效率。桌面虚拟化是为提高人对计算机的操控力,降低计算机使用的复杂性,为用户提供更加方便适用的使用环境的一种虚拟化模式。平台虚拟化主要通过CPU虚拟化、内存虚拟化和I/O接口虚拟化来实现。
2)资源虚拟化(Resource Virtualization)。针对特定的计算资源进行的虚拟化,如存储虚拟化、网络资源虚拟化等。存储虚拟化是指把操作系统有机地分布于若干内外存储器,两者结合成为虚拟存储器。网络资源虚拟化最典型的示例是网格计算。网格计算通过使用虚拟化技术来管理网络上的数据,并在逻辑上将其作为一个系统呈现给消费者。它动态地提供了符合用户和应用程序需求的资源,同时还将提供对基础设施的共享和访问的简化。
3)应用程序虚拟化(Application Virtualization)。它包括仿真、模拟、解释技术等。Java虚拟机是典型的在应用层进行的虚拟化。基于应用层的虚拟化技术,通过保存用户的个性化计算环境的配置信息,可以实现在任意计算机上重现用户的个性化计算环境。
4)表示层虚拟化。在应用上与应用程序虚拟化类似,所不同的是表示层虚拟化中的应用程序运行在服务器上,客户机只显示应用程序的UI界面和用户操作。表示层虚拟化软件主要有微软的Windows远程桌面(包括终端服务)、Citrix MetaFrame Presentation Server和Symantec pcAnywhere等。
通常虚拟化可以通过指令级虚拟化和系统级虚拟化两种方法来实现。
1.指令级虚拟化方法(www.daowen.com)
在指令级层次上实现虚拟化,即将某个硬件平台上的二进制代码转换为另一个平台上的二进制代码,实现不同指令集间的兼容,也被称作“二进制翻译”。二进制翻译是通过仿真来实现的,即在一个具有某种接口和功能的系统上实现另一种与之具有不同接口和功能的系统。二进制翻译的软件有三种方式实现:解释执行、静态翻译、动态翻译。
2.系统级虚拟化方法
系统级虚拟化是在一台物理机上虚拟出多台虚拟机。从系统架构上看,虚拟机监控器(VMM)是整个虚拟机系统的核心。它承担资源的调度、分配和管理任务,保证多台虚拟机能够在相互隔离的同时运行多个客户操作系统。系统级虚拟化要通过CPU虚拟化、内存虚拟化和I/O虚拟化实现。
(1)CPU虚拟化
CPU虚拟化为每台虚拟机提供一个或多个虚拟CPU,多个虚拟CPU分时复用物理CPU,任意时刻一个物理CPU只能被一个虚拟CPU使用。VMM必须为各虚拟CPU合理分配时间片并维护所有虚拟CPU的状态。当一个虚拟CPU的时间片用完需要切换时,要保存当前虚拟CPU的状态,将被调度的虚拟CPU的状态载入物理CPU。x86的CPU虚拟化方法主要有二进制代码动态翻译(Dynamic binary translation)、半虚拟化(Para-Virtualization)和预虚拟化技术。为了弥补处理器的虚拟化缺陷,现有的虚拟机系统都采用硬件辅助虚拟化技术。
(2)内存虚拟化
VMM通常采用分块共享的思想来虚拟计算机的物理内存。VMM将机器的内存分配给各台虚拟机,并维护机器内存和虚拟机内存之间的映射关系,这些内存在虚拟机看来是一段从地址O开始的、连续的物理地址空间。在进行内存虚拟化后,内存地址将具有机器地址、伪物理地址和虚拟地址这三种地址。在x86的内存寻址机制中,VMM能够以页面为单位建立虚拟地址到机器地址的映射关系,并利用页面权限设置实现不同虚拟机间内存的隔离和保护。为了提高地址转换的性能,x86处理器中加入翻译后备缓冲器(TLB),缓存已经转换过的虚拟地址,在每次虚拟地址空间切换时,硬件自动完成切块TLB。为了实现虚拟地址到物理地址的高效转换,通常采取复合映射的思想,通过对内存管理单元(MMU)半虚拟化和影子页表来实现页表的虚拟化。
(3)I/O虚拟化
由于I/O设备具有异构性强、内部状态不易控制等特点,VMM系统针对I/O设备虚拟化有全虚拟化、半虚拟化、软件模拟和直接I/O访问等设计思路。I/O设备除了增加吞吐量和固有的并行数据流、联系串行特性以及基于分组的协议外,还应该考虑与传统的PCI兼容的PCI Express的硬件,建立相应的总线适配器,以弥补单一主机无专门的驱动程序时的需要。存储虚拟化系统应提供诸如逻辑卷大小、各种功能、数据镜像和快照,并兼容集群主机和多个操作系统。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。