容灾备份方案学习分享
1 目的
l 底层或对端故障及劣化时业务0中断。
l 容灾不断话。
l 业务/APP/服务、平台/OS等软件任意时间升级不中断业务。
l 重要数据0丢失。
l 数据持久度“13个9”。
2 设计方案
2.1 设计思路
跨AZ双活的设计上,借鉴服务本地可靠性冗余设计的思路,并在此基础上进一步增强。将云服务各层的组件(主备、集群)拉远跨AZ部署(逻辑上一套)或者双AZ部署(逻辑上两套),提供跨AZ的数据可靠性和业务连续性。
云服务组件间消息交互频繁,数据流量大,对时延、带宽要求颇高。Region内各AZ间通过冗余光纤直连,其超低时延(1.5ms内)、高带宽(数百G到数T)和稳定性,使得这种实现成为可能。但相比在本地,拉远部署后组件间出现脑裂的概率大大增加,因此需要第三地仲裁应对AZ间脑裂的场景。总体上看,双AZ的可靠性设计有以下几方面。
l 业务连续性
所有服务组件(接入、无状态服务等)实现跨AZ的双机或者集群方案。双机支持跨AZ主备切换,集群方案支持集群实例故障后的实例隔离。
l 数据可靠性
数据支持多副本:服务数据库实现跨AZ一主一备或一主多备存储,服务配置通过分布式软件跨AZ多副本存储。
l 数据一致性
通过数据库复制能力和分布式软件一致性协议实现数据的一致性。
l 网络分区容忍
在跨AZ场景下,AZ间光纤远程连接,可能出现网络分区的情况。主备和集群部件通过第三方仲裁来辅助仲裁,防双主,服务内及服务间有一致性的选主策略。
2.2 故障场景
l 站点故障:机房高温、掉电、火灾等基础设施故障,造成部署在该机房的管理服务完全不可用。
l 链路故障:两个机房间管理网络完全中断的场景。
l 服务组件在单机房内单点或多点故障时,服务可恢复。
2.3 设计方案
现在主流的容灾方案主要有同城跨AZ容灾和两地三中心容灾方案。主要简述同城跨AZ容灾的设计方案
同城跨AZ容灾主要分为跨AZ主备容灾和跨AZ双活容灾两种。
跨AZ主备容灾的方案主要是两个AZ部署同一套服务,两个AZ之间通过冗余光纤直连。数据通过自动备份自动将数据备份至备AZ所在服务的数据库。当一个机房发生故障时,将服务快速切换到另外一个机房,保证服务不断活。
跨AZ双活容灾的方案是两个AZ分别部署服务,同时对外提供服务,使用同一套跨AZ部署的主备数据库。通过负载均衡对外提供服务,负载均衡按照自身的健康机制定时检查服务状态,当AZ1发生故障时,负载均衡会检查到AZ1微服务故障,自动将流量切换到AZ2的服务。保证服务不断活,同时使服务的容量更大。具体方案如下图所示
- 点赞
- 收藏
- 关注作者
评论(0)