首页 > 代码库 > openstack 高可用(HA)- Mariadb

openstack 高可用(HA)- Mariadb

# Galera


**特点**

- 全同步复制,事务要么在所有节点都提交,要么都回滚
- 多主复制,可以在任意节点进行读/写操作
- 在从服务器上并行应用事件,真正意义上的并行复制
- 节点自动配置,故障节点自动从集群中移除。故障节点再次加入集群再次加入集群时,无需手工备份当前数据库并拷贝至故障节点。
- 同步无延迟,可保证数据的一致性
- 具有应用程序的兼容性,无需更改应用程序,具有原生的MYSQL接口
- 每个节点都包含完整的数据副本
- 各个节点的同步复制,不是通过binlog实现的,而是通过galera.cache实现的。

**生产环境下,建议集群配置3个节点,否则很容易产生脑裂。**


**架构优点:**

- 真正的多主架构,任何节点都可以进行读/写操作,无需进行读/写分离。
- 无集中管理,可以在任何时间点失去任何一个节点,集群的正常工作不受影响。
- 节点宕机不会导致数据丢失。
- 对应用透明,无需更改应用或只需要进行极小的更改。

**架构缺点**

- 加入新节点时开销比较大,需要复制完整的数据。
- 不能有效地解决写扩展问题,所有的写操作都将发生在所有节点上。
- 有多少个节点就有多少重复的数据。
- 由于事务提交需要跨节点通信(分布式事务),因此写入会比主从复制慢很多,随着集群节点的增加,写入也会变得越来越慢,自然死锁和回滚也会更加频繁。
- 对网络要求非常高,如果网络出现波动或机房被ARP攻击,则令造成两个节点失联,Galera Cluster集群会发生脑裂,服务将不可用。
- 整个集群的写入吞吐量是由最弱的节点限制的,如果一个节点变得缓慢,会影响整个集群是缓慢。

openstack 高可用(HA)- Mariadb