Trove项目作为一个DBaaS(数据库即服务),可以方便地为用户提供关系型和非关系型数据库,并在数据库生命周期内提供各种便捷的管理操作。
本书由Tesora团队的CTO Amrith Kumar和研发副总裁Douglas Shelley联合编写,深入介绍并研究了OpenStack中Trove项目的架构及工作原理。
本书适用于对OpenStack生态圈有所了解,并对数据库和开源事业有兴趣的开发者。
《深入理解OpenStack Trove》由Tesora团队的CTO Amrith Kumar和研发副总裁Douglas Shelley联合编写,深入介绍并研究了OpenStack中Trove项目的架构及工作原理。Trove项目作为一个DBaaS(数据库即服务),可以方便地为用户提供关系型和非关系型数据库,并在数据库生命周期内提供各种便捷的管理操作,例如复制、备份、扩容等。《深入理解OpenStack Trove》首先介绍了Trove的相关概念,以及如何下载并安装Trove;接着以实际操作为示例,讲述了Trove的基础架构和一些典型的操作方法,以及如何调试Trove并进行一系列故障排查;最后介绍了如何构建Trove guest镜像,以及在生产环境中操作Trove时需要注意的事项。
《深入理解OpenStack Trove》适用于对OpenStack生态圈有所了解,并对数据库和开源事业有兴趣的开发者。
第1 章关于DBaaS的介绍
1.1 什么是DBaaS
1.1.1 数据库
1.1.2 服务
1.1.3 服务类别
1.1.4 DBaaS的定义
1.2 IT 部门面对的数据库挑战
1.3 DBaaS的特性
1.3.1 管理平面和数据平面
1.3.2 租赁
1.3.3 服务位置
1.3.4 服务vs 平台
1.4 DBaaS的好处
1.4.1 易于提供
1.4.2 一致性的配置
1.4.3 自动化操作
1.4.4 自动缩放
1.4.5 提高开发的灵活性
1.4.6 更好的资源利用和设计
1.4.7 对于提供者或操作者简化角色
1.5 其他DBaaS的提供者
1.5.1 亚马逊RDS
1.5.2 亚马逊Redshift
1.5.3 微软 Azure SQL Database
1.5.4 Google Cloud SQL
1.5.5 亚马逊DynamoDB
1.6 OpenStack Trove
1.7 Trove 的一段简要历史
1.8 OpenStack Trove 中的租约
1.9 OpenStack 生态系统中的Trove
1.10 总结
第2 章下载和安装OpenStack Trove
2.1 部署一个单节点的开发环境
2.1.1 配置Ubuntu 环境
2.1.2 安装一些基础包
2.1.3 确认你的配置
2.1.4 给“ubuntu”用户赋予免密码sudo权限
2.1.5 使用devstack工具安装OpenStack
2.1.6 启用默认的Trove 公钥
2.1.7 系统认证
2.1.8 创建你的第1 个Trove 数据库实例
2.1.9 在devstack中使用Neutron
2.1.10 访问Dashboard
2.2 在多节点的OpenStack 环境中部署Trove
2.2.1 前提条件
2.2.2 安装必需包
2.2.3 创建Trove 用户
2.2.4 创建Trove 操作的数据库
2.2.5 在OpenStack 中配置Trove
2.2.6 配置Trove 服务
2.2.7 初始化Trove 操作的数据库
2.2.8 在Keystone 中配置Trove Endpoint
2.2.9 重启Trove 服务
2.2.10 下载或构建一个Trove Guest 镜像
2.2.11 配置数据库类型及其版本
2.3 总结
第3 章基本的Trove 操作
3.1 使用curl 命令和RESTful 服务交互
3.1.1 从Keystone 中获取Token
3.1.2 使用Token 和RESTful 服务交互
3.2 理解应用程序如何与OpenStack 服务交互
3.3 Trove CLI 脚本编程
3.4 展示实例列表
3.5 启动实例
3.6 重启实例
3.7 删除实例
3.8 配置多个数据库类型
3.8.1 配置数据库类型
3.8.2 指定默认的数据库类型
3.9 创建用户和数据库
3.9.1 启用数据库的root 用户
3.9.2 数据库操作
3.9.3 用户操作
3.10 总结
第4 章概念和架构
4.1 Trove 基础架构
4.2 Trove 的概念
4.2.1 Trove 服务
4.2.2 Trove Guest Agent API
4.2.3 Trove 策略
4.2.4 Trove 拓展
4.2.5 Guest Agent 的分类模型和策略
4.2.6 Trove Guest 镜像
4.2.7 Trove 消息队列和Trove 内部的API
4.2.8 Trove 基础设施数据库
4.2.9 Trove 公共API
4.3 OpenStack Trove 的架构
4.4 总结
第5 章 Trove 的高级操作
5.1 自定义f lavor
5.2 Trove 的备份和恢复
5.3 Trove 的复制
5.3.1 对复制的支持情况
5.3.2 创建一个复制
5.3.3 故障切换
5.4 Trove 集群
5.5 配置组
5.6 调整实例的大小
5.7 终止实例
5.8 总结
第6 章调试与故障排除
6.1 访问Trove guest 实例的命令行
6.1.1 OpenStack guest 镜像
6.1.2 Tesora guest 镜像
6.2 阅读Trove 错误日志
6.2.1 Trove 控制节点的错误日志
6.2.2 关于guest 实例的错误日志
6.2.3 错误日志的一些实例
6.3 理解Trove 日志级别
6.4 在Trove 中使用OpenStack 分析库
6.4.1 在开始和停止位置之间分析代码
6.4.2 使用Python 结构分析一个代码块
6.4.3 使用修饰器分析一个方法
6.4.4 使用修饰器分析整个类
6.5 总结
第7 章构建Trove guest 镜像
7.1 使用预先构建的Trove guest 镜像
7.1.1 Trove guest 镜像组件
7.1.2 注册Trove guest 镜像
7.2 使用磁盘镜像生成器构建guest 镜像
7.2.1 安装磁盘镜像生成器
7.2.2 磁盘镜像生成器元件
7.2.3 使用Trove 相关的元件构建guest 镜像
7.2.4 使用redstack构建guest 镜像
7.3 磁盘镜像生成器的工作原理
7.3.1 元件内的阶段
7.3.2 执行顺序
7.4 Trove 涉及的元件
7.5 使用 guest agent 代码
7.5.1 在运行时安装 guest agent 代码
7.5.2 构建时安装guest agent 代码
7.6 不同的操作系统中的 guest 镜像
7.7 总结
第8 章生产环境下Trove 的运作
8.1 Trove 的基础设施配置
8.1.1 配置Trove 使用专用基础设施
8.1.2 AMQP 服务器上的安全配置
8.1.3 为访问AMQP 服务器提供凭证
8.2 guest 安全
8.2.1 在guest 实例上使用SSH
8.2.2 使用安全组和安全网络
8.3 Trove 作为其他OpenStack 服务的用户端
8.3.1 私有OpenStack 结构中的消费服务
8.3.2 使用隐藏租户和服务租户
8.4 总结
附录A Trove 配置选项
A.1 Trove 配置文件
A.2 Trove 配置选项
A.3 特定的数据库配置选项
A.4 总结
附录B Trove 命令行接口
B.1 命令行接口
B.1.1 trove 命令
B.1.2 trove-manage 命令
B.2 总结
附录C Trove 中的API
C.1 Trove API 服务的end point
C.2 API 的习惯用法
C.3 列出API 的版本
C.4 实例API
C.4.1 列出实例
C.4.2 创建实例
C.4.3 展示实例
C.4.4 实例操作
C.4.5 修改实例
C.4.6 更新实例
C.4.7 删除实例
C.4.8 备份列表
C.4.9 实例配置列表
C.5 数据库类型的API
C.5.1 数据库类型列表
C.5.2 数据库类型版本列表
C.5.3 显示数据库类型版本(通过数据库类型和版本)
C.5.4 显示数据库类型版本(通过UUID)
C.5.5 数据库类型版本配置项列表
C.5.6 显示数据库类型版本配置项
C.5.7 数据库类型版本配置项列表
C.5.8 显示数据库类型版本配置项
C.6 实例类型API
C.6.1 实例类型列表
C.6.2 显示实例类型
C.7 限额API
C.8 备份API
C.8.1 备份列表
C.8.2 显示备份
C.8.3 创建备份
C.8.4 删除备份
C.9 数据库扩展API
C.9.1 获取root 用户的激活状态
C.9.2 启用root
C.9.3 数据库列表
C.9.4 创建数据库
C.9.5 删除数据库
C.9.6 创建用户
C.9.7 用户列表
C.9.8 查看用户的权限
C.9.9 删除用户
C.9.10 用户访问授权
C.9.11 显示用户的访问权限
C.9.12 解除用户的访问权限
C.10 集群API
C.11 集群列表
C.11.1 集群详情
C.11.2 创建集群
C.11.3 集群操作:添加实例
C.11.4 删除集群
C.12总结