深入理解OpenStack Trove
  • 推荐0
  • 收藏1
  • 浏览955

深入理解OpenStack Trove

Amrith Kumar Douglas Shelley (作者)  党明 (译者) 张国霞 (责任编辑)

  • 书  号:978-7-121-30303-6
  • 出版日期:2016-11-18
  • 页  数:384
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: OpenStack Trove
  • 原书号:1484212223
  • 维护人:张国霞
本书由Tesora团队的CTO Amrith Kumar和研发副总裁Douglas Shelley联合编写,深入介绍并研究了OpenStack中Trove项目的架构及工作原理。Trove项目作为一个DBaaS(数据库即服务),可以方便地为用户提供关系型和非关系型数据库,并在数据库生命周期内提供各种便捷的管理操作,例如复制、备份、扩容等。本书首先介绍了Trove的相关概念,以及如何下载并安装Trove;接着以实际操作为示例,讲述了Trove的基础架构和一些典型的操作方法,以及如何调试Trove并进行一系列故障排查;最后介绍了如何构建Trove guest镜像,以及在生产环境中操作Trove时需要注意的事项。
本书适用于对OpenStack生态圈有所了解,并对数据库和开源事业有兴趣的开发者。
全方位讲解OpenStack中Trove项目的架构及工作原理
推荐语
作为最流行的开源云计算平台之一,OpenStack日渐成熟,为众多行业参与者提供了强大的支撑。而在作为IT基础资源之一的数据库云化管理方面,OpenStack同样给我们带来了设计优雅的Trove作为其DBaaS服务。Trove是OpenStack的一部分,基于OpenStack的核心基础服务而构建,很好地诠释了云平台的强大能力。Trove所支持的底层数据库非常广泛,并且具有强大的扩展性。本书作为学习Trove的难得资料,为你360°讲述Trove的前世今生,带你领略OpenStack DBaaS的精彩实践。
绿星云科技CTO及联合创始人 黄明生
关于技术评论员
Nikhil Manchanda 是惠普云的核心工程师之一。他从OpenStack Trove 的Juno、Kilo和Liberty 发布伊始就一直是该项目的技术负责人(PTL)。他设计并编写了OpenStackTrove 项目的重要部分,并在项目开始时就成为Trove 的核心贡献者之一。他的专长在OpenStack、Python 和数据库领域,但也偶尔涉足C++ 和机器学习领域。他之前从事软件更新智能、本地地理系统和移动应用相关工作。在工作之余,他会经常趴在桌子上,刻苦钻研他的树莓派或NAS4Free 盒子,或者写诗歌和短篇小说。
鸣谢
我们要感谢整个OpenStack Trove社区,感谢社区成员对Trove版本的提交和贡献,以使得OpenStack的数据库服务成为现实。如果没有这么多开发者、审阅者和运营商在数年里对项目的贡献,我们不会有如此丰富的话题进行写作。
特别感谢Tesora的整个团队,他们通过评论、回答技术问题和提供有创意的内容来支持本书。
感谢Apress团队,Mark Powers、Louise Corrigan、Christine Ricketts和Lori Jacobs都很棒。
特别感谢Laurel Michaels,他在社区里做了很多改善Trove文档的工作,在本书初稿完成后精心审阅了每个章节,并提供了宝贵的改进建议。
——Amrith & Doug

目录

第1 章 关于DBaaS 的介绍…………………………………………………… 1
1.1 什么是DBaaS ………………………………………………………………… 1
1.1.1 数据库 ……………………………………………………………………………… 2
1.1.2 服务 ………………………………………………………………………………… 2
1.1.3 服务类别 …………………………………………………………………………… 2
1.1.4 DBaaS 的定义 …………………………………………………………………… 2
1.2 IT 部门面对的数据库挑战 …………………………………………………… 3
1.3 DBaaS 的特性 ………………………………………………………………… 4
1.3.1 管理平面和数据平面 ……………………………………………………………… 4
1.3.2 租赁 ………………………………………………………………………………… 6
1.3.3 服务位置 …………………………………………………………………………… 7
1.3.4 服务vs 平台 ……………………………………………………………………… 9
1.4 DBaaS 的好处 ………………………………………………………………… 9
1.4.1 易于提供 …………………………………………………………………………… 9
1.4.2 一致性的配置 ……………………………………………………………………… 10
1.4.3 自动化操作 ………………………………………………………………………… 10
1.4.4 自动缩放 …………………………………………………………………………… 10
1.4.5 提高开发的灵活性 ………………………………………………………………… 10
1.4.6 更好的资源利用和设计 …………………………………………………………… 11
1.4.7 对于提供者或操作者简化角色 …………………………………………………… 11
1.5 其他DBaaS 的提供者 ……………………………………………………… 11
1.5.1 亚马逊RDS ……………………………………………………………………… 12
1.5.2 亚马逊Redshift …………………………………………………………………… 12
1.5.3 微软 Azure SQL Database ………………………………………………………… 12
1.5.4 Google Cloud SQL ………………………………………………………………… 12
1.5.5 亚马逊DynamoDB ……………………………………………………………… 12
1.6 OpenStack Trove …………………………………………………………… 13
1.7 Trove 的一段简要历史 ……………………………………………………… 13
1.8 OpenStack Trove 中的租约 ………………………………………………… 14
1.9 OpenStack 生态系统中的Trove …………………………………………… 14
1.10 总结 ………………………………………………………………………… 17

