e2c85ecfdb
This is to add a new plugin for DB2 Express-C in Trove in addition to the existing SQL datastores supported currently. The guestagent for this will include some of the basic functions like create/delete/ list databases and users. Change-Id: I48c09b3190a7b80fb1677b214c557f935aaae08b Implements: blueprint db2-plugin-for-trove
145 lines
4.2 KiB
ReStructuredText
145 lines
4.2 KiB
ReStructuredText
..
|
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
|
License.
|
|
|
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
..
|
|
|
|
=====================================
|
|
DB2 Express-C guest agent for Trove
|
|
=====================================
|
|
|
|
Launchpad blueprint:
|
|
|
|
https://blueprints.launchpad.net/trove/+spec/db2-plugin-for-trove
|
|
|
|
Problem Description
|
|
==============================
|
|
|
|
The aim of this blueprint is to enable Trove to support a new datastore type - DB2,
|
|
in addition to the other SQL databases supported by Trove. For the first release, we
|
|
will be using DB2 Express-C v10.5.4(on Ubuntu) which is the free version of DB2 available
|
|
for enterprises.
|
|
|
|
The following features will be implemented: Launch, Reboot, Terminate, Resize and Users.
|
|
|
|
Proposed Change
|
|
==============================
|
|
To add support for this new datastore, we need to implement the following:
|
|
|
|
- Add a new diskimage-builder element for DB2 Express-C on Ubuntu
|
|
- Implement the various datastore features like:
|
|
|
|
- Launch
|
|
- Reboot
|
|
- Terminate
|
|
- Resize
|
|
- Users
|
|
|
|
Configuration
|
|
--------------
|
|
A new configuration group for DB2 and the different configuration options specific to it
|
|
will be defined in /trove/common/cfg.py.
|
|
|
|
Some of the examples for the configuration options are:
|
|
|
|
- tcp_ports
|
|
- udp_ports
|
|
- backup_strategy
|
|
- backup_incremental_strategy
|
|
- mount_point
|
|
- volume_support
|
|
- device_path
|
|
- backup_namespace
|
|
- restore_namespace
|
|
- cluster_support
|
|
- replication_strategy
|
|
|
|
Database
|
|
------------
|
|
None
|
|
|
|
Public API
|
|
------------
|
|
None
|
|
|
|
Internal API
|
|
-------------
|
|
None
|
|
|
|
Guest Agent
|
|
------------
|
|
This requires implementing the various datastore features(API) for DB2 like Launch,
|
|
Reboot, Terminate, Backup, Restore, Resize and Users. This will include adding
|
|
the following new files specific to DB2 under the guestagent module:
|
|
|
|
- manager.py
|
|
- service.py
|
|
- system.py
|
|
|
|
These changes wont affect the behavior of the guestagent or its interaction with
|
|
other components.
|
|
|
|
Disk-Image-Builder Elements
|
|
---------------------------
|
|
DB2 Express-C is the free version of IBM DB2 database available for download. Inorder
|
|
to download the packages for DB2 Express-C, user needs to go through a free registration
|
|
process.
|
|
|
|
Unlike other datastores supported by Trove, DB2 Express-C cannot be downloaded from a
|
|
public repository. Hence the recommendation for creating DIB elements for DB2 Express-C is
|
|
to have users go through the registration process and download the DB2 Express-C packages
|
|
from the link provided in Reference Section [1]. The downloaded packages can be made
|
|
available to Trove by storing it in a private repository or on the local filesystem.
|
|
Create an extra-data.d element to then copy the package to the image. Use the environment
|
|
variable, DATASTORE_PKG_LOCATION to specify the location of the package.
|
|
|
|
|
|
Implementation
|
|
==============================
|
|
|
|
Assignee(s)
|
|
-----------
|
|
- mariamj@us.ibm.com (Primary Assignee)
|
|
- Susan Malaika (DB2 Contact)
|
|
|
|
Milestones
|
|
----------
|
|
Kilo
|
|
|
|
|
|
Dependencies
|
|
============
|
|
None
|
|
|
|
Testing
|
|
=======
|
|
- Add new unit tests for the DB2 Express-C guestAgent
|
|
- Add integration tests for end-to-end feature testing:
|
|
|
|
- create/delete instance
|
|
- create/delete/list databases
|
|
- create/delete/list users
|
|
|
|
Documentation Impact
|
|
====================
|
|
The DB2 Express-C packages can be downloaded from the link provided in Reference Section
|
|
[1]. Click on the link "DB2 Express-C for Linux 64-bit". New users can either get an
|
|
IBM ID or click on the "Proceed without an IBM ID". Users will have to register first
|
|
inorder to download the packages. After downloading the packages, users can make it
|
|
accessible to Trove for building guest images by:
|
|
|
|
- storing it in a private repository and defining the variable 'DATASTORE_PKG_LOCATION'
|
|
to be the base url of the private repository
|
|
- storing it on the local filesystem in a directory accessible to the DB2 DIB element
|
|
and setting the 'DATASTORE_PKG_LOCATION' to point to this directory.
|
|
|
|
For example, DATASTORE_PKG_LOCATION can be set as follows:
|
|
|
|
- export DATASTORE_PKG_LOCATION='/home/stack/db2'
|
|
- export DATASTORE_PKG_LOCATION='http://www.foo.com/pkgs/db2'
|
|
|
|
References
|
|
==========
|
|
[1] DB2 Download Link: http://www-01.ibm.com/software/data/db2/express-c/download.html
|