MySQL 8¶
引入经过优化且企业级的 MySQL 8 + InnoDB + MySQL Router 作为 OpenStack 模型的数据库解决方案,目标是在 Ubuntu 20.04 中使其成为默认配置。
问题描述¶
Percona XtraDB Cluster 位于 Universe 仓库,未能通过主仓库纳入请求流程,并且不会被纳入下一个 LTS 版本,相对于 Charmed OpenStack 部署而言。
提议的变更¶
这些将是全新的 charms,不会基于现有的 MySQL 或 Percona-Cluster charms,并且没有 charm 升级路径。
与其进行就地升级,将提供一个迁移解决方案,允许使用 percona-cluster charm 的现有 Ubuntu 18.04 LTS 部署直接将数据库迁移到基于 mysql-innodb-cluster 的 Ubuntu 20.04 LTS 部署。 详细信息将作为此规范的更新提供。
这些 charms 将发布到以下位置
cs:mysql-innodb-cluster
cs:mysql-router
受影响或要求的操作系统版本是什么? 19.10 (Eoan) 和 20.04
受影响或要求的 OpenStack 版本是什么? Train 及以上版本
需要什么版本的 Juju? Juju 2.7+
备选方案¶
另一种选择是将 percona-cluster 纳入 20.04 的主仓库。
实现¶
负责人¶
- 主要负责人
thedac
Gerrit Topic¶
对于与此规范相关的所有补丁,请使用 Gerrit topic “mysql8”。
git-review -t mysql8
工作项¶
实现包括以下 charms
mysql-innodb-cluster
将处理 mysql 实现的主要 charm。
安装 MySQL 8
处理 InnoDB 集群
interface-mysql-innodb-cluster
mysql-innodb-cluster 的 peer 关系
interface-mysql-shared 提供
interface-mysql-shared 提供侧
mysql-router
将与应用程序 charm 和 mysql-innodb-cluster 关联的从属 charm。
代理 DB 请求和响应
interface-mysql-router
应用程序和 mysql-router 之间的接口
mysqlsh snap
管理 mysql innodb 集群的 mysqlsh 工具
从上游源 snap
仓库¶
charm-mysql-innodb-cluster
charm-interface-mysql-innodb-cluster
charm-mysql-router
charm-interface-mysql-router
mysqlsh-snap
文档¶
每个 charm 和接口都将包含一个 README,其中包含有关部署和关联 charm 的说明。
可能有一个 OpenStack 部署指南附录,讨论集群和集群管理。
安全性¶
MySQL 8 现在将位于主仓库中,并进行安全审计,而 percona-cluster 以前没有。
工作项的代码审查应包括安全意识的审查方法。
测试¶
每个仓库的单元测试。
每个 charm 的 Zaza 功能测试。 这将包括与应用程序、mysql-router 和 mysql-inndob-cluster 的端到端测试。
依赖项¶
Eoan+ mysql8 软件包
MySQL shell