我计划创建包含三个节点的群集,每个节点将在三个不同的Amazon EC2区域中启动。
根据Datastax文档,我将使用Ec2MultiRegionSnitch,复制策略是NetworkTopologyStrategy。以下是我需要实现的目标
群集大小:3(跨越Amazon EC2区域)。
复制因子:3
读写级别:QUORUM。
基于上面的配置,我可以在单节点丢失的情况下生存(意味着亚马逊地区的任何一个地区。如果我错了,请纠正我。)
为了实现上述配置,我有两个选项
选项-1:使用Datastax提供的Amazon EC2 AMI图像。
此选项使用一些监视工具(opscenter..etc)启动运行cassandra所需的几乎所有组件的实例
但它将所有数据存储在EC2实例存储中,因此数据仅在实例的生命周期内持续存在,存储大小取决于实例类型。
选项-2:使用自定义安装
在此选项中,我必须启动Amazon EC2 Ubuntu AMI,安装JAVA,安装Datastax社区版。
此选项使我能够将所有数据存储在EBS上。因此,我可以随时扩展EBS,同时可以使用EBS快照恢复任何节点。
我的问题:
哪个选项适合我的需要?
注意:
我阅读了Datastax提供的文档,对cassandra来说非常新。因此,无论您提供什么样的输入对我都非常有用。
由于
答案 0 :(得分:0)
只有EC2临时存储才能获得Datastax AMI,这是不正确的。从版本2.5开始,他们声称您也可以选择EBS:Introducing the DataStax Auto-Clustering AMI 2.5。这是我个人选择的一种相对简单的入门方式。
您应该选择EBS还是EC2临时存储?
答案是:这取决于......
过去(~2012-2013):
短暂存储的EC2实例是更好的选择。多年来有详细的性能基准测试表明EBS越来越好,但是附加的物理驱动器仍然更好。
过去(〜2014年):
EC2选择仍然更好。 Datastax写了一篇关于定价,网络和故障恢复的好文章:What is the story with AWS storage?
现在(〜2016年):
instaclustr声称:
通过在Amazon EBS上运行Cassandra,您可以运行更密集,更便宜 Cassandra集群的可用性与短暂存储一样多 实例
很好的演示文稿:AWS re:Invent 2015 | (BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second on 60 Nodes
总而言之,我建议您进行TCO分析,如果价格没有太大差异,请选择EBS - 因为开箱即可制作快照。更重要的是,EBS的可能性将随着时间的推移而得到改善。