简介: 本文主要阐述 CDS 产品中 OSS 服务在容灾方面的部署形态以及实现的其本原理。 容灾功能可以保证用户一份数据在多个地方存在冗余备份,当某个机房出现极端异常(比如物理损毁)情况下,数据也不会出现丢失;也可以保障当某个机房出现不可用(比如断电)时,用户向外提供的功能也基本不受影响。

前言

对象存储服务(Object Storage Service,OSS)是阿里云推出的一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件;容量和处理能力支持任意弹性扩展,并提供多种存储类型以供选用户根据自己的业务特性去选择,可以帮助客户全面优化存储成本;提供数据持久性可达到 99.9999999999%(12个9),可用性可达 99.995%。

为了更好的将公有云的这种线上能力输出到线下,让线下客户也能享受到上述巨大的技术红利;同时,也为了帮助线下客户有效的降低硬件部署成本,阿里云推出了 Cloud Define Storage(CDS)。本文主要阐述 CDS 产品中 OSS 服务在容灾方面的部署形态以及实现的其本原理。容灾功能可以保证用户一份数据在多个地方存在冗余备份,当某个机房出现极端异常(比如物理损毁)情况下,数据也不会出现丢失;也可以保障当某个机房出现不可用(比如断电)时,用户向外提供的功能也基本不受影响。

容灾原理

OSS 包含一个非常重要的后台服务即数据复制服务 DRS(Data Replication Service)。当用户为 Bucket 开通了数据复制服务时(每一个数据复制服务的规则我们称之为复制边),每当用户上传一个文件, DRS 服务都会收到通知,然后 DRS 服务会自动异步的将该文件“搬运”到数据复制规则中的目的端,整个过程对用户完全透明,用户无需干涉。

上图是一个跨区域复制的例子,用户为源 Bucket 开通了数据复制服务并配置好了目的端 Bucket 后,DRS 会自动将数据从源 Bucket 复制到目标端 Bucket。

部署架构

简单介绍一下 CDS 线下部署的物理概念。从大到小逐层依次为Cloud(云)、Region(地区)、AZ(可用区)、Cluster(集群),Bucket(桶)。可以用图说明如下。外面一层可以包括一个或者多个里面一层。

下面以一朵云下面的多 Region 部署架构更为详细说明,同一个 Region 内部的两个集群 Bucket 之间可以做同城容灾,两个不同 Rregion 内部的两个集群 Bucket 之间可以做异地容灾。

容灾形态

根据用户不同的容灾场景需求,OSS 提供了不同的容灾形态,主要分为同城容灾,异地容灾(跨区域复制),跨云复制和两地三中心 四种场景。现在分别一一介绍他们的特点。

1、同城容灾

同城容灾的系统架构如下所示:

集群 A 和集群 A' 分别部署在同一个 Region 的两个 AZ,集群规划时候这两个集群就被规划成互为容灾集群。当在任何一个集群创建 Bucket 时候,后台都会为这个 Bucket 在两个集群之间开通好双向的数据复制边(也就是两条复制边),数据通过 Bucket 写入到任意一个集群,都能被 DRS 自动异步的复制到另外一个集群。当 Bucket所在的当前集群发生故障时候,可以通过运维平台一键切换将 Bucket 当前所在的集群切换到另外一个集群。由于 Bucket 的名字相同,用户访问 OSS 服务的 Endpoint 也相同,因此用户不需要修改访问 OSS 的域名;整个切换过程对用户透明,基本上不会影响到用户的业务。

同城容灾在用户的使用方面上,是一种非常方便的容灾形态。

2、异地容灾

异地容灾的系统架构图如下:

异地容灾也叫跨区域复制。由于集群的部署对用户不可见,因此没有画出内部集群部署,只画出了和用户使用相关的 Bucket、Region 和 Endpoint。

如上图所示,同一朵云下面的 Bucket 名字是不能相同的,BucketA 和 BucketB 分别创建在不同的 Region 上面,即 RegionA 和 RegionB,这两个 Region 的域名不相同,分别记为 RegionA-endpoint 和 RegionB-endpoint。用户访问两个 Bucket 的域名就分别是 BucketA.RegionA-endpoint 和 BucketB.RegionB-endpoint。两个 Bucket 之间也开通了两条复制边,数据在任何一个 Region 的 Bucket 写入,都会被 DRS 服务自动异步的复制到另外一个 Region 的 Bucket。当某个 Region 出现整体服务不可用时候,用户需要自己切换业务访问 OSS 的域名,从一个Bucket 的 Endpoint 切换到另外一个 Bucket 的 Endpoint,以保证用户自己的业务不受到影响。

