第 1章 虚拟化技术 1
1.1 虚拟化技术分类 1
1.1.1 CPU虚拟化 2
1.1.2 服务器虚拟化 3
1.1.3 存储虚拟化 5
1.1.4 网络虚拟化 6
1.1.5 应用虚拟化 7
1.2 Xen虚拟化技术简介 7
1.2.1 Xen的历史 7
1.2.2 Xen功能概览 8
1.2.3 Xen虚拟化技术的优点 9
1.2.4 Xen虚拟化技术的缺点 9
1.3 KVM虚拟化技术简介 9
1.3.1 KVM的历史 9
1.3.2 KVM功能概览 10
1.3.3 KVM的优势 11
1.3.4 KVM虚拟化技术的未来 11
1.4 Red Hat RHEV虚拟化系统简介 12
1.4.1 RHEV简介 12
1.4.2 RHEV支持的功能 12
1.4.3 RHEV与KVM的区别 12
1.4.4 RHEV的组成 13
1.4.5 RHEV架构 14
1.4.6 RHEV中的资源 15
1.4.7 RHEV虚拟化技术的优点 16
1.4.8 RHEV虚拟化技术的缺点 16
1.5 其他虚拟化技术介绍 16
1.5.1 VMware 16
1.5.2 VirtualBox 17
1.5.3 Hyper-V 17
1.6 本章小结 18
第2章 Qemu-KVM 19
2.1 KVM原理简介 19
2.1.1 KVM工作流程 19
2.1.2 KVM架构 19
2.1.3 KVM模块 21
2.2 Qemu原理介绍 22
2.2.1 Qemu架构 22
2.2.2 Qemu模块 22
2.2.3 Qemu的3种运行模式 23
2.2.4 Qemu的特点 23
2.3 KVM和Qemu的关系 24
2.4 Qemu工具介绍 25
2.4.1 Qemu-img 25
2.4.2 Qemu-KVM 28
2.4.3 Qemu-GA 31
2.4.4 Qemu-IO 31
2.4.5 Qemu-NBD 31
2.5 Qemu支持的硬盘格式介绍 32
【实验1】 Qemu-KVM虚拟化环境搭建 33
【实验2】 Qemu-img生产虚拟机硬盘 41
【实验3】 Qemu-KVM命令创建虚拟机 41
2.6 本章小结 45
第3章 Libvirt 46
3.1 Libvirt简介 46
3.2 Libvirt简单架构原理介绍 47
3.2.1 Libvirt架构 47
3.2.2 Libvirt运行原理 48
3.3 Libvirt API介绍 49
3.3.1 Libvirt API简介 49
3.3.2 与Hypervisor建立连接 51
3.4 Libvirt工具集介绍 54
3.4.1 Libvirt安装 54
3.4.2 Libvirt的配置 56
3.4.3 Libvirtd的使用 58
3.4.4 Virsh 59
3.5 Libvirt XML配置文件介绍 62
3.5.1 客户机XML配置文件格式示例 62
3.5.2 CPU、内存、启动顺序等基本配置 65
3.5.3 网络的配置 67
3.5.4 存储的配置 69
3.5.5 其他配置简介 70
【实验4】 使用virsh创建虚拟机 72
【实验5】 virsh命令行工具虚拟机的管理 78
【实验6】 virsh命令行工具网络的管理 81
【实验7】 virsh命令行工具存储池的管理 88
【实验8】 virsh命令行工具存储卷的管理 92
3.6 本章小结 95
第4章 Virt-Manager 96
4.1 Virt-Manager简介 96
4.2 Virt-Manager安装 97
4.2.1 环境准备 97
4.2.2 检查Qemu-KVM、Libvirt服务 97
4.2.3 检查VNC服务的运行 97
4.2.4 安装Virt-Manager 98
4.3 Virt-Manager使用介绍 98
4.3.1 打开Virt-Manager 98
4.3.2 连接至远程Virt-Manager 99
4.4 WebVirtMgr介绍 101
4.4.1 WebVirtMgr管理平台介绍 101
4.4.2 WebVirtMgr的主要功能 101
【实验9】 使用Virt-Install安装虚拟机并使用Virt-Viewer连接桌面 102
【实验10】 使用Virt-Manager创建虚拟机(在KVM上安装CentOS 7虚拟机) 105
【实验11】 使用Virt-Manager管理存储和网络 109
【实验12】 WebVirtMgr安装 123
【实验13】 WebVirtMgr使用 123
4.5 本章小节 124
第5章 网络虚拟化 125
5.1 网络虚拟化的驱动力与关键需求 125
5.1.1 网络虚拟化的驱动力 125
5.1.2 网络虚拟化的关键需求 126
5.1.3 软件定义网络SDN 127
5.2 软件Overlay SDN网络,L2/L3网络 128
5.2.1 Open vSwitch 128
5.2.2 Overlay L2/L3数据流 129
5.3 硬件Underlay SDN网络 130
5.4 软件化L4~L7网络功能 131
5.4.1 L4~L7网络功能 131
5.4.2 OpenStack Neutron的L4~L7控制面 132
5.5 网络虚拟化端到端解决方案 132
5.5.1 端到端关键需求 132
5.5.2 端到端解决方案 133
【实验14】 Open vSwitch安装部署 133
【实验15】 Net Namespace综合实验 138
【实验16】 OVS创建VLAN虚拟二层环境 141
【实验17】 OVS创建GRE隧道网络 146
【实验18】 Brctl搭建Linux网桥 150
5.6 本章小结 151
第6章 传统的存储技术 152
6.1 传统存储技术的分类 152
6.1.1 概述 152
6.1.2 存储区域网络 152
6.2 硬盘结构及接口介绍 155
6.2.1 硬盘结构 155
6.2.2 硬盘的读写 156
6.2.3 硬盘接口 157
6.3 RAID技术介绍 160
6.3.1 RAID基础知识 160
6.3.2 RAID的实现方案 161
6.3.3 RAID技术术语 161
6.4 RAID技术的特点 163
【实验19】 mdadm工具创建软件RAID 170
6.5 硬盘与分区 178
6.5.1 硬盘分区概述 178
6.5.2 Linux的分区规定 178
6.5.3 Linux文件系统类型简介 180
【实验20】 硬盘的分区及格式化 181
6.6 逻辑卷技术介绍 186
【实验21】 逻辑卷组及逻辑卷的管理 187
【实验22】 搭建NFS服务器 193
【实验23】 搭建ISCSI环境 194
6.7 本章小结 195
第7章 常见的分布式存储 196
7.1 分布式系统介绍 196
7.2 HDFS分布式存储 197
7.2.1 HDFS架构 197
7.2.2 HDFS如何读数据 199
7.2.3 HDFS如何写数据 200
【实验24】 HDFS搭建和使用 201
7.3 GlusterFS分布式存储 209
7.3.1 GlusterFS系统概述 209
7.3.2 GlusterFS架构 210
【实验25】 GlusterFS搭建和使用 212
7.4 Lustre分布式存储 217
7.4.1 Lustre架构 217
7.4.2 Lustre I/O特点 218
7.4.3 Lustre读写数据 219
【实验26】 Lustre搭建和使用 220
7.5 MooseFS分布式存储 225
7.5.1 MooseFS架构 225
7.5.2 MooseFS读写数据 226
【实验27】 MooseFS搭建和使用 227
7.6 Ceph分布式存储 228
7.6.1 Ceph架构 228
7.6.2 Ceph读写数据 229
7.6.3 Ceph客户端 230
【实验28】 Ceph搭建和使用 230
7.7 本章小结 231
第8章 Docker技术 232
8.1 Docker的基本原理 232
8.1.1 Docker的起源 232
8.1.2 Docker引擎 232
8.1.3 Docker的核心概念 233
【实验29】 Docker安装部署 235
【实验30】 Docker命令行操作 239
8.2 Dockerfile 247
8.2.1 Dockerfile简介 247
8.2.2 Dockerfile指令详解 247
【实验31】 Dockerfile创建PHP镜像 250
8.3 Docker Registry 257
8.3.1 Docker仓库简介 257
8.3.2 私有仓库 257
【实验32】 Docker Registry的搭建和使用 258
8.4 Kubernetes容器云 263
8.4.1 Kubernetes简介 263
8.4.2 Kubernetes的核心概念 264
8.4.3 Kubernetes架构 264
【实验33】 Kubernetes搭建和使用 265
8.5 本章小结 266