虚拟化技术原理与实现

当前位置:首页 > 计算机网络 > 计算机理论 > 虚拟化技术原理与实现

出版社:电子工业出版社
出版日期:2012-10
ISBN:9787121185281
页数:285页

章节摘录

版权页:   插图:   (1)缺页异常的分类 我们首先介绍缺页异常的分类,对于不同类型的缺页异常,其处理方式往往也是不同的。常见的缺页异常包括以下三类。 1)影子页表初始化时的缺页异常。 开始时,VMM中与客户机操作系统所拥有的页表相对应的影子页表是空的,但是影子页表又是载入到物理CR3中真正为物理MMU所利用进行寻址的页表,因此,开始时任何的内存访问操作都会引起缺页异常。如果客户机操作系统为所访问的客户机虚拟地址分配了客户机物理页,即客户机操作系统的当前页表中包含了从这个客户机虚拟地址到已经分配了的某一客户机物理页地址的映射,那么,正是由于影子页表中相应的从客户机虚拟地址到宿主机物理地址的映射尚未初始化造成了这种异常的发生。处理这种异常的过程也就是完成影子页表初始化的过程。 2)VMM将宿主机物理页换出到硬盘上引发的缺页异常。 VMM在客户机操作系统不知情的情况下,将分配给客户机的宿主机物理页换出到硬盘上,那么,虽然客户机操作系统为所访问的客户机虚拟地址分配了客户机物理页,但是由于VMM没在影子页表中为这个客户机虚拟地址建立相应的到宿主机物理地址的映射,便会引发缺页异常。 3)客户机上的缺页异常。 如果客户机操作系统尚未给这个客户机虚拟地址分配客户机物理页,即相应的客户机操作系统页表中没有这个客户机虚拟地址到某一客户页的映射,这时也会引发缺页异常。此外,还有客户机所访问的客户页表项存在位(Present Bit)为0,或者写一个只读的客户机物理页,也会引起缺页异常。 (2)影子页表的缺页处理机制 VMM首先截获到缺页异常的发生,并将发生异常的客户机虚拟地址在客户机页表中对应页表项的访问权限位与缺页异常的错误码进行比较,从而检查此缺页异常是否是由客户机本身引起的。对于由客户机本身引起的缺页异常,VMM将直接返回客户机操作系统,再由客户机操作系统的缺页异常处理机制来处理该缺页异常;如果缺页异常不是由客户机引起的,那么它必定是由于客户机页表和影子页表不一致,这样的异常也叫“影子缺页异常”。对于影子缺页异常,VMM会根据客户机页表同步影子页表。同步影子页表的过程如下。

前言

  随着云计算热潮的兴起,构成其中关键技术之一的虚拟化技术再次成为业内外的焦点。但是与之前有所不同,虚拟化技术不再仅限于计算机从业者范围,而是走向更为广阔的融合宽带网络在内的广义的资源基础设施层面。更为重要的是,受虚拟化概念的影响,正在形成一种新的资源体系,动态组合调整所需的计算、存储和网络资源以适应最终应用的需求。这一变化直接带动创新的服务模式、快速部署和资源弹性扩展等一系列优势。  中国电信作为基础运营商,一直密切关注云计算技术和业务的发展,成立了专业化的研究中心对云计算相关核心技术进行研究,并将研究与中国电信自身业务服务的优势相结合。中国电信拥有世界上最大的宽带网络和国内最丰富的数据中心资源,如何将传统的物理资产转化成逻辑可管理的虚拟资源以提高资源的利用率,降低运营和维护成本,满足国家绿色环保的要求是研究重点之一。  当前基于x86的虚拟化技术已经成熟,但是其核心技术一直掌握在少数虚拟化软件厂家手中,阻碍了虚拟化技术的规模应用。开源技术Xen和KVM的出现以及该类技术在亚马逊成功的商用,给虚拟化技术的应用注入了强心剂,越来越多的企业和个人参与到开源技术的研究和开发过程中。随着开源软件版本的不断升级,其与管理平台的接口也日渐成熟和标准化,一些知名的平台开发厂商也开始支持这些开源技术,为开源技术的商用奠定了良好的基础。  本书作者均来自中国电信云计算研究中心,他们以饱满的工作热情参与到虚拟化开源技术的研发过程中,秉承开源的精神。希望自己的研究成果不再局限于中国电信研究中心内部,而且像云计算资源一样借助图书这个介质为更多的研究人员和开发者服务,让更多的人加入到开源技术的研究和开发过程中。  本书的主要内容包括4个部分。  第一部分为虚拟化技术原理篇。介绍虚拟化技术,包括它的发展历程、基本原理、技术架构和一些主流的虚拟化产品等。  第二部分为Xen虚拟化技术篇。介绍Xen软件模块结构、工作原理及流程,并借助源码分析Xen最核心的软件模块Hypervisor的工作原理、流程及实现。  第三部分为KVM虚拟化技术篇。从KVM的体系结构出发,分别从日常使用、KVM内核代码和qemu-kvm用户态代码三个角度进行分析,情景化地剖析了KVM虚拟化技术的实现方案,包括重要的数据结构、处理流程等。  第四部分为虚拟化软件开放接口篇。从典型Xen管理接口入手,通过源码分析介绍了Xen管理接口的工作原理与实现方式,并推而广之。考虑到未来需要对Xen、KVM等虚拟化技术构建的异构资源池进行统一管理,需要提供统一标准化的管理接口,本书最后对libvirt虚拟化控制中间件进行了介绍。  本书涉及的知识面较广,由于笔者的知识水平和认知的局限,书中难免有纰漏之处,恳请各位专家和读者不吝赐教。  作者

