http://creativecommons.org/licenses/by/3.0/legalcode ..
Trove 的 DB2 Express-C 客体代理¶
Launchpad蓝图
https://blueprints.launchpad.net/trove/+spec/db2-plugin-for-trove
问题描述¶
此蓝图的目标是使 Trove 支持一种新的数据存储类型 - DB2,除了 Trove 支持的其他 SQL 数据库之外。对于第一个版本,我们将使用 DB2 Express-C v10.5.4(在 Ubuntu 上),它是企业可用的 DB2 免费版本。
将实现以下功能:启动、重启、终止、调整大小和用户。
提议的变更¶
为了添加对这种新的数据存储的支持,我们需要实现以下内容
为 Ubuntu 上的 DB2 Express-C 添加一个新的 diskimage-builder 元素
实现各种数据存储功能,例如
启动
重启
终止
调整大小
用户
配置¶
将为 DB2 和其特定的不同配置选项定义一个新的配置组,位于 /trove/common/cfg.py 中。
配置选项的一些示例是
tcp_ports
udp_ports
backup_strategy
backup_incremental_strategy
mount_point
volume_support
device_path
backup_namespace
restore_namespace
cluster_support
replication_strategy
数据库¶
无
公共 API¶
无
内部 API¶
无
Guest Agent¶
这需要实现 DB2 的各种数据存储功能(API),例如启动、重启、终止、备份、恢复、调整大小和用户。 这将包括在 guestagent 模块下添加以下特定于 DB2 的新文件
manager.py
service.py
system.py
这些更改不会影响客体代理的行为或其与其他组件的交互。
Disk-Image-Builder 元素¶
DB2 Express-C 是 IBM DB2 数据库的免费版本,可供下载。为了下载 DB2 Express-C 的软件包,用户需要完成一个免费注册过程。
与其他 Trove 支持的数据存储不同,DB2 Express-C 无法从公共存储库下载。 因此,为 DB2 Express-C 创建 DIB 元素的建议是让用户完成注册过程并从参考部分 [1] 提供的链接下载 DB2 Express-C 软件包。 可以通过将其存储在私有存储库或本地文件系统上,使下载的软件包可供 Trove 使用。 然后创建一个 extra-data.d 元素,将软件包复制到镜像中。 使用环境变量 DATASTORE_PKG_LOCATION 指定软件包的位置。
依赖项¶
无
测试¶
为 DB2 Express-C 客体代理添加新的单元测试
为端到端功能测试添加集成测试
创建/删除实例
创建/删除/列出数据库
创建/删除/列出用户
文档影响¶
可以从参考部分 [1] 提供的链接下载 DB2 Express-C 软件包。 点击链接“DB2 Express-C for Linux 64-bit”。 新用户可以获取 IBM ID,或点击“Proceed without an IBM ID”。 用户必须先注册才能下载软件包。 下载软件包后,用户可以通过以下方式使其可供 Trove 构建客体镜像
将其存储在私有存储库中,并将变量‘DATASTORE_PKG_LOCATION’定义为私有存储库的基本 URL
将其存储在本地文件系统上,该文件系统可供 DB2 DIB 元素访问,并将‘DATASTORE_PKG_LOCATION’设置为指向此目录。
例如,可以将 DATASTORE_PKG_LOCATION 设置如下
export DATASTORE_PKG_LOCATION=’/home/stack/db2’
export DATASTORE_PKG_LOCATION=’http://www.foo.com/pkgs/db2’
参考资料¶
[1] DB2 下载链接:http://www-01.ibm.com/software/data/db2/express-c/download.html