【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 的容灾功能仍在持续不断的打磨之中,未来会有更多新功能、新特性提供给用户,持续为用户带来价值。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何促合作共赢?技术人的一点经验分享

简介: 本文作者将通过与詹韦团队一起合作的《树懒平台》,分享在工作过程中,我们什么情况下会有合作诉求?有了合作诉求之后,如何寻找对的人?锁定候选人之后,如何打动对方促成合作?合作…

不记得 Git 命令? 懒人版 Git 值得拥有!

作者 | Eason来源 | 程序员巴士Git的强大是所有开发者都心知肚明的事情,但是其多样的命令令人很是难受。不过在Github上有着这么一个开源项目lazygit[1]。Lazygit是由Jesseduffield开发并维护的项目,其代码托管在Github。通过使用Lazygit,我们…

Dubbo3.0|阿里巴巴服务框架三位一体的选择与实践

简介: 服务框架就像铁路的铁轨一样,是互通的基础,只有解决了服务框架的互通,才有可能完成更高层的业务互通,所以用相同的标准统一,合二为一并共建新一代的服务框架是必然趋势。Dubbo3.0 是 Dubbo2.0 与 HSF…

全球首款乘云而来的存储产品CDS诞生!

9月22日,阿里云发布全球首款“云定义存储”(Cloud Defined Storage,CDS)产品。作为一款本地部署的分布式存储产品,阿里云CDS拥有与公共云存储相同的技术架构,让企业客户在本地也能部署和使用与公共云一致的…

性能提升3倍、时延降低70%,阿里云企业级存储ESSD云盘再升级!

9月22日,阿里云存储年度新品发布会上,阿里云基础产品资深产品总监陈起鲲发布了其全球领先的旗舰级块存储产品ESSD的两款新规格(ESSD Auto PL、ESSD PL-X),并宣布了新增的多项企业级能力。 据了解,ESSD是阿…

一图看懂,什么是“云定义存储”

世界的诞生是从盘古开天辟地开始 而数据的存储 则由在龟甲上刻下的第一个字开始 经过数千年发展 数据存储也从最初的 龟壳、竹简等材料逐步进化到磁带、硬盘甚至云上 在之前几千年里 人们对于数据存储的需求并没那么高 仅仅通过纸张就能将所有数据记录下来 随着第一台计算机面…

Android 13 第一个开发者版本来了,网友直呼:Android 12 还没玩透!

整理 | 苏宓出品 | CSDN(ID:CSDNnews)2 月 10 日,Google 宣布 Android 13 首个预览版面向开发者开放,此版本重点聚焦隐私和安全、提供开发者生产力、应用兼容性,并保持与 OpenJDK 11 更新一致、提供主题图标…

「技术人生」第6篇:技术同学应该如何理解业务?

简介: 本文以大量理论论述解析业务,并提供多种基于不同场景的实操方法,帮助技术同学以科学、合理的方式开展日常工作、指导团队开展业务建设,保障顶层设计的落地执行。 一. 背景 目前已经发布《技术一号位的方法论》系列文章其实…

参数设置_变频器基本参数设置

工业设备的使用如何达到最大效能以及最佳效果,需要使用人员充分了解设备性能以及工艺要求,所以变频器参数设置或者优化是非常重要的环节,古人云失之毫厘差之千里就是这个道理。一、变频器基本参数设置参数设置可以是手持编程器操作&#xff0…

Morphling:云原生部署 AI , 如何把降本做到极致?

简介: Morphling 本意是游戏 Dota 中的英雄“水人”,他可以根据环境要求,通过灵活改变自身形态,优化战斗表现。我们希望通过 Morphling 项目,实现针对机器学习推理作业的灵活、智能的部署配置改变,优化服务…

datax参数设置_DataX Web数据增量同步配置说明

一、根据日期进行增量数据抽取1.页面任务配置打开菜单任务管理页面,选择添加任务按下图中5个步骤进行配置1.任务类型选DataX任务2.辅助参数选择时间自增3.增量开始时间选择,即sql中查询时间的开始时间,用户使用此选项方便第一次的全量同步。第…

Node18 即将支持 import HTTP资源!

作者 | 零一来源 | 前端印象最近看到Node官方提交了一条commit ,并且已经合入 master分支 ,如下图所示:node master commit由此可见,Node18可能会支持一个非常 nice 的功能,那就是 支持 import 远程HTTPS资源和本地的H…

MYSQL深潜 - 剖析Performance Schema内存管理

简介: 本文主要是通过对PFS引擎的内存管理的源码的阅读,解读PFS内存分配及释放原理,深入剖析其中存在的一些问题,以及一些改进思路。本文源代码分析基于Mysql-8.0.24版本。 作者 | 之枢 来源 | 阿里技术公众号 一 引言 MYSQL Pe…

基于MaxCompute SQL 的半结构化数据处理实践

简介: MaxCompute作为企业级数据仓库服务,集中存储和管理企业数据资产、面向数据应用处理和分析数据,将数据转换为业务洞察。通过与阿里云内、外部服务灵活组合,可构建丰富的数据应用。全托管的数据与分析解决方案,可简…

file_get_contents请求失败处理_SpringCloud Gateway网关处理请求过程中遇到400Bad Request问题解决方案...

大家在使用springcloud自己的gateway作为网关服务时,可能会不小心遇到自定义的Filter处理请求Request报文时出现400的错误,而且这个错误还不是每次请求都必现,额什么意思?难不成你是说请求还时好时坏?bingo&#xff01…

CSDN企业数字化之路 ——「低代码」发展研讨会北京站现场实录大放送

作者 | 千鸟 出品 | CSDN云计算(ID:CSDNcloud) 2021年底,CSDN面向行业开发者和高校学生开发者,展开了关于“低代码”的开发者调研活动。基于调研数据,CSDN提出了对低代码发展趋势的五大方向。在随后举行的 …

MaxCompute 存储设计

简介: 存储策略该怎么设计 写这篇存储规划的文章主要是想告诉大家该如何给存储做一个规划,在关系数据库的时代存储昂贵且珍惜,掰手指头花钱是存储规划的常态。但是到了大数据时代大家又立即就都变成印美元的美国政府了,感觉存储很…

Serverless Devs 2.0 开箱测评:Serverless 开发最佳实践

简介: 当下,Serverless 概念很火,很多同学被 Serverless 的优势吸引过来,比如它的弹性伸缩,免运维,高可用,资费少。但真正使用起来去落地的时候发现问题很多,大型项目如何组织函数&a…

【CDS技术揭秘系列 总篇】阿里云的云定义存储来了

简介: 全新发布的云定义存储 CDS 和传统的存储阵列、分布式存储、软件定义存储的区别在哪里?阿里云存储团队如何看待将来存储的发展趋势?本文邀请了 CDS 研发团队的核心技术负责人为大家揭开围绕着阿里云 CDS 的种种谜团。 云定义存储&#…

TSDB时序数据库时序数据压缩解压技术浅析

简介: 目前,物联网、工业互联网、车联网等智能互联技术在各个行业场景下快速普及应用,导致联网传感器、智能设备数量急剧增加,随之而来的海量时序监控数据存储、处理问题,也为时序数据库高效压缩、存储数据能力提出了更…