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