亚马逊AWS官方博客

企业备份&容灾系列 — 使用AWS为本地数据中心实现Cold backup & Pilot light容灾解决方案

该方案讲述了常见的企业IT基础架构及应用系统从On-premise环境到AWS云端的两种灾备场景。

SLA

Cold Backup RTO = 24小时, RPO = 24小时 Pilot Light RTO = 4小时, RPO = 4小时

架构图

  • 数据复制关系:其中黄色线条代表Cold backup复制,蓝色线条代表Pilot light复制 
  • 网络:为了进行数据复制与同步,需要将本地IDC网络与云端VPC进行连接,采用以下选项:
    • VPN:使用托管VPN服务,通过互联网建立 Site to Site VPN 进行连接
    • 专线:使用Direct Connect服务进行专线连接,提供 1Gb 至 10Gb 带宽。亦可通过合作伙伴提供小于1Gb带宽的专线连接。
  • 本地IDC基础架构:
    • VMware/Hyper-V:
      • Web服务器
      • 常见单机或2层架构办公系统,如OA
    • 物理服务器:
      • Redis
      • MySQL数据库
      • 文件服务器
  • Pilot Light部分:
    • MySQL数据库

解决方案

非结构化数据服务:NAS(文件共享) 利用AWS Storage Gateway File Gateway模式来实现非结构化数据的同步与灾备

  • 将Storage Gateway虚拟机镜像部署于本地 IDC VMWare 虚拟化平台
  • 定期rsync将NAS服务器文件拷贝至Storage Gateway
  • Storage Gateway自动将文件同步至S3存储桶
  • 云端虚拟机使用s3fs将S3存储桶挂载至本机卷进行文件访问

结构化数据服务(MySQL数据库)

  • Cold冷备份模式
    • 利用XtraBackup工具或者原生备份工具对MySQL数据库进行定时备份并备份文件上传至云端
  • Pilot Light模式
    • 通过MySQL Binlog复制实现较好的RPO指标

Web服务器镜像

  • 可将本地IDC中运行于vmware中的虚拟机导出成.ova格式,使用 ec2 import 命令行导入至云端
  • 在应用简单的情况下也可在云端重新部署

常见单机办公系统或者2层架构,如OA等

  • AWS SMS(Server Migration Services) 支持 VMware 与 Hyper-V 环境,可以使用SMS迁移目前虚拟环境当中的虚拟机直接到AWS平台中成为AMI
  • 在AWS平台中可以方便使用AMI进行恢复或者进行灾难演练

云上快速恢复的脚本已经上传至 GitHub

执行步骤:

  1. 建立本地与云中的复制关系
    1. 数据库复制
      • Cold Backup
        • 安装 XtraBackup 工具,进行全量、增量备份及还原,具体步骤可参考
        • 将生成的备份文件存入NAS文件服务器
        • 由Storage Gateway同步至S3存储桶
      • Pilot Light
        • 配置步骤参考:Mysql主从复制搭建及详解
        • 开启本地MySQL服务器的Binlog
        • 开启本地MySQL服务器GTID
        • 配置云端RDS MySQL的主节点为本地MySQL服务器
        • 开始进行Binlog同步
    2. 使用VM Import方式进行镜像复制
      • 在 VMWare vSphere 中将虚拟机导出为OVF格式,参考 VMWare 在线文档
      • 将导出的 OVF 格式虚拟机及磁盘文件上传至S3存储桶
      • 使用 import-image 命令导入镜像及磁盘文件
    3. 在线虚拟机复制方式 – AWS SMS:
    4. 非结构化数据复制
      • 使用 rsync 将 NAS 存储中数据定时同步至 Storage Gateway,进一步同步至S3, 参考文档
  2. 故障切换,以具有 MySQL, Redis 环境为例
    1. 如果云中部署 AD,请将 Active Directory 切换 FSMO
    2. 将 RDS MySQL 由从节点更改为主节点,中断 Binlog 复制
    3. 启动 ElastiCache 集群
    4. 调整 Auto Scaling Group 节点数量启动 EC2 Web 服务器
    5. 调整应用配置
    6. 验证与测试
    7. 切换 DNS 记录
  3. 内部系统故障切换,以SMS、VM Import等备份成AMI为例:
    1. 确保VPN,专线到AWS VPC畅通,以保证后续内部系统的访问
    2. 启动VM Import,SMS等系统的AMI
    3. 调整应用配置
    4. 对系统进行验证
    5. 切换DNS记录,使用容灾系统
  4. 系统回切
    1. 确保和验证IDC与云上网络的连通性
    2. 等待Active Directory的数据同步,切换FSMO到本地Active Directory服务器
    3. 从RDS MySQL进行备份,恢复至本地数据中心
    4. 配置从RDS MySQL到本地MySQL的主从复制(GTID)
    5. 系统验证与测试
    6. 切换DNS记录
    7. 调整云端Web服务器数量
    8. 终止 ElastiCache 集群

成本分析

AWS ZHY宁夏区域

    service type hours 1year remarks
Cold冷备份 本地工作负载迁移到 AWS SMS 免费使用SMS
SMS复制时创建EBS快照 AMI (20GB) 0.277/GB/月 66.48  
本地系统初始数据传输上云 Snowball 5000元/次      
数据备份至S3 S3 (1TB) 0.1755/GB/月   2156.544  
容灾演练(每半年一次) EC2/EBS 取决于是否需要灾难演练以及需要容灾演练的系统和演练周期,通常占cost比例较小
      总计 2223.02  
      含税价 2356.41  
  service type hours 1year remarks
Pilot Light 模式 数据库资源 RDS db.m4.large (single-AZ)/EBS 200G 1.1733 7131.2  
远程接入 VPN m5.large (linux) 0.678 1720  
      总计 11074.22  
      含税价 11738.68

本篇作者

梁风飚

梁风飚,AWS解决方案架构师,致力于云计算方案架构设计、应用和推广。具有15年IT行业工作经验,擅长开发和大数据领域,历任软件开发工程师,项目经理,系统架构师。在加入AWS之前,曾服务于DellEMC, Microsoft等公司。

本篇作者

张洋

张洋是AWS中国团队的解决方案架构师,负责基于AWS的云计算方案架构咨询和设计。同时致力于AWS云服务在国内的应用和推广。现专注于HPC超算与物联网相关领域的研究。在加入AWS之前,他曾服务于EMC, Oracle, Flextronics等跨国IT公司。张洋乐于分享,并且是一名业余游泳教练,热爱游泳和跑步,已经完成7次马拉松比赛。