内容概要

  ·郭京·
北京邮电大学硕士研究生,研究方向为云计算及虚拟化技术。
·侯光华·
1995年获北方交通大学信号与信息处理专业硕士学位,拥有近15年的电信行业产品研发经验。2012年加入中国电信云计算分公司,任高级工程师,负责云计算产品规划和研发,同时担任宽带论坛(BBF)商业业务委员会委员,并发表论文、国际文稿若干,拥有多项专利。
·司伟·
东北大学控制理论与控制工程专业硕士。2008年加入中国电信北京研究院,拥有多年数据通信产品研发经验,目前主要从事虚拟化安全、云计算系统架构、大数据等相关技术研究。
·顾茜·
毕业于北京邮电大学,主要从事云计算技术研究,政务云行业数据研究工作,掌握云数据管理、云数据挖掘和SPECvirt性能测评等云相关知识体系。发表学术论文8篇,拥有第一发明人发明专利两项,参与发明专利4项。
·广小明·
1993年毕业于上海交通大学。现任中国电信云计算分公司产品部总监,高级工程师,主要研究方向为服务器虚拟化和存储技术。
·胡杰·
2004年毕业于电信科学技术研究院。现任中国电信北京研究院云平台及应用研究团队总监,高级工程师,主要研究方向为服务器虚拟化和存储技术。
·陈龙·
2009年毕业于电子科技大学,毕业后加入中国电信北京研究院,负责中国电信定制网关中间件的开发和云主机业务的开发工作,并对嵌入式开发和和计算机体系结构方面有较深入的研究。

书籍目录

