【问题标题】:Cassandra version upgrade from 2.0.9 to 2.2Cassandra 版本从 2.0.9 升级到 2.2
【发布时间】:2017-02-06 03:38:36
【问题描述】:

我们计划将目前在 2.0.9 上运行的集群升级到 2.2.6。根据文档和一些博客,人们就地升级 cassandra,即从环中删除一个节点,升级它并再次添加它。我们对遵循这种方法持怀疑态度,因为可能会出错(这是一个具有大量 QPS 的高事务数据库)。

所以我们计划在集群中添加一个新的数据中心,该集群将升级 cassandra 版本(2.2)。所以设置应该有两个数据中心,一个是旧的(2.0.9),另一个是新的(2.2.6)

这个数据中心只是一个备份。当数据中心稳定后,我们将更改与此数据中心的客户端连接,如果它运行良好,我们将使用此数据中心并关闭旧数据中心,否则我们可以回退到旧数据中心并调试问题所在。

这个过程是否足够可行,还是我们应该进行就地升级?

一个数据中心是否可以存在两个 cassandra 版本(2.0 和 2.2)。

这种方法有缺点吗?

【问题讨论】:

    标签: cassandra upgrade datastax cassandra-2.0 cassandra-2.2


    【解决方案1】:

    Cassandra 是一个无主分布式数据存储。对于 Cassandra 来说,没有所谓的“备份”数据中心。如果您要添加另一个运行 2.2 的 DC,则您选择加入混合版本集群设置,就像单独升级节点一样。我看到的唯一优势是由于添加了节点,性能问题应该不太可能出现。但是,添加另一个 DC 将使您的集群设置更加复杂,并且可能会引入您还不知道但与运行不同版本没有任何关系的问题。你将如何引导新的 DC?取下旧DC效果会如何?与更新单个节点相比,这种方法对操作的影响会更大。

    如果您真的不想进行滚动升级,我建议您将第二个 DC 设置为单独的集群,导入备份并进行一些(负载)测试。还要更改您的代码以写入两个集群,如果您满意,最终切换到新的集群。如果你不想花这么多精力,那就滚动升级吧。

    【讨论】:

    • 嗨 Stefan,首先是前奏,我有一个 4 节点集群,运行 2.0.9 cassandra 版本。现在我计划用 2.2 cassandra 版本设置不同的 DC。这应从旧的 DC(2.0.9) 引导。我知道这需要一些时间(引导)。优点是我的应用程序的读取和写入将从 2.0.9 提供,该版本运行良好,所有这些都将同步到新 DC(异步)。然后在一个贫乏时期(当流量低时),我只需将接触点更改为我的新 DC(2.2)。一切正常后,我将关闭旧 DC。
    【解决方案2】:

    一个数据中心是否可以存在两个 cassandra 版本(2.0 和 2.2)。

    不,他们不能。

    这个过程是否足够可行,还是我们应该进行就地升级?

    您将需要执行就地升级。这是因为 Cassandra 无法跨版本流式传输。执行就地升级允许新版本从旧版本读取 SSTable。

    这种方法有缺点吗?

    正如我所提到的,您将无法将数据从现有节点流式传输到新的 2.2 DC。所以引导、重建和修复都是不可能的。

    您遇到的另一个问题是 2.2.6 与 2.0.9 不“升级兼容”。来自这个 DataStax 文档:Apache Cassandra versions requiring intermediate upgrades...

    Apache Cassandra 2.2.x 限制

    • 从更高版本或等于 2.1.9 的 Cassandra 2.1 版本直接升级到 Cassandra 2.2.x。
    • 不支持从 Cassandra 2.0 及旧版本直接升级。

    您将首先必须将整个集群升级到 Cassandra 2.1。升级到 2.1 完成后,然后您可以将节点升级到 2.2.6。

    【讨论】:

    • 嗨@Aaron,谢谢。为什么两个 cassandra 版本不能存在于一个数据中心但可以存在于同一个数据中心(集群)中,这很奇怪。有什么特别的原因吗?如果 cassandra 无法在不同版本的数据中心之间流式传输数据.. 我可以先在新数据中心拥有相同的版本,然后在引导、重建和修复后升级新数据中心的版本,升级后更改客户端连接吗?这可行吗? ...我知道即使采用这种方法,两个数据中心也有两个不同的版本。这行得通吗?谢谢。
    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2018-03-18
    相关资源
    最近更新 更多