服务安全最重要的是数据安全,大多数灾备都是保证服务高可用和数据安全性。
目录
务不断电方案:
- 异地多活灾备
- UPS不断电
异地多活灾备
阿里云数据库异地多活解决方案使用以下阿里云核心产品,按照架构设计原则提供数据层多活解决方案。
DRDS
按照之前说的业务数据拆分的维度,阿里云DRDS有两种集群分别支持买家维度与卖家维度:
- unit 模式的DRDS集群:多地用户分别在本地域读写本地域的数据,且本地域的数据会和中心数据做双向同步。
- copy 模式的DRDS集群:此集群数据在中心数据库写,完成后全量同步到各个单元。 需要注意的是,DRDS层面需要增加对数据写入路由的判断:如果是跨单元的写,则判断为非法操作并抛出异常,确保数据不会跨单元写。
更多DRDS的介绍请参考分布式关系型数据库DRDS一文。
DTS
数据复制是数据库多活设计关键的一环,其中数据复制的正确性是第一位,同时效率也很关键。阿里云DTS支持多重的check ,避免循环复制(用事务表,或者thread_id方案), 采用并行复制(串行的分发,冲突检测,并行的执行)、大事务切割来保证最终一致性。
数据校验也是关键的一环,阿里云DTS 通过全量校验工具(TCP)和增量校验工具(AMG)来保证实时/定时检查中心和单元的数据准确性,确保线上数据的万无一失。
更多的数据传输相关内容请参考数据传输服务一文。
HDM
阿里云HDM提供了DRDS集群的搭建、同步链路的创建、多活的数据库监控、数据校验、集群扩缩容以及自动化的容灾等服务,都可通过HDM完成,通过HDM实现了异地多活场景下数据库的管理。
更多的数据管理请参考混合云数据库管理一文。
两地容灾切换方案
容灾是异地多活中最核心的一环, 以两个城市异地多活部署架构图为例:
- 在两个城市(城市1位于华南1地域、城市2位于华东1地域)均部署一套完整的业务系统。
- 下单业务按照“user_id”% 100 进行分片,在正常情况下:
- [00~49]分片所有的读写都在城市1的数据库实例主库。
- [50~99]分片所有的读写都在城市2的数据库实例主库。
- “城市1的数据库实例主库”和 “城市2的数据库实例主库”建立DTS双向复制。
当出现异常时,需要进行容灾切换。可能出现的场景有以下4种:
序号 | 异常情况 | 操作 |
---|---|---|
1 | 城市1数据库主库故障 |
|
2 | 城市1所有APP Server故障 | 有两种处理方案:
|
3 | 城市1所有数据库故障 | 有两种处理方案:
|
4 | 城市1整体故障(包括所有APP Server +数据库等) |
|
将第2种、第3种异常情况,全部采用第2种方案进行处理,那么不管是所有的APP Server异常、所有的数据库异常、整个城市异常,就直接按照城市级容灾方案处理,直接将APP Server、数据库切换到到另一个城市。
多城异地多活
多城市异地多活模式指的是3个或者3个以上城市间部署异地多活。该模式下存在中心节点和单元节点:
- 中心节点:指单元节点的增量数据都需要实时的同步到中心节点,同时中心节点将所有分片的增量数据同步到其他单元节点。
- 单元节点:即对应分片读写的节点,该节点需要将该分片的增量同步到中心节点,并且接收来自于中心节点的其他分片的增量数据。
下图是3城市异地多活架构图,其中华东1就是中心节点,华南1和华北1是单元节点。
单元城市级故障
当单元城市出现故障,业务需要切换时,以华北1城市级故障为例:
- 容灾
- 华北1(单元)的全部数库流量切换到华东1(中心);
- 华北1(单元)数据库到华东1(中心)数据库的DTS数据同步链路停止,并记录同步位点
- 分片[70-99]的读写切换到华东1(中心)
- 恢复
- 重建华北1(单元);
- 华北1(单元)数据迁移和同步完成后,停止分片[70-99]在华东1(中心)的读写;
- 停止华东1(中心)到华北1(单元)分片[70-99]的数据同步;
- 创建华北1(单元)到华东1(中心)的数据同步;
- 将分片[70-99]的读写切换到华北1(单元);
- 华北1(单元)的数据库主库开启写入;
- 检查;
中心城市级故障
当中心城市出现故障,业务需要切换时,以华东1城市级故障为例:
- 容灾
- 华东1(中心)的全部数库流量切换到华南1(单元);
- 华东1(中心)数据库到华南1(单元)数据库的DTS数据同步链路停止;
- 华东1(中心)数据库到华北1(单元)数据库的DTS数据同步链路停止;
- 华南1(单元)数据库到华东1(中心)数据库的DTS数据同步链路停止;
- 华北1(单元)数据库到华东1(中心)数据库的DTS数据同步链路停止;
- 新增华南1(单元)数据库到华北1(单元)分片[30~99]的DTS数据同步链路;
- 恢复
- 重建华东1(中心);
- 华东1(中心)数据迁移和同步完成后,停止分片[30-69]在华南1(单元)的读写;
- 停止华东1(中心)到华南1(单元)分片[00-29]的数据同步;
- 创建华东1(中心)到华南1(单元)的数据同步;
- 创建华东1(中心)到华北1(单元)的数据同步;
- 将分片[00-29]的读写切换到华南1(单元);
- 华南1(单元)的数据库主库开启写入;
- 检查;
UPS
UPS(Uninterruptible Power System ),即不间断电源,是一种含有储能装置,以逆变器为主要组成部分的恒压恒频的不间断电源。主要用于给单台计算机、计算机网络系统或其它电力电子设备提供不间断的电力供应。当市电输入正常时,UPS 将市电稳压后供应给负载使用,此时的UPS就是一台交流市电稳压器,同时它还向机内电池充电;当市电中断(事故停电)时, UPS 立即将机内电池的电能,通过逆变转换的方法向负载继续供应220V交流电,使负载维持正常工作并保护负载软、硬件不受损坏。UPS 设备通常对电压过大和电压太低都提供保护。
UPS组成
1、总控站(后台)
由监控站、工程维护站、系统接口等构成,运用管理分析软件处理接收的数据并通过Web发布。工程维护人员登录服务器可查看全厂所有在线设备的运行状态以及完善的历史、实时数据分析统计。
2、现场设备控制站(ES)
根据现场设备需要,可选择监控功能仪或设备运行状态信息采集仪(EII)。EII通过RS-232/485端口与电能表、电池采集模块、直流屏、UPS等智能设备通信,将监测数据转换为符合通信协议的数据包,接入局域网,传送至主控室服务器。独立完整的ES包括以下部分。
2.1、系统主机。由下行串口通道、数据处理器、显示器、上行串口通道组成。下行串口通道通过RS-485总线访问电池电压采集模块,采集数据,管理电压采集模块,数据处理器完成数据解压、数据计算、存储管理,将处理后的数据一部分送往显示器,另一部分由上行串口通道发送至协议处理器,或传给上一层管理系统。
2.2、数据采集模块组。可根据用户需要确定采集数据要求及配置相应采集仪器,一般由电池电压采集模块、电流、温度、功率等组成,模块间隔离良好、绝缘性强,可靠性、安全性高。数据采集可分组,每个模块可对一定数量电池进行电压采集,可配备电流、温度传感器,模块间与系统主机一般采用RS-485连接。
2.3、协议处理器。具有协议处理程序的接口板,处理各种通信协议。可实现:①将主机发送的电池电压、电流、温度等信息按约定协议编码、打包、发送至远程服务器;②将远程服务器发出的遥控、遥调指令经过解码发给主机,实时控制。
2.4、放电模块。可快速测出电池直流内阻,瞬间测试电池性能,大功率放电模块可提供瞬间大电流冲击负荷。
2.5、远程服务器。实现局域网内计算机数据通信,通过局域岗远程访问现场的蓄电池监测系统,接收、分析数据,通过Web服务器发布数据。
3、通信网络
联网现场设备各分站(采集监控站),采用光纤作为数据通信主干线,组成全厂UPS和直流电源在线监控的局域网。
UPS服务商
(京东搜索结果):
国内比较靠谱的华为UPS一般是首选。