一、硬件

  1、服务器

  

运维高可用架构设计_mysql

  2、网络架构

  

运维高可用架构设计_postgresql_02

二、软件

  1、基础组件

组件名称

高可用方式

最少节点数

负载均衡(Tenginx)

corsync+pacemaker互为主备

多组集群通过DNS轮循实现一个大集群

2

DNS

主从集群

2

RabbitMQ

原生HA镜像集群

3

Zookeeper

原生分布式集群

3

Kafka

原生分布式集群

3

ES

原生分布式集群

3

OpenLDAP

主备

2

Confluence

主备

2

 

 

 

  2、数据库

    1)数据库架构和备份策略

组件名称

高可用方式

最低节点数

备份策略

mysql

主从

1主1从

每天全备+日志实时同步(备份保留10天)

mysql

MGR

3节点

每天全备+日志实时同步(备份保留10天)

pg

主从

1主1从

每天全备+日志实时同步(备份保留10天)

redis

sentinel

1主1从

主从数据同步

redis

cluster

2分片1副本

主从数据同步

    2)数据库架构故障

故障表现级别


故障表现描述



架构



日志



复制模式



备份


是否满足高可用

1

崩溃,数据丢失

mysql,postgresql 单节点。

mysql:未开启binlog。

postgresql: 开启日志级别minimal

 

2

崩溃,新数据丢失

mysql,postgresql 单节点。

mysql:未开启binlog。

postgresql: 开启日志级别minimal

每天全备

 

3

崩溃,没有数据丢失

mysql,postgresql 单节点。

mysql: 开启binlog 级别 statement 及以上。postgresql: 开启日志级别archive 及以上

每天全备+日志实时同步。

 

4

主从切换,服务不可用。


mysql,postgresql  主从

无高可用,需手动切换。


mysql:开启binlog 级别 row。

postgresql: 日志级别hot_standby 及以上。

异步复制

每天全备+日志实时同步

 

5

主从切换,用户有明显的感知。服务器基本完全可用。


mysql:haproxy/nginx+proxysql+mysql(mha)

postgresql: 待定。


mysql:开启binlog 级别 row。

postgresql: 日志级别hot_standby 及以上。

异步复制。

每天全备+日志实时同步。

 

6

主从切换,用户有很小或无明显感知。服务基本完全可用。


mysql:haproxy/nginx+proxysql+mysql(mha)  或:mgr(待测试)

postgresql: haproxy/nginx+pg_poolII+postgresql(repmgr)


待定。

mysql:开启binlog 级别 row。

postgresql: 日志级别hot_standby 及以上。

mysql半同步复制postgresql同步复制。

每天全备+日志实时同步。