图书目录

目录

第1章云计算概述1

1.1云计算的产生背景1

1.1.1云计算的实现原理1

1.1.2云计算的定义和特点3

1.1.3云计算的必要性7

1.2云计算的体系结构和关键技术9

1.2.1云计算的体系结构9

1.2.2云计算的核心技术10

1.3云计算的资源封装层次11

1.3.1IaaS13

1.3.2PaaS14

1.3.3SaaS14

1.4云计算的部署模式16

1.5云计算相关技术及应用16

1.5.1云计算与大数据17

1.5.2集群18

1.5.3边缘计算19

1.5.4云计算的应用领域21

习题22第2章虚拟化技术24

2.1虚拟化技术概述24

2.1.1虚拟化技术的发展历史24

2.1.2虚拟化技术的层次25

2.1.3常用的虚拟机软件27

2.1.4虚拟化和云计算的关系28

2.2系统虚拟化29

2.2.1系统虚拟化的原则29

2.2.2原生虚拟化与寄宿虚拟化29

2.2.3系统虚拟化的特性31

2.3系统虚拟化的技术实现33

2.3.1CPU指令类型和运行模式33

2.3.2CPU的指令分级35

2.3.3CPU虚拟化36

2.3.4内存虚拟化38

2.3.5设备与I/O虚拟化41

2.3.6GPU虚拟化42

2.4网络虚拟化42

2.4.1网络虚拟化基本原理42

2.4.2软件定义网络43

2.4.3OpenFlow协议45

2.5虚拟机软件的使用47

2.5.1VirtualBox的基本操作47

2.5.2虚拟机的网络连接方式50

2.5.3物理计算机访问虚拟机的方式52

2.5.4SSH软件的使用54

2.5.5配置SSH免密登录56

习题58第3章Linux操作系统60

3.1Linux概述60

3.1.1Linux系统的构成61

3.1.2Linux的安装61

3.1.3Linux的文件系统结构61

3.1.4Linux的终端62

3.2Linux的常用命令62

3.2.1文件目录类命令62

3.2.2用户管理类命令65

3.2.3文件权限类命令66

3.2.4系统管理类命令68

3.2.5安装软件类命令68

3.3Shell脚本使用基础68

3.3.1Shell脚本的编写和运行69

3.3.2Shell脚本变量70

习题70第4章Docker容器技术72

4.1Docker概述72

4.1.1容器技术的由来72

4.1.2容器与虚拟机73

4.1.3Docker的应用领域74

4.2Docker的底层实现技术75

4.2.1Docker的系统架构75

4.2.2Docker的核心概念76

4.2.3Docker文件系统78

4.2.4Docker容器数据卷78

4.3Docker的安装和使用79

4.3.1Docker的安装80

4.3.2Docker的基本命令和操作82

4.3.3Docker部署LNMP环境85

4.4Dockerfile构建镜像87

4.4.1Dockerfile常用命令87

4.4.2Dockerfile的构建与编译89

4.4.3用Dockerfile构建Web项目镜像90

4.5Docker Compose容器编排技术91

4.5.1Docker Compose的安装91

4.5.2Docker Compose的使用92

习题95第5章Kubernetes97

5.1Kubernetes概述97

5.1.1容器编排工具97

5.1.2Kubernetes解决的问题98

5.1.3云原生与微服务架构100

5.1.4Kubernetes的体系结构102

5.2Pod104

5.2.1Pod的使用方式104

5.2.2Pod的资源共享104

5.2.3Pod的存储共享机制105

5.2.4Pod的网络共享机制106

5.2.5Pod与Service107

5.3Kubernetes的安装配置108

习题111第6章OpenStack113

6.1什么是OpenStack113

6.1.1OpenStack项目构成114

6.1.2OpenStack的版本演变115

6.2OpenStack的组成模块115

6.2.1计算服务模块Nova115

6.2.2网络服务模块Neutron117

6.2.3块存储服务模块Cinder118

6.2.4对象存储服务模块Swift120

6.2.5镜像服务模块Glance120

6.2.6身份认证服务模块Keystone122

