容灾的定义
容灾系统是指在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。
目前常见的容灾方案基本上模式比较简单:
1、数据库冷备:每天备份一次数据库,保存在磁带或光盘上;
2、双机本地热备:共享磁盘阵列,阵列做RAID(冗余校验),即一份数据存在不同盘阵上并多存几份,保证坏一个盘不影响数据读写;
3、数据库热备:建立数据库灾备中心,与主库实时进行数据同步,同时应用系统保持文件实时同步,保证引用系统版本最新
容灾的类型
业务场景
数据问题导致需要进行数据恢复 起因: 程序Bug,数据被污染; 误操作,数据被删除。 需求: 数据可备份; 数据可恢复。 故障或灾难发生后应用持续可用 起因: 机房发生故障; 城市级别的自然灾害。 需求: 应用具备同城容灾能力; 应用具备异地容灾能力。传统解决方案
靠底层存储来解决一切问题容灾的目标
RTO:是一个系统宕了之后多久恢复到应用恢复可用的时间目标 RPO:是一个应用的数据从最后一个备份到灾害事件发生的时间,是应用容许丢失的数据目标,但以时间维度衡量
容灾的演进类型
容灾演进的包涵关系
备份和恢复
实施要点: 1、选择合适的备份方式 2、确保正确的数据保留策略 3、确保数据的安全,包括加密和访问控制 4、周期的进行恢复测试
最小版本
准备工作要点: 1、确保应用系统所需要的软件包在阿里云都具备 2、对于关键的服务器集群创建ROS模板 3、考虑自动化的创建云上的资源 涉及产品: ECS、RDS、DTS、ROS
最小版本恢复
恢复工作要点: 1、通过ROS模板启动云上的ECS资源 2、升级数据库的规格以适配新增的处理能力要求 3、修改DNS记录指向灾备环境SLB 4、安装和配置不在ROS模板内的系统和应用 涉及产品: ECS、RDS、DTS、ROS
热备
准备工作要点: 1、创建并维护ROS模板 2、在阿里云ECS上运行最小化版本的应用环境 3、及时同步生产环境的补丁、软件更新以及配置文件到云上的环境 4、考虑自动化创建云上的资源 涉及产品: SLB、ECS、RDS、DTS、ROS
热备恢复
恢复工作要点: 1、增加ECS服务器的数量应对真正的生产负载(水平扩展) 2、对于无法通过水平扩展的应用,加大ECS的规格,完成负载能力的提升(垂直扩展) 3、修改DNS记录到灾备环境SLB 4、升级数据库的规格以适配新增的应用负载 涉及产品: SLB、ECS、RDS、ROS
双活
准备工作要点: 1、在云上创建与生产环境一致的应用环境 2、设定DNS的权重,分配流量到两个不同的环境,创建自动failover的流量分配机制 涉及产品: SLB、ECS、RDS、DTS、ROS
双活恢复
恢复工作要点: 1、手工切换dns记录,或者通过DNS的failover机制自动将所有流量全部切到云上环境 2、切换App服务器的数据库调用到云上本地数据库 3、考虑自动扩展云上环境的规模与规格以适应新增的负载 涉及产品: SLB、ECS、RDS、ROS
容灾体系建设
同城容灾:同城不同IDC机房之间的断网断电容灾等。 异地容灾:单元或者区域不可用下的服务重路由。中心容灾。同城容灾
ADHA集群:用于保障同城主备之间的高可用性。异地容灾
在业务流量切换之前,必须参考异地复制时延; 引入禁写规则,对于之前在源地域的业务用户,进行短时间禁写; 流量切换后,等异地同步时延消除后,放开禁写规则; 基于其它原因,在未消除时延情况下开起的禁写,需要在业务层面引入对帐系统; 基于其它原因,在未消除时延情况下开起的禁写,需要在数据库层面引入安全复制技术(如前镜像匹配)等。
云上异地灾备架构
方案优势: 1、云DNS提供智能解析、方便流量分配或容灾切换。 2、提供VPC之间的高速通道,提供统一发布、部署、配置变更等工作 3、产品化提供OSS不同区域之间的非结构化数据copy 4、通过数据传输服务(DTS)提供不同区域之间的结构化数据同步
数据同步DTS
技术架构当DTS服务节点/集群/站点出现故障时,传输任务会自动透明的切换至健康的节点/集群/站点,业务无感知 自动断点续传机制,在网络/数据源/DTS组件出现故障时,DTS会记录断点,在从故障恢复后,会从断点开始,继续传输任务