第2 章 下载和安装OpenStack Trove…………………………………… 18
2.1 部署一个单节点的开发环境 ……………………………………………… 18
2.1.1 配置Ubuntu 环境 ………………………………………………………………… 18
2.1.2 安装一些基础包 …………………………………………………………………… 20
2.1.3 确认你的配置 ……………………………………………………………………… 20
2.1.4 给“ubuntu”用户赋予免密码sudo 权限 ……………………………………… 21
2.1.5 使用devstack 工具安装OpenStack ……………………………………………… 22
2.1.6 启用默认的Trove 公钥 …………………………………………………………… 26
2.1.7 系统认证 …………………………………………………………………………… 27
2.1.8 创建你的第1 个Trove 数据库实例 ……………………………………………… 28
2.1.9 在devstack 中使用Neutron ……………………………………………………… 32
2.1.10 访问Dashboard ………………………………………………………………… 35
2.2 在多节点的OpenStack 环境中部署Trove ………………………………… 37
2.2.1 前提条件 …………………………………………………………………………… 37
2.2.2 安装必需包 ………………………………………………………………………… 37
2.2.3 创建Trove 用户 …………………………………………………………………… 38
2.2.4 创建Trove 操作的数据库 ………………………………………………………… 38
2.2.5 在OpenStack 中配置Trove ……………………………………………………… 38
2.2.6 配置Trove 服务 …………………………………………………………………… 39
2.2.7 初始化Trove 操作的数据库 ……………………………………………………… 41
2.2.8 在Keystone 中配置Trove Endpoint ……………………………………………… 42
2.2.9 重启Trove 服务 …………………………………………………………………… 42
2.2.10 下载或构建一个Trove Guest 镜像 ……………………………………………… 42
2.2.11 配置数据库类型及其版本 ……………………………………………………… 45
2.3 总结 ………………………………………………………………………… 49

第3 章 基本的Trove 操作… ……………………………………………… 50
3.1 使用curl 命令和RESTful 服务交互 ……………………………………… 50
3.1.1 从Keystone 中获取Token ………………………………………………………… 51
3.1.2 使用Token 和RESTful 服务交互 ……………………………………………… 53
3.2 理解应用程序如何与OpenStack 服务交互 ……………………………… 55
3.3 Trove CLI 脚本编程 ………………………………………………………… 57
3.4 展示实例列表 ……………………………………………………………… 59
3.5 启动实例 …………………………………………………………………… 60
3.6 重启实例 …………………………………………………………………… 64
3.7 删除实例 …………………………………………………………………… 65
3.8 配置多个数据库类型 ……………………………………………………… 65
3.8.1 配置数据库类型 …………………………………………………………………… 65
3.8.2 指定默认的数据库类型 …………………………………………………………… 69
3.9 创建用户和数据库 ………………………………………………………… 70
3.9.1 启用数据库的root 用户 ………………………………………………………… 70
3.9.2 数据库操作 ………………………………………………………………………… 73
3.9.3 用户操作 …………………………………………………………………………… 76
3.10 总结 ………………………………………………………………………… 81

第4 章 概念和架构… ……………………………………………………… 82
4.1 Trove 基础架构 ……………………………………………………………… 83
4.2 Trove 的概念 ………………………………………………………………… 85
4.2.1 Trove 服务 ………………………………………………………………………… 85
4.2.2 Trove Guest Agent API …………………………………………………………… 88
4.2.3 Trove 策略 ………………………………………………………………………… 89
4.2.4 Trove 拓展 ………………………………………………………………………… 93
4.2.5 Guest Agent 的分类模型和策略 ………………………………………………… 93
4.2.6 Trove Guest 镜像 ………………………………………………………………… 96
4.2.7 Trove 消息队列和Trove 内部的API …………………………………………… 97
4.2.8 Trove 基础设施数据库 ………………………………………………………… 101
4.2.9 Trove 公共API ………………………………………………………………… 103
4.3 OpenStack Trove 的架构 …………………………………………………… 108
4.4 总结 ………………………………………………………………………… 123

