CnosDB 容灾方案概述
本文主要介绍了跟容灾相关的关键技术以及技术整合后形成的几种具体方案,每种方案都在 RTO、RPO、部署成本和维护成本等方面有自己的特点和区别,可以根据具体场景选择最合适的方案。
CnosDB 容灾方案概述
基本概念
RTO(Recovery Time Objective):业务停止服务后,恢复所需的最长时间。
RPO(Recovery Point Objective):业务系统所能容忍的数据丢失量,以时间为指标。
如图,当故障发生时,RTO 和 RPO 的具体说明如下:
Region:区域,在本文中指一个地区或城市。
DC(Data Centre):数据中心,在实际中通常指一个机房,在本文中与区域相对应。
Rack:机架,属于 DC。
如图,Region、DC 和 Rack 的关系如下:
关键技术概述
数据分布策略
CnosDB 是一种支持多副本的数据库系统,它提供了自定义副本放置策略的功能。这意味着,当你创建一个数据库时,你可以指定一个策略来决定数据应该如何在不同的节点上分布。这些策略包括 DC Aware 和 Rack Aware。
DC Aware:这种策略意味着数据库会考虑数据中心的位置来决定数据的放置。例如,如果你有一个跨多个数据中心的集群,你可能希望数据在不同的数据中心之间有所复制,以提高数据的可用性和耐久性。
Rack Aware:这种策略则是考虑机架的位置来决定数据的放置。例如,如果你的集群部署在一个大型的数据中心,你可能希望数据在不同的机架之间有所复制,以防止一个机架的故障导致数据的丢失。
在部署集群时,你需要指定每个节点所在的位置。这样,当写入数据时,CnosDB 就可以根据你指定的策略和节点的位置来决定数据应该放在哪里。这种灵活的数据放置策略可以帮助你更好地管理你的数据,提高数据的可用性和耐久性。
如图,根据 DC 和 Rack 分布的 node:
数据订阅
CnosDB 是一种支持数据库级别的数据订阅的数据库系统。这意味着,你可以选择以数据库为单位,实时订阅一个集群(例如 cluster1)中的特定数据库(例如 database1)的数据,并将这些数据实时传输到另一个集群(例如 cluster2)。
这种数据订阅功能非常强大,因为它允许你在不同的集群之间实时同步数据。这可以帮助你确保数据的一致性和可用性,无论你的数据是存储在哪个集群中。
更重要的是,CnosDB 在订阅过程中会自动创建表。这意味着,当你订阅一个数据库的数据时,CnosDB 会自动在目标集群中创建相应的表,以存储订阅的数据。这大大简化了数据同步的过程,使你可以更专注于使用数据,而不是管理数据。
总的来说,CnosDB 的这种数据库级别的数据订阅功能为数据管理提供了极大的便利,无论你是在进行数据备份,还是在进行数据分析,都可以从中受益。
逻辑备份
CnosDB 是一种强大的数据库系统,它支持多种数据格式的导入和导出,包括 CSV、JSON 和 PARQUET。这意味着,无论你的数据是什么格式,你都可以方便地将其导入到 CnosDB 中,或者从 CnosDB 中导出。
此外,CnosDB 还支持元数据的导出,可以将元数据导出成 DDL(Data Definition Language,数据定义语言)格式。这是一种用于描述数据库中存储的数据的语言,可以帮助你更好地理解和管理你的数据。
例如,你可以从一个集群(例如 cluster1)中导出数据和元数据,然后将这些数据和元数据导入到另一个集群(例如 cluster2)中。这样,你就可以实现数据的备份,确保数据的安全性和可用性。
总的来说,CnosDB 的这些功能使你无论是在进行数据迁移,还是在进行数据备份,都可以很好的完成。
方案介绍
基于单集群的多副本放置方案
在这个集群中,有三个数据节点。其中两个节点分布在同一个区域的不同数据中心(DC)上,另外一个节点分布在另一个区域的数据中心上。这样,就形成了一个两地三中心的容灾模式。在这种模式下,当我们存储数据时,我们可以设置副本数为 3。这样,每个数据都会在三个节点中的每一个上都有一个副本。这意味着,即使某个节点发生故障,其他两个节点仍然可以正常提供服务,因为它们都有数据的副本。这样,我们就可以满足容灾的需求。
优点:
一个副本故障时,另外两个副本不受影响可以正常提供服务,因此 RPO 为 0;
一个副本故障时,可以迅速重启并加入集群提供服务,因此 RTO 为分钟级;
与正常使用方式相同,不需要额外管理;
可以满足区域级别的容灾。
总的来说,这种两地三中心的容灾模式为数据管理提供了极大的便利,也体现了 CnosDB 在数据管理方面的强大能力和灵活性。
基于多集群的实时订阅方案
在这个方案中,我们在两个不同的区域设置了两个集群,分别是 cluster1 和 cluster2。这两个集群通过数据订阅功能实时同步数据。这意味着,无论何时在 cluster1 中对数据进行更改,这些更改都会实时地反映到 cluster2 中。
优点:
数据是实时同步的,当主集群出现故障时,丢失数据较少,因此 RPO 较小;
当主集群出现故障时,备集群可以立即接管服务,确保业务的连续性,因此 RTO 可以达到分钟级;
可以满足区域级别的容灾。
缺点:
对网络带宽和延迟要求较高;
受限于目前订阅的特性,使用过程中需要做额外操作。
总的来说,这种方案的成功实施,需要对网络环境有一定的要求,以确保数据同步的效率和准确性。并且该方案也可以与单集群多副本方案相结合,容灾能力得到很大增强。
基于备份与恢复的容灾解决方案
在这个方案中,我们在两个不同的区域设置了两个集群,分别是 cluster1 和 cluster2。cluster1 作为主集群提供服务,而 cluster2 作为备份集群。我们通过定时使用 CnosDB 的数据导出和导入功能,将 cluster1 中的数据同步到 cluster2 中。
优点:
对网络带宽和延迟有要求不是很高;
当主集群出现故障时,备集群可以立即接管服务,确保业务的连续性,因此 RTO 为可以达到秒级。
缺点:
取决于定时备份的时间间隔,当主集群故障时,数据可能会有部分丢失,因此 RPO 可能会较高。
总的来说,这种方案适用于对 RTO 有较高要求,但是对 RPO 要求不高的业务场景,并且该方案也可以与单集群多副本方案相结合,容灾能力得到很大增强。
多副本和实时订阅结合方案
在这个方案中,我们有两个集群:cluster1 和 cluster2。每个集群都采用了 3 副本两地三中心的模式,这意味着每个数据都有三个副本,分布在两个地理位置的三个数据中心中。这种模式可以提高数据的可用性和容错性,因为即使一个数据中心发生故障,其他的数据中心仍然可以提供服务。集群之间的数据同步可以通过定时数据同步或实时订阅的方式来实现。
优点:
RTO(恢复时间目标)为分钟级;
由于数据是实时同步的,所以其 RPO 较小,意味着数据丢失的可能性较小;
满足跨区域的容灾需求。
缺点:
部署和管理相对复杂。
这个方案适用于有跨区域容灾需求且对 RTO 和 RPO 都有一定要求的用户。
版权声明: 本文为 InfoQ 作者【CnosDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/f674c8108da0087d971fb6c67】。文章转载请联系作者。
评论