腾讯云COS对象存储占据数据容灾C位
说到公有云容灾,大家首先想到的是云上数据备份。
然而,随着企业核心业务逐渐从线下迁移到云上,客户提出了更高的要求。如何确保云上业务的高可用、数据的高可靠,这对云厂商提出了新的挑战。
腾讯云作为全球领先的云厂商,服务了上百万家客户。在公有云服务之初,就凭借自身业务的多年积累,从机房基础设施建设,到计算、存储、网络、安全等各种服务,为客户在云上构建高可用、数据高可靠的业务,提供了完善的产品和解决方案。
业务的容灾涉及到诸多方面,以典型的三层架构为例,架构上要确保每一层都具备高可用能力,才能保障整体业务的高可用。这其中,数据层作为业务的核心,是我们首要考虑的。
在这篇文章中,我们聚焦在数据层容灾,介绍一下腾讯云COS对象存储的容灾解决方案。
一、Region 和 AZ 的概念
首先介绍一下 Region 和 AZ 的概念。
Region-区域/地域:简单来说,可以将 Region 理解为不同城市的机房。公有云的 Region 遍布全球,国内的话,通常会有北京 Region、上海 Region、广州 Region 等等。不同 Region 之间,一般只能通过公网连通。
AZ-可用区:可以理解为同一个城市的不同机房,是包含在 Region 内的。比如北京 Region,会包括多个 AZ,而单个 AZ 会有一个或多个 IDC 机房园区组成。AZ 之间通过高带宽、低时延、高冗余的专线网络连接,保证跨 AZ 之间数据传输的安全可靠。
一个 Region 多个 AZ 组成,从机房电力、网络等层面来保障一个 AZ 出现故障的时候不会影响到另外一个可用区。
二、跨可用区容灾
如果您的应用程序已经构建在腾讯云上,可以借助 COS 对象存储多 AZ(Available Zone)来提高数据层的可用性。
多 AZ(Available Zone)是指由腾讯云对象存储推出的多 AZ 存储架构,这一存储架构能够为用户数据提供数据中心级别的容灾能力。
实现原理上,数据会被打散成若干个分块,同时按照纠删码算法计算出对应的校验码分块。原始数据分块和校验码分块会被打散并均分存储到该地域的不同 AZ 数据中心中,实现同城容灾。
多 AZ 特性为客户提供99.9999999999%(12个9)的数据设计可靠性和99.995%的服务设计可用性。在上传数据到对象存储时,只需要通过指定对象的存储类型,即可将对象存放到多 AZ 的地域。
当您启用多 AZ 功能后,客户数据分散存储在城市中多个不同的 AZ 数据中心,当某个 AZ 数据中心因为自然灾害、断电等极端情况导致整体故障时,其他 AZ 数据中心的数据依旧可以正常读取和写入,保障客户数据持久存储不丢失,维持客户业务数据连续性和高可用。
三、跨区域容灾
如果您的业务有更高的可用性需求,除了借助 COS 对象存储多 AZ 之外,还可以在不同地域保存数据副本,来进一步提高数据层的可用性。
COS 对象存储桶跨区域复制,指由腾讯云对象存储推出的一项数据异步跨区域复制功能。存储桶复制是针对存储桶的一项配置,通过配置存储桶复制规则,可以在不同存储桶中自动、异步地复制增量对象。
启用存储桶复制后,COS 将精确复制源存储桶中的对象内容(如对象元数据和版本 ID 等)到目标存储桶中,复制的对象副本拥有完全一致的属性信息。此外,源存储桶中对于对象的操作,如添加对象、删除对象等操作,也将被复制到目标存储桶中。
通过存储桶跨区域复制实现数据的异地容灾,当某个数据中心因为不可抗因素损毁时,另一个存储桶的数据中心仍然可以提供副本数据以供您使用。
除了提供高可用之外,存储桶跨区域复制可以满足行业对数据安全的合规性要求。同时,当您的客户在不同地理位置访问对象时,在与客户地理位置最近的存储桶中维护对象副本,最大限度上缩短客户的访问延迟,有利于提高您的产品体验。
四、版本控制
无论是跨可用区容灾,还是跨区域容灾,如果数据被误删除,将导致数据永久丢失。
为了避免用户误删或应用程序故障而丢失的数据,COS 对象存储推出了版本控制功能。
版本控制用于实现在相同存储桶中存放同一对象的多个版本。例如,在一个存储桶中,您可以存放多个对象键同为 picture.jpg 的对象,但其版本 ID 不同,例如100000、100101和120002等。
用户在为某一存储桶开启版本控制功能后,可以根据版本 ID 查询、删除或还原存放在存储桶中的对象。这有助于恢复被用户误删或应用程序故障而丢失的数据。例如,用户在对版本控制的对象进行删除操作时:
- 如果需要删除对象 (非完全删除),COS 会为被删除的对象插入删除标记,该标记将作为当前对象版本,您可以根据删除标记恢复以前的版本。
- 如果需要替换对象,对象存储会为新上传的对象插入新的版本 ID,您仍然可以根据版本 ID 恢复被替换前的对象。
存储桶可处于三种版本控制状态:未启用版本控制状态、启用版本控制状态和暂停版本控制状态。
- 未启用版本控制状态:指存储桶的默认初始状态,此时版本控制功能关闭。
- 启用版本控制状态:指开启存储桶版本控制功能,此时为版本控制开启状态,版本控制状态将应用到该存储桶中的所有对象。您对存储桶首次启用版本控制后,新增上传到该存储桶中的对象将拥有唯一的版本 ID。
- 暂停版本控制状态:指存储桶的版本控制由开启状态变更为暂停状态(无法返回未启用版本控制状态),此后往存储桶中上传的对象将不再存放版本控制的对象。
存储桶处于不同的版本控制状态下,您均可对不同状态的存储桶中的对象进行上传、查询和删除操作。
五、上传防覆盖
除开一些不可抗力因素,很多时候,看起来没有风险的操作也是导致数据异常的一大原因,比如,COS 是保持最终一致性的,所以,当有同名文件上传时,旧文件会被覆盖,为了避免非预期的覆盖动作,用户就需要在自己的业务逻辑中维护一套完整的重名校验系统,当然,用户也可以选择开启版本控制,但开启版本控制后,多版本对象的管理逻辑也比较复杂,也会带来额外的存储量,而且,用户往往只需要对部分特定文件禁止覆盖写的动作,不需要版本控制相较厚重的功能逻辑。
针对这种情况,腾讯云对象存储 COS 能够提供存储桶级别和对象级别的防覆盖机制。
用户可以直接开启存储桶的防覆盖功能,开启后,存储桶会禁止一切同名文件的上传动作,当上传同名文件时,COS 会拒绝上传请求,以保证存储桶中的文件不会被覆盖。
如果只是想防止存储桶中部分特定文件被覆盖,用户可以在上传这些文件时,带上特殊头部,带上该头部后,上传请求会先对桶中文件进行校验,如果桶中无同名文件则上传成功,如果桶中有同名文件,则上传失败。
开启了上传防覆盖功能后,用户仍然可以对文件进行改名,删除等操作,在一些合规场景下,仅仅是防止覆盖,还远远不够。
六、对象锁定
在很多金融场景下,根据合规政策,文件需要强制性的保留,不允许覆盖,删除,修改等等,需要留底足够的时间,这个时候,就需要通过对象锁定功能来满足需求。
用户开启存储桶配置对象锁定后,在保留周期内:
- 对象不可删除、修改;
- 对象存储类型不能修改;
- 对象 HTTP 头部+用户元数据都不能修改,包括 Content-Type、Content-Encoding、Content-Language、Content-Disposition、Cache-Control、Expires、x-cos-meta-;
对象锁定功能可以很好的协助客户满足合规性的政策要求。
七、写到最后
无论您的业务已经构建在腾讯云上或者正在准备迁移上云,都可以借助 COS 对象存储提供的容灾能力来保护您的业务数据。通过多 AZ、跨区域复制、版本控制等功能,实现数据的冗余存储。
与本地辅助数据中心相比,基于云的灾难恢复可以提供更高的可靠性、可用性和安全性,而不需要重复的硬件、计算、网络和软件,在保障 RPO 和 RTO 的情况下,可以显著降低容灾 TCO。
腾讯云COS对象存储占据数据容灾C位的更多相关文章
- 腾讯云COS对象存储 Web 端直传实践(JAVA实现)
使用 腾讯云COS对象存储做第三方存储云服务,把一些文件都放在上面,这里主要有三中实现方式:第一种就是在控制台去设置好,直接上传文件.第二种就是走服务端,上传文件,就是说,上传文件是从服务端去上传上去 ...
- Go操作腾讯云COS对象存储的简单使用案例
准备环境 安装Go环境 Golang:用于下载和安装 Go 编译运行环境,请前往 Golang 官网进行下载 安装SDK go get -u github.com/tencentyun/cos-go- ...
- 腾讯云 COS 对象存储使用
目前使用腾讯云的对象存储cos服务,将本地的文件同步到cos中,看了腾讯云的用户文档,发现使用COS Migration 工具还是挺适合的. 原因 因为服务器已经安装有java环境,而cos的几个用户 ...
- 腾讯云COS对象存储
一.腾讯云COS 腾讯云对象存储 COS 是一种存储海量数据的分布式存储服务.COS 提供了多种对象的存储类型:标准存储.低频存储.归档存储. 二.为什么要使用TA 便宜: 个人用户有6个月的免费使用 ...
- 腾讯云COS对象存储的简单使用
叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...
- 腾讯云的对象存储COS
什么是对象存储COS Clound Object Storage,COS,专门为企业和开发者们提供能够存储海量的分布式存储服务,用户可以随时通过互联网对大量数据进行批量存储和处理,在任意位置存储和检索 ...
- 腾讯云cos对象在线显示
问题 前端使用了一张cos的图片,但是无法显示图片,使用的是cdn的加速域名地址. 对比:使用服务器的直接域名是可以显示的. 两者地址直接访问时,一者在线显示,一者直接下载到本地. 原因: 使用默认提 ...
- ceph 对象存储跨机房容灾
场景分析 每个机房的Ceph都是独立的cluster,彼此之间没有任何关系. 多个机房都独立的提供对象存储功能,每个Ceph Radosgw都有自己独立的命名空间和存储空间. 这样带来两个问题: 针对 ...
- PHP 腾讯云cos使用之我见
因为某些人的原因,本文从新改名发布一遍. 原名称:tp5 -- 腾讯云cos简单使用 原文链接:https://www.cnblogs.com/YFYQ/p/10840050.html 因项目需要,本 ...
随机推荐
- Greenplum 性能优化之路 --(三)ANALYZE
一.为什么需要 ANALYZE 首先介绍下 RBO 和 CBO,这是数据库引擎在执行 SQL 语句时的2种不同的优化策略. RBO(Rule-Based Optimizer) 基于规则的优化器,就是优 ...
- [小专题]另一种字符串匹配的思路——Shift-And算法
吐槽:前两天打组队赛遇到一个字符串的题考了这个(见:http://acm.hdu.edu.cn/showproblem.php?pid=5972 ) 当时写了个KMP瞎搞然后TLE了(害),赛后去查了 ...
- 第四章 Sentinel--服务容错
我们接着承接上篇继续讲下去 : 第三章 Nacos Discovery–服务治理,开始第四篇的学习 第四章 Sentinel–服务容错 4.1 高并发带来的问题 在微服务架构中,我们将业务拆分成一个个 ...
- tomcat8默认umask已改为027
1. umask的简单介绍 不过我们通常只用后三位,同样对应属主属组以及其他用户的权限,例如你的账号umask值为0022(可直接通过umask命令查看), 此时你创建的文件权限默认为644(文件初始 ...
- 阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4
当你购买了阿里云的ecs,涉及ecs的有两个密码,一定要搞清楚,一个密码是远程链接密码,也就是通过浏览器连接服务器的密码,另外一个是实例密码,这个密码就是ecs的root密码,一般情况下,我们经常用到 ...
- Python循环语句代码详解:while、for、break
1 while循环 循环语句是程序设计中常用的语句之一.任何编程语言都有while循环,Python也不例外.while循环的格式如下所示. while(表达式): - else: ...
- NET 5使用gRPC
gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架. https://grpc.io/docs/guides/ https://github.com/grpc/grpc-dotnet h ...
- 企业运维案例:xxx is not in the sudoers file.This incident will be reported” 错误解决方法
CentOS6系统下,普通用户使用sudo执行命令时报错: xxx is not in the sudoers file.This incident will be reported" 解决 ...
- 用python写注入漏洞的poc
webug靶场一道简单的注入题 加点后报错 could not to the database You have an error in your SQL syntax; check the manu ...
- Apache Hudi使用简介
Apache Hudi使用简介 目录 Apache Hudi使用简介 数据实时处理和实时的数据 业务场景和技术选型 Apache hudi简介 使用Aapche Hudi整体思路 Hudi表数据结构 ...