【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.详细使用方法看代码 我下面展示的返回 ...
随机推荐
- 如何在UE4中播放本地视频文件?
在UE4中有一套媒体框架方法,它根据视频源的不同,对应的播放方式也不一样,支持的视频源有本地视频文件.影像序列.视频流.实时视频截图.播放形式可选择在场景内的静态网格上播放或者以UI的形式播放.本文主 ...
- 聊一下Button事件、命令、行为的触发顺序
1.我们新建一个xaml <StackPanel Width="200" Margin="20"> <Button Height=" ...
- cadence板图设计基本操作
基于cadence的四位全加器设计及仿真. 1.实验原理 板图,也就是芯片的原理图.通过学习板图的绘制,可以有效地提高对芯片的工作原理的认识.在版图设计中,需要掌握许多的规则,能够按照特定的规范优化, ...
- KingbaseESV8R6使用pageinspect插件观察空值
前言 在KingbaseES元组头数据中,有一个t_bits数组,用于存储空值位图.当元组中没有null值的时候,t_bits是空的,当元组有null值的列时,t_bits使用一个bit来表示列是否为 ...
- Scala 复杂分词求和(二元组)
1 package chapter07 2 3 object Test18_ComplexWordCount { 4 def main(args: Array[String]): Unit = { 5 ...
- 初识urllib与requests
urllib与requests 一.urllib的学习 学习目标 了解urllib的基本使用 1.urllib介绍 除了requests模块可以发送请求之外, urllib模块也可以实现请求的发送,只 ...
- 在typescript中,Omit是什么意思
在TypeScript中,Omit<Type, Keys> 是一个工具类型(utility type),它用于创建一个新的类型,这个新类型是从现有类型(Type)中排除了某些指定的属性(K ...
- 学习 XSLT:XML文档转换的关键
XSL(eXtensible Stylesheet Language)是一种用于 XML 的样式语言. XSL(T) 语言 XSLT 是一种用于转换 XML 文档的语言. XPath 是一种用于在 X ...
- Grafana 系列-统一展示-4-AWS Cloudwatch 数据源
系列文章 Grafana 系列文章 AWS Cloudwatch 数据源 对于 AWS Cloudwatch, 主要在于 3 种不同的认证方式: AWS SDK Default IAM Role AK ...
- Perm 排列计数——Lucas&dfs
思路:这道题给出的公式看明白后即可得出正解,我们可以把他想象成一颗二叉树,任意一个点的任意一个子孙一直除以2后最终都会到达一终点,终点则为以该点为根的子树的最小值. so--我们可以将根节点作为最后终 ...