Cassandra 集群中的 System_auth 键空间被覆盖

Cassandra 集群中的 System_auth 键空间被覆盖

我正在将 Node2 添加到另一个 cassandra Node1 以形成集群,但我丢失了用户数据库(这导致了身份验证问题)。如果有人能帮助我了解发生了什么,我将不胜感激(以避免下次添加另一个节点时再次发生这种情况)。

Node1 在 DCA,Node2 在 DCB。我在 Node2 中配置了 yaml 配置文件并将其启动,结果发现防火墙阻止了两者之间的正常通信。

修复通信问题后,我发现我存在身份验证问题,我的用户不再存在,我应该使用默认的 cassandra/cassandra 用户登录并通过。Node1 的 system_auth 被来自新 Node2(没有用户,只有默认用户)的副本覆盖。

我的配置包括:

endpoint_snitch: GossipingPropertyFileSnitch
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer

问题:为什么较新的 system_auth 用户密钥空间取代了较旧的密钥空间?

为了修复这些问题,我确保通信正常。我停用了新的 Node2,清空了它的数据目录并重新加入。然后我从头开始定义用户(已复制到两个节点)。我自己的 kyspace 和 te system_auth 都被更改为在每个服务器(和数据中心)上都有一个副本。

{'class' : 'NetworkTopologyStrategy', 'DCA' : 1, 'DCB' : 1 } (for both my own and system_auth keyspaces)

答案1

对于任何系统特定的密钥空间,复制策略应该只是本地策略而不是网络策略。您的 system_auth 密钥空间被更改的原因是,当您在新节点上安装 Cassandra 时,它创建了 system_auth 密钥空间并具有最新的时间戳。作为网络拓扑策略,它复制到较旧的节点。我希望这可以解释这种情况。

相关内容