容灾的定义
容灾系统是指在相隔较远的异地,建立两套或多套功能相同的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会记录断点,在从故障恢复后,会从断点开始,继续传输任务
公共云灾备方案-数据备份
云灾备的意义
容灾的分类和选择有很多。在阿里云平台实现容灾,可以实现更细粒度的控制,可以通过更多已经产品化的功能模块实现容灾,提供更好的RPO、RTO,更高的性价比。阿里云的是按需使用的服务,仅仅需要为您正在使用的服务和规模付费,这对容灾一个非常大的优势。
对容灾而言,需要资源时,很重要、要求快速提供,但仅仅是在灾难事件发生时才需要,云恰恰就符合这个特点:
无论你用或者不用,云就在那里。