【问题标题】:Riak unrecoverable disk failureRiak 不可恢复的磁盘故障
【发布时间】:2018-02-27 08:39:34
【问题描述】:

我有一个 3 节点 Riak 集群,每个集群大约有 3 个节点。 1 TB 磁盘使用量。突然,一个节点的硬盘发生了不可恢复的故障。 因此,我使用以下步骤添加了一个新节点:

1) riak-admin 集群加入 2)关闭故障节点 3) riak-admin force-replace failed-node new-node 4) riak-admin 集群计划 5) riak-admin 集群提交。

这几乎解决了问题,除了在大量数据传输和切换之后,现在并非所有三个节点都有 1 TB 的磁盘使用量。只有他们两个 有 1 TB 的磁盘使用量。另一个几乎是空的。这意味着磁盘上不再有 3 个副本。我应该运行什么命令来强制确保磁盘上有三个副本而不等待读取修复或反熵生成三个副本?

【问题讨论】:

    标签: riak riak-cs riak-ts


    【解决方案1】:

    通过向 riak-users@lists.basho.com 发布相同的问题得到答案:

    (0) 三个节点不够,你应该有5个节点 (1) 您可以迭代并读取集群中的每个对象——这也会触发每个对象的读取修复 (2) - 抄自 Engel Sanchez 2014 年 4 月 10 日对类似问题的回复) * 如果 AAE 被禁用,您不必停止节点即可删除其中的数据 anti_entropy 目录 * 如果启用 AAE,滚动删除 AAE 数据可能会触发 具有坏树和节点的节点之间的读取修复雪崩 由于数据似乎存在分歧,因此具有良好的树木。

    如果您的节点已经启动,并且启用了 AAE 并且旧的不正确的树 在混合中,有一个更好的方法。您可以使用动态禁用 AAE 一些控制台命令。此时,无需停止节点,您可以 删除集群中的所有 AAE 数据。在方便的时候,重新启用 原子能机构。我说方便是因为所有的树木都将开始重建,而且 在过载的集群中可能会出现问题。周末这样做 除非您的集群可以承受额外的负载,否则这可能是个好主意。

    要从 Riak 控制台动态禁用 AAE,您可以运行以下命令:

    riak_core_util:rpc_every_member_ann(riak_kv_entropy_manager, 禁用, [], 60000)。

    并使用类似的方式启用:

    riak_core_util:rpc_every_member_ann(riak_kv_entropy_manager, 启用, [], 60000)。

    最后一个数字只是 RPC 操作的超时。我希望这 为您的集群节省了一些额外的负载。 (3) 那将是: (3a) 使用您选择的客户端列出所有密钥 (3b) 获取每个对象

    https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/reading-objects/

    https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/secondary-indexes/

    【讨论】:

      猜你喜欢
      • 2015-01-29
      • 2020-03-15
      • 2021-10-20
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      相关资源
      最近更新 更多