【CDS技术揭秘系列 01】阿里云CDS-OSS容灾大揭秘
简介: 本文主要阐述 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容灾大揭秘的更多相关文章
- 阿里云存储OSS之九大使用技巧
http://www.biphp.com/cloud-computing/%E9%98%BF%E9%87%8C%E4%BA%91%E5%AD%98%E5%82%A8oss%E4%B9%8B%E4%B9 ...
- 阿里云基于OSS的云上统一数据保护方案2.0技术解析
近年来,随着越来越多的企业从传统经济向数字经济转型,云已经渐渐成为数据经济IT新常态.核心业务系统上云,云上的业务创新,这些都产生了大量的业务数据,这些数据也成为了企业最重要的资产.资源. 阿里云基于 ...
- 【阿里云产品公测】大数据下精确快速搜索OpenSearch
[阿里云产品公测]大数据下精确快速搜索OpenSearch 作者:阿里云用户小柒2012 相信做过一两个项目的人都会遇到上级要求做一个类似百度或者谷歌的站内搜索功能.传统的sql查询只能使用like ...
- 云计算:创业的好时机——上海够快网络科技有限公司总经理蒋烁淼专访(评价阿里云的OSS的4个优点)(够快科技正式宣布已成功挂牌新三板)
云存储是云计算目前的热点之一,Dropbox.Box等产品的风靡,公司因此获得极高估值,都印证了这一点.但云存储对技术和资金要求都比较高,竞争也非常激烈,挑战巨大.国外云存储公司有亚马逊的云平台作为支 ...
- 阿里云基于OSS的云上统一数据保护方案2.0正式发布
近年来,随着越来越多的企业从传统经济向数字经济转型,云已经渐渐成为数据经济IT新常态.核心业务系统上云,云上的业务创新,这些都产生了大量的业务数据,这些数据也成为了企业最重要的资产.资源.阿里云基于O ...
- 阿里云CDN+OSS完成图片加速
我们使用React Native开发APP,在列表中显示图片时,列表框经常出现长时间的空白.经过稍微研究和参考其他人的经验,我们知道React Native的ListView以及后来改进版的FlatL ...
- 博客中新浪图床 迁移至 阿里云的OSS
前言 因为之前有个新浪的图床,还挺好用,而且免费,自己博客的图片上传到其上面也挺方便的,但是,前几周吧,突然图片就不能访问了,之前本来是想通过添加 meta 头来解决的,但是发现没有效果.于是就自己搞 ...
- 阿里云OSS同城冗余存储正式商业化,提供云上同城容灾能力
近日,阿里云正式发布OSS同城冗余存储产品.这是国内目前提供同城多AZ冗余部署能力覆盖最广的云上对象存储产品,可以实现云存储的同城双活,满足企业级客户对于“发生机房级灾难事件时数据不丢失,业务不中断” ...
- 阿里云系列——7.阿里云IIS系列详解(过程+通用+最新)
网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 先讲IIS系列,Linux部署以后再继续讲 先打开主机管理平台,确认域名绑定 ...
- 01.阿里云SDK调用,获取ESC主机详细信息
一:通过python SDK获取云主机的详细信息 1.创建Accessky码(不做展示) 2.通过pip安装SDK模块,这个阿里云帮助里面有,也不做详细展示. 3.详细使用方法看代码 我下面展示的返回 ...
随机推荐
- C# PaddleOCR 车牌识别
效果 车牌识别测试地址 http://47.108.88.211/manual/VehPlateTest.html 通用OCR识别测试地址 http://47.108.88.211/manual/OC ...
- C# MySQL导出表结构到Excel
软件如图,输入基础信息,点击"测试登录" 连接MySQL需要安装驱动,如下图 连接成功如下图 登录成功后,自动获取所有表信息 双击表名称,右侧查看表结构信息 导出表结构效果如下图 ...
- KingbaseES V8R6 表空间加密
透明存储加密优势 透明存储加密可确保加密敏感数据满足合规性要求,并提供简化加密操作的功能,优势如下: 作为安全管理员,您可以确保敏感数据已加密,因此在存储介质或数据文件被盗或入侵者试图从操作系统访问数 ...
- windows系统设置状态栏时间显示读秒
windows系统设置状态栏时间显示读秒 要实现的效果如下图: 一.打开注册表 WIN+R输入[cmd]之后输入[regedit]回车 二.修改注册表 在注册表地址栏输入: HKEY_CURRENT_ ...
- MySQL查询表结构信息SQL语句
一.获取某数据库下的所有数据表名 SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA ...
- 【已解决】Android学习---注册和登录功能模块合并报错以及解决办法
问题① 我在另外一个项目里写了一个注册和登录功能的几个文件,当我想把这些代码和另一个文件合起来的时候就出现了问题. 首先不可以直接把另外一个项目的某个文件直接复制过来, 最好的办法是重新新建一个相同名 ...
- 【已解决】xml映射找不到类名java.lang.ClassNotFoundException
XMLUtil文件里的Class.forName 参数要写相对于项目根目录的绝对路径,除了类名要加上对应的包路径!
- 3D Object Detection Essay Reading 2024.04.01
Swin Transformer paper: https://arxiv.org/abs/2103.14030 (ICCV 2021) code:https://github.com/microso ...
- #树状数组,哈希#洛谷 6687 论如何玩转 Excel 表格
题目 分析 首先一列的数不会发生变化,只是交换列, 并且交换列的时候奇数列变成偶数列取反, 偶数列变成奇数列取反,考虑直接将偶数列全部取反, 那只需要交换列就可以了,奇数列交换到偶数列会取反, 奇数列 ...
- MogDB/openGauss存储过程的修改
MogDB/openGauss 存储过程的修改 SQL 中没有提供显式的存储过程修改命令,通常需要通过 REPLACE 关键字来指定使用当前的存储过程替代之前的同名存储过程. 将前文定义的存储过程替换 ...