第5 章 Trove 的高级操作… …………………………………………… 125
5.1 自定义f lavor ………………………………………………………………… 125
5.2 Trove 的备份和恢复 ………………………………………………………… 127
5.3 Trove 的复制 ………………………………………………………………… 133
5.3.1 对复制的支持情况 ……………………………………………………………… 133
5.3.2 创建一个复制 …………………………………………………………………… 134
5.3.3 故障切换 ………………………………………………………………………… 140
5.4 Trove 集群 …………………………………………………………………… 147
5.5 配置组 ……………………………………………………………………… 160
5.6 调整实例的大小 …………………………………………………………… 172
5.7 终止实例 …………………………………………………………………… 175
5.8 总结 ………………………………………………………………………… 175

第6 章 调试与故障排除… ……………………………………………… 177
6.1 访问Trove guest 实例的命令行 …………………………………………… 177
6.1.1 OpenStack guest 镜像 …………………………………………………………… 178
6.1.2 Tesora guest 镜像 ……………………………………………………………… 179
6.2 阅读Trove 错误日志………………………………………………………… 180
6.2.1 Trove 控制节点的错误日志 …………………………………………………… 180
6.2.2 关于guest 实例的错误日志 …………………………………………………… 180
6.2.3 错误日志的一些实例 …………………………………………………………… 181
6.3 理解Trove 日志级别………………………………………………………… 186
6.4 在Trove 中使用OpenStack 分析库 ………………………………………… 189
6.4.1 在开始和停止位置之间分析代码 ……………………………………………… 191
6.4.2 使用Python 结构分析一个代码块 …………………………………………… 191
6.4.3 使用修饰器分析一个方法 ……………………………………………………… 192
6.4.4 使用修饰器分析整个类 ………………………………………………………… 192
6.5 总结 ………………………………………………………………………… 197

第7 章 构建Trove guest 镜像………………………………………… 198
7.1 使用预先构建的Trove guest 镜像 ………………………………………… 198
7.1.1 Trove guest 镜像组件 …………………………………………………………… 199
7.1.2 注册Trove guest 镜像 ………………………………………………………… 199
7.2 使用磁盘镜像生成器构建guest 镜像 ……………………………………… 202
7.2.1 安装磁盘镜像生成器 …………………………………………………………… 202
7.2.2 磁盘镜像生成器元件 …………………………………………………………… 203
7.2.3 使用Trove 相关的元件构建guest 镜像 ……………………………………… 205
7.2.4 使用redstack 构建guest 镜像 ………………………………………………… 209
7.3 磁盘镜像生成器的工作原理 ……………………………………………… 210
7.3.1 元件内的阶段 …………………………………………………………………… 211
7.3.2 执行顺序 ………………………………………………………………………… 212
7.4 Trove 涉及的元件 …………………………………………………………… 214
7.5 使用 guest agent 代码 ……………………………………………………… 219
7.5.1 在运行时安装 guest agent 代码 ……………………………………………… 219
7.5.2 构建时安装guest agent 代码 ………………………………………………… 221
7.6 不同的操作系统中的 guest 镜像 …………………………………………… 222
7.7 总结 ………………………………………………………………………… 224

第8 章 生产环境下Trove 的运作… …………………………………… 225
8.1 Trove 的基础设施配置 ……………………………………………………… 225
8.1.1 配置Trove 使用专用基础设施 ………………………………………………… 227
8.1.2 AMQP 服务器上的安全配置 ………………………………………………… 229
8.1.3 为访问AMQP 服务器提供凭证 ……………………………………………… 230
8.2 guest 安全 …………………………………………………………………… 231
8.2.1 在guest 实例上使用SSH ……………………………………………………… 231
8.2.2 使用安全组和安全网络 ………………………………………………………… 232
8.3 Trove 作为其他OpenStack 服务的用户端 ………………………………… 233
8.3.1 私有OpenStack 结构中的消费服务 …………………………………………… 233
8.3.2 使用隐藏租户和服务租户 ……………………………………………………… 234
8.4 总结 ………………………………………………………………………… 238

附录A Trove 配置选项… ……………………………………………… 239
A.1 Trove 配置文件 ……………………………………………………………… 239
A.2 Trove 配置选项 ……………………………………………………………… 242
A.3 特定的数据库配置选项 …………………………………………………… 252
A.4 总结 ………………………………………………………………………… 263

附录B Trove 命令行接口… …………………………………………… 264
B.1 命令行接口 ………………………………………………………………… 264
B.1.1 trove 命令 ……………………………………………………………………… 264
B.1.2 trove-manage 命令 ……………………………………………………………… 286
B.2 总结 ………………………………………………………………………… 289

