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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文主要阐述 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 的容灾功能仍在持续不断的打磨之中,未来会有更多新功能、新特性提供给用户,持续为用户带来价值。


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


系列文章传递门:

  1. 【CDS技术揭秘系列 总篇】阿里云的云定义存储来了https://developer.aliyun.com/article/792044?spm=a2c6h.13148508.0.0.3eef4f0ecyZOjQ
  2. 【CDS技术揭秘系列 01】阿里云CDS-OSS容灾大揭秘https://developer.aliyun.com/article/792000?spm=a2c6h.13148508.0.0.3eef4f0ecyZOjQ
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
4月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
16天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
3月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
4月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
189 2
|
4月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
187 1
|
4月前
|
存储 弹性计算 对象存储
预留空间是什么?阿里云OSS对象存储预留空间说明
阿里云OSS预留空间是预付费存储产品,提供折扣价以锁定特定容量,适用于抵扣有地域属性的Bucket标准存储费用及ECS快照费。通过购买预留空间,如500GB通用预留+100GB标准-本地冗余存储包,用户可优化成本。
203 4
|
4月前
|
人工智能 对象存储
【阿里云AI助理】自家产品提供错误答案。阿里云OSS 资源包类型: 下行流量 地域: 中国内地通用 下行流量包规格: 300 GB 套餐: 下行流量包(中国内地) ,包1年。那么这个是每月300GB,1年是3600GB的流量;还是1年只有300GB的流量?
自家产品提供错误答案。阿里云OSS 资源包类型: 下行流量 地域: 中国内地通用 下行流量包规格: 300 GB 套餐: 下行流量包(中国内地) ,包1年。那么这个是每月300GB,1年是3600GB的流量;还是1年只有300GB的流量?
128 1
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
|
6月前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56595 7
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用

相关产品

  • 对象存储