为 Trove 添加 Vertica 数据存储

Launchpad蓝图

https://blueprints.launchpad.net/trove/+spec/vertica-db-support

问题描述

此蓝图的目标是使 Trove 能够支持一种新的数据存储类型 - Ubuntu 上的 HP Vertica 7.1 CE。

提议的变更

为了添加对这种新的数据存储的支持,我们需要实现以下内容

  • 为 Vertica 添加一个新的 diskimage-builder 元素

  • 实现各种数据存储功能,例如

    - Launch
    - Reboot
    - Terminate
    - Resize
    

配置

为 Vertica 创建一个新的配置组,以及 trove/common/cfg.py 中特定于 Vertica 的不同配置选项。

配置选项的一些示例是

- tcp_ports
- udp_ports
- backup_strategy
- backup_incremental_strategy
- replication_strategy
- backup_namespace
- restore_namespace
- root_on_create
- mount_point
- volume_support
- device_path

数据库

公共 API

内部 API

Guest Agent

  • 这需要实现 Vertica 的各种数据存储功能,例如启动、重启、终止、调整大小。

  • 这将包括在 guestagent/datastore 模块下添加以下特定于 Vertica 的文件

    - manager.py
    - service.py
    - system.py
    

这些更改不会影响 guestagent 的行为或其与其它组件的交互。

Disk-Image-Builder 元素

  • Disk-Image 构建将是一个两步过程,基本上

    - Download the Vertica package.
    - Execute the image-builder
    
  • CE 是在 www.vertica.com 上提供的 HP Vertica 数据库的免费版本

  • 需要进行免费注册过程,这使用户能够下载 Vertica 包。

  • Image 构建元素需要用户将 $VERTICA_PACKAGE_FILE 复制到 $VERTICA_SOURCE。

  • 然后 DIB 元素的工作将是

    - Copy $VERTICA_PACKAGE_FILE from $VERTICA_SOURCE and host in the guest-image.
    - Install the essential requisite packages.
    - Install the Vertica package to guest-image.
    - Create the Vertica dba user named as "dbadmin", with desired group and path & time-zone settings setup to profile.
    - Create a base location to host database files.
    

实现

里程碑

“Kilo-3”

依赖项

测试

  • Vertica 数据存储将使用 HP 托管的第三方 CI 进行测试。

  • 将为 Vertica guestagent 添加新的单元测试。

  • 需要添加集成测试以进行端到端功能测试

    - create/delete instance
    - resize instance
    

文档影响

  • 文档需要更新以下内容

    - HP Vertica being added as new datastore.
    - Capabilities of Trove for HP Vertica datastore.
    - How to build the guest-image required for hosting HP Vertica guest.