AWS 中的 Datastax 实例类型升级问题

Posted

技术标签:

【中文标题】AWS 中的 Datastax 实例类型升级问题【英文标题】:Datastax instance type upgradaion issue in AWS 【发布时间】:2018-07-18 14:59:42 【问题描述】:

我计划将 AWS 中的 datastax 实例从 t2.large 升级到 t2.2xlarge。我们当前的集群包含 6 个 SearchGraph 节点

Datacenter: SearchGraph
=======================
UN  192.168.8.1  469 MiB     1            ?       936a1ac0-6d5e-4a94-8953-d5b5a2016b92  rack1
UN  192.168.8.2  427.71 MiB  1            ?       3f41dc2a-2672-47a1-90b5-a7c2bf17fb50  rack1
UN  192.168.8.3  431.27 MiB  1            ?       29f8fe44-3431-465e-b682-5d24e37d41d7  rack2
UN  192.168.8.4  480.73 MiB  1            ?       1f7de531-ff51-4581-bdb8-d9a686f1099e  rack2
UN  192.168.8.5  498.9 MiB   1            ?       27d37833-56c8-44bd-bac0-7511b8bd74e8  rack2
UN  192.168.8.6  882.4 MiB   1            ?       0822145f-4225-4ad3-b2be-c995cc230830  rack1

由于我们的复制因子是 3,即使我们的 2 实例出于实例升级目的而停机,我们也可以生存。 我需要明确我计划进行的以下升级步骤是否正确?

步骤 1)

nodetool flush 
sudo service dse stop

步骤 2) 获取实例的 AMI

第 3 步)从采用的 AMI 启动一个新的 t2.2xlarge 实例。 (注意:新实例的 ip 应该和之前的一样)

步骤 4) sudo service dse start

【问题讨论】:

最好使用nodetool drain:docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/… 我不能说太多 - 我从来没有尝试过这样使用它 @AlexOtt 谢谢。我将遵循您的建议,而不是第 1 步。由于来自 ami 的旧实例详细信息在新实例中得到复制,我是否需要进行任何其他更改?我是否必须删除以前实例的所有已保存缓存。 【参考方案1】:

是的,所以这不是升级,而是您将数据移动到大型机器上。只要您保留数据目录,那么节点就会保留相同的令牌范围和节点 ID(全部保存在 cassandra 系统表中)。

但是请注意,听起来您正在重新安装 AMI 快照,与其他节点相比,该节点会有点“落后”,因此如果您的读取一致性不是 Quorum,那么您的读取可能会命中旧节点并且获取过时的数据。完成后运行修复可能也是一个好主意。

【讨论】:

如果停机时间很短,那么它应该通过提示赶上变化......但我同意运行修复 - 只是为了确保一切同步 是的,好点,我忘记了提示!我记得默认是 3 个小时。看看这里的操作,它们可能会在 3 小时内完成,但不能保证。但是值得注意的是,如果您在 nodetool tpstats 中看到丢弃的消息,那么您不应该完全依赖提示 iirc

以上是关于AWS 中的 Datastax 实例类型升级问题的主要内容,如果未能解决你的问题,请参考以下文章

如何将 datastax 开发中心连接到亚马逊 EC2 实例中的远程集群?

如何更改 AWS ECS 集群中的实例类型?

使用 DataStax 生命周期管理器升级 cassandra

与 Datastax Astra DB 连接后如何维护响应中的数据类型?

升级后无法访问 AWS RDS 实例

将未知大小的实例类型和权重容量列表添加到 AWS CF 模板 (YAML) 中的 Auto Scaling 组