[openstack-dev] [Trove] MySQL 5.6 disk-image-builder element

Lowery, Mathew mlowery at ebay.com
Tue Mar 11 17:33:12 UTC 2014


My colleague, Ranjitha Vemula, just submitted a trove-integration patch
set to add a MySQL 5.6 disk-image-builder element. Two major hurdles were
faced with this patch set.

1) The manager

The resulting MySQL 5.6 image can be registered using mysql as the
datastore, mysql as the manager, and
trove.guestagent.datastore.mysql.manager.Manager as the class--in other
words, all the same config as MySQL 5.5 except a different image. To
repeat, no trove changes are required.

Since there is no official Ubuntu package for MySQL 5.6, the official
mysql.com Debian package was used.

Several assumptions made by the MySQL 5.5 manager (specifically paths) had
to be worked around.

The following are hard-coded in the my.cnf template and the default values
from MySQL's Debian package for these paths don't match those in the
manager.
* basedir
* pid-file

The following are referenced using absolute paths (that don't match
mysql.com's Debian package).
* /usr/sbin/mysqld

For all of the above path mismatches, a combination of symlinking and
startup script sed's were used. Regarding use of absolute paths to
binaries, the manager sometimes uses binaries from the PATH and sometimes
uses absolute paths. This should probably be consistent one way or the
other. Although using the PATH would add flexibility to the manager.
Regarding my.cnf template, should there be a way (e.g. database) to inject
some fundamental path mapping between the image layout and the manager?


2) disk-image-builder elements for multiple versions of a single datastore

The following layout was chosen (after debating whether logic should
instead be added to the existing ubuntu-mysql element):
trove-integration/scripts/files/elements/ubuntu-mysql-5.6/install.d/10-mysq
l

Paired with Viswa Vurtharkar's patch set
(https://review.openstack.org/#/c/72804/), this element can be
kick-started using:
DATASTORE_VERSION="-5.6" PACKAGES=" " ./redstack kick-start mysql

In my understanding, D.I.B. elements should be pretty dumb and the caller
should worry about composing them so this setup seems like the best
approach to me but it leaves ubuntu-mysql untouched. A point made by
hub_cap is that now ubuntu-mysql, similar to ubuntu-guest, would imply
"things common to all MySQL images" but as of right now, it is as it was
before: a MySQL 5.5 image. So there's that to discuss.

Feedback is appreciated.
Mat






More information about the OpenStack-dev mailing list