【问题标题】:Cassandra Datastax AMI on EC2 - Recover from "Stop"/"Start"EC2 上的 Cassandra Datastax AMI - 从“停止”/“开始”恢复
【发布时间】:2015-11-14 00:13:52
【问题描述】:

我们正在寻找在 EC2 上部署小型生产 Cassandra 集群(社区)的最佳方式。出于性能原因,所有建议都是避免 EBS。

但在部署 Datastax 提供的 AMI 和临时存储时,只要临时存储被清除,实例就会永久死亡。 (手动启动 + 停止,或有时由 AWS 触发以进行维护)将使实例无法使用。 OpsCenter 在重启后无法修复实例,并且实例无法自行恢复。

我希望实例能够自行启动备份,运行一些脚本来检测临时存储是否已擦除,并与集群同步。因为它不是,所以 AMI 看起来只适合开发任务。

谁能帮助我们了解替代方案是什么?我们可以忍受由于复制而导致节点暂时丢失,但如果节点永远不会恢复并且需要一个新的集群,这对于生产环境来说似乎是一个死胡同。

  1. 有没有办法在 EC2 上安装 Cassandra,以便从临时存储丢失中恢复?

  2. 如果我们购买企业版的许可证,这个问题会消失吗?

  3. 这是否意味着尽管性能不佳,但带有 PIOPS 的 EBS(优化)是在 AWS 上运行 Cassandra 的最佳方式?

  4. 是否建议只是避免停止 + 启动实例并希望 AWS 不会停用或重新分配其主机?在这种情况下有什么建议?

  5. AWS 滚动更新怎么样?升级一台机器(杀死它)并再次启动它,然后继续到下一台机器将擦除所有集群数据,因为机器将响应(与那些上的 Cassandra 不同)。这样它就可以破坏小型(例如 3 节点)集群。

  6. 有没有人对Instacluster等付费服务有很好的经验?

【问题讨论】:

  • 澄清一下 - 亚马逊经常更换主机实例进行维护。此外,这些事件有时是由故障引起的。所以对生产环境的要求。是整个环境将在一个实例的自发迁移中幸存下来。但恢复单个节点更改主机的最佳方案是更换整个数据中心。这似乎有点矫枉过正,听起来也不是一个很好的部署策略。我们正在寻找一种最佳实践,使我们能够从偶发的 EC2 故障中自动恢复临时存储的性能。
  • 这些都是很好的问题。我想听听其他人对此的回答,但我也可以分享我的知识:1. 不,2. 不,3. 不,对此有多项研究,上一个主要研究是在 2013/2014 年左右 - 但也许情况发生了变化. 4. Netflix 的伙计们使用 Priam:github.com/Netflix/Priam 但它几乎没有任何文档 + 我还没有找到任何描述成功安装的博客文章。顺便提一句。我又添加了一个相关问题(第 5 个)。
  • 谢谢,我去看看 Priam。我看到它也被推荐here 参考完整的设置和实例升级流程here。但是,它不能从我所读的内容中提供全自动的节点恢复。
  • @Ron,你最终为此做了什么?
  • @runios,我们想将 Cassandra 用于一个非常特定的目的,在查看了我们需要的部署之后,我们认为这是一种矫枉过正的做法,并采用了不同的解决方案。

标签: amazon-web-services amazon-ec2 cassandra datastax datastax-enterprise


【解决方案1】:

Datastax 的新文档实际上表明 EBS Optimized GP2 SSD 支持的实例可用于生产工作负载。在 EBS 的支持下,您可以轻松地创建快照,这几乎消除了节点上数据丢失的可能性,并且可以通过简单的启动/停止轻松地将它们迁移到新主机。

使用 ephemeral,您基本上必须针对故障进行计划,考虑您的整个集群是否位于单个区域 (SimpleSnitch) 并且该区域出现故障。

http://docs.datastax.com/en/cassandra/3.x/cassandra/planning/planPlanningEC2.html

【讨论】:

    猜你喜欢
    • 2013-02-17
    • 1970-01-01
    • 2017-01-08
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多