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 实例中的远程集群?
使用 DataStax 生命周期管理器升级 cassandra