第 7 章 使用 Galera 管理数据库复制
Red Hat OpenStack Platform 使用 MariaDB Galera 集群来管理数据库复制。Pacemaker 将 Galera 服务作为管理数据库 master/slave 状态 的捆绑包设置 资源运行。您可以使用 Galera 测试和验证数据库集群的不同方面,如主机名解析、集群完整性、节点完整性和数据库复制性能。
和其它 Pacemaker 服务类似,您可以使用 pcs status 命令检查 Galera 服务正在运行,以及它正在运行的 Controller 节点。有关查看 Pacemaker 捆绑包状态的更多信息,请参阅 第 4.3 节 “查看捆绑包状态”。
在调查数据库集群完整性时,每个节点都必须满足以下条件:
- 节点是正确集群的一部分。
- 节点可以写入集群。
- 节点可以从集群接收查询和写入命令。
- 节点连接到集群中的其他节点。
- 节点是将 write-sets 复制到本地数据库中表。
7.1. 验证主机名解析 复制链接链接已复制到粘贴板!
默认情况下,director 将 Galera 资源绑定到主机名而不是 IP 地址。因此,任何阻止主机名解析的问题(如错误配置或 DNS 失败)都可能会导致 Pacemaker 错误地管理 Galera 资源。
要对 MariaDB Galera 集群进行故障排除,您可以首先消除任何主机名解析问题,然后在每个 Controller 节点的数据库上检查 write-set 复制状态。要访问 MySQL 数据库,您要在 overcloud 部署期间使用 director 设置的密码。
流程
在 Controller 节点上,通过运行
hiera命令获取 MariaDB 数据库 root 密码。sudo hiera -c /etc/puppet/hiera.yaml "mysql::server::root_password"
$ sudo hiera -c /etc/puppet/hiera.yaml "mysql::server::root_password" *<MYSQL-HIERA-PASSWORD>*Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取节点上运行的 MariaDB 容器的名称。
sudo docker ps | grep -i galera
$ sudo docker ps | grep -i galera 5fb195b0d9e8 192.168.24.1:8787/rh-osbs/rhosp13-openstack-mariadb:pcmklatest "dumb-init -- /bin..." 7 hours ago Up 7 hours galera-bundle-docker-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从每个节点上的 MariaDB 数据库获取写入设置复制信息。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 每个相关变量都使用前缀
wsrep。- 通过检查集群报告正确的节点数量来验证 MariaDB Galera 集群的健康状态和完整性。