6.3OpenStack的通信协议123

6.3.1RESTful API架构123

6.3.2RabbitMQ协议124

6.4OpenStack的部署、安装和二次开发126

6.4.1OpenStack的部署工具126

6.4.2OpenStack的安装过程128

6.4.3OpenStack的二次开发132

习题133第7章Hadoop135

7.1Hadoop概述135

7.1.1Hadoop的起源135

7.1.2Hadoop的版本136

7.1.3Hadoop的设计思想和特点137

7.2Hadoop生态系统组件138

7.2.1Hadoop组件概述138

7.2.2YARN资源管理器140

7.2.3ZooKeeper141

7.3Hadoop的安装142

7.3.1安装JDK142

7.3.2单机模式的安装143

7.3.3伪分布式模式的安装145

7.3.4完全分布式模式的安装150

习题154第8章云存储技术155

8.1云存储的核心技术155

8.1.1分布式存储技术155

8.1.2存储虚拟化技术157

8.1.3数据容错158

8.2对象存储技术159

8.2.1对象存储概述159

8.2.2对象存储中的数据组成160

8.2.3对象存储系统架构和原理161

8.2.4分布式存储系统Ceph162

8.2.5Ceph的架构163

8.3分布式文件系统HDFS164

8.3.1HDFS的架构165

8.3.2HDFS读取和写入文件169

8.3.3HDFS数据容错171

8.3.4HDFS HA171

8.3.5HDFS命令行接口172

8.4分布式数据库HBase174

8.4.1HBase的概念模型174

8.4.2HBase的物理模型175

8.4.3HBase数据库的架构176

8.4.4HRegionServer的工作原理178

8.4.5HBase的安装和使用179

8.5NoSQL数据库183

8.5.1关系数据库的性能问题183

8.5.2常见的NoSQL数据库184

习题185第9章分布式计算框架187

9.1分布式计算框架概述187

9.1.1基于计算切分的分布式计算187

9.1.2基于数据切分的分布式计算188

9.2MapReduce编程框架189

9.2.1MapReduce的编程思想189

9.2.2MapReduce的4个阶段191

9.2.3MapReduce的体系架构194

9.2.4MapReduce程序的编写步骤197

9.2.5编译并运行MapReduce程序200

9.3MapReduce编程实例201

9.3.1数据排序201

9.3.2数据去重202

9.3.3自然连接203

9.4Spark内存计算框架206

9.4.1Spark的特点206

9.4.2Spark的生态系统207

9.4.3Spark的核心概念207

9.4.4Spark的运行架构210

9.5Storm流计算框架212

9.5.1Storm的设计思想212

9.5.2Storm的框架214

9.5.3Storm的工作流程215

9.5.4Storm WordCount编程实例216

习题217第10章云安全技术219

10.1云计算安全概述219

10.1.1云计算的安全需求219

10.1.2安全威胁与安全要素219

10.1.3信息安全要素221

10.1.4云计算安全的体系结构222

10.2虚拟机面临的安全威胁225

10.2.1虚拟机逃逸225

10.2.2虚拟机跳跃227

10.2.3虚拟机蔓延227

10.2.4VMBR攻击228

10.3Hypervisor面临的安全威胁228

10.3.1Hypervisor的安全性229

10.3.2Hypervisor的防御方法230

10.3.3虚拟机自省框架231

10.4云数据安全231

10.4.1代理重加密算法231

10.4.2同态加密算法233

10.4.3属性加密算法234

10.4.4云授权管理和访问控制235

10.5HDFS透明加密的配置235

10.5.1透明加密概述235

10.5.2KMS配置237

习题239附录A实验240

实验1: 安装Ubuntu 16.04并上传文件到虚拟机240

实验2: Linux操作命令240

实验3: Docker的安装和基本操作241

实验4: Dockerfile和Docker Compose的使用241

实验5: Hadoop单机模式的安装241

实验6: Hadoop伪分布式模式的安装242

实验7: 编译和运行MapReduce程序242

实验8: Hadoop完全分布式模式的安装243

实验9: HBase的安装和使用243参考文献244