第1章 引言 1
1.1 本书的特点与结构 1
1.2 基础设施云介绍 2
1.2.1 Eucalyptus 2
1.2.2 OpenStack 3
1.2.3 Scalr 5
1.2.4 Nimbus 6
1.2.5 Xen云平台(XCP) 7
1.2.6 Ganeti 9
1.2.7 OpenNebula 10
1.2.8 Enomalism 11
第2章 基础设施云对比分析 12
2.1 基础设施云对比分析概述 12
2.2 典型基础设施云的构成 16
第3章 虚拟化运行环境 18
3.1 概述 18
3.2 体系结构 20
3.3 相关技术 21
3.3.1 KVM和QEMU 21
3.3.2 Xen 25
3.3.3 libvirt 29
3.4 资源管理 36
3.4.1 资源虚拟化 36
3.4.2 资源监控 42
3.5 节点调度 50
3.5.1 启动虚拟机时节点调度 50
3.5.2 关闭虚拟机时节点调度 62
3.5.3 重启虚拟机时节点调度 66
3.6 虚拟机生命周期管理 67
3.6.1 启动虚拟机 67
3.6.2 关闭虚拟机 79
3.6.3 重启虚拟机 83
3.7 虚拟机监控 86
3.7.1 功能描述 86
3.7.2 代码分析 87
3.8 开发环境搭建 93
3.8.1 网络环境 93
3.8.2 安装依赖包 94
3.9 单元测试及开发实例 95
3.9.1 代码修改 95
3.9.2 runInstance 112
3.9.3 describeInstances 114
3.9.4 describeResource 115
3.9.5 rebootInstance 116
3.9.6 terminateInstance 118
3.10 下一步工作 119
第4章 虚拟磁盘系统 120
4.1 概述 120
4.2 体系结构 121
4.2.1 存储控制器 122
4.2.2 节点控制器 122
4.2.3 Walrus 123
4.2.4 对外接口 123
4.3 相关技术 125
4.3.1 loop设备 125
4.3.2 LVM2命令 126
4.3.3 iSCSI协议 128
4.3.4 AoE协议 129
4.3.5 RAID技术 130
4.3.6 Hibemate 134
4.3.7 HSQLDB 136
4.4 代码结构 143
4.4.1 com.eucalyptus.bootstrap包 145
4.4.2 com.eucalyptus.storage包 146
4.4.3 edu.ucsb.eucalyptus.cloud.ws包 150
4.4.4 edu.ucsb.eucalyptus.cloud.ws.tests包 154
4.5 元数据管理 155
4.5.1 元数据信息 155
4.5.2 数据库操作 159
4.6 虚拟磁盘生命周期管理 169
4.6.1 创建虚拟磁盘 169
4.6.2 查询虚拟磁盘 179
4.6.3 挂载虚拟磁盘 180
4.6.4 卸载虚拟磁盘 191
4.6.5 删除虚拟磁盘 200
4.6.6 创建磁盘快照 204
4.6.7 查询磁盘快照 212
4.6.8 删除磁盘快照 215
4.6.9 从磁盘快照创建虚拟磁盘 217
4.7 存储介质管理 224
4.7.1 Volume Pool 224
4.7.2 RAID管理 225
4.7.3 异构存储介质管理 230
4.8 连接管理 234
4.8.1 SC和NC之间的映射 234
4.8.2 NC和虚拟机之间的映射 235
4.9 开发环境搭建 235
4.9.1 安装eclipse 235
4.9.2 安装组件 238
4.9.3 创建工程 239
4.10 单元测试及开发示例 239
4.10.1 创建虚拟磁盘 240
4.10.2 查询虚拟磁盘 241
4.10.3 挂载虚拟磁盘 242
4.10.4 卸载虚拟磁盘 247
4.10.5 删除虚拟磁盘 252
4.10.6 创建磁盘快照 253
4.10.7 查询磁盘快照 254
4.10.8 删除磁盘快照 255
4.10.9 从磁盘快照创建虚拟磁盘 255
4.11 下一步工作 257
第5章 基于Web的在线云存储系统——Walrus 258
5.1 概述 258
5.2 Walrus体系结构 259
5.3 Walrus相关技术 261
5.3.1 HTTP 261
5.3.2 Curl 263
5.4 Walrus元数据管理 268
5.4.1 BucketInfo 269
5.4.2 ObjectInfo 270
5.4.3 GrantInfo 271
5.4.4 MetaDataInfo 271
5.4.5 ImageInfo 272
5.4.6 ImageCacheInfo 272
5.4.7 WalrusInfo 273
5.4.8 WalrusSnapshotInfo 274
5.4.9 WalrusStatsInfo 274
5.5 Walrus代码结构 274
5.5.1 edu.ucsb.eucalyptus.cloud.ws包 274
5.5.2 com.eucalyptus.images包 278
5.5.3 Walrustest包 279
5.6 Walrus对用户文件夹的管理 280
5.6.1 创建bucket 280
5.6.2 bucket的Location信息管理 284
5.6.3 删除bucket 285
5.6.4 bucket和obiect的访问控制列表管理 286
5.6.5 bucket的logging信息管理 296
5.6.6 bucket的versioning信息管理 297
5.6.7 列出用户所有bucket 298
5.7 Walrus对用户文件的管理 299
5.7.1 上传文件 303
5.7.2 下载文件 305
5.7.3 复制文件 310
5.7.4 删除文件 311
5.7.5 设置和获得obiect的ACL 313
5.7.6 列出指定bucket下的所有object 313
5.8 对镜像文件的管理 315
5.8.1 镜像文件的绑定 315
5.8.2 镜像文件的上传 321
5.8.3 镜像文件的注册 322
5.8.4 镜像文件的注销 336
5.8.5 镜像文件的下载模块 337
5.9 Walrus对快照文件的管理 365
5.9.1 保存快照 365
5.9.2 删除快照 367
5.9.3 下载快照 368
5.9.4 获得快照大小 369
5.10 Walrus开发环境搭建 370
5.10.1 Walrus Service开发环境搭建 370
5.10.2 镜像文件下载模块开发环境搭建 370
5.11 Walrus使用方法 371
5.11.1 云存储服务的使用方法 371
5.11.2 镜像文件下载模块使用方法 379
5.12 Walrus待解决的问题 383
第6章 镜像管理 384
6.1 操作系统安装及基本设置 384
6.1.1 Windows操作系统的安装 384
6.1.2 Windows操作系统基本设置 398
6.1.3 Linux操作系统安装及基本设置 415
6.2 镜像系统的更新 417
6.2.1 Windows系统的更新 417
6.2.2 Linux系统的更新 421
6.3 “镜像超市” 421
6.4 客户端与虚拟运行环境的数据传输 423
6.4.1 虚拟机是Windows的情况 423
6.4.2 虚拟机是Linux的情况 425
6.5 下一步工作 427
第7章 虚拟网络系统 429
7.1 概述 429
7.2 拓扑结构 430
7.3 相关技术 431
7.3.1 动态主机配置协议 431
7.3.2 iptables 433
7.3.3 bridge-utils 438
7.3.4 VTun 440
7.3.5 VLAN 441
7.4 虚拟网络模式 446
7.4.1 网络模式介绍 446
7.4.2 网络模式配置 447
7.5 虚拟网络系统在Eucalyptus中的实现 448
7.6 启动网络 450
7.6.1 功能简介 450
7.6.2 代码分析 451
7.7 重启DHCP服务 454
7.7.1 功能简介 454
7.7.2 代码分析 454
7.8 关闭网络 458
7.8.1 功能简介 458
7.8.2 代码分析 458
7.9 安全组规则 460
7.9.1 功能简介 460
7.9.2 代码分析 461
7.10 Elastic IP 464
7.10.1 绑定IP地址到虚拟机 464
7.10.2 解除IP地址绑定 466
7.11 开发环境搭建 468
7.11.1 系统配置 468
7.11.2 安装程序 468
7.12 单元测试及开发示例 468
7.12.1 启动DHCP 468
7.12.2 数据转发及过滤 469
7.12.3 隧道通信 470
7.12.4 虚拟局域网管理 471
7.13 下一步工作 473
第8章 接入与互连系统 474
8.1 概述 474
8.2 体系结构 474
8.3 接入互连技术 475
8.3.1 JiBX 475
8.3.2 Netty 478
8.3.3 Mule 483
8.3.4 WSDL 488
8.3.5 SOAP 492
8.3.6 Axis2 493
8.4 用户接入 500
8.4.1 与客户端交互信息 500
8.4.2 Netty服务器配置 504
8.4.3 解码 505
8.4.4 特定Handler的添加 517
8.4.5 信息在pipeline上的流动过程 521
8.5 Mule关联接入点服务和各模块预处理程序 529
8.5.1 Mule的控制 529
8.5.2 各模块预处理程序 530
8.6 云前端和虚拟化运行平台互连 536
8.6.1 功能介绍 536
8.6.2 代码分析 538
8.6.3 开发环境搭建 549
8.6.4 单元测试及开发示例 551
8.7 安全性保障 552
参考文献 559