MariaDB 指南¶
Kolla Ansible 支持部署 MariaDB/Galera 集群,供 OpenStack 和其他服务使用。
MariaDB 分片¶
数据库分片,或简称分片,是数据库或搜索引擎中数据的水平分区。每个分片都存储在单独的数据库服务器/集群上,以分散负载。某些数据在所有分片中都存在,但有些数据仅出现在单个分片中。每个分片充当此子数据集的唯一来源。
Kolla 支持在服务的数据库级别进行分片,因此每个数据库都可以托管在不同的分片上。每个分片都实现为独立的 Galera 集群。
本节解释如何配置多个数据库分片。目前,只有通过 HAProxy 负载均衡器可访问的一个分片,并受 kolla-ansible mariadb_backup 命令的支持。未来将通过使用 ProxySQL 来改进,从而实现对所有分片的负载均衡访问。
部署¶
每个分片由一个整数 ID 标识,由 mariadb_shard_id 定义。默认分片由 mariadb_default_database_shard_id (默认值为 0) 定义,它标识可以通过 HAProxy 访问并可用于备份的分片。
为了部署多个 MariaDB 集群,您需要按照以下方式编辑清单文件
[mariadb] server1ofcluster0 server2ofcluster0 server3ofcluster0 server1ofcluster1 mariadb_shard_id=1 server2ofcluster1 mariadb_shard_id=1 server3ofcluster1 mariadb_shard_id=1 server1ofcluster2 mariadb_shard_id=2 server2ofcluster2 mariadb_shard_id=2 server3ofcluster2 mariadb_shard_id=2
注意
如果清单文件中未为主机定义 mariadb_shard_id,则它将自动设置为 mariadb_default_database_shard_id (默认值为 0),该值来自 group_vars/all/mariadb.yml,并且可以在 /etc/kolla/globals.yml 中覆盖。正如以下所述,在备份或负载均衡的情况下,标记为默认分片的分片是特殊的。
负载均衡器¶
Kolla 目前仅支持默认分片的负载均衡。未来将通过用 ProxySQL 替换 HAProxy 来改变这一点。这导致了如下所述的某些限制。
备份和恢复¶
备份和恢复仅适用于默认分片,因为 kolla 当前使用 HAProxy 解决方案作为 MariaDB 负载均衡器,它是一个简单的 TCP,并且仅将默认分片主机配置为后端,因此备份脚本只能在 kolla_internal_vip_address 上访问默认分片。