Riak 不允许添加节点,因为它位于自己的集群中

Riak 不允许添加节点,因为它位于自己的集群中

(这是我从 Stack Overflow 上转发的问题,它与主题无关,这里是提问的正确地方)

我试图在 Raspberry Pi 上构建 Riak 集群。使用 Erland 和 Riak 创建了一个图像,单个节点似乎可以正常工作。然后我为不同的 Pi 克隆了此图像:

[email protected]
[email protected]
[email protected]

它们都具有相同的配置,唯一的不同是和中的静态vm.argsIP app.config

现在的问题是,我从 开始构建集群[email protected],添加了一个节点[email protected],似乎一切正常:

# ./riak-admin member-status
================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%     50.0%    '[email protected]'
valid       0.0%     50.0%    '[email protected]'
-------------------------------------------------------------------------------

然而,当我尝试添加第三个节点([email protected])时,我收到以下错误消息:

# ./riak-admin cluster join [email protected]
Failed: This node is already a member of a cluster

为什么我没有遇到这个问题[email protected]?它似乎只发生在[email protected]节点上。

我无法强制[email protected]从其集群中删除,因为它显示:

# ./riak-admin cluster force-remove [email protected]
Failed: '[email protected]' is the claimant (see: riak-admin ring_status).
The claimant is the node responsible for initiating cluster changes,
and cannot forcefully remove itself. You can use 'riak-admin down' to
mark the node as offline, which will trigger a new claimant to take
over.  However, this will clear any staged changes.

或者

# ./riak-admin cluster leave                          
Failed: '[email protected]' is the only member.

我就是无法理解,我想我需要一个新的观点。我还想补充一点,我遵循了文档中的所有步骤:

http://docs.basho.com/riak/latest/ops/building/basic-cluster-setup/

并且还参加了 Raspberry Pi 的计数教程(但我不是用 Raspbian,而是用 ArchLinux)。

http://basho.com/building-a-riak-cluster-on-raspberry-pi/

我还要补充一点,网络工作正常,我可以从每个节点 ping 和 ssh 到每个节点。

我期待您的建议。干杯!

编辑:

正如之前所说,他们建议使用riak-admin down <node>命令来停止该节点claimant,但这也不起作用。

# ./riak-admin down [email protected]
Failed: [email protected] is up

我无法停止它,因为它已经启动了...但是,如果我在 Riak 未启动时尝试相同操作,则会得到:

# ./riak-admin down [email protected]
Node is not running!

这真是令人困惑。显然我不明白这里发生了什么,希望有人能澄清一下。

答案1

请尝试以下步骤:

  • riak stop在所有节点上
  • rm -rf /var/lib/riak/ring/*在所有节点上
  • 仔细检查/etc/riak/vm.args以确保-name参数使用的是正确的 IP 地址
  • riak start在所有节点上
  • 在另外两个节点上重新运行命令。请务必记住,所有其他节点都加入同一个“启动”节点 -在这种情况下riak-admin cluster join [email protected][email protected]
  • 在节点上运行riak-admin cluster plan验证[email protected]
  • 在节点riak-admin cluster commit上运行[email protected]

答案2

无需停止所有节点并删除环数据。在将停止的申索者节点标记为关闭后,可以进行加入节点等集群操作。3 节点集群和申索者故障的示例步骤如下:https://gist.github.com/shino/dd9a75e84b2b5792a079

相关内容