第一章虚拟化与云计算 1.1虚拟化概述 1.1.1云计算概念及其体系结构 1.1.2虚拟化的基本概念 1.1.3虚拟化的目的 1.1.4虚拟化与云计算的关系 1.1.5虚拟化未来的发展前景 1.2虚拟化概念分类 1.2.1软件虚拟化 1.2.2硬件虚拟化 1.2.3半虚拟化 1.2.4全虚拟化 1.3主流虚拟化产品概述 1.3.1KVM 1.3.2Xen 1.3.3VMware 1.3.4Hyper—V 1.3.5virtualBox 本章小结 第二章虚拟化实现技术 2.1系统虚拟化架构 2.2处理器虚拟化实现技术 2.2.1VCPU 2.2.2Intel VT—x 2.2.3AMD SVM 2.3内存虚拟化实现技术 2.3.1Intel EPT 2.3.2AMD NPT 2.4110虚拟化实现技术 2.4.1Intel VT—d 2.4.2IOMMU 2.4.3SR—IOV 2.4.4Virtio 本章小结 第三章构建KVM环境 3.1KVM架构概述 3.1.1KVM和Xen 3.1.2KVM虚拟化模型 3.1.3KVM模块 3.1.4QEMU与KVM的关系 3.2配置硬件环境 3.3安装宿主机Linux 3.4编译安装KVM 3.4.1下载KVM源码 3.4.2配置KVM 3.4.3编译KVM 3.4.4安装KVM 3.5编译安装QEMU 3.5.1下载QEMU源码 3.5.2配置QEMU 3.5.3编译QEMU 3.5.4安装QEMU 3.6安装和启动客户机 3.6.1客户机的安装步骤 3.6.2启动第一个KVM客户机 本章小结 第四章KVM核心模块配置 4.1QEMU命令基本格式 4.2CPU配置 4.2.1CPU设置基本参数 4.2.2CPU模型 4.3内存配置 4.3.1内存设置的基本参数 4.3.2大页(HugePage) 4.4存储器配置 4.4.1常见的存储配置 4.4.2启动顺序配置 4.4.3QEMU支持的镜像文件格式 4.4.4qemu—img命令 4.4.5Ubuntu客户机的镜像制作过程 4.4.6Windows客户机的镜像制作过程 4.5网络配置 4.5.1网桥模式 4.5.2NAT模式 4.6图形显示配置 4.6.1SDL的使用 4.6.2VNC的使用 本章小结 第五章KVM内核模块解析 5.1KVM内核模块组成概述 5.1.1Makefile文件分析 5.1.2KVM的内核源码结构 5.2KVMAPI 5.2.1KVMAPI简介 5.2.2KVMAPI中的结构体 5.2.3Systemioctl调用 5.2.4VMioctl调用 5.2.5vCPUioctl调用 5.3KVM内核模块重要的数据结构 5.3.1kvm结构体 5.3.2kvm_vcpu结构体 5.3.3kvm_x86_ops结构体 5.4KVM内核模块重要流程的分析 5.4.1初始化流程 5.4.2虚拟机的创建 5.4.3KVM客户机异常处理 本章小结 第六章QEMU软件架构分析 6.1QEMU概述 6.1.1QEMU实现原理 6.1.2QEMU支持模拟的硬件 6.1.3QEMU特性 6.2QEMU三种运行模式 6.3QEMU软件构成 6.3.1QEMU源码架构 6.3.2QEMU线程事件模型 6.3.3libkvm模块 6.3.4Virtio组件 6.4QEMU内存模型 6.5QEMU的PCI总线与设备 6.5.1PCI结构简介 6.5.2QEMU的PCI总线 6.5.3QEMU的PCI—PCI桥 6.5.4QEMU的PCI设备 本章小结 第七章KVM虚拟机管理应用实践 7.1libvirt 7.1.1libvirt简介 7.1.2libvirt的编译和安装 7.1.3libvirtd 7.1.4virsh 7.1.5libvirtAPI 7.2基于libvirt的配置与开发 7.2.1libvirt的配置文件 7.2.2libvirt中域的XML配置文件格式 7.2.3libvirt API使用示例 7.3virt—manager 7.3.1virt—manager的编译和安装 7.3.2virt—manager的使用 7.4MarveISky 7.4.1MarvelSky后台程序的配置和安装 7.4.2MarvelSky管理平台的使用 本章小结 参考文献