说到私有云容灾,大家首先想到的是云上数据备份。
然而,随着企业外围业务逐步从线下迁徙到云上,客户提出了更高的要求。如何确保云上业务的高可用、数据的高牢靠,这对云厂商提出了新的挑战。
腾讯云作为寰球当先的云厂商,服务了上百万家客户。在私有云服务之初,就凭借本身业务的多年积攒,从机房基础设施建设,到计算、存储、网络、平安等各种服务,为客户在云上构建高可用、数据高牢靠的业务,提供了欠缺的产品和解决方案。
业务的容灾波及到诸多方面,以典型的三层架构为例,架构上要确保每一层都具备高可用能力,能力保障整体业务的高可用。这其中,数据层作为业务的外围,是咱们首要思考的。
在这篇文章中,咱们聚焦在数据层容灾,介绍一下腾讯云 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。