内存虚拟化技术,具体的实现方法有哪两种?
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
引入内存虚拟化技术后,内存系统中存在3种地址。
机器地址(Machine Address,MA):真实硬件的机器地址,在地址总线上可以见到的地址信号。
虚拟机物理地址(Guest Physical Address,GPA):经过VMM抽象后虚拟机看到的伪物理地址。
虚拟地址(Virtual Address,VA):Guest OS提供给其应用程序使用的线性地址空间。
虚拟地址到虚拟机物理地址的映射关系,记作g
虚拟机物理地址到机器地址的映射关系,记作f
操作系统的内存管理单元(Memory Management Unit,MMU)只能完成一次虚拟地址到物理地址的映射,但获得的物理地址只是虚拟机物理地址而不是机器物理地址,所以需要VMM参与,以获得总线上可以使用的机器地址为实现虚拟地址到机器地址的高效转换,目前普遍采用的方法是由VMM根据映射f和g生成复合映射f·g并直接写入MMU,具体的实现方法有两种:
MMU半虚拟化(MMU Paravirtualization)
这种方式主要为Xen所用
主要原理是:当Guest OS创建新页表时,VMM从维护的空闲内存中为其分配页面并进行注册,以后,Guest OS对该页表的写操作都会陷入VMM进行验证和转换;VMM检查页表中的每一项,确保它们只映射到属于该虚拟机的机器页面,而且不包含对页表页面的可写映射;然后,VMM会根据其维护的映射关系f,将页表项中的虚拟机物理地址替换为相应的机器地址;***把修改过的页表载入MMU,MMU就可以根据修改过的页表直接完成虚拟地址到机器地址的转换。这种方式的本质是将映射关系f·g直接写入Guest OS的页表中,以替换原来的映射g。
影子页表
全虚拟化使用影子页表技术实现内存虚拟化。其与MMU半虚拟化不同的是,VMM为Guest OS的每个页表维护一个影子页表,并将f·g的映射关系写入影子页表,Guest OS的页表内容保持不变,然后,VMM将影子页表写入MMU。
影子页表的维护将带来时间和空间上的较大开销。时间开销主要体现在Guest OS构造页表时不会主动通知 VMM,VMM 必须等到Guest OS发生缺页时才会分析缺页原因再为其补全影子页表。而空间的开销主要体现在VMM需要支持多台虚拟机同时运行,每台虚拟机的 Guest OS 通常会为其上运行的每个进程创建一套页表系统,因此影子页表的空间开销会随着进程数量的增多而迅速增大。
影子页表缓存
为权衡时间开销和空间开销,现在一般采用影子页表缓存(Shadow Page Table Cache)技术,即VMM在内存中维护部分最近使用过的影子页表,只有当影子页表在缓存中找不到时,才构建一个新的影子页表。当前主要的虚拟化技术都采用了影子页表缓存技术。
虚拟机文件系统的虚拟化技术

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
什么是存储虚拟化?记录层和块层都包含哪些设备?
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 存储虚拟化就是将一个存储设备虚拟成多个存储设备,或者将多个存储设备虚拟成一个存储设备的技术。 存储虚拟化(1:N) 存储就是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问,总的来讲可以包含两个方面的含义: 一方面它是数据 临时或长期驻留的物理媒介; 另一方面,它是保证数据完整安全存放的方式或行为。数据存储就是把这两个方面结合起来,向客户提供一套数据持久化、访问、维护的解决方案。 文件/记录层(File/Record Layer) 提供存储资源访问方法,包括:文件系统,数据库,缓存等 将用户视图的数据单元(文件/记录/对象)保存到存储空间,并记录映射关系,负责维护命名空间、存储空间分配 性能优化,分布式系统集群管理与控制。 块层(Block Layer) 提供存储设备:磁盘、磁带、固态硬盘等,用来存储数据 提供块聚合管理:实现存储网络聚合,物理卷聚合,镜像冗余(RAID-n)等功能 负责缓存管理 共享存储包括DAS、NAS和SAN等不同存储模型
- 下一篇
聊一聊虚拟化基础知识
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 引言 开始前给大家举个例子: 场景如下:一台服务器只有有8G内存,程序A需要4G内存,程序B需要4G内存,传统架构无法满足这样的场景,那只有依靠虚拟化来解决,通过虚拟化方式,我们可以不仅提供2台4G内存,更可以通过内存气泡、内存复用、内存置换等技术实现超分配! Part A.虚拟化简介 虚拟化是云计算的基础,基于虚拟化我们可以实现私有云、公有云、桌面云等。 虚拟化是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和数据存储。 虚拟化架构 几个重要的概念: A.宿主机:Host ,即物理服务器 B.虚拟机:Guest ,也称客户机、虚机 C.VMM(virtual Machine Monitor):即Hypervisors,它...
相关文章
文章评论
共有0条评论来说两句吧...