和同城容灾形态相比,异地容灾虽然出现异常时候需要自己切换访问 OSS Bucket 的域名,但因为数据可以备份在两个不同的 Region,所以数据具有更高的安全性。

3、跨云复制

跨云复制的系统架构如下:

和异地容灾相比,跨云复制唯一不同的是两个 Bucket 分别部署在两朵云上,提供不同云之间的数据复制服务,以满足用户更多的容灾部署形态和需求。因为是两朵云,所以 Bucket 名字是可以相同,但两朵云下面的 Region 的域名仍旧是不相同的。

用户使用这种形式的容灾,当一朵云碰到异常时候,也需要用户自己切换访问 OSS Bucket 的域名,从一朵云切换到另外一朵云上。

4、两地三中心

两地三中心有两种形态。一种是同一朵云下面的两地三中心,即两个 Region 都是同一朵云下面的;另外一种形态是跨云的两地三中心,即其中一个 Region 在一朵云上,另外一个 Region 在另外一朵云上。由于实际部署中,跨云的两地三中心部署形态要多些,因此以跨云的两地三中心举例说明。

严格来说,跨云的两地三中心是属于跨云复制的一种,只是一个 Bucket(bucketA) 是同城容灾类型,另外一个 Bucket(bucketB) 部署在另外一朵云上,是同城容灾和跨云复制的组合;既 A 和 A' 之间是同城容灾,A/A' 和 B 之间是跨云。在任何一个集群写入数据 (A、A'、B),数据最后都会在所有的三个集群中都存在,是目前为止备份级别最高的一种容灾形态。

如上图所示, 源端 BucketA 内部对应两个集群,当一个集群出现异常时候,可以通过一键切换切换到另外一个集群上面,用户不需要改变访问 OSS 的 Bucket 域名;当其中一朵云整体出现异常时候,用户也可以通过修改访问OSS Bucket 域名方式,切换到另外一朵云上面。此种部署形态使数据分布在两个地方,三个集群(简称两地三中心),具有更好的数据安全性。

组合容灾

组合容灾是关于用户创造复制边的一种配置形式,主要是为了向用户提供更多的使用场景。主要分为一对多、多对一、源目一体形式。实际使用过程中,可以是这三种形式的某种或者多种的组合。

1、一对多

如下图所示,向 BucketA 写入数据,数据会自动异步复制到 BucketB 和 BucketC,即一个源端 Bucket 对应多个目标端 Bucket。

2、多对一

如下图所示,向 BucketB 或者向 BucketC 写入数据,数据会自动异步复制到 BucketA,即多个源 Bucket 对应相同的目标端 Bucket。

3、源目一体

如下图所示,用户写入 BucketA 的数据会异步复制到 BucketB,用户写入 BucketB 的数据会异步复制到 BucketC;需要注意的是,用户写入 BucketA 的数据不会通过这种形式被传递复制到 BucketC。BucketB 即作为数据复制的目标端,也作为数据复制的源端,所以我们简称为源目一体。

未来展望

容灾是用户使用数据过程中最基本的应用需求,只有做好了容灾,数据才可能在不同异常情况下都有备份不会出现数据丢失情况。OSS 经过十多年的技术沉淀和打磨,对外提供了丰富的容灾功能可以满足不同用户、不同场景的不同需求,目前已经被广泛的应用于银行、政企等客户,严格保障了客户的数据安全。在数据容灾方面,阿里云的 CDS-OSS 是具有核心竞争力的。

同时,CDS-OSS 的容灾功能仍在持续不断的打磨之中,未来会有更多新功能、新特性提供给用户,持续为用户带来价值。

原创作品:阿里云存储 禅居

原文链接
本文为阿里云原创内容,未经允许不得转载。

【CDS技术揭秘系列 01】阿里云CDS-OSS容灾大揭秘相关推荐

  1. 利用阿里云实现异地容灾的解决方案

    一.异地灾备防范于未然 2001年的"911事件"中,没有远程备份的企业都遭受了巨大损失,甚至部分公司因为核心业务部署在公司大楼而又没有远程备份,导致公司业务无法继续运营而倒闭.美 ...

  2. 万博智云新一代云原生备份容灾平台发布会成功举办,让企业备份容灾成为常态

    2022年8月28.29日,某财务软件遭遇大面积勒索病毒,北京.上海.山东等多个地区企业受影响.大部分企业因事先没有进行数据备份或因数据备份目标端设置与勒索病毒攻击目标路径相同,而造成业务中断,遭受巨 ...

  3. 阿里云架构师张先国:揭秘ECS倚天实例背后的技术

    11 月 15 日,阿里云 ECS 倚天实例正式开始商业化.此前,阿里巴巴宣布阿里云未来两年 20% 的新增算力将使用自研 CPU.11 月 5 日,云栖大会"倚天开启云原生算力新时代&qu ...

  4. [CentOS Python系列] 六.阿里云搭建Django网站详解

    本篇文章主要介绍讲述部署阿里云服务器Django网站环境,并通过IP地址访问网页的过程.写代码过程中往往第一步需要解决的就是配置开发环境,对于新手来说,这是非常头疼的事情,而当配置好之后或者对于老手来 ...

  5. [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  6. [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  7. 【技术认证介绍】阿里云认证介绍

    阿里云专业技术认证包含: 阿里云Apsara Clouder技能认证 阿里云助理工程师认证ACA级别(Alibaba Cloud Certified Associate) 阿里云专业工程师认证ACP级 ...

  8. [CentOS Python系列] 五.阿里云部署web环境及通过IP地址访问服务器网页

    假设我们服务器CentOS系统已经部署好了,现在我们需要向服务器上传一个HTML主页,通过IP地址展示我们的内容,如何实现呢?本篇文章主要介绍讲述部署阿里云服务器web环境,并通过IP地址访问网页的过 ...

  9. 阿里云携手达内教育培养大数据技术人才

    本文讲的是阿里云携手达内教育培养大数据技术人才,1月12日,达内教育集团与阿里云在北京召开新闻发布会,共同向外界宣布双方达成战略合作关系,共同培养云计算.大数据方向的技术人才. 按照协议,到2017年 ...

最新文章

  1. 关于python缩进的描述中_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是()...
  2. 参加Java培训需要注意什么
  3. linux服务器读写硬盘io,查看linux服务器硬盘IO读写负载
  4. 上银伺服驱动器接线图_伺服驱动器实际接线方法详解
  5. 在线图表编辑工具 draw.io 10.6.2 版本发布
  6. 1003 我要通过! (20 分) python版答案(全部代码都有注释)
  7. Win10系列:UWP界面布局基础4
  8. 如何跳出两层循环嵌套
  9. show status用法
  10. 类中内容在内存中到底是如何分配的呢?
  11. 三丰三坐标编程基本步骤_加工中心开机回零的两种基本方式及常见问题的应对方法...
  12. 质量超高的UI素材站!推荐UI\UX设计师
  13. Hidden Markov Model
  14. Oracle 学习笔记(四) Oracle表空间和数据文件
  15. 第10章 接口、继承与多态----对象类型的转换
  16. 《设计心理学》读书笔记
  17. android模拟器登录qq,手机 上来 个自动 Appium+Python3+夜神安卓模拟器 实现QQ自动登录...
  18. 机器翻译与人工智能研究报告(2018年第五期)
  19. 计算机中的随机存储器和只读存储器是什么,只读存储器和随机存储器的主要区别是什么...
  20. 易知微母公司袋鼠云获过亿元C+轮融资,深耕国产自研数字化领域

热门文章

  1. Android studio使用手册说明
  2. 2017c语言考核册答案,2017年电大《C语言程序设计》形成性考核册答案.doc
  3. postmapping注解参数说明_从零搭建后端框架:优雅的参数校验Validator
  4. python将图片存入数据库_使用python把图片存入数据库
  5. 如何修改ant-input的高度_水质自动采样器的流量计功能如何应用?
  6. 论文页眉奇偶页不同怎么设置_怎样设置Word页眉页脚奇偶页不同?
  7. mysql支持表情输入_让MySQL支持Emoji表情 mysql 5.6
  8. golang atomic load 性能_设计模式之Golang单例模式
  9. leetcode41 --- firstMissingPositive
  10. centos7 关闭selinux_Devops之LDAP部署安装(centos7+openLDAP+PhpLDAPAdmin)