Cassandra具有不同ESX主机的高可用性

时间:2018-08-21 12:42:40

标签: cassandra cassandra-3.0

我有5台计算机cassandra群集,其中3个节点属于ESX1主机,另外2台计算机属于ESX2主机。 我有一个名为profilemanager的键空间,它的复制因子为3。据我的理解,cassandra根据复制因子将数据分布到多个节点上。

问题:如果密钥空间配置文件管理器的复制因子为3,则可能有全部3个副本数据都可以保存在ESX1主机中的可能性。 如果ESX1发生故障,则所有相应的3台计算机都发生故障,那么将没有高可用性。有没有一种方法可以指定用于保存特定计算机复制的计算机。

例如:A,B,C,D,E机器在那里。必须在A,B中保存两份副本,并且必须在D / E中保存第三份副本。

1 个答案:

答案 0 :(得分:2)

您应该能够使用Cassandra的功能来解决此问题,该功能用于指定逻辑数据中心和机架。如果使用GossipingPropertyFileSnitch,则应该能够在每个ESX1节点的cassandra-rackdc.properties文件中指定以下内容:

dc=YourDatacenterName
rack=ESX1

在每个ESX2节点上:

dc=YourDatacenterName
rack=ESX2

在写入时,Cassandra然后确保将二级或三级副本流式传输到另一个机架中的节点。这样,分区的所有副本都不会位于同一ESX主机上。