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 指定软件包的位置。

实现

负责人

里程碑

Kilo

依赖项

测试

  • 为 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 设置如下