附录C Trove 中的API…………………………………………………… 290
C.1 Trove API 服务的end point ………………………………………………… 290
C.2 API 的习惯用法 …………………………………………………………… 292
C.3 列出API 的版本 …………………………………………………………… 293
C.4 实例API …………………………………………………………………… 294
C.4.1 列出实例 ……………………………………………………………………… 294
C.4.2 创建实例 ……………………………………………………………………… 295
C.4.3 展示实例 ……………………………………………………………………… 300
C.4.4 实例操作 ……………………………………………………………………… 301
C.4.5 修改实例 ……………………………………………………………………… 305
C.4.6 更新实例 ……………………………………………………………………… 312
C.4.7 删除实例 ……………………………………………………………………… 315
C.4.8 备份列表 ……………………………………………………………………… 316
C.4.9 实例配置列表 ………………………………………………………………… 319
C.5 数据库类型的API ………………………………………………………… 321
C.5.1 数据库类型列表 ……………………………………………………………… 321
C.5.2 数据库类型版本列表 ………………………………………………………… 324
C.5.3 显示数据库类型版本(通过数据库类型和版本) ………………………… 325
C.5.4 显示数据库类型版本(通过UUID) ………………………………………… 326
C.5.5 数据库类型版本配置项列表 ………………………………………………… 327
C.5.6 显示数据库类型版本配置项 ………………………………………………… 328
C.5.7 数据库类型版本配置项列表 ………………………………………………… 329
C.5.8 显示数据库类型版本配置项 ………………………………………………… 330
C.6 实例类型API ……………………………………………………………… 331
C.6.1 实例类型列表 ………………………………………………………………… 331
C.6.2 显示实例类型 ………………………………………………………………… 333
C.7 限额API …………………………………………………………………… 334
C.8 备份API …………………………………………………………………… 335
C.8.1 备份列表 ……………………………………………………………………… 336
C.8.2 显示备份 ……………………………………………………………………… 337
C.8.3 创建备份 ……………………………………………………………………… 338
C.8.4 删除备份 ……………………………………………………………………… 340
C.9 数据库扩展API …………………………………………………………… 341
C.9.1 获取root 用户的激活状态 …………………………………………………… 341
C.9.2 启用root ……………………………………………………………………… 342
C.9.3 数据库列表 …………………………………………………………………… 343
C.9.4 创建数据库 …………………………………………………………………… 344
C.9.5 删除数据库 …………………………………………………………………… 346
C.9.6 创建用户 ……………………………………………………………………… 347
C.9.7 用户列表 ……………………………………………………………………… 349
C.9.8 查看用户的权限 ……………………………………………………………… 350
C.9.9 删除用户 ……………………………………………………………………… 351
C.9.10 用户访问授权 ………………………………………………………………… 351
C.9.11 显示用户的访问权限 ………………………………………………………… 353
C.9.12 解除用户的访问权限 ………………………………………………………… 354
C.10 集群API …………………………………………………………………… 355
C.11 集群列表 …………………………………………………………………… 355
C.11.1 集群详情 ……………………………………………………………………… 357
C.11.2 创建集群 ……………………………………………………………………… 359
C.11.3 集群操作:添加实例 ………………………………………………………… 362
C.11.4 删除集群 ……………………………………………………………………… 363
C.12总结 ………………………………………………………………………… 364

读者评论

电子书版本

  • Epub
  • Mobi

图书类别

相关图书

Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)

龚正 吴治辉 闫健勇 (作者)

Kubernetes是由谷歌开源的容器集群管理系统,为容器化应用提供了资源调度、部署运行、服务发现、扩缩容等一整套功能。Kubernetes也是将“一切以服务(...

 

OpenStack从零开始学

卢万龙 (作者)

OpenStack作为开源云计算技术首当其冲,有着广泛的受众、活跃的社区和良好的传播,尊为云计算技术的领导者。<br>本书由浅入深,从设计理论到实际操作,逐渐深...

¥49.00

云落谁家?OpenStack基于场景的架构设计实践

占海 (作者)

本书总共有8 章的内容,将OpenStack 的应用场景分为了几类,每章介绍了不同的场景。第1 章介绍了通用型应用场景;第2~4 章分别介绍了计算密集型、高负载...

¥42.00

Open Stack设计与实现

王庆 (作者)

这将是一本详细介绍Openstack设计与实现的书,同时它也将为读者展现Openstack社区如何工作,以及如何参与。因此,希望或正在参与Openstack开发...

¥39.00

OpenStack企业云平台架构与实践

张小斌 (作者)

OpenStack经过三年的快速发展,现在已经得到全球绝大多数IT巨头包括IBM、HP、Redhat、Cisco、Intel、VMWare、微软、华为、Rack...

¥39.00