KVM实战:原理、进阶与性能调优
作者:任永杰,程舟
出版社:机械工业出版社
出版时间:2019-03-01
ISBN:9787111619819
定价:¥89.00
前言
第一篇 KVM虚拟化基础
第1章 虚拟化简介2
1.1 云计算概述2
1.1.1 什么是云计算2
1.1.2 云计算的历史4
1.1.3 云计算的几种服务模型5
1.2 虚拟化技术6
1.2.1 什么是虚拟化6
1.2.2 软件虚拟化和硬件虚拟化7
1.2.3 半虚拟化和全虚拟化8
1.2.4 Type1和Type2虚拟化8
1.3 KVM简介9
1.3.1 KVM的历史9
1.3.2 KVM的功能概览10
1.3.3 KVM的现状12
1.3.4 KVM的展望13
1.4 其他的虚拟化解决方案简介14
1.4.1 Xen14
1.4.2 VMware14
1.4.3 HyperV16
1.4.4 Container17
1.5 本章小结17
第2章 KVM原理简介18
2.1 硬件虚拟化技术18
2.1.1 CPU虚拟化18
2.1.2 内存虚拟化20
2.1.3 I/O虚拟化22
2.1.4 Intel虚拟化技术发展24
2.2 KVM架构概述25
2.3 KVM内核模块26
2.4 QEMU用户态设备模拟27
2.5 与QEMU/KVM结合的组件28
2.6 KVM上层管理工具30
2.7 本章小结31
第3章 构建KVM环境32
3.1 硬件系统的配置32
3.2 安装宿主机Linux系统34
3.3 编译和安装KVM37
3.3.1 下载KVM源代码37
3.3.2 配置KVM39
3.3.3 编译KVM43
3.3.4 安装KVM44
3.4 编译和安装QEMU46
3.4.1 曾经的qemu-kvm46
3.4.2 下载QEMU源代码47
3.4.3 配置和编译QEMU47
3.4.4 安装QEMU49
3.5 安装客户机50
3.6 启动第一个KVM客户机53
3.7 本章小结53
第4章 KVM管理工具55
4.1 libvirt55
4.1.1 libvirt简介55
4.1.2 libvirt的安装与配置58
4.1.3 libvirt域的XML配置文件63
4.1.4 libvirt API简介76
4.1.5 建立到Hypervisor的连接78
4.1.6 libvirt API 使用示例82
4.2 virsh87
4.2.1 virsh简介87
4.2.2 virsh常用命令88
4.3 virt-manager95
4.3.1 virt-manager简介95
4.3.2 virt-manager编译和安装96
4.3.3 virt-manager使用96
4.4 virt-viewer、virt-install、virt-top和libguestfs105
4.4.1 virt-viewer105
4.4.2 virt-install106
4.4.3 virt-top107
4.4.4 libguestfs107
4.5 云计算管理平台109
4.5.1 OpenStack简介109
4.5.2 ZStack简介111
4.6 本章小结111
第5章 KVM核心基础功能112
5.1 硬件平台和软件版本说明112
5.2 CPU配置114
5.2.1 vCPU的概念115
5.2.2 SMP的支持116
5.2.3 CPU过载使用123
5.2.4 CPU模型124
5.2.5 进程的处理器亲和性和vCPU的绑定127
5.3 内存配置131
5.3.1 内存设置基本参数132
5.3.2 EPT和VPID简介133
5.3.3 内存过载使用136
5.4 存储配置137
5.4.1 存储配置和启动顺序137
5.4.2 qemu-img命令142
5.4.3 QEMU支持的镜像文件格式145
5.4.4 客户机存储方式149
5.5 网络配置150
5.5.1 用QEMU实现的网络模式151
5.5.2 使用直接的网桥模式154
5.5.3 用网桥实现NAT模式161
5.5.4 QEMU内部的用户模式网络170
5.5.5 其他网络选项174
5.6 图形显示175
5.6.1 SDL的使用175
5.6.2 VNC的使用177
5.6.3 VNC显示中的鼠标偏移186
5.6.4 非图形模式187
5.6.5 显示相关的其他选项189
5.7 本章小结191
第二篇 KVM虚拟化进阶
第6章 KVM设备高级管理194
6.1 半虚拟化驱动194
6.1.1 virtio概述194
6.1.2 安装virtio驱动196
6.1.3 使用virtio_balloon203
6.1.4 使用virtio_net208
6.1.5 使用virtio_blk210
6.1.6 内核态的vhost-net后端以及网卡多队列212
6.1.7 使用用户态的vhost-user作为后端驱动215
6.1.8 kvm_clock配置216
6.1.9 对Windows客户机的优化218
6.2 设备直接分配(VT-d)219
6.2.1 VT-d概述219
6.2.2 VFIO简介220
6.2.3 VT-d环境配置221
6.2.4 VT-d操作示例230
6.2.5 SR-IOV技术240
6.3 热插拔251
6.3.1 PCI设备热插拔252
6.3.2 PCI设备热插拔示例253
6.3.3 CPU的热插拔259
6.3.4 内存的热插拔260
6.3.5 磁盘的热插拔264
6.3.6 网卡接口的热插拔265
6.4 本章小结266
第7章 KVM内存管理高级技巧268
7.1 大页268
7.1.1 大页的介绍268
7.1.2 KVM虚拟化对大页的利用271
7.2 透明大页274
7.3 KSM277
7.3.1 KSM基本原理278
7.3.2 KSM操作实践280
7.3.3 QEMU对KSM的控制286
7.4 与NUMA相关的工具288
7.4.1 numastat289
7.4.2 numad290
7.4.3 numactl294
7.5 本章小结295
第8章 KVM迁移297
8.1 动态迁移297
8.1.1 动态迁移的概念297
8.1.2 动态迁移的效率和应用场景298
8.1.3 KVM动态迁移原理299
8.1.4 KVM动态迁移实践302
8.1.5 VT-d/SR-IOV的动态迁移306
8.2 迁移到KVM虚拟化环境307
8.2.1 virt-v2v工具介绍307
8.2.2 从Xen迁移到KVM308
8.2.3 从VMware迁移到KVM310
8.2.4 从VirtualBox迁移到KVM311
8.2.5 从物理机迁移到KVM虚拟化环境(P2V)312
8.3 本章小结313
第9章 其他高级功能314
9.1 嵌套虚拟化314
9.1.1 嵌套虚拟化的基本概念314
9.1.2 KVM嵌套KVM315
9.2 KVM安全318
9.2.1 SMEP/SMAP/MPX318
9.2.2 控制客户机的资源使用—cgroups319
9.2.3 SELinux和sVirt327
9.2.4 其他安全策略336