第1章 绪论 1
1.1 云计算的概念 1
1.2 云计算发展现状 3
1.3 云计算实现机制 5
1.4 网格计算与云计算 6
1.5 云计算的发展环境 9
1.5.1 云计算与3G 9
1.5.2 云计算与物联网 9
1.5.3 云计算与移动互联网 10
1.5.4 云计算与三网融合 11
1.6 云计算压倒性的成本优势 12
习题 15
参考文献 15
第2章 Google云计算原理与应用 17
2.1 Google文件系统GFS 17
2.1.1 系统架构 18
2.1.2 容错机制 20
2.1.3 系统管理技术 20
2.2 分布式数据处理MapReduce 21
2.2.1 产生背景 21
2.2.2 编程模型 22
2.2.3 实现机制 22
2.2.4 案例分析 24
2.3 分布式锁服务Chubby 25
2.3.1 Paxos算法 26
2.3.2 Chubby系统设计 27
2.3.3 Chubby中的Paxos 29
2.3.4 Chubby文件系统 31
2.3.5 通信协议 32
2.3.6 正确性与性能 34
2.4 分布式结构化数据表Bigtable 35
2.4.1 设计动机与目标 35
2.4.2 数据模型 36
2.4.3 系统架构 37
2.4.4 主服务器 38
2.4.5 子表服务器 39
2.4.6 性能优化 42
2.5 分布式存储系统Megastore 43
2.5.1 设计目标及方案选择 44
2.5.2 Megastore数据模型 44
2.5.3 Megastore中的事务及并发控制 46
2.5.4 Megastore基本架构 47
2.5.5 核心技术——复制 49
2.5.6 产品性能及控制措施 52
2.6 大规模分布式系统的监控基础架构Dapper 54
2.6.1 基本设计目标 54
2.6.2 Dapper监控系统简介 54
2.6.3 关键性技术 57
2.6.4 常用Dapper工具 58
2.6.5 Dapper使用经验 60
2.7 Google应用程序引擎 62
2.7.1 Google App Engine简介 62
2.7.2 应用程序环境 63
2.7.3 Google App Engine服务 65
2.7.4 Google App Engine编程实践 72
习题 86
参考文献 86
第3章 Amazon云计算AWS 88
3.1 Amazon平台基础存储架构:Dynamo 88
3.1.1 Dynamo在Amazon服务平台的地位 88
3.1.2 Dynamo架构的主要技术 89
3.2 弹性计算云EC2 97
3.2.1 EC2的主要特性 97
3.2.2 EC2基本架构及主要概念 97
3.2.3 EC2的关键技术 99
3.3.4 EC2安全及容错机制 101
3.3 简单存储服务S3 102
3.3.1 基本概念和操作 102
3.3.2 数据一致性模型 104
3.3.3 S3安全措施 105
3.4 简单队列服务SQS 107
3.4.1 SQS基本模型 107
3.4.2 两个重要概念 107
3.4.3 消息 108
3.4.4 身份认证 109
3.5 简单数据库服务Simple DB 109
3.5.1 重要概念 110
3.5.2 存在的问题及解决办法 112
3.5.3 Simple DB和其他AWS的结合使用 112
3.6 关系数据库服务RDS 113
3.6.1 SQL和NoSQL数据库的对比 113
3.6.2 RDS数据库原理 114
3.6.3 RDS的使用 115
3.7 内容推送服务CloudFront 115
3.7.1 内容推送网络CDN 115
3.7.2 云内容推送CloudFront 117
3.8 其他Amazon云计算服务 119
3.8.1 快速应用部署Elastic Beanstalk和服务模板CloudFormation 119
3.8.2 云中的DNS服务 Router 53 119
3.8.3 虚拟私有云VPC 120
3.8.4 简单通知服务SNS和简单邮件服务SES 120
3.8.5 弹性MapReduce服务 120
3.8.6 电子商务服务DevPay、FPS和Simple Pay 122
3.8.7 Amazon执行网络服务 126
3.8.8 土耳其机器人 127
3.8.9 Alexa Web服务 128
3.9 AWS应用实例 129
3.9.1 在线照片存储共享网站SmugMug 129
3.9.2 在线视频制作网站Animoto 130
3.10 小结 131
习题 131
参考文献 131
第4章 微软云计算Windows Azure 135
4.1 微软云计算平台 135
4.2 微软云操作系统Windows Azure 136
4.2.1 Windows Azure概述 136
4.2.2 Windows Azure计算服务 137
4.2.3 Windows Azure存储服务 138
4.2.4 Windows Azure Connect 152
4.2.5 Windows Azure CDN 153
4.2.6 Fabric控制器 153
4.2.7 Windows Azure应用场景 155
4.3 微软云关系数据库SQL Azure 157
4.3.1 SQL Azure概述 157
4.3.2 SQL Azure关键技术 158
4.3.3 SQL Azure应用场景 160
4.3.4 SQL Azure和SQL Server对比 162
4.4 Windows Azure AppFabric 163
4.4.1 AppFabric概述 163
4.4.2 AppFabric关键技术 164
4.5 Windows Azure Marketplace 167
4.6 微软云计算编程实践 168
4.6.1 利用Visual Studio2010开发简单的云应用程序 168
4.6.2 向Windows Azure平台发布应用程序 170
习题 173
参考文献 173
第5章 VMware云计算 174
5.1 VMware云产品简介 174
5.1.1 VMware云战略三层架构 174
5.1.2 VMware vSphere架构 175
5.1.3 云操作系统vSphere 176
5.1.4 底层架构服务vCloud Service Director 177
5.1.5 虚拟桌面产品VMware View 178
5.2 云管理平台 vCenter 179
5.2.1 虚拟机迁移工具 179
5.2.2 虚拟机数据备份恢复工具 181
5.2.3 虚拟机安全工具 181
5.2.4 可靠性组件FT和HA 182
5.3 云架构服务提供平台vCloud Service Director 182
5.3.1 创建虚拟数据中心和组织 183
5.3.2 网络的设计 184
5.3.3 目录管理 184
5.3.4 计费功能 184
5.4 VMware的网络和存储虚拟化 184
5.4.1 网络虚拟化 184
5.4.2 存储虚拟化 186
习题 188
参考文献 188
第6章 Hadoop:Google云计算的开源实现 189
6.1 Hadoop简介 189
6.2 Hadoop分布式文件系统HDFS 190
6.2.1 设计前提与目标 190
6.2.2 体系结构 191
6.2.3 保障可靠性的措施 192
6.2.4 提升性能的措施 194
6.2.5 访问接口 195
6.3 分布式数据处理MapReduce 196
6.3.1 逻辑模型 196
6.3.2 实现机制 196
6.4 分布式结构化数据表HBase 197
6.4.1 逻辑模型 198
6.4.2 物理模型 198
6.4.3 子表服务器 199
6.4.4 主服务器 199
6.4.5 元数据表 200
6.5 Hadoop安装 200
6.5.1 在Linux系统中安装Hadoop 200
6.5.2 在Windows系统中安装Hadoop 208
6.6 HDFS使用 215
6.6.1 HDFS 常用命令 215
6.6.2 HDFS 基准测试 219
6.7 HBase安装使用 219
6.7.1 HBase的安装配置 219
6.7.2 HBase的执行 220
6.7.3 Hbase编程实例 221
6.8 MapReduce编程 223
6.8.1 矩阵相乘算法设计 223
6.8.2 编程实现 224
习题 226
参考文献 226
第7章 Eucalyptus:Amazon云计算的开源实现 228
7.1 Eucalyptus简介 228
7.2 Eucalyptus技术实现 229
7.2.1 体系结构 229
7.2.2 主要构件 230
7.2.3 访问接口 230
7.2.4 服务等级协议 231
7.2.5 虚拟组网 232
7.3 Eucalyptus安装与使用 233
7.3.1 在Linux系统中安装Eucalyptus 233
7.3.2 Eucalyptus配置和管理 236
7.3.3 Eucalyptus常用命令的示例和说明 238
习题 240
参考文献 240
第8章 其他开源云计算系统 241
8.1 简介 241
8.1.1 Cassandra 241
8.1.2 Hive 242
8.1.3 VoltDB 242
8.1.4 Enomaly ECP 243
8.1.5 Nimbus 244
8.1.6 Sector and Sphere 245
8.1.7 abiquo 247
8.1.8 MongoDB 247
8.2 Cassandra 249
8.2.1 体系结构 249
8.2.2 数据模型 250
8.2.3 存储机制 251
8.2.4 读/写删过程 252
8.3 Hive 254
8.3.1 整体构架 254
8.3.2 数据模型 255
8.3.3 HQL语言 257
8.3.4 环境搭建 259
8.4 VoltDB 260
8.4.1 整体架构 260
8.4.2 自动数据分片技术 261
习题 264
参考文献 264
第9章 云计算仿真器CloudSim 265
9.1 CloudSim简介 265
9.2 CloudSim体系结构 265
9.2.1 CloudSim核心模拟引擎 266
9.2.2 CloudSim层 268
9.2.3 用户代码层 271
9.3 CloudSim技术实现 271
9.4 CloudSim的使用方法 274
9.4.1 环境配置 274
9.4.2 运行样例程序 274
9.5 CloudSim的扩展 277
9.5.1 调度策略的扩展 277
9.5.2 仿真核心代码 280
9.5.3 平台重编译 286
习题 287
参考文献 287
第10章 云计算研究热点 288
10.1 云计算体系结构研究 288
10.1.1 Youseff划分方法 288
10.1.2 Lenk划分方法 290
10.2 云计算关键技术研究 292
10.2.1 虚拟化技术 292
10.2.2 数据存储技术 293
10.2.3 资源管理技术 295
10.2.4 能耗管理技术 298
10.2.5 云监测技术 301
10.3 编程模型研究 303
10.3.1 All-Pairs编程模型 303
10.3.2 GridBatch编程模型 304
10.3.3 其他编程模型 305
10.4 支撑平台研究 306
10.4.1 Cumulus:数据中心科学云 306
10.4.2 CARMEN:e-Science云计算 307
10.4.3 RESERVOIR:云服务融合平台 308
10.4.4 TPlatform:Hadoop的变种 309
10.4.5 P2P环境的MapReduce 309
10.4.6 Yahoo云计算平台 311
10.4.7 微软的Dryad框架 311
10.4.8 Neptune框架 312
10.5 应用研究 313
10.5.1 语义分析应用 313
10.5.2 生物学应用 314
10.5.3 数据库应用 315
10.5.4 地理信息应用 316
10.5.5 商业应用 317
10.5.6 医学应用 318
10.5.7 社会智能应用 319
10.6 云安全研究 321
10.6.1 Anti-Spam Grid:反垃圾邮件网格 321
10.6.2 CloudAV:终端恶意软件检测 323
10.6.3 AMSDS:恶意软件签名自动检测 324
10.6.4 CloudSEC:协作安全服务体系结构 325
习题 327
参考文献 327
第11章 总结与展望 332
11.1 主流商业云计算解决方案比较 332
11.1.1 应用场景 332
11.1.2 使用流程 334
11.1.3 体系结构 335
11.1.4 实现技术 335
11.1.5 核心业务 336
11.2 主流开源云计算系统比较 338
11.2.1 开发目的 338
11.2.2 体系结构 339
11.2.3 实现技术 340
11.2.4 核心服务 340
11.3 国内代表性云计算平台比较 341
11.3.1 中国移动“大云” 341
11.3.2 阿里巴巴“阿里云” 343
11.3.3 “大云”与“阿里云”的比较 343
11.4 云计算的历史坐标与发展方向 344
11.4.1 互联网发展的阶段划分 344
11.4.2 云格(Gloud)——云计算的未来 347
习题 349
参考文献 349
1