第一篇 云计算与虚拟化技术
第1章 虚拟化技术基本原理
1.1 云计算与虚拟化技术
1.2 x86和非x86体系结构基础
1.2.1 x86的发展历程
1.2.2 x86-64
1.2.3 x86内存架构
1.2.4 x86-64的基本模式
1.2.5 x86-64的寄存器组
1.2.6 中断与异常
1.2.7 IO架构
1.2.8 DMA
1.2.9 时钟
1.3 操作系统与虚拟化
1.3.1 操作系统
1.3.2 进程
1.3.3 系统虚拟化
1.3.4 系统虚拟化的发展历程
1.3.5 可虚拟化条件
1.3.6 虚拟化的原理与分类
1.4 VMM技术架构分类
1.4.1 Hypervisor模型
1.4.2 宿主(Hosted)模型
1.4.3 混合模型
1.5 本章小结
第2章 虚拟化实现技术架构
2.1 处理器虚拟化实现技术
2.1.1 Intel VT
2.1.2 AMD SVM
2.1.3 vCPU
2.2 中断虚拟化实现技术
2.3 内存虚拟化实现技术
2.3.1 影子页表
2.3.2 Intel EPT
2.3.3 AMD NPT
2.4 IO设备虚拟化实现技术
2.4.1 Intel VT-d
2.4.2 DMA重映射
2.4.3 IO页表
2.4.4 AMD IOMMU
2.5 网络虚拟化技术
2.5.1 虚拟通道
2.6 时间虚拟化技术
2.6.1 操作系统和客户机的时间概念
2.6.2 客户机时间概念的实现
2.7 主流虚拟化产品及其特点
2.7.1 Xen
2.7.2 VMware
2.7.3 Hyper –V
2.7.4 KVM
2.8 本章小结
第二篇 Xen虚拟化技术篇
第3章 Xen软件系统原理
3.1 Xen软件模块结构
3.1.1 Xen Hypervisor
3.1.2 特权虚拟域0(Dom0)
3.1.3 独立设备驱动域(IDD)
3.1.4 非特权虚拟域U(DomU)
3.1.5 硬件虚拟域(HVM)
3.2 Xen系统启动工作原理及流程
3.2.1 系统引导过程
3.2.2 Hypervisor启动与初始化过程
3.2.3 Dom0启动过程
3.2.4 DomU的启动
3.3 Xen CPU虚拟化工作原理
3.3.1 x86体系虚拟化存在的问题
3.3.2 CPU虚拟化—半虚拟化(又称为泛虚拟化)
3.3.3 CPU虚拟化技术—硬件虚拟化技术支持的全虚拟化
3.4 Xen内存虚拟化工作原理
3.4.1 内存虚拟化—直接模式
3.4.2 内存虚拟化—影子模式
3.5 IO虚拟化工作原理
3.5.1 半虚拟化IO
3.5.2 全虚拟化IO
3.6 Xen虚拟机(DomU)生命周期管理
3.7 本章小结
第4章 Xen Hypervisor技术实现
4.1 Xen Hypervisor关键技术概述
4.2 Hypercall
4.2.1 Hypercall的实现机制
4.2.2 自定义Hypercall的方法
4.2.3 应用程序使用Hypercall的方法
4.3 事件通道
4.3.1 事件通道的初始化
4.3.2 事件通道的绑定
4.3.3 发送事件通知
4.3.4 事件通知的处理
4.4 数据共享
4.4.1 授权表(Grant table)
4.4.2 XenStore和XenBus
4.4.3 分离设备驱动
4.5 本章小结
第三篇 KVM虚拟化技术篇
第5章 qemu-kvm虚拟化解决方案
5.1 概述
5.2 内核模块组成概述
5.3 KVM所提供的API
5.4 KVM内核模块重要的数据结构
5.4.1 KVM结构体
5.4.2 kvm_vcpu结构体
5.4.3 kvm_x86_ops结构体
5.4.4 KVM API中重要的结构体
5.5 KVM内核模块重要流程的分析
5.5.1 初始化流程
5.5.2 虚拟机的创建
5.5.3 vCPU的创建
5.5.4 vCPU的运行
5.6 qemu-kvm软件架构分析
5.6.1 QEMU的三种运行模式
5.6.2 libvirt和virt-manager
5.6.3 KVM的调试接口
5.7 本章小结
第6章 qemu-kvm原理与分析
6.1 QEMU软件架构
6.1.1 qemu-kvm的配置与编译
6.1.2 qemu-kvm的架构与配置
6.2 QEMU组件
6.2.1 模块模型
6.2.2 libkvm模块
6.2.3 virtio组件
6.3 基于KVM的QEMU PC Emulator
6.3.1 KVM中的Machine模块
6.3.2 基于KVM加速支持的CPU虚拟化模块
6.3.3 虚拟机的内存管理
6.3.4 IO管理
6.4 本章小结
第四篇 虚拟化软件开放接口
第7章 Xen API接口技术及实现
7.1 Xen Management API接口概述
7.2 XML-RPC工作原理
7.2.1 XML-RPC概述
7.2.2 XML-RPC请求
7.2.3 XML-RPC响应
7.3 Xen Managemnet API的实现
7.3.1 C语言和Python语言的扩展与嵌入
7.3.2 Xen Management API类的定义
7.3.3 Xen Management API处理流程分析
7.4 本章小结
第8章 libvirt虚拟化控制中间件
8.1 libvirt概述
8.1.1 libvirt简介及使用样例
8.1.2 基于libvirt所开发的开源应用
8.1.3 安装与配置
8.2 libvirt架构与开发
8.2.1 libvirt架构说明
8.2.2 libvirt API控制接口
8.2.3 libvirt的主机域管理
8.2.4 libvirt的网络架构
8.2.5 libvirt的存储管理
8.3 基于libvirt的XML配置解析
8.3.1 XML配置格式简析
8.3.2 针对Xen的libvirt配置详解
8.3.3 针对KVMQEMU的libvirt配置详解
8.4 本章小结
参考文献

编辑推荐

《虚拟化技术原理与实现》注重技术理论与应用实践的紧密结合,可供从事云计算技术研究开发、设备制造、咨询设计、工程建设、运营维护与管理的技术人员和管理人员阅读,也可供高等院校通信工程专业、计算机专业师生参考,还可作为IT培训机构的培训参考书。

作者简介

《虚拟化技术原理与实现》对云计算中关键技术之一的虚拟化技术进行了深入的分析,从x86计算机体系结构以及操作系统的工作原理出发,介绍了虚拟化技术原理以及业界主流虚拟化软件产品,并以Xen、KVM开源软件为例分析了虚拟化软件的架构及其实现方法,最后对虚拟化软件管理接口的工作原理以及实现方法进行了全面的梳理。

图书封面


 虚拟化技术原理与实现下载



发布书评

 
 


精彩短评 (总计23条)

  •     总体来说还不错,讲的挺清楚的
  •     1/3的内容是抄的,还是整段整章的抄,参考文献一;1/3直接是代码;而且还这么贵,50块钱,300页的小册子。
  •     书的排版很大方,页边距出乎我意料……300页不到的书,里面代码不知道占了多少不过谁叫目前虚拟化技术的书太少了,好书更少,希望这么简约的一本物有所值吧说实话,这样的应该打印成一叠纸比较好看点,就当white paper了
  •     这本书有写的好的一方面,比如索引清晰,写作按照论文的写法比较规范。这本书也有不足的地方就是开源的代码写的太多
  •     本来以为这本书能深入得将技术,但是只有个别章节讲实现,而且讲得不全面,比如qemeu—kvm虚拟化解决方案,这张讲得还可以,能讲到实现,就是代码层面,但是并不全,不知道是作者水平有限还是其他原因,而livit那张,干脆把livit网管的介绍文档翻译一下就那上来,并未讲livit的实现原理,与书名不符,希望作者能完善各个技术的讲解再出本,到时候必会全力支持。
  •     最近一直在学习虚拟化技术,总感觉有些地方摸不透,拿不准,看到该书,就买了,书已经到手了,稍微翻了一下,书的质量还可以,有自己想要看的东西,详细评价待看完之后再来不上。
  •     浅显易懂的一本书,深入了解学习的话,不太合适
  •     讲原理的书!虽然不是很详细,也可以了!以前买了那本很厚的 虚拟化实践 的书,那个上面都是操作!这个看看原理!配合起来看吧!
  •     学虚拟化必看
  •     对普及虚拟化知识还是值得一读的,至少知道一些概念。
  •     非常得满意。正在研究中。
  •     对于刚刚接触虚拟化技术的新书来说,是本很好的启蒙书。让你对虚拟化有一个大致的了解,对其中的一些术语做了很好的解释。但是对于已经接触过虚拟化技术的开发者来说,用处不大。
  •     这是一本很好的入门书
  •     很不错的一本书,后半本书有代码剖析。
  •     电信北研院丛书,写的书,不错。有技术深度。
  •     基础不够全面,深度又不够。
  •     虚拟化原理部分很多句子很眼熟。前段时间才看过实验室写的书:《虚拟化原理》,所以知道这本书”摘抄”了很多那本书的段落。还好在reference部分把《虚拟化原理》放在第一位的。详细讲解kvm的部分除了代码,其他内容是IBM技术博客上的入门内容。内容简介上说的“对虚拟化管理接口工作原理及实现方法进行了全面的梳理”我觉得言过其实了。
  •     写的相当的虚,全是肤浅的理论,感觉作者也并没有完全理解。
  •     1111111111111111111```````````````
  •     这本书的内容太粗燥,技术水平太差,没有深度,也没有实用性,相当于学术性综述,不值得购买!
  •     大致读完了,对于了解一些基础原理还是有用的。
  •     也许是为了把原理解释的清楚些,就直接吧源代码一页页的粘贴上来。虚拟化技术的原理与实现,怎么实现的,也是通过源代码粘贴来展示。
  •     东西讲的很浅,笼统。很薄,价格还贵。